首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

WebLogic Portal 性能管理指南

     編輯:Java 相關知識

即使是經驗豐富的 Java Web 開發人員,也會對開發門戶應用的巨大複雜度感到驚訝。最終用戶看到的簡單漂亮界面背後,是像 BEA WebLogic Portal 這樣的商業產品所提供的強大功能與複雜架構。當門戶應用進入生產階段,診斷性能問題將變得異常困難。

本文假設您已熟悉 WebLogic Portal 的功能與術語。

WebLogic Portal 架構

BEA WebLogic Portal 在一個完整的 Web 門戶開發與交付平台中,整合了統一的運行時框架、業務服務與生命週期管理技術,可針對數千終端用戶擴展並支援持續變更。

WebLogic Portal 架構

圖 1. WebLogic Portal 的層次化架構

門戶的基本構建塊是 Portlet,它是小型的門戶應用,在網頁中通常呈現為小方塊。Portlet 是可重用組件,提供對應用、基於 Web 的內容及其他資源的訪問,能訪問並顯示網頁、Web 服務、應用程式及聚合內容。

Portlet 獨立開發、部署、管理與顯示。管理員與終端用戶通過選擇和安排 Portlet 可創建個性化門戶頁,使網頁能針對個人、團隊、部門或組織量身打造。Portlet 依賴門戶基礎設施訪問用戶配置檔資訊、參與視窗與動作事件、與其他 Portlet 通信、訪問遠端內容、查找憑證與儲存持久數據。

由於 Portlet 也是 Servlet,它們共享類似的重入與性能關注點。單一 Portlet 實例(即 Portlet Java 類的單一實例)由所有請求者共享。因處理 Portlet 和 Servlet 的線程數有限,每個 Portlet 必須儘快完成工作,以優化整頁響應時間。

理解控件樹

WebLogic Portal 控件樹代表門戶內的所有結構元素,充當構建新門戶頁所需的基礎設施。實例化門戶時,新控件樹在處理期間創建(或從緩存恢復)。門戶性能的一大障礙是控件數量:控件越多(頁、Portlet、按鈕等),控件樹越大,渲染所有組件所需時間越長。

典型控件樹

圖 2. 一個門戶實例的典型控件樹

圖 2 顯示一個典型門戶生成的控件樹:由 Desktop 和 Shell 創建一個主 Book 和 6 個子 Book,每個子 Book 包含 2 個頁,每頁包含 2 個 Portlet,整個門戶至少包含 42 個控件。

控件樹構建完成且實例變量設置成功後,在門戶完全渲染前,此樹必須在整個生命週期中對每個控件依序運行。生命週期方法按順序調用:先調用每個控件的 init(),再調用 loadState() 等,調用順序由控件在門戶分類圖中的位置決定。每個控件的生命週期運行都需要開銷,若門戶有數千控件,時間可能呈指數級增長。因此,控件樹越大,對性能影響越嚴重。

在 WebLogic Portal 中監視性能

門戶性能主要表現在用戶點擊對象向門戶 Servlet 發送請求時,實際渲染門戶及其所有組件所需的時間。

首要困難是如何監視和測量整體性能。內置管理功能無法充分覆蓋整個系統,特別是各個門戶組件(包括 Portlet 及 WebLogic Portal 容器運行的其他代碼)、數據庫連接、事務伺服器、主機系統及其他終端系統。

無論使用何種工具,該工具都需具備:

  • 監視跨整個工作流發生的複雜動態交互;
  • 簡潔直觀地顯示結果數據,突出問題及其在門戶工作流中的位置,支援快速下鑽至各個 Portlet 或事務以發現根因;
  • 總結整體性能及關鍵門戶工作流領域(門戶 Servlet、控件樹處理、JSP backing 文件、Java 頁面流、Portlet、後端系統連接、門戶服務)的性能。

應監視什麼及常見問題

可能影響門戶性能與可用性的潛在因素有多個,以下討論應監視的內容與常見問題。

門戶請求響應時間

門戶是個性化 Web 應用,有必要像最終用戶那樣測量性能。通過測量事務響應時間,管理員可在問題影響用戶與業務前採取措施。

控件樹處理

如前所述,控件樹代表所有結構元素。用戶介面設計中的所有元素都對應樹中的控件。需監視控件樹內的複雜處理及其與門戶「查看」和「控制」元素的交互。圖 3 顯示性能調優工具如何突顯控件樹中的性能問題。

控件樹性能瓶頸

圖 3. 凸顯控件樹中的性能瓶頸

Portlet

應用程式、基於 JSP 的 Portlet、Web Services 或其他 J2EE 資源均可作為 Portlet 公開。若出現性能下降,支援人員應立即確定是哪個 Portlet 引起。Portlet 生命週期、處理回發數據與預渲染過程對性能監視尤為重要。

Portal Framework 服務

JSP backing 文件與 JSP 協作,實現表示邏輯與業務邏輯分離。Backing 文件總在 JSP 之後運行,包含大量定制渲染代碼(部分開發人員還會向終端系統呼叫獲取額外渲染數據)。性能不佳常預示定制渲染代碼可能有誤。

Java 頁面流完全由開發人員定義,速度減緩常由其作者診斷,不會對終端系統造成大影響。將 J2EE 標準頁面流與門戶控件樹處理架構關聯,可確定某頁面流與哪個 Desktop 相關,這也很有用。

WebLogic Portal 服務

  • Entitlement 系統:為各門戶資源提供基於角色的授權,被門戶各層面大量使用,任何減速都影響整個系統。通常延遲響應與遲滯線程多由支援 Entitlement 的後端系統(如 LDAP)引起。對過多物件進行細粒度授權也會增加開銷。
  • Personalization 服務:通過 Advislet 實現,用於修改門戶首選項顯示的資訊。Advislet 可使用內部規則引擎、顯式個性化甚至事件。過度使用常引起性能問題。
  • User Profile 存儲庫:包含額外用戶資訊(如聯系信息)。延遲響應與遲滯線程多因後端系統(如支援用戶配置檔的數據庫)問題引起。
  • Content Management API:與商業內容管理系統(如 Documentum)介接。若產生遲滯線程,首要檢查後端內容系統是否正常。

結語

希望本文能提供有用資訊,助您了解 WebLogic Portal 應用的性能問題。隨著企業門戶內容日益複雜與普及,管理其性能與可用性的挑戰也隨之增加。借助合適的工具與處理,基於門戶的應用仍可靠地實現預期業務價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved