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

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

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

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

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

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

3、結(jié)論
??? 我們知道,每個企業(yè)當(dāng)前都有許多企業(yè)應(yīng)用系統(tǒng),如電子郵件、文檔管理、企業(yè)資源規(guī)劃(ERP)、客戶關(guān)系管理(CRM)、供應(yīng)鏈管理(SCM)等系統(tǒng),各個系統(tǒng)沒有辦法獨立實現(xiàn)資源共享。應(yīng)用Portlet技術(shù)可以合并多個企業(yè)應(yīng)用,滿足系統(tǒng)之間無縫地共享和交換數(shù)據(jù)的需要,同時表現(xiàn)為一個可定制的基于瀏覽器的界面,實現(xiàn)用戶單點" title="單點">單點登陸(single sign-on)即可訪問各個經(jīng)過授權(quán)的應(yīng)用。從而給企業(yè)帶來如下好處:
??? 通過與客戶伙伴更緊密的聯(lián)系、提高生產(chǎn)力、縮短創(chuàng)新的周期,從而使收益增加;通過高效地運營、一致的基礎(chǔ)結(jié)構(gòu)、良好的信息流和知識管理,使運營成本下降;通過訪問更多有關(guān)信息、單點訪問應(yīng)用程序和協(xié)作工具,使生產(chǎn)效率得到提高,決策得以改善;通過良好的安全性和單點登錄,使得較少的密碼需要管理,達到更好的用戶體驗;通過共同的表達和一致的用戶界面,使培訓(xùn)費用降低;統(tǒng)一的應(yīng)用程序,可使它們的使用壽命延長,并可通過桌面和普及的設(shè)備等新方法訪問它們。
參考文獻:
[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)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。