《電子技術(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)被公認為是下一代桌面,,是接觸用戶和滿足用戶體驗的關(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)境中適當運行,,一個Portal頁面是一系列Portlet的集合;

??? 從上圖可以看出Portlet 不只是現(xiàn)有 Web 內(nèi)容的簡單視圖,,還是完整的應(yīng)用程序,,符合標準的模型-視圖-控制器設(shè)計。Portlet 有多種狀態(tài)和視圖模式,,還有事件和消息傳遞功能,;
?? · 模型,為 Portlet 檢索的數(shù)據(jù)源,,該數(shù)據(jù)源可能是本地的也可能是遠程的,,這些數(shù)據(jù)源可能來自于其它的數(shù)據(jù)庫、交易系統(tǒng),、聯(lián)合內(nèi)容供應(yīng)商,,也可能是另外的遠程Web站點;隨著門戶繼續(xù)發(fā)展為新的桌面和集成標準,,如何使門戶和其它Web之間通信成為新的課題,,現(xiàn)在通用的解決辦法是采用xml作為數(shù)據(jù)交換中介;將Web信息劃分為頻道,,每個頻道包含一系列子條目,,每個子條目包括標題、標題的描述以及該標題文章在的鏈接,;另外,,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 標記來支持的移動電話(掌上電腦)。由于Portlet采用MVC設(shè)計模式,業(yè)務(wù)邏輯層和表示層分離,,一個業(yè)務(wù)層可以對應(yīng)多個視圖,;這樣,控制器可以依據(jù)設(shè)備調(diào)用相應(yīng)的視圖顯示,;
?? ·?控制器,,它連接選定的視圖到數(shù)據(jù),并指導(dǎo)Portlet 的操作,。 控制器根據(jù)目標設(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可以完成收集信息,、列出當天最重要的新聞,、進行信息檢索等功能;而一個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 標題欄上的圖標調(diào)用,。Portlet 最初顯示是視圖模式,當用戶和 Portlet 交互時,,它會顯示一系列視圖狀態(tài),例如表單和響應(yīng),、錯誤消息和其它應(yīng)用程序特定狀態(tài);幫助模式用于為用戶提供關(guān)于Portlet 的幫助;編輯模式為用戶提供改變Portlet 設(shè)置的頁面,,用戶可以配置Portlet的狀態(tài)、顯示模式以及顏色等,;配置模式為門戶網(wǎng)站管理員提供一個頁面,,用于配置被所有用戶共享的 Portlet 設(shè)置。每個Portlet 模式有三種顯示狀態(tài):正常,、最大化和最小化,。當 Portlet 最大化時,它被顯示在整個門戶網(wǎng)站頁面,,遮住其它 Portlet,。當 Portlet 最小化時,僅有 Portlet 的標題欄顯示在門戶網(wǎng)站頁上,。
??? 目前影響Portlet企業(yè)應(yīng)用主要有兩大因素:
??? 一個就是不同的門戶廠商針對他們的Portlet有各種各樣的PortletAPI,缺乏Portlet開發(fā)標準,,導(dǎo)致在不同平臺上的Portlet不能互用,例如,,在BEA WebLogic上開發(fā)的Portlet無法用在IBM WebSphere平臺上,;目前,SUN,、IBM等十幾家門戶廠商正在致力于推動門戶標準的制訂,,為JSR168(一個致力于為Portlet的互用性定義Java API的組織)提供贊助:這一新的Java portlet API將成為最終的Java技術(shù)規(guī)范,為各種互操作的被稱為Portlet的門戶組件定義一個公共模式與Java接口,,以便使各個門戶用戶與各種應(yīng)用相連接,。這一新的Portlet API可讓應(yīng)用、內(nèi)容和服務(wù)等的提供商將各種Portlet通過一個公共的標準Java Portlet API執(zhí)行,,并以一種標準的方式組合起來,。這樣,這些Portlet就能配置在所有相應(yīng)的門戶服務(wù)器上,。
??? 另一個因素就是Portlet數(shù)量過少,,解決該問題除了開放標準,鼓勵第三方開發(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ù),;當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ù)請求,。當服務(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)化信息標準促進組織(OASIS)成立遠程門戶網(wǎng)站 Web 服務(wù)(Web Services for Remote Portals,WSRP)技術(shù)委員會,,由 IBM 擔(dān)任主席的 WSRP [3] 委員會創(chuàng)建 XML 和 Web 服務(wù)標準,,該標準允許可視的面向用戶的服務(wù)和門戶網(wǎng)站或其它 Web 應(yīng)用程序間的互操作性,。WSRP定義一個通用,、清晰的與Web服務(wù)交互接口和協(xié)議,,該接口負責(zé)處理用戶交互信息以及生成符合門戶顯示的片段界面。下圖為遠程Portlet工作機制:當有用戶請求訪問其它的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ā)布適當?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è)當前都有許多企業(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)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。