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