這里所說的Portal是指JCP-JSR168規范所描述的:Portal是一個基于Web的應用,通常它提供個性化、單點登錄、內容集成和顯示等功能。Portal技術包括三個方面:
1)? Portal服務器(Portal Server);
2)? Portlet容器;(Portlet Container)
3)? Portlet。
1) Portal Server 的定義是
一個 Portal(門戶網站)就是指一個 Web-based 的系統,通常都會提供個人化設置、單一登陸、以及由各種不同來源或不同網站取得各式各樣的信息,并且將這些信息放在網頁之中組合而成的呈現平臺,門戶網站會有精巧的個人化設置去提供定制的網頁,當不同等級的使用者來瀏覽該頁面將獲得不同的信息內容。
負責接收HTTP請求,調用portlet,并將portlet產生的內容聚集到portal page返回給客戶。
2) Portlet Container 的定義是
portlet container 是提供 portlets 執行的環境,包含了許多 portlets 并且管理他們的生命周期,他也會永遠保存著 portlets 的喜好設置,一個 portlet container 接收到來自 portal 的請求后,接著將這個請求傳遞給存在 container 的 portlet 執行。portlet container 沒有義務去組合 portlets 產生的信息內容,這個工作必須由 portal 來處理。portal 和 portlet container 可以放在一起視為同一個系統的組件,或者分開成為兩個獨立的組件。
負責提供portlet的運行時環境,管理portlet的生命周期,還負責提供portlet持久化能力。
3) Portlet 的定義是
一個 Portlet 是以 Java 技術為技術的 Web 組件,由 Portlet Container 所管理,專門處理客戶的 request 以及產生各種動態的信息內容。Portlets 為可插式 ( pluggable ) 的客戶界面組件,提供呈現層成為一個信息系統。這些由 portlet 產生的內容也被稱為片段 (fragment),而片段是具有一些規則的Markup( HTML、XHTML、WML ),而且可以和其他的片段組合而成一個復雜的文件。而 Portlet 中的內容正常來說是與其他 Portlet 的內容聚合而成為一個 Portal 網頁。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。客戶端和 portlets 的互動是由 portal 通過典型的 request/response 方式實現,正常來說,客戶會和 portlets 所產生的內容互動,舉例來說,根據下一步的連接或者是確認送出的表單,結果 portal 將會接收到 portlet 的動作,將這個處理狀況轉向到目標 portlet。這些 portlet 內容的產生可能會因為不同的使用者而有不同的變化,完全是根據客戶對于這個 portlet 的設置。
Portal主要是解決企業信息和應用的前端集成問題,它負責連結企業后臺EAI,集成企業的結構和非結構化信息,并提供統一的訪問企業信息和應用的入口。
(摘自JSR168規范文檔)
portlet 與 servlet 的關系
Portlet 和 Servlet 算是兄弟有那么一點點相似卻又有那么一點點不同,因為 Servlet 和 Portlet 不盡然相同,所以研究小組決定將 portlets 定義成為一個新的組件,因此定義了 portlets 一個新的并且明確的界面與行為。為了盡可能與現有的 servlet 結合達到重復使用的目的,portlet 的規范利用了 servlet 的規范,許多觀念都很相似的,結合 portlets、servlets 及 jsp 在同一個網站系統中,我們稱為 portlet application 。在同一個 portlet application 中,他們將分享同一個 classloader,context 及 session。
1) Portlet 和 Servlet 的相似之處
@ portlets 也是 Java 技術的 web 組件
@ portlets 也是有特定的 container 在管理
@ portlets 可以動態產生各種內容
@ portlets 的生命周期由 container 所管理
@ portlets 和客戶端的互動是通過 request/response 的機制
2) Portlet 和 Servlet 也有一些不同
@ portlets 只產生 markup 信息片段,不是完整的網頁文件。而 Portal 會將所有的 Portlet markup 信息片 段放到一個完整的 Portal 網頁。
@ portlets 不會和 URL 有直接的關系
@ 客戶端必須通過 portal 系統才能和 portlets 互動
@ portlets 有一些定義好的 request 處理,action request 以及 render request。
@ portlets 默認定義 portlet modes 及窗口狀態可以指出在網頁中該 portlet 的哪個功能正在執行及現在的 狀態。
@ portlets 可以在同一個 portal 網頁之中存在多個。
3) Portlet 有一些附加的功能是 Servlet 所沒有的
@ Portlets 能夠存取及儲存永久配置文件及定制資料。
@ portlets 可以存取使用者數據
@ portlets 具有 URL 的重寫功能在文件中去動態建立連結,允許 portal server 不用去知道如何在網頁的片 段之中建立連結及動作。
@ portlets 可以儲存臨時性的數據在 portlet session 之中,擁有兩個不同的范圍:
application-wide scope 及 portlet private scope 。
4) Portlet 不具有一些功能, 但是 Servlet 卻有提供
@ servlet 具有設置輸出的文字編碼( character set encoding)方式
@ servlet 可以設置 HTTP 輸出的 header
@ servlet 才能夠接收客戶對于 portal 發出的 URL 請求
基于Portal開發項目的優勢
1、可以與以后新開發的或已集成到Portal中的企業應用實現無縫集成。
2、可以分享Portal服務器和Portlet容器提供的種種功能。這要視Portal服務器提供商而定。
3、由于Portlet已規范化(JSR168),所以應用中開發的Portlet可以部署在不同的Portal服務器上。
jwebee
我的個人網站
posted on 2007-01-31 15:49
周行 閱讀(248)
評論(0) 編輯 收藏 所屬分類:
IT技術