《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動(dòng)態(tài) > 企業(yè)門戶關(guān)鍵技術(shù):Portlet的研究

企業(yè)門戶關(guān)鍵技術(shù):Portlet的研究

2008-12-20
作者:李永剛,張麗芬
1、 引言
在新經(jīng)濟(jì)時(shí)代,信息的重要性日益突現(xiàn)出來,企業(yè)競(jìng)爭(zhēng)力的提高越來越多的依賴于企業(yè)查詢、發(fā)布、采集、處理信息的能力。Internet的迅速發(fā)展使企業(yè)很容易獲得大量信息,但是如何從這么多信息的信息中提煉出對(duì)企業(yè)有用的確是企業(yè)亟待解決的難題。1998年11月,Merrill Lynch發(fā)表了EIP(Enterprise Information Portal企業(yè)信息門戶)報(bào)告,指出EIP是使企業(yè)擺脫內(nèi)部和外部存儲(chǔ)信息的限制,簡(jiǎn)單快速的獲取商業(yè)信息,進(jìn)行決策的途徑。
?那么何為企業(yè)信息門戶?企業(yè)信息門戶是一個(gè)應(yīng)用系統(tǒng),它使企業(yè)能夠釋放存儲(chǔ)在企業(yè)內(nèi)部和外部的各種信息,使企業(yè)員工、客戶和合作伙伴能夠從單一的渠道訪問其所需的個(gè)人化信息。門戶網(wǎng)站提供了集成的內(nèi)容和應(yīng)用,以及統(tǒng)一的協(xié)作工作環(huán)境。目前,門戶已經(jīng)被公認(rèn)為是下一代桌面,是接觸用戶和滿足用戶體驗(yàn)的關(guān)鍵,也是實(shí)現(xiàn)企業(yè)應(yīng)用集成" title="應(yīng)用集成">應(yīng)用集成(EAI)的重要途徑。
?目前開發(fā)門戶技術(shù)分為兩大主流:
2?一種是以微軟" title="微軟">微軟為首的.Net技術(shù),典型代表產(chǎn)品Microsoft? SharePoint? Portal Server,依靠微軟強(qiáng)大的操作系統(tǒng)平臺(tái)和辦公軟件的支持,內(nèi)置了許多功能強(qiáng)大的Web組件,如Office組件、Exchange組件;優(yōu)點(diǎn)是與Microsoft自身知識(shí)管理產(chǎn)品相匹配,但是他的缺點(diǎn)也很明顯,與主流的企業(yè)軟件不易集成;
2?另一種是基于J2ee技術(shù)發(fā)展的門戶系統(tǒng)。代表產(chǎn)品有IBM的WebSphere Portal、Sun的iPlanet Portal Server、Bea的Web Logic Portal等產(chǎn)品,由于這些軟件都是基于J2ee框架的,所以在功能上都很相似:支持門戶個(gè)性化、活動(dòng)管理、跨應(yīng)用的單一登入、身份驗(yàn)證、權(quán)限管理和Portlet間的通信,也提供了不同數(shù)據(jù)庫的選擇;
評(píng)價(jià)一個(gè)門戶產(chǎn)品的好壞最重要的是看它所支持的Portlet有多少,因?yàn)殚T戶各種功能的實(shí)現(xiàn)都依賴于相應(yīng)的Portlet。由于SharePoint運(yùn)行平臺(tái)的限制(只能運(yùn)行在Windows平臺(tái))和第三方" title="第三方">第三方的組件相對(duì)缺乏,這就決定了它在企業(yè)級(jí)門戶應(yīng)用的不足;而基于J2ee技術(shù)的門戶產(chǎn)品,由于其強(qiáng)大的跨平臺(tái)性以及眾多的第三方Portlet開發(fā)廠商的支持,稱為門戶產(chǎn)品的主流。
Portlet 是企業(yè)信息門戶網(wǎng)站的心臟,它是可重用的組件,提供對(duì)應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序、基于 Web 的內(nèi)容和其它資源的訪問。有了Portlet,開發(fā)者很容易依據(jù)企業(yè)需求快速的用已有的Portlet定制出一個(gè)功能強(qiáng)大的企業(yè)門戶系統(tǒng);同時(shí)這樣的門戶系統(tǒng)由于實(shí)現(xiàn)了模塊化,也很容易維護(hù)。比如,企業(yè)要把公司的現(xiàn)有CRM集成到現(xiàn)有門戶系統(tǒng),那么我們不需要對(duì)CRM進(jìn)行改動(dòng),只是開發(fā)或者購買第三方的具有相應(yīng)功能的Portlet添加到門戶系統(tǒng)就可以了。
2、Portlet技術(shù)
2.1、 Portlet簡(jiǎn)介

