摘要:整合科研單位的應用資源和數據資源,提供可定制化的門戶界面、單一登錄方式來滿足緊迫的科研要求。介紹基于Portal和Web服務的信息門戶的基本設計和初步實現,這個方案可以用于大規模科研信息資源的整合和發布。
關鍵詞:門戶;Web服務;遠程Portlet Web服務;整合
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2007)07-0279-04
0引言
禽流感(Avian Influenza,AI)是一種急性、高度接觸性的禽類傳染病,被世界衛生組織(OIE)列為A類傳染病。我國政府也將其列為一類動物疫病。更為嚴重的是, 2003—2004年間相繼又有H5N1、H7N7亞型流感病毒感染人并引起死亡。因此,禽流感預防與人類的生命健康直接相關,具有非常重要的公共意義。為了有效地防止目前高致病禽流感在我國迅速蔓延,我國有必要建立一套有效的、完善的突發疾病綜合信息與預警預報系統,對禽流感這些重大突發性動物疫病進行預防、診斷、監測及信息的收集處理和呈報,以便及時對疫病作出反饋,進而達到預防和控制重大突發性動物疫病的目的,為人類的健康作出貢獻。
鑒于此,由中國科學院計算機網絡信息中心、中國科學院動物研究所、中國科學院武漢病毒研究所和中國科學院微生物研究所四個單位聯合開發了禽流感等突發疾病綜合信息平臺與預警預報系統[1]。由于四個科研單位協同完成禽流感綜合信息平臺的開發,產生以下幾個問題:
(1)合作科研單位的地理分布廣,各單位的開發環境、開發水平區別很大。因此,要求采用獨立于開發環境和開發語言的方式集成已有應用和已有數據。
(2)把各科研單位開發的應用和數據集中在一個門戶上,從而避免科研工作者分別登錄各系統的麻煩。
(3)信息門戶的安全和管理問題。
鑒于以上問題。在應用整合方面,采用的做法是把已有應用封裝成Web服務,然后通過Portlet封裝本地Web服務、遠程Web服務,或依照WSRP規則來調用遠方Portlet。在Portal框架中集成Portlet。在數據集成方面,用XML作為數據傳輸標準,通過Web服務把數據集成到信息門戶。這種解決方式的好處如下:
(1)靈活性,科研人員可根據自己的需求定制個性化門戶。
(2)方便性和安全性,單點登錄,方便系統管理員管理。
(3)經濟性和兼容性,可無縫集成已有應用和已有數據,節省成本的同時提高開發速度。
本文描述了基于門戶的禽流感綜合信息平臺的設計和初步實現。
1信息門戶介紹
禽流感綜合信息門戶包括禽流感數據資源建設、集成整合禽流感基礎數據庫、禽流感病原流行病學與生態學調查與研究、禽流感的生物信息學綜合分析、禽流感預警預報、禽流感協同科研網格和禽流感信息對外發布等功能模塊。各模塊功能介紹:
(1)項目介紹。介紹本項目概述、研究內容和合作單位的信息及相關鏈接。
(2)數據規范。介紹禽流感信息門戶的數據規范并提供下載,如圖1所示。
(3)數據錄入和查詢。提供向數據庫中錄入數據和對某些數據查詢的統一入口。
(4)數據訪問服務。基于DAS(Data Access System,科學數據網格數據訪問服務系統軟件。它是關系數據庫的服務化封裝工具,該系統以統一的網格服務接口訪問多種異構數據,為進一步實現數據集成奠定基礎)的基礎上,提供對各種異構數據訪問、查詢的接口。
(5)生物信息學綜合分析系統。為病毒基因組學的分析和病毒蛋白組學與跨種族傳播分析提供訪問入口。
(6)協同環境。為各科研單位提供協同工作通信工具的訪問入口。這個協同環境包括禽流感綜合信息平臺WIKI、禽流感應用BBS、禽流感應用項目郵件列表、禽流感應用FTP。
(7)對外發布。提供禽流感信息對外發布系統網站的入口。
(8)成果。展示禽流感研究中所取得的成果。
2應用和數據的整合方法
信息門戶的目的是整合各科研單位的應用資源和數據資源,把這些信息資源整合到一個門戶中,供科研人員可定制的操作和瀏覽。本系統分為三個層次,如圖2所示。
(1)資源層是各研究所提供的信息資源。包括本地的應用資源、遠程的應用資源、結構化數據、非結構化數據。
(2)信息集成層為本門戶實現資源整合提供構件。包括本地和遠程應用集成構件、結構化和非結構化數據集成構件。同時還提供對整合資源的統一管理、統一授權、門戶的統一訪問。
(3)展現層是把集成的信息資源以門戶形式展現給用戶的最外層。該層只處理如何顯示信息、統一視圖管理,使用戶可以根據自己的需要定制個性化的輸出。
在這個框架中,各科研單位的所有信息資源都屬于后端資源層。在信息集成層中的集成構件根據后端資源層的信息資源類型,采用不同的集成構件進行集成處理,最后傳遞給前端的展示層。用戶單點登錄后就可以根據自己的需要來制定個性化的Portlet。下面介紹信息集成層如何實現。
(1)本地應用的集成
Portlet的功能在本地門戶服務器上實現,在本地門戶服務器上運行。本地Portlet的系統體系結構如圖3所示。
本地應用集成構件處理科研人員的Servlet請求按如下順序:
①如果請求的是封裝HTML或JSP的Portlet,直接返回響應片斷給Portal,在相應Portlet中生成HTML。
②如果請求的是封裝Web服務的Portlet,Portlet首先會調用SOAP代理對象。該代理把請求參數排列成與程序設計語言無關的SOAP請求,再把該請求發送到本地的Web服務;本地Web服務接收到SOAP請求后對SOAP請求進行拆包,將請求參數還原,并根據這些參數來調用本地Web服務,完成服務請求。當服務返回結果后,SOAP封裝器把結果封裝成同樣與程序語言無關的SOAP響應,并且送回給SOAP代理。SOAP代理把返回的結果數據進行拆包,把相關片段送給調用它的Portlet,然后在門戶的相應位置生成HTML。
本地應用集成的實現方法是把本地Portlet打包為Web應用部署到門戶上。具體實現步驟為:
①創建源文件。源文件包括JSP文件和相對的Java類文件。JSP文件是要在Portlet中顯示的內容;Java類文件用來指定相對的JSP文件。
②配置Web.xml。配置步驟與配置一般的Servlet相同。
③配置Portlet的描述文件Portlet.xml。定義關于Portlet的別名、對應的Servlet以及顯示方式、權限設置等屬性。
④打包為Web應用。例如禽流感信息門戶的介紹性Portlet被打包成名稱為birdfluPortlets.war的Web應用。
⑤通過Portal管理界面來加載Portlet,制定相關的屬性。
(2)遠程應用的集成
按照WSRP(Web Service for Remote Porlets)標準集成遠程Portlet的原因是Web服務提供了重用后端服務的能力。WSRP是一項展示層的技術,能重用整個用戶接口,即當重用某個Web服務時,還需要開發相應的Portlet并且部署這個Portlet,這將很麻煩。但是當發現某個有用的Portlet時,只需簡單的操作就可以把這個Portlet集成到用戶的Portal。用戶不需要做任何編碼和部署工作,也不需要了解任何WSRP的知識,甚至不需要知道這個Portlet實際上是遠程的,只需要知道有一個可用的Portlet目錄,可以從中挑選需要的Portlet,然后集成到自己的Portal中即可。
遠程應用集成有兩種情況:①功能在遠程機器上實現,并且封裝成Web服務,通過本地Portlet Proxy來訪問遠程Web服務,信息的請求和應答通過SOAP來封裝。②遠程服務器已經部署好Portlet。這種Portlet是遠程Portlet,Portlet Proxy 通過WSRP協議直接訪問。情況①與本地應用的集成基本上一樣,所以不再說明。下面介紹依照WSRP標準調用遠程Portlet。
信息門戶的遠程應用集成構件定義了三種角色,分別是WSRP生產者、WSRP Portlet、WSRP消費者。WSRP生產者是一種Web服務,提供了一個或多個Portlet,而且定義了四個接口即服務描述接口、片段接口、注冊接口、Portlet管理接口,它們定義了WSRP消費者可調用WSRP Portlet的方法。WSRP生產者可以提供一個Portlet或者一個用來管理和運行多個Portlet的容器。每個WSRP生產者都用WSDL文件來描述。WSRP Portlet是各科研單位開發的Portlet,它們是即插即用的,在WSRP生產者內部。因為WSRP Portlet不是Web服務,不能被直接調用,必須通過WSRP生產者接口提供的方法來調用。WSRP消費者是信息平臺門戶,是Web服務的客戶端。門戶通過Portlet Proxy 來調用WSRP生產者提供的WSRP Portlet,將得到的WSRP Portlet片斷集成在某個Portlet頁面中提供給最終用戶使用。調用WSRP Portlet就像調用本地Portlet一樣。
信息門戶的遠程應用集成構件工作過程如圖4所示。
首先,各科研單位開發出各自的Portlet,通過設置WSRP生產者把這些WSRP Portlet公開。這樣WSRP Portlet可以共用。然后把WSRP Portlet發布到一個集中的UDDI注冊中心,由UDDI公布這些WSRP生產者的服務接口。同時,其他科研單位正在為自己的門戶尋找合適的Portlet。他們使用門戶提供的工具來查找WSRP Portlet,一旦發現需要的Portlet,就可以很容易地把WSRP Portlet添加到自己的門戶上。這個過程基本不需要編程,只需要進行簡單配置就可以;或者門戶管理員在搜索UDDI注冊中心后把找到的WSRP Portlet像本地Portlet一樣注冊在自己的門戶中,提供給最終用戶使用。最后,當最終用戶訪問添加了WSRP Portlet的頁面時,門戶把Web服務請求傳給遠程的WSRP Portlet,然后把WSRP Portlet返回的片段集成在本地Portal中。
(3)結構化數據和非結構化數據集成
結構化數據是各種關系數據庫中的數據,非結構化數據包括各種文本、網頁、圖像和媒體等。參加禽流感信息門戶建設的四個單位,每個單位都有豐富的數據資源。這些數據資源包括結構化的數據和非結構化的數據,本文稱這些數據資源為信息孤島。如何把這些數據集成起來,讓科研工作者可以通過禽流感信息門戶這個單一的入口訪問所有后臺的、異構的數據資源十分重要。本文用信息門戶作為展示層,以Web服務和XML為基礎的數據集成構件為后臺來實現數據集成。不論是異構的關系數據庫、文本文件、視頻和音頻的二進制文件,都通過統一的接口轉換成XML格式的數據送到數據集成構件;然后XML格式的數據從數據集成構件送到信息門戶。數據集成構件的結構如圖5所示。
數據集成構件是實現數據共享和交換的中心,它通過標準的Web服務為每個科研單位提供服務。每個科研單位只需要與數據集成構件通過Web服務進行交互,并通過XML格式的數據進行數據轉換。因此數據集成構件就像一個虛擬數據中心,整個數據共享和交換的底層實現對各個科研單位是透明的。各科研單位把各種數據以XML格式傳給數據集成構件;數據集成構件再以XML格式把數據發布到信息門戶。數據集成構件采用Web服務技術對數據進行包裝,把門戶的數據展示和需求都看做是一種服務。通過服務的請求和調用實現各科研單位的數據交換和共享。
各個科研單位提供的數據并不需要復制到數據集成構件的中心數據庫,而是以Web服務的形式發布出來。只有當信息門戶或科研單位發出服務請求時,數據才從科研單位的數據庫中以XML格式傳給信息門戶或其他科研單位。這樣信息門戶或其他科研單位得到的數據永遠是最新的。
當其他科研單位中的數據格式變化或增加新數據時,只需要以新的Web服務發布出來,信息門戶和其他科研單位就可以獲得相應數據,而且數據集成構件、信息門戶和其他科研單位都不需要作任何改動。這樣降低了信息門戶和各科研單位的耦合性。
數據集成構件還能保證系統和數據的安全。當門戶或其他科研單位申請進行數據查詢或數據更新時,數據集成構件中的權限管理可以進行訪問控制。
本信息門戶可以集成各種應用和異構的數據資源。禽流感信息門戶的系統框架如圖6所示。
(1)應用集成。可以通過本地Portlet集成本地的HTML、JSP、本地Web服務、遠程Web服務。
(2)數據集成。各科研單位以Web服務的手段,依照XML數據標準把異構數據發送到數據集成構件;數據集成構件也是以Web服務的手段,依照XML數據標準把數據發送到信息門戶。
3國內外相關工作
(1)SOA(Service-Oriented Architecture,面向服務的體系框架)是一個組件模型。它將應用程序分成不同的功能單元(component),把這些功能單元封裝成Web服務,通過這些服務之間定義良好的接口將這些服務組合起來。接口采用中立的方式定義,可以不用考慮服務的開發環境和開發語言等問題。但是SOA僅做到后臺Web服務的重用,并沒有做到展現層的復用,所以使用SOA的思想可以滿足本信息平臺的一部分需求。
(2)WSRP,一個定義了如何利用基于 SOAP 的 Web 服務在門戶應用程序中生成標記片斷的規范。通過定義一組公共接口,WSRP 允許門戶在它們的頁面中顯示遠程運行的 Portlet,而不需要門戶開發人員進行任何編程。對于最終用戶,這些Portlet與運行在本地門戶上一樣;但是實際上這些Portlet來自于遠程運行的Portlet容器,并且交互是通過 SOAP 消息交換來實現的。在面向服務的體系結構中利用 WSRP 將是一個強大的組合,從而使面向呈現的Portlet應用程序可以被發現并重用而不用任何額外的開發和部署活動。本信息門戶的數據集成構件主要是采用WSRP規則。
(3)Portal技術是基于應用層和表示層的集成方案。其核心門戶構件Portlet是一種以Java技術為基礎的Web組件,它運行于門戶服務器的Portlet容器(Portlet container)中。從用戶界面上來看,用戶訪問的門戶網頁上展現的內容可以劃分為各個Portlet區域。每個Portlet區域所展現的內容是相互獨立的,可以根據需要定制要顯示的具體內容,也可以關閉。現在提供商用Portal框架的公司很多,如IBM、微軟、Oracle等公司都開發Portal框架;也存在很多開源Portal框架,如Pluto、Life-ray、eXo、JetSpeed等,這些框架各有利弊,可以根據具體需求來選擇合適的框架。
4結束語
本文提出了基于Portal和Web服務的信息門戶的基本框架,描述了禽流感信息門戶的設計和初步實現。基于Portal的禽流感信息門戶通過Web服務、XML標準化、Portlet化實現了對已有應用和已有數據的集成。它使得科研工作者可以通過禽流感信息門戶單點登入這個協同工作系統,給科研工作帶來了更大的方便性和安全性,能夠更好地應對各種突發性疾病的預警要求。
參考文獻:
[1]RAY E T.XML入門[M].卓小濤,譯.北京:中國電力出版社,2001:8-15.
[2]CERAMI E.Web服務精髓[M].陳逸,譯.北京:中國電力出版社,2003:15-20.
[3]HEPPER S,FISCHER P,HESMER S.Portlets and apache portals[M].[S.l.]:Manning,2006:206-220.
[4]DRINKWATER G,SUFI S.The CCLRC data portal[C]//Proc of the 5th UK e-Science All Hands Meeting,2006.
[5]GANTZ S.XML transformation and metadata repositories enable information integration:Data Management White Paper[R].2006.
[6]FOX G,GANNON D.A summary of grid computing environments[J].Concurrency and Computation: Practice and Experience,2003,14(B-15):1035-1044.
[7]李安欣,顧巧云.Grid Portal的原理和實現[J].計算機工程,2004,30(Z1):228-229.
[8]張永軍,戴寶純.構建基于Portal的企業信息集成平臺[J].制造業自動化,2005,27(5):67-69.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”