Portlet概念
Portlet 是可再用的 Web 模塊,它們在門戶網站服務器上運行并提供對基于 Web 的內容、應用程序和其他資源訪問。公司可以創建他們自己的 portlet 或從第三方 portlet 編目中選擇 portlet。portlet 是打算被組裝成更大的門戶網站頁面,其中同一 portlet 的多個實例為每個用戶顯示不同的數據。
從用戶的角度來看,portlet 是門戶網站站點中提供特定服務或信息(例如,提供日歷和新聞)的窗口。從應用程序開發者的角度來看,portlet 是可插入的 Web 模塊,它們被設計成在門戶網站服務器的 portlet 容器中運行。
portlet 容器提供了一個運行時環境,在這個環境中實例化、使用和最終銷毀 portlet。portlet 依靠門戶網站基礎結構來訪問用戶概要文件信息,參與在窗口和操作事件中,與其他 portlet 通信,訪問遠程內容,查找憑證,以及存儲持續數據。Portlet API 提供了這些功能的標準接口。portlet 容器不是一個類似于 servlet 容器的獨立容器。它作為 servlet 容器之上的一個薄層實現,并重用 servlet 容器提供的功能。通過提供以下兩個 portlet 容器,WebSphere Portal 支持兩個不同的 Portlet API:基于 org.apache.jetspeed.portlet 接口的 IBM Portlet API 和基于 javax.portlet 接口的 JSR 168 Portlet API。這兩種 portlet 都可以放在門戶網站頁面上。但是,portlet 不能將這兩個軟件包中的類和方法相混合。
頁面上的每個 portlet 都負責以標記段的格式提供其輸出,以集成到門戶網站頁面。門戶網站負責提供有關每個 portlet 的標記。例如,門戶網站可以提供 HTML 格式的標記,該標記為每個 portlet 給定具有最小化、最大化、幫助和編輯圖標的標題欄。
Portal實施的重點難點
Portal網站通過共享,主題和皮膚文件來實現網站的風格統一,我們的網站采用tiles來實現了網站界面的風格統一,這樣改到Portlet上面是比較方便的,但是對美工提出了更高的要求,因為它的文件里面使用了大量的IBM自定義的標簽。
Portlet的拆分問題,每個 portlet 封裝為獨立的 WAR 文件。這對開發者很方便,因為每個 portlet 都可以單獨更新,類似于插件的思想。然而,這種方法對內存有負面影響,因為每個 portlet 都被封裝為獨立的 EAR 文件,而在 WebSphere Portal 中,每個 EAR 文件都有自己的會話上下文。如果我們的網站首頁有十個 portlet,這就導致首頁有十個會話上下文。每個會話上下文都是內存密集型的,這意味著十倍以上的內存將被分配,以容納每一個會話上下文,其他頁面同。
原有代碼的移植問題,以前我們的網站運行在WAS 6上面,現在需要運行到WAS5.1上面,需要按著was5.1的J2ee標準進行重新的封裝。
Struts 是一個流行的開放源代碼開發框架,它提供了一種便利的方式,可以用于將模塊化的應用程序清楚地分解成邏輯、表示和數據。IBM WebSphere Portal 包含內置的 Struts Portlet Framework,使得 Struts 能夠繼續普及到門戶應用程序。本文將展示可以如何使用 Struts Portlet Framework 來遷移現有的 Struts 應用程序并將其部署到 WebSphere Portal 中
利用Portal來實現個性化的定制需要發布一個portal的應用,然后Portal的第一層是頁面,頁面上面運行Portlet,針對不同的登錄用戶展示不同的Portlet來實現個性化的功能,每一個Portlet其實是一個EAR文件。
我們的網站開發的流程
第一、 ; ; ; ; ; ; ; ; ; ; ; ; ;
規劃,針對不同的用戶需要讓他看到哪些內容,這一塊是首要的工作,這塊作不出來無法進行下一步的工作,本塊需要會議確定或者由業務專家進行確定。
第二、 ; ; ; ; ; ; ; ; ; ; ; ; ;
分工,開發主題和皮膚,由美工完成。開發Portlet,用軟件設計人員來完成。Portal的內容管理,用專人來維護,本塊需要遵循盡量復用以前代碼的原則,把以前的代碼移植到Portlet里面來。
第三、 ; ; ; ; ; ; ; ; ; ; ; ; ;
發布、測試,本塊由軟件的測試人員,以及Portlet的管理人員共同完成。
實現的細節
個性化定制
個性化定制實現的原理是用戶的權限劃分,用戶分為不同的組,組可以分配權限,權限可以細化到頁面和Portlet,頁面在定制的時候可以把Portlet分到頁面上去,也就是說用戶的權限可以從兩個級別進行劃分,可以到頁面級別,也可到Portlet級別,即如果用戶有對頁面的訪問權限但是沒有portlet的訪問權限則用戶也不能看到頁面上的該Portlet。
我們把Portlet的開發完成后,把Portlet添加到頁面上去,然后可以定義該頁面的皮膚和外表(美工開發完成),Portlet的風格也可以自定義。注意Portlet的寬度可以手工調整,但是它的高度是不可調的。
單點登錄
單點登錄是通過憑證保險庫來實現的,絕對的安全,簡單的代碼即可實現。
主題
可以把一些公用的東西提取出來放到主題里面,比如網站的Log、我們網站的探路者搜索引擎。
窗口的名字
Portlet的標題就是窗口的名稱。
服務器安裝
我們的網站的運行環境是WAS6.0.1,Portal5.0.1自帶的Was5.1如果把Portal安裝到was6.0.1上面不可以使用Was6.0.1的新功能。
分析總結
綜上所述我們要通過Portal來實現個性化定制,需要學習的就是IBM的具體API和標簽庫的使用,還有它的基調、主題、外表的設計,在設計部署的框架上不存在什么難度。
作者:宋傳芳(原創) 如果引用請注明出處:http://badboyryan.niwota.com
posted on 2006-07-24 08:37
壞男孩 閱讀(577)
評論(0) 編輯 收藏 所屬分類:
新知識學習