Portlet 是在門戶中運(yùn)行的 Web 頁面的一部分,從最終用戶的角度看,Portlet 是一個(gè)能夠在Web頁面顯示出來的工作區(qū)域。每個(gè) Portlet 將管理瀏覽器屏幕的一小部分,為您執(zhí)行一項(xiàng)服務(wù)。所有的 Portlet都將檢索來自數(shù)據(jù)庫或其他來源的信息、轉(zhuǎn)換這些信息,并將這些信息顯示到瀏覽器屏幕上;從開發(fā)者角度看,Portlet是采用J2EE技術(shù)開發(fā)的并且運(yùn)行在門戶網(wǎng)站的Portlet容器(Container)中的插件;Portlet在許多方面都類似于Servlet;比如說:Portlet用Portlet API(參閱JSR-168 該規(guī)范現(xiàn)在處于審查狀態(tài)[1])來編寫,就象Servlet用Servlet API來編寫一樣,還有Portlet是運(yùn)行在Portal環(huán)境中,Portlet 容器提供了 Portlet 初始化、使用和最后銷毀的運(yùn)行時(shí)環(huán)境;而Servlet運(yùn)行在Web服務(wù)器端的Servlet容器中。兩者不同的是Servlet直接與客戶端通訊,而Portlet則通過Portal的應(yīng)用來調(diào)用。Portlet只有在生成了適合在大頁面中顯示的內(nèi)容之后,才會(huì)在Portal環(huán)境中適當(dāng)運(yùn)行,一個(gè)Portal頁面是一系列Portlet的集合;

