摘要:討論了企業門戶Web資源整合中的關鍵問題,分析并給出了相關整合技術方案。提出了一種特殊的遠程門戶組件Web服務(WSRP)實現機制WA2WP(Web Application to WSRP Portlet),可將普通Web網站映射封裝為虛擬門戶組件發布;給出了改進的跨域單點登錄機制SSO4EPI(Single Sign On for Enterprise Portal Integration),可提供開放的接口形式和對跨安全域異構性的良好支持。最后結合應用實例說明以上方法的可行性和推廣價值。
關鍵詞:企業門戶; 資源整合; 門戶組件; 遠程門戶組件Web服務; 單點登錄
中圖法分類號:TP393.09文獻標識碼:A
文章編號:1001-3695(2006)09-0224-04
企業門戶(EnterprisePortal,EP)是企業信息和應用展現的聚集點。作為門戶的一個重要分支,它繼承了一般門戶個性化、單點登錄和內容聚合三個特點[1]。
構建企業門戶,需要整合企業內部及合作企業之間大量分散的、異構的應用和資源,它們分別屬于不同的企業或部門,運行在不同的系統平臺之上。使用不同的開發技術,有著各自獨立的用戶信息庫、身份認證與授權機制,因此企業門戶整合是一項復雜而艱巨的任務。當前,企業門戶整合在理論方面主要基于EAI[2]技術,強調后臺數據和過程的復雜集成;實現方面則通常依賴于特定的產品和平臺,缺乏專門針對門戶整合的簡單快速、通用有效的方法,亟待深入研究和解決。
1Web資源門戶整合概述
1.1整合范圍與原則
企業門戶所要整合的信息資源中,以Web資源需求最多,應用場景也最為廣泛;另一方面,Portal是基于Web的應用程序,處于信息系統的表現層面[1],在整合Web資源方面有著天然的優勢。因此本文的Web資源整合即指基于表現層面的,以Web應用/資源(應用或應用系統)為主要對象的整合,旨在輔助企業以較低的生產成本,進行門戶整合系統的快速構建。為了達到該目標,同時考慮到應用場景的廣泛和多樣,制定如下整合原則:
(1)簡單性。整合時,盡量減少對應用系統進行修改或重構等二次開發工作,盡量不破壞應用系統原有的訪問方式和特性,保持結構關系和整合工作的簡單性。
(2)通用性。整合方法基于通用的概念、標準和規范,不依賴于特定的產品或平臺,如門戶服務器可以是SUNONEPortalServer,也可以是BEAWebLogicPortal等。
(3)安全性。整合后,系統應具有一致的身份認證和策略控制機制,應用系統不會因增加新的用戶訪問方式而降低其原有的安全性。
1.2Web資源門戶整合結構
Web資源門戶整合基本結構如圖1所示。門戶處于整個系統的前端位置,即面向終端用戶的表現層面。被整合的Web資源可以是WebServices、普通Web網站以及其他Portal等各種基于Web的應用與資源。
門戶將這些系統綜合在一起,以統一的界面和交互方式提供給用戶。同時,為了解決用戶在通過門戶統一入口訪問各系統時所遇到的重復認證問題,門戶還需要對用戶數據進行統一管理和協調,建立必要的映射與轉換機制,從而達到整合系統,統一身份認證的目的。可見,在門戶整合系統中,統一界面呈現和統一身份認證是兩個關鍵問題。以下分別討論這兩個方面的相關技術和實現模式。
2統一界面呈現技術
統一界面呈現即將各應用系統的內容聚合在一起,通過統一的用戶界面和交互方式,提供給用戶訪問。在Portal中,這種內容聚合能力主要是通過門戶組件(Portlet)來體現的。Portlet是一種Web組件,由Portlet容器進行管理。它處理請求并動態返回頁面,可以作為Portal的可插拔的用戶界面組件[1]。因此,統一界面呈現技術的核心內容,就是研究如何將各應用系統轉換成門戶中的各種門戶組件。
2.1相關技術比較
基于待整合應用系統的需求和當前技術特點,結合本教研室的實際整合經驗,本文總結給出幾種被整合應用→Portlet轉換的相關技術比較,如表1所示。每種方式均有著各自的適用場合和特殊優勢,同時也存在著局限和不足。
其中,WSRP(WebServicesforRemotePortlets,遠程門戶組件Web服務)定義了一個交互式面向表示的WebServices協議以及相應的接口集[3,4]。支持WSRP的Portal既可以作為WSRP服務提供者(WSRPProducer)將本地的Portlet以WSRP的方式發布出去,也可以作為WSRP服務消費者(WSRPConsumer)將遠程服務提供者以WSRP方式發布的Portlet集成進來。這樣,如果待整合應用本身就是其他Portal中的Portlet組件,或者以其他方式存在符合WSRP規范的服務提供者,那么當前Portal服務器就可以通過相對簡單的配置,直接集成該應用而無需任何額外開發。
可見,WSRP方式具有標準化、簡單、能與門戶無縫集成的優點。然而企業現存的Web應用,通常是以普通Web網站方式存在,自身并不提供WSRP支持。因此,本文設計了一種通用轉換機制WA2WP(WebApplicationtoWSRPPortlet),它通過實現一個特殊的WSRP服務提供者,將普通Web網站映射并封裝為虛擬Portlet,以符合WSRP接口規范的方式發布出去,從而實現與Portal的無縫集成,可以作為統一界面呈現的參考模式。
2.2WA2WP機制
WA2WP的內部結構及外部交互關系如圖2所示。它是一個WSRP服務提供者,充當門戶訪問Web應用的中介或代理,其中實線表示各實體之間的通信關系,虛線表示Web應用與門戶組件之間的映射關系。
WA2WP的基本工作流程為:接收門戶請求,分析確定所要訪問的目標資源,訪問并獲得返回結果;對返回的超文本標記信息進行處理;最后將處理結果返回給門戶。這一流程由以下六個主要功能模塊協作完成。
(1)Portlet配置管理。維護WA2WP提供的所有Portlet的元數據。每個Portlet對應一個Web應用,元數據中指定Portlet的名稱、Portlet的唯一標志、訪問目標Web應用的起始URL等。
(2)Portlet會話管理。用戶以一般方式訪問普通Web網站時,Web服務器端通常采取向瀏覽器端寫Cookie的方法,來記錄用戶相關信息。按照WSRP規范,這些Cookie信息無法直接返回給瀏覽器用戶,WA2WP將其作為用戶的會話信息,緩存在本地,并向用戶返回一個簡短的會話句柄。
(3)WSRP接口封裝。提供給Portal或者其他聚合程序訪問的符合WSRP規范的服務接口。
(4)請求命令分析。分析接收到的用戶請求,定位目標Portlet,進而定位目標URL,獲取和準備訪問目標資源所需的請求參數及會話數據。
(5)Web頁面獲取。根據目標URL、請求參數和會話數據,訪問Web應用,獲得返回的頁面標記內容及Cookie數據。
(6)響應標記處理。對獲取的頁面標記內容進行處理,使其成為合法有效的Portlet標記片斷。主要采取以下處理步驟:①標記內容結構化。將HTML格式的標記內容轉換成結構化程度更高的XML格式,以便后續處理。②標記內容提取。提取文檔主體內容,去除超出作用域的無用腳本。③URL重寫。遍歷和重寫文檔中出現的所有URL,以使用戶激活這些鏈接時,瀏覽器能將請求沿期望的路徑發送,Portal和WA2WP也能正確地識別并響應這些請求。
2.3WA2WP特點
WSRP作為門戶領域內的一個重要標準,已在大多數門戶產品中得到了實現和支持,也有高校和研究機構對其進行了研究和實現[5]。然而,它們大都只涉及門戶之間組件的提供與消費,其中服務提供者僅為Portal,提供的內容為該Portal所持有的Portlet。
WA2WP作為一種特殊的WSRP服務提供者實現,具有區別于其他實現的兩個主要特點:①不依賴于Portal,邏輯上獨立;②提供的內容不是存在于某一Portal中的實際Portlet,而是用戶配置的由普通Web網站映射和封裝而來的虛擬Portlet。這在當前企業待整合Web應用多為普通Web網站而非Portal的環境下,具有廣泛的應用價值。它使得Portal作為WSRP服務消費者,不僅可以直接集成其他Portal提供的Portlet,也可以直接集成經由WA2WP封裝成Portlet的普通Web網站,從而大大拓寬了前述WSRP方式的適用范圍。
3統一身份認證
統一身份認證即單點登錄(SingleSignOn,SSO),它是指當用戶訪問多個需要進行認證的應用或資源時,只需要在初始進行一次登錄和身份認證,就可以訪問其具有訪問權限的相關系統,而不需要再次登錄,后續系統會自動捕獲用戶信息,從而識別出用戶身份。跨域單點登錄(CrossDomainSSO,CDSSO)是指當這些應用和資源跨多個域分布時,用戶也能達到單點登錄的訪問效果。域在不同的語境下,可能代表不同的含義,通常有以下兩種:①安全域,具有單獨的、一致的安全策略管理范圍或者區域;②DNS域,如domainA.com和domainB.com即屬于兩個不同的DNS域。在門戶整合系統中,門戶和各被整合應用系統分布在企業內部或者合作企業之間,分別有著各自獨立的用戶信息庫和身份認證與授權機制,因此它們既跨DNS域,也分別屬于多個獨立的安全域。
作為門戶的重要特性之一,當前幾乎所有的Portal產品均附帶自己的單點登錄機制。然而,它們大多在以下兩方面存在不足:①采用各自獨立私有的接口形式;②對跨安全域環境下用戶信息結構和認證狀態表征形式的異構性支持不夠。以上問題導致將現存應用納入統一認證范圍時,需要進行重大修改或重構,與前述的整合簡單性原則相悖。因此,參考單點登錄典型模型LibertyAllianceProject[6,7],設計了一種改進的,適用于門戶整合環境的跨域單點登錄認證機制SSO4EPI(SSOforEnterprisePortalIntegration),它在門戶自身的用戶信息存儲和身份認證機制基礎上,采用通用開放的接口形式做了進一步封裝,同時充分考慮了跨安全域環境下的異構性。
3.1SSO4EPI結構
SSO4EPI由認證服務器和植入各應用系統的認證代理兩部分組成。其結構如圖3所示。
(1)認證服務器。為其他各應用服務系統提供用戶登錄認證、用戶全局注銷、用戶認證確認及用戶資料同步等功能。它對內采用門戶自身的用戶信息存儲和身份認證機制,對外提供兩個接口:
①WebCGI接口。提供給認證代理以HTTP重定向的方式調用。圖3中認證代理與WebCGI接口之間的虛線連接表明該通信信道不是直接建立的,而是采用HTTP重定向技術經由用戶瀏覽器間接建立的。它主要提供以下功能:用戶登錄認證,在當前尚未認證的前提下,要求用戶認證,在認證通過后建立門戶本身的認證會話,產生認證令牌并傳遞給用戶訪問到的其他應用服務系統,協助它們建立各自的本地認證會話;用戶全局注銷,調用各應用服務系統的注銷頁面,清除各應用服務系統的本地認證會話以及門戶本身的認證會話。
②WebServices接口。提供給認證代理以Web服務的方式調用。它主要提供以下功能:用戶認證確認,根據給出的認證令牌,校驗其合法性,從而檢查用戶是否已經通過認證;獲取用戶詳細資料,根據給出的認證令牌,返回用戶的詳細資料。
(2)認證代理。以Web服務器插件方式植入各應用服務系統,負責攔截用戶訪問請求,與認證服務器交互,檢查用戶的認證狀態,建立或撤銷本地的認證會話。
3.2SSO4EPI特點
通過結合實際應用時靈活的實施策略,SSO4EPI能夠較好地解決前述具體門戶產品單點登錄機制所存在的不足,分析如下:
(1)實現了不同安全域之間用戶數據的映射和同步,從而解決了跨域異構性支持不夠的問題。
①對門戶系統新用戶和各應用系統已有用戶采用不同的管理策略。各應用系統的遺留用戶仍然可以駐留在應用系統本地,通過原有的認證和授權機制來訪問本應用系統。各應用系統隱藏/屏蔽注冊環節,新用戶的注冊統一通過門戶入口進行,并且通過統一單點登錄機制來訪問整個門戶整合系統。
②各應用系統根據自身結構復雜度和具體應用需要,可以選擇是否將通過統一單點登錄機制訪問本系統門戶的新用戶復制到本地用戶庫。
③門戶系統在某用戶信息更新以后,及時通知各應用系統,進行用戶信息的同步。
④建立與各應用系統的用戶角色映射機制,即將門戶的用戶角色自動劃分為各應用系統對應的用戶類別,從而實施有效的權限控制。
(2)實現了認證和授權結果在安全域間標準化的表示、共享和傳遞,從而解決了接口形式私有化的問題。
①采用HTTP重定向技術,以用戶瀏覽器為中介,在門戶和各應用系統之間建立數據通道,傳遞用戶認證狀態。
②通過Cookie與URL參數相結合的辦法,將用戶認證憑據跨DNS域從門戶傳遞到各應用系統。
③門戶認證中心提供WebServices接口,定義了一個統一的基于XML的數據交換格式,根據用戶認證憑據,實現了認證結果和用戶信息在各安全域間的標準化表示和傳遞。
3.3SSO4EPI流程
通過對典型用例流程的描述,進一步闡明了系統的各組成部件如何協作完成統一認證的功能。為了描述方便,特用簡稱ASP代替各應用服務系統,ISP代替認證服務器。
(1)用戶登錄認證,流程如圖4所示。初始時用戶處于未認證狀態。
(2)用戶全局注銷,流程如圖5所示。初始時用戶處于已認證狀態。
4應用實例
本文所提出的門戶系統資源整合方案已在虛擬軟件專業孵化器/廣東軟件科學園門戶的技術支撐平臺中得到了實現,并取得了良好的應用效果。該門戶系統采用SUNONEPortalServer及IdentityServer作為平臺依托,并根據各類被整合資源的特點,綜合采用了多種界面呈現方式。例如整合了數據中心基礎資源(WA2WP方式)、郵件系統(WA2WP方式)、病毒網關(WA2WP方式)、企業級管理軟件(專用Portlet方式)等園區內部資源,以及“863”孵化器公共技術支撐體系綜合服務平臺(WA2WP方式)、全國各“863”軟件園孵化器新聞動態(WebClipping方式)等園區外部資源。身份認證方面統一采用SSO4EPI機制,在保持結構簡單的同時,具有良好的適用性和可擴展性。
5小結
總結了企業門戶Web資源整合的相關方法,重點討論了WA2WP及SSO4EPI兩種參考實現模式,可以輔助企業以較低的生產成本,進行門戶整合系統的快速構建。
然而,要構建一個真正完善的企業門戶系統,需要進一步深入挖掘和利用存儲在企業內外的各種信息。在完成不同業務功能的應用系統之間建立起可供數據交流和應用溝通的中樞系統,實現數據、信息和過程的全面集成。這些需要進一步深入研究和總結,也是下一階段的研究重點。
參考文獻:
[1]Java Community Process. JSR168: Java Portlet Specification, version 1.0\\[EB/OL\\]. http://www.jcp.org/aboutJava/communityprocess/final/jsr168/, 2003.
[2]謝小軒, 張浩, 等. 企業應用集成綜述\\[J\\]. 計算機工程與應用, 2002, 38(22): 15.
[3]OASIS. WSRP: Web Services for Remote Portlets Specification, version 1.0\\[EB/OL\\]. http://www.oasisopen.org/committees/download.php/3343/oasis200304wsrpspecification1.0.pdf, 2003.
[4]OASIS. Web Services for Remote Portlets 1.0 Primer\\[ EB/OL \\]. http://www.oasisopen.org/committees/download.php/10539/wsrpprimer1.0.html, 2004.
[5]趙勇, 馬殿富. 遠程門戶組件的Web服務的研究與實現\\[J\\]. 計算機應用研究, 2004,21(11):247250.
[6]Liberty Alliance Project. Liberty Architecture Overview, version 1.1\\[EB/OL\\]. http://www.projectliberty.org/specs/libertyarchitectureoverviewv1.1.pdf, 2003.
[7]Liberty Alliance Project. Liberty Alliance WSFederation: A Comparative Overview\\[EB/OL\\]. http://www.projectliberty.org/resources/whitepapers/wsfedlibertyoverview101303.pdf, 2003.
作者簡介:
晏玉蘭(1979),女,湖南雙峰人,碩士研究生,主要研究方向為門戶及Web服務技術;
熊璋(1956),男,湖北武漢人,教授,博導,主要研究方向為多媒體技術和分布式信息處理;
吳晶(1979),女,北京人,博士研究生,主要研究方向為門戶架構及組件技術;
王萍(1967),女,湖北荊州人,工程師,碩士,主要研究方向為計算機應用、軟件工程。