??? 從上圖可以看出Portlet 不只是現(xiàn)有 Web 內(nèi)容的簡(jiǎn)單視圖,還是完整的應(yīng)用程序,符合標(biāo)準(zhǔn)的模型-視圖-控制器設(shè)計(jì)。Portlet 有多種狀態(tài)和視圖模式,還有事件和消息傳遞功能;
?? · 模型,為 Portlet 檢索的數(shù)據(jù)源,該數(shù)據(jù)源可能是本地的也可能是遠(yuǎn)程的,這些數(shù)據(jù)源可能來自于其它的數(shù)據(jù)庫、交易系統(tǒng)、聯(lián)合內(nèi)容供應(yīng)商,也可能是另外的遠(yuǎn)程Web站點(diǎn);隨著門戶繼續(xù)發(fā)展為新的桌面和集成標(biāo)準(zhǔn),如何使門戶和其它Web之間通信成為新的課題,現(xiàn)在通用的解決辦法是采用xml作為數(shù)據(jù)交換中介;將Web信息劃分為頻道,每個(gè)頻道包含一系列子條目,每個(gè)子條目包括標(biāo)題、標(biāo)題的描述以及該標(biāo)題文章在的鏈接;另外,RSS,OCS和RDF通常都是門戶網(wǎng)站采用的描述信息的格式。RSS(Rich Site Summary,豐富站點(diǎn)摘要)是一種深受歡迎且很有用的聯(lián)合的新聞和娛樂內(nèi)容格式??梢园褍?nèi)容直接從內(nèi)容管理系統(tǒng)發(fā)布到 Rich Site Summary 和 Open Content Syndication(開放內(nèi)容聯(lián)合,OCS)頻道,門戶網(wǎng)站服務(wù)器的內(nèi)置 RSS Portlet 很容易就能將這些內(nèi)容顯示在頻道上。
?? ·?視圖,用于顯示 Portlet 數(shù)據(jù)的圖形顯示機(jī)制;Portlet一般都支持多種設(shè)備(瀏覽器)訪問,設(shè)備可以是用 HTML 來支持使用桌面瀏覽器的PC,也可以是用 WML 和用 cHTML 標(biāo)記來支持的移動(dòng)電話(掌上電腦)。由于Portlet采用MVC設(shè)計(jì)模式,業(yè)務(wù)邏輯層和表示層分離,一個(gè)業(yè)務(wù)層可以對(duì)應(yīng)多個(gè)視圖;這樣,控制器可以依據(jù)設(shè)備調(diào)用相應(yīng)的視圖顯示;
?? ·?控制器,它連接選定的視圖到數(shù)據(jù),并指導(dǎo)Portlet 的操作。 控制器根據(jù)目標(biāo)設(shè)備或?yàn)g覽器選擇要顯示的視圖,然后將數(shù)據(jù)模型傳遞給視圖。視圖抽取特定的顯示數(shù)據(jù),為瀏覽器格式化數(shù)據(jù),然后將其輸出提供給瀏覽器,作為 Portlet 輸出的門戶網(wǎng)站聚集的一部分。
2.2、Portlet技術(shù)應(yīng)用
??? 在門戶世界,門戶服務(wù)器就象一個(gè)大的框架,而框架中的內(nèi)容、樣式、以及風(fēng)格等都由用戶決定, 他們無需程序員就能用Portlet構(gòu)造和管理他們個(gè)人主頁的內(nèi)容(程序員的職責(zé)就是開發(fā)一個(gè)個(gè)通用的Portlet)。門戶頁面中各個(gè)區(qū)域的內(nèi)容是獨(dú)立的,每個(gè)區(qū)域都是一個(gè)特定功能的Portlet程序,可以根據(jù)需要顯示特定的信息的Portlet。用戶可以預(yù)先定義每個(gè)Portlet所顯示的內(nèi)容。例如,一個(gè)News Portlet可以完成收集信息、列出當(dāng)天最重要的新聞、進(jìn)行信息檢索等功能;而一個(gè)ERP Portlet可以把后臺(tái)ERP系統(tǒng)產(chǎn)生的各種業(yè)務(wù)數(shù)據(jù)按照預(yù)訂的方式顯示在門戶上,企業(yè)管理人員不必直接訪問后臺(tái)的ERP系統(tǒng)就可以獲得各種業(yè)務(wù)數(shù)據(jù)。由此用戶可以組織他們的計(jì)算桌面以匹配自己的工作模式和需要,從而使他們能夠擁有更高的生產(chǎn)效率、更大的便利性,并且在內(nèi)部網(wǎng)導(dǎo)航上花費(fèi)更少的時(shí)間。
??? Portlet有幾種顯示模式:視圖、幫助、編輯和配置,可通過 Portlet 標(biāo)題欄上的圖標(biāo)調(diào)用。Portlet 最初顯示是視圖模式,當(dāng)用戶和 Portlet 交互時(shí),它會(huì)顯示一系列視圖狀態(tài),例如表單和響應(yīng)、錯(cuò)誤消息和其它應(yīng)用程序特定狀態(tài);幫助模式用于為用戶提供關(guān)于Portlet 的幫助;編輯模式為用戶提供改變Portlet 設(shè)置的頁面,用戶可以配置Portlet的狀態(tài)、顯示模式以及顏色等;配置模式為門戶網(wǎng)站管理員提供一個(gè)頁面,用于配置被所有用戶共享的 Portlet 設(shè)置。每個(gè)Portlet 模式有三種顯示狀態(tài):正常、最大化和最小化。當(dāng) Portlet 最大化時(shí),它被顯示在整個(gè)門戶網(wǎng)站頁面,遮住其它 Portlet。當(dāng) Portlet 最小化時(shí),僅有 Portlet 的標(biāo)題欄顯示在門戶網(wǎng)站頁上。
??? 目前影響Portlet企業(yè)應(yīng)用主要有兩大因素:
??? 一個(gè)就是不同的門戶廠商針對(duì)他們的Portlet有各種各樣的PortletAPI,缺乏Portlet開發(fā)標(biāo)準(zhǔn),導(dǎo)致在不同平臺(tái)上的Portlet不能互用,例如,在BEA WebLogic上開發(fā)的Portlet無法用在IBM WebSphere平臺(tái)上;目前,SUN、IBM等十幾家門戶廠商正在致力于推動(dòng)門戶標(biāo)準(zhǔn)的制訂,為JSR168(一個(gè)致力于為Portlet的互用性定義Java API的組織)提供贊助:這一新的Java portlet API將成為最終的Java技術(shù)規(guī)范,為各種互操作的被稱為Portlet的門戶組件定義一個(gè)公共模式與Java接口,以便使各個(gè)門戶用戶與各種應(yīng)用相連接。這一新的Portlet API可讓應(yīng)用、內(nèi)容和服務(wù)等的提供商將各種Portlet通過一個(gè)公共的標(biāo)準(zhǔn)Java Portlet API執(zhí)行,并以一種標(biāo)準(zhǔn)的方式組合起來。這樣,這些Portlet就能配置在所有相應(yīng)的門戶服務(wù)器上。
??? 另一個(gè)因素就是Portlet數(shù)量過少,解決該問題除了開放標(biāo)準(zhǔn),鼓勵(lì)第三方開發(fā)商外,另一個(gè)途徑是把門戶與Web服務(wù)相結(jié)合,把Portlet作為Web 服務(wù)發(fā)布到網(wǎng)上,用戶通過Web服務(wù)訪問就可以輕而易舉地獲得數(shù)以千計(jì)的Portlet。下面我們討論P(yáng)ortlet如何應(yīng)用Web服務(wù)的關(guān)系;
2.3、Portlet與Web服務(wù)
??? Web服務(wù)(Web Services)在近期內(nèi)將成為Internet上自動(dòng)查找信息和應(yīng)用的最主要方法,作為Portal,應(yīng)該能夠?qū)?shù)據(jù)資源和遠(yuǎn)程應(yīng)用集成起來,下面我們討論P(yáng)ortlet如何使用Web服務(wù);
2.3.1用Portlet來架構(gòu)Web服務(wù)
??? 將Portlet作為遠(yuǎn)程Portlet Web服務(wù)對(duì)外發(fā)布,使得其它的Portals能夠很容易找到并且與之集成。一個(gè)典型的例子是新聞Portlet。新聞Portlet使得用戶能夠配置用于跟蹤的新聞分類,然后從Web服務(wù)中獲取該類別下的最新新聞并且顯示出來。在這個(gè)例子中,Portlet代碼運(yùn)行在本地的Portal中,利用Web服務(wù)來訪問信息。Web服務(wù)提供信息,本地的Portlet則用于顯示這些信息,Web服務(wù)返回的信息可以作為一個(gè)XML文件。
??? 下圖說明了如何用Portlet來架構(gòu)Web服務(wù);當(dāng)Portlet接收到請(qǐng)求去訪問遠(yuǎn)程服務(wù),Portlet首先會(huì)去調(diào)用SOAP代理對(duì)象,該代理把請(qǐng)求參數(shù)排列成與程序設(shè)計(jì)語言無關(guān)的SOAP請(qǐng)求,再把該請(qǐng)求發(fā)送到遠(yuǎn)程Web服務(wù)中。遠(yuǎn)程的Web服務(wù)將接收到的SOAP請(qǐng)求進(jìn)行拆包,將請(qǐng)求參數(shù)進(jìn)行還原,并且根據(jù)這些參數(shù)來調(diào)用本地的Web服務(wù),完成服務(wù)請(qǐng)求。當(dāng)服務(wù)返回結(jié)果后,SOAP封裝器將結(jié)果進(jìn)行封裝成同樣與程序設(shè)計(jì)語言無關(guān)的SOAP響應(yīng),并且送回給SOAP代理。SOAP代理最后要把返回的結(jié)果數(shù)據(jù)進(jìn)行拆包,送給調(diào)用它的Portlet。

2.3.2 遠(yuǎn)程門戶網(wǎng)站 Web 服務(wù)
??? 遠(yuǎn)程Web服務(wù)器,即另外一個(gè)Portal,在UDDI目錄中發(fā)布Portlet作為遠(yuǎn)程門戶 Web服務(wù)。這樣本地Portal在UDDI目錄中就查找遠(yuǎn)程的Portlet服務(wù)并且與他們捆綁在一起。這樣使得本地Portal用戶不需要在本地Portal服務(wù)器上安裝Portlet代碼就可以直接訪問遠(yuǎn)程的Portlet服務(wù)。目前結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織(OASIS)成立遠(yuǎn)程門戶網(wǎng)站 Web 服務(wù)(Web Services for Remote Portals,WSRP)技術(shù)委員會(huì),由 IBM 擔(dān)任主席的 WSRP [3] 委員會(huì)創(chuàng)建 XML 和 Web 服務(wù)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)允許可視的面向用戶的服務(wù)和門戶網(wǎng)站或其它 Web 應(yīng)用程序間的互操作性。WSRP定義一個(gè)通用、清晰的與Web服務(wù)交互接口和協(xié)議,該接口負(fù)責(zé)處理用戶交互信息以及生成符合門戶顯示的片段界面。下圖為遠(yuǎn)程Portlet工作機(jī)制:當(dāng)有用戶請(qǐng)求訪問其它的Portal服務(wù)器上的Web服務(wù)時(shí),本地Portal服務(wù)器通過通用的Portlet代理就可以動(dòng)態(tài)地同遠(yuǎn)程Portal服務(wù)器的Portlets進(jìn)行通訊。這樣以來就不需要在本地的Portal服務(wù)器中安裝相應(yīng)的Portlet文件。為了達(dá)到這個(gè)目的,Portlets本身就必須作為Web服務(wù)提供給其它的Portlets,同時(shí)必須用WSDL來描述遠(yuǎn)程Web服務(wù)接口。WSDL定義了所有遠(yuǎn)程Portlets和所需的參數(shù),以及返回值,相應(yīng)的Portlet API的集合。這樣,遠(yuǎn)程Portlet不一定非要用Java實(shí)現(xiàn),它們也可以用其它的程序設(shè)計(jì)語言實(shí)現(xiàn)。
??? Web服務(wù)供應(yīng)商如果想發(fā)布遠(yuǎn)程Portlet Web服務(wù),必須先發(fā)布適當(dāng)?shù)腢DDI目錄入口,以便引導(dǎo)至用WSDL描述的遠(yuǎn)程Portlet Web服務(wù)接口。
??? 遠(yuǎn)程Portlet一旦發(fā)布,Portal管理員就可以用Portal管理工具來搜索UDDI目錄,查找用遠(yuǎn)程Portlet Web服務(wù)接口(Remote Portlet Web Services Interface)實(shí)現(xiàn)的Web服務(wù),預(yù)選一些經(jīng)過匹配的Portlet Web服務(wù),將它們加到Portal的Portlet注冊(cè)表中。

3、結(jié)論
??? 我們知道,每個(gè)企業(yè)當(dāng)前都有許多企業(yè)應(yīng)用系統(tǒng),如電子郵件、文檔管理、企業(yè)資源規(guī)劃(ERP)、客戶關(guān)系管理(CRM)、供應(yīng)鏈管理(SCM)等系統(tǒng),各個(gè)系統(tǒng)沒有辦法獨(dú)立實(shí)現(xiàn)資源共享。應(yīng)用Portlet技術(shù)可以合并多個(gè)企業(yè)應(yīng)用,滿足系統(tǒng)之間無縫地共享和交換數(shù)據(jù)的需要,同時(shí)表現(xiàn)為一個(gè)可定制的基于瀏覽器的界面,實(shí)現(xiàn)用戶單點(diǎn)" title="單點(diǎn)">單點(diǎn)登陸(single sign-on)即可訪問各個(gè)經(jīng)過授權(quán)的應(yīng)用。從而給企業(yè)帶來如下好處:
??? 通過與客戶伙伴更緊密的聯(lián)系、提高生產(chǎn)力、縮短創(chuàng)新的周期,從而使收益增加;通過高效地運(yùn)營、一致的基礎(chǔ)結(jié)構(gòu)、良好的信息流和知識(shí)管理,使運(yùn)營成本下降;通過訪問更多有關(guān)信息、單點(diǎn)訪問應(yīng)用程序和協(xié)作工具,使生產(chǎn)效率得到提高,決策得以改善;通過良好的安全性和單點(diǎn)登錄,使得較少的密碼需要管理,達(dá)到更好的用戶體驗(yàn);通過共同的表達(dá)和一致的用戶界面,使培訓(xùn)費(fèi)用降低;統(tǒng)一的應(yīng)用程序,可使它們的使用壽命延長,并可通過桌面和普及的設(shè)備等新方法訪問它們。
參考文獻(xiàn):
[1] JSR 168 http://www.jcp.org/jsr/detail/168.jsp
[2]?Jetspeed: http://java.apache.org/jetspeed
[3]?WSRP: http://oasis-open.org/committees/wsrp
[4]?Web Sevies Description Language(WSDL)1.1 Erik Christensen ,Francisco Curbera,Greg Meredith,Sanjiva Weerawarana,2000
http://www.w3.org/tr/wsdl/
[5] IBM開發(fā)人員園地 http://www-900.ibm.com
The research of portlet –the key technology of Enterprise Information Portal
Keyword? Portlet Web service EIP

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。