摘要:為克服傳統企業門戶架構緊密耦合且無法滿足需求多變的缺陷,提出了面向服務的企業門戶架構(ServiceOriented Architecture for Enterprise Portal,SOA4EP),為企業門戶的設計與實現提供一個完善通用、協同高效和松耦合的軟件架構策略;給出了門戶組件整合和Web服務集成的實現模式,并探討了服務粒度和質量控制方法。最后通過應用實例說明該研究結果可為企業門戶構建過程的標準化提供重要的參考依據。
關鍵詞:面向服務架構; 企業門戶; 資源整合; Web服務
中圖法分類號:TP393.02文獻標識碼:A
文章編號:1001-3695(2007)01-0112-04
1引言
隨著市場變化和企業規模增長,需求多變、業務流程結構復雜和存在眾多信息孤島等問題使得大量企業信息/管理系統正處于難以擴展和升級的瓶頸期,搭建企業門戶(Enterprise Portal,EP)可以解決這一應用集成和資源整合問題。但基于傳統縱向模式開發部署的企業門戶,更多集中在基于表現層面整合第三方資源和應用,因而其功能擴展和交互能力受系統架構和實施周期的限制,不能很好地滿足需求變化和降低成本等要求。因此,實現真正意義上先進的、靈活的企業門戶系統將成為標志企業競爭力的關鍵因素。
近年來,面向服務架構(ServiceOriented Architecture,SOA)作為新一代的軟件架構,正以其協同高效、復用擴展、異步及松耦合等優點逐步取代傳統的軟件架構,成為分布式計算應用發展的趨勢和熱點。由于適于構建互聯網環境下大規模、分布式和動態性的多類復雜應用,SOA在商業環境中已得到不同程度的軟件實施和應用。但在企業門戶應用方面,還沒有一個實用完善的面向服務的架構設計,尚不能滿足企業門戶的更高要求。
本文是將面向服務架構的思想引入企業門戶架構的設計,提出了一個面向服務的企業門戶架構(ServiceOriented Architecture for Enterprise Portal,SOA4EP)。它通過一個清晰的基礎框架來幫助企業用戶快速構建、部署和整合一個完整的多層結構的企業門戶系統,同時也作為新的企業門戶架構的統一完善模式和信息化解決方案。
2基于Web服務實現的面向服務架構
SOA由Gartner Group于1996年提出,是一種用于構建分布式系統的架構方法和組件模型。它的前身是面向對象技術,將業務功能由過去的技術組件變為服務組件,通過服務間定義的結構和約束相互聯系起來,以一種統一的方法調用。SOA強調技術無關性,能進一步抽象和標準化可復用資源;服務的接口定義獨立于實現平臺,具有松耦合、可復用性和可擴展性等特點;應用范圍大于面向對象模式,可以實現跨業務層次和領域的應用。
基于Web服務實現的SOA的基本拓撲包括服務提供者、服務請求者和服務代理[1],通過服務的發布、查找和綁定三個基本操作相互作用,SOA基本模型及功能描述如圖1所示。能夠以程序化的、可訪問業務服務的方式公開業務功能,使其他業務功能通過已發布和可發現接口來調用。
圖1SOA模型及功能描述
Web服務能夠更加精確地表示業務模型、更好地支持業務流程,且適用于多種應用的統一功能表示、功能共享、功能整合集成和信息交換處理。近年來IBM,BEA,SAP等廠商都關注到它的價值,紛紛跟進,將面向服務概念不斷融入到其產品的實現過程中。因此本文的SOA構架采用Web服務技術實現,為建立適合Web環境的、高度自治分布和分散的應用提供計算模型[2],以最大程度體現面向服務的意義,符合企業門戶迅速集成、重用的構建要求。
由于Web服務標準仍有待完善且服務需求具有可變性,SOA實現的難點在于如何定義、動態生成、組裝和調試正確的可重用業務服務以及服務粒度和質量控制問題。
3面向服務的企業門戶架構SOA4EP
3.1傳統企業門戶架構分析
對于企業而言,其門戶系統一般可分為企業信息門戶和企業應用門戶兩類。企業信息門戶強調對結構化與非結構化數據的收集、訪問、管理和無縫集成,企業員工、合作伙伴和管理者都可以通過該平臺方便地獲取所需信息;企業應用門戶則是對企業業務流程的集成,把事務/業務流程中功能不同的應用模塊通過門戶技術集成在一起。第一代企業門戶只集成小的Web應用,僅是網站門戶的延伸。隨著遠程門戶組件Web服務(Web Services for Remote Portlet,WSRP)及Java門戶組件接口規范(Java Portlet Specification,JSR168)等標準的提出和不斷完善,第二代企業門戶發展為可交互開發并使用Portlet的模式[3],在企業門戶應用中迅速推廣。
企業門戶建設過程中,需要整合大量分散的、異構的資源以及采用不同技術開發的應用系統。目前,國內許多大型企業門戶多采用基于J2EE模式的IBM WebSphere,Sun ONE 和BEA WebLogic等成熟的門戶架構平臺產品開發實現,使用.NET模式及開源的J2EE門戶架構平臺的實例相對較少。由于產品的定位、支撐技術和實施模式不同,現有的許多傳統企業門戶架構并未真正實現業務需求和先進技術的完美結合,從應用狀況和研究現狀分析,尚存在以下不足:
(1)傳統的企業門戶一般是基于面向對象的體系結構和縱向開發模式構建而成的,對于企業門戶中頻繁的業務交互和重構的實際需求,多為設計和部署多次迭代進行實施,僅靠封裝對象的屬性和行為以實現信息屏蔽,其有狀態的通信方式和管理機制明顯帶來制約和限制,結構相對死板,難以獲得滿意的服務效果。
(2)現有的門戶架構研究主要集中在核心用戶級門戶服務、應用系統集成等方面,未具體描述門戶架構的抽象擴展和門戶級服務(如快速靈活的接入、展示和集成等),缺乏一個完整明確的面向服務的企業門戶架構及清晰的實現規范,尚不能完全滿足企業門戶應用一次設計靈活部署的實際需求。
綜上所述,面向服務的企業門戶的設計必須首先考慮先進性、開放性、安全性、可靠性、可擴展性和松耦合性等原則,以改善傳統企業門戶架構中的不足。
3.2SOA4EP的體系結構
基于以上分析和設計原則,本文提出一種松耦合的基于服務的門戶體系結構SOA4EP,該結構結合了企業門戶兩類應用模式,具有內部和外部兩種交互方式,為用戶提供個性化的服務和統一訪問入口。
SOA4EP的體系結構如圖2所示。采用基于Web服務的多層體系結構,由用戶層、訪問接入層、應用服務層、應用支撐層和資源層構成。核心思想是將主要的業務服務邏輯與資源數據相互獨立,以業務服務組件和門戶組件的方式部署和交互。用戶的各種應用請求(包括內部和外部應用請求)通過門戶發送到應用服務層,通過實現應用服務接口完成一般性服務的處理功能。如果客戶端請求需要后臺支撐服務的支持或訪問其他資源,應用服務層將調用應用支撐層和資源層的其他服務接口。
圖2SOA4EP體系結構
(1)用戶層。按照工作空間的安全訪問等級由高到低將用戶劃分為內部業務用戶(企業內部應用)、企業用戶(注冊合作伙伴共享應用)和公共用戶(匿名用戶瀏覽)三類。明確定義企業門戶的應用邊界,以保證安全訪問。
(2)訪問接入層。提供訪問請求的安全接入,使用戶無法直接訪問后臺的服務和資源。
(3)應用服務層。門戶系統的核心層,主要包括應用服務器和門戶服務器部署的各種服務(如內容管理組件、安全服務組件及具體的業務服務組件等),采用Portlet,EJB及Web服務方式提供企業應用集成和服務資源接入的接口。服務代理注冊已經發布的服務組件,對其進行分類并提供搜索服務;工作流引擎則作為業務流轉和邏輯集成的控制基礎。
(4)應用支撐層。主要包括后臺的一系列應用支撐服務(如搜索引擎組件、用戶管理、決策支持和協作組件等),通過應用視圖、管理視圖和資源視圖等方式表現,同樣可以基于Web服務和門戶服務的接口集成部署。
(5)資源層。主要包括目錄信息、資源信息、其他結構化及非結構化數據,是企業門戶需要管理和整合的數據資源。
其中,應用服務層和應用支撐層中的各類服務組件可由業務服務邏輯模型和門戶組件整合設計構建而成,保證系統的靈活性和可復用性。
與傳統的企業門戶架構比較, SOA4EP的服務通信是無狀態的,突破了傳統有狀態信息模式的邊界局限。所有的用戶可使用統一的一體化方式應用數據和信息,Web服務則以完整的方式向業務應用提供數據和功能,只要請求能被分發到不同服務處理,該服務即獨立于業務流程,且可以被多個服務共享調用。因此,可以滿足企業跨業務處理的自動化、數據交換的通用可靠、訪問的公眾化及高效集成等需求,具備靈活高效、可伸縮、松耦合和低成本等優點。
4SOA4EP的實現技術
遵循SOA自底向上劃分組件層和服務層的原則[4],構建SOA4EP系統的基本過程是:①進行系統業務功能邏輯的建模;②將其轉換為面向門戶組件的整合實現;③進行Web服務裝配,完成服務的復用和消息傳遞。
下面結合企業門戶的特點,討論實現SOA4EP的關鍵技術。
4.1業務服務邏輯建模
沿用SOA的邏輯建模思路,SOA4EP的業務服務邏輯模型應是一組松散耦合的、基于消息可交互的服務模型,如圖3所示。基于這種高于對象層的分布式Web服務集成模式,業務邏輯功能被構建為單獨的Web服務及其他服務組件,如資源整合服務、認證服務、核心業務服務及其他可復用服務等。本文架構中,服務用于定義和支持業務流程,可以提供眾多功能,包括數據訪問、基礎架構和業務功能。同時,定制服務的關鍵是理解業務流程。流程定義了與其他業務進行交互操作的邏輯和方法,可以通過工作流引擎實現這一定制和控制過程。此外,模型還包括構建服務所需的開發建模工具、管理控制平臺、適配器以及底層支撐的開發包。
圖3業務服務邏輯模型
建模過程中,服務需要管理所有的資源,即將服務提供者作為管理器創建服務實例,同時需要考慮業務服務是同步的、異步的還是兩者兼顧。構建一個Web服務并不是簡單呈現API或靜態組件[5,6],Web服務實現的功能可以是響應用戶一個簡單的請求,也可以是完成復雜的業務流程,通信是無狀態的。利用WSDL文件可以動態描述Web服務[7],這需要結合企業門戶的業務服務的邏輯和對外發布的應用接口具體定義。服務描述重點包括服務、調用操作的消息、構造消息的細節以及向何處發送處理細節的消息,使得API發生改變時,系統其他組件在運行時可以自動調整,要求表現與邏輯分離以實現這一動態任務。
EJB提供了對服務的安全訪問和并發處理事務的支持,可以基于EJB構建SOA中的一些服務,通過把Web服務模型化為EJB端點,使服務具有可伸縮性,并且可以增強可靠性。
4.2門戶組件整合設計
與業務服務邏輯模型一樣,門戶組件整合設計屬于應用層面的基于服務組件的設計,也是該模型的實現補充。
企業門戶需要集成各種數據資源、應用和管理服務,Portlet提供了將接口、邏輯和數據分開的最佳方法,以統一的方式將這些資源和服務展現出來。Portlet容器為其提供了消息和事件的協作模式,Portlet之間通過發送消息和響應事件達到不同應用間協同工作的目的,能提高服務組件的復用比例,加快企業門戶的構建過程,降低復雜度和風險性。
在設計過程中,既要著眼于實現服務重用,又要確保網絡資源和系統性能的高效利用,同時最大限度減少服務與使用這些服務的應用程序之間的依賴性。因此,除了集成常規Portlet(一般指門戶平臺預配的通用Portlet,不同的供應商定義規范不盡相同),SOA4EP在個性化體現方面還設計并部署可滿足企業應用和用戶實際需求的自定義Portlet,以提供門戶級服務。例如,基于身份認證和資源訪問控制機制,采用信息檢索、事務融合和業務關聯等技術實現服務的動態生成和數據重組,通過Portlet之間的消息機制和數據傳遞可以實現服務交互與資源整合。圖4給出了SOA4EP門戶組件整合設計的基本框架。其中考慮到了數據交換和接口定義的通用性,適用于明確定義門戶系統的服務交互以及訪問控制接口,更系統地將具體業務應用與門戶服務相結合。
圖4門戶組件整合設計
4.3Web服務集成
SOA4EP的開發和擴展都采取構建組件到服務集成的自底向上的方法[8]。在流程和邏輯實現過程中進行服務裝配操作,即將服務組件注冊到UDDI中心,通過松耦合的基于消息的方法連接到其他服務器,完成服務的復用。這種集成模式屬于更高級別的重用和基于過程的服務組合,能夠為企業帶來更快的價值交付和靈活性。
服務裝配好后,描述服務的界面就能夠被發現和調用,且可延伸到Web服務的聚合、跨Web服務的事務及工作流等。
此外,也可以參考基于多Agent[9]的企業門戶架構,將服務組件以代理的角色接入系統。
4.4服務粒度和質量控制
SOA4EP的服務粒度可以從兩方面進行定義:服務是如何實現的;服務使用和返回多少數據或多少消息。這里沒有對Web服務的粒度進行限制,細粒度服務執行最小的業務功能,發送和接收少量的數據;粗粒度服務執行較大的業務功能,并交換更多的數據。但在SOA4EP的實現過程中,需要找到服務粒度的一個平衡點,以更好地確定系統的靈活性和開發效率,因此服務粒度是一項重要的設計要點[6]。對于企業外部特定服務的完整處理和消耗(如本文架構中的資源整合服務、郵件服務等),使用粗粒度的接口能夠保證服務請求者將以一致的方式使用服務,但不提供粒度級的安全和訪問控制;而細粒度的接口則用于企業內部(如本文架構中的企業核心業務組件、系統管理等服務),它為請求者應用程序提供了更多的靈活性,但也意味著交互的模式隨不同的服務請求者而不同,給服務提供者帶來了困難。
為避免SOA4EP跨企業邊界和領域等安全性問題,應用基于Web服務的SOA時需要考慮使用Internet交互時的安全性以及如何鏈接其他資源的安全域,包括所部署服務的度量、可靠性以及響應時間的范圍等。采用由內到外的原則進行規劃和階段部署,即首先完成定義企業服務組件、內部流程及數據共享,然后組織安全和管理工作,最后構建企業間的服務接口。當調用來自其他應用系統的服務時,采用面向服務的協作方式管理服務交互。
5SOA4EP的應用
SOA4EP的多層結構可方便不同規模的企業應用集成和資源整合管理,適于多數企業門戶的應用,也可作為面向
應用服務模式的企業門戶構建過程的標準化參考依據。
SOA4EP的構建要依托具體的組件平臺及其服務。本文采用Sun JES 2005Q1平臺及其門戶體系架構[10],基于J2EE模式開發并實現了虛擬軟件專業孵化器廣東軟件科學園的門戶系統以及各應用系統和技術資源的整合,為園區入駐企業提供了規范便捷的綜合配套服務,同時為企業內部提供了一個便利高效的辦公自動化協同管理平臺。該門戶完全采用基于SOA4EP的體系結構設計,具有以下主要特點:
(1)建立了業務服務邏輯模型,針對不同資源和應用系統的規模和開發模式提供門戶的專業化整合方式和策略。
(2)提供跨域的身份認證Web服務進行單點登錄和基于角色的資源訪問控制管理。
(3)在可復用服務方面分別以Web服務組件和門戶組件形式實現了內容管理(信息發布和檢索)、信息匯聚(依照可配置規則檢索其他Web內容并定期更新)、業務關聯(收集各項業務功能及新近事務和數據流轉信息,根據角色過濾作為用戶處理事務的快捷入口)以及資源列表(通過鏈接列表的方式整合其他Web應用系統或支撐資源,統一身份認證進行訪問,并可配置用戶的訪問權限)等滿足企業應用的服務組件,實現信息的統一展示、個性化和分布式訪問服務。
(4)考慮了業務流程和需求擴展變化的特點,實現了自定義工作流引擎,較好地輔助了企業業務處理的自動化流轉。
實踐證明,SOA4EP可以滿足企業門戶應用的多變需求和整合要求,具有統一完整、靈活高效、易擴展、松耦合和低成本的優點以及良好的實用推廣價值。
6結束語
面向服務的企業門戶體系架構是對傳統企業門戶體系架構的完善補充,它實現了企業門戶業務邏輯應用的靈活集成以及真正意義上的Web分布式計算模式,完成了服務組件的實時整合,克服了原有架構緊耦合的限制,屏蔽了技術的復雜性。本文提出了SOA4EP的體系結構,討論了相關實現技術,結合在虛擬軟件專業孵化器園區門戶系統中的實際應用更進一步說明了它的可行性及通用性。
SOA的未來發展方向將要結合面向事件的架構模式,跨越技術層面要在業務層面解決異步驅動問題,即通過Agent觸發和處理事務動作,因此SOA4EP在完善優化中需要考慮這方面的因素,以便為企業門戶提供更大的靈活性。
參考文獻:
[1]Bloomberg J. The Role of the ServiceOriented Architecture[R]. A Rational Software White Paper, 2003.
[2]Sivashanmugam K, Verma K, Sheth A, et al. Adding Semantics to Web Services Standards[C]. Lasvegas: Proceedings of the 1st International Conference on Web Serveices(ICWS), 2003.395401.
[3]Bellas F. Standards for SecondGeneration Portals[J]. IEEE Internet Computing,20-04,8(2):5460.
[4]Brown A, Johnston S, KellyY K. Using ServiceOriented Architecture and Componentbased Development to Build Web Service Application[R]. A Rational Software White Paper from IBM 04/03, 2002.1115.
[5]Scott D.面向服務的架構[EB/OL].http://dev2dev.bea.com.cn/technologies/SOA/index.jsp,20-04.
[6]Colin M. ServiceOriented Architecture Expands the Vision of Web Services[EB/OL]. http://www128.ibm.com/developerworks/cn/webservices/wssoaintro.html#0,20-040421.
[7]楊立,左春,王裕國.面向服務的知識發現體系結構研究與實現[J].計算機學報,2005,28(4):445456.
[8]HazraT K. Building Enterprise Portals: Principles to Practice[C]. Orlando: Proceedings of ICSE,2002.693702.
[9]鐘勇,張海盛.基于多Agent的中小企業信息門戶研究[J].計算機工程,20-04,30(10):6081.
[10]Sun Corp. Sun Java Enterprise System 2005Q1[EB/OL]. http://docs.sun.com/app/docs/prod/entsys.05q1#hic, 20-04.
作者簡介:
吳晶(1979),女,北京人,博士研究生,主要研究方向為門戶整合及個性化服務技術;
熊璋(1956),男,湖北武漢人,教授,博導,主要研究方向為多媒體技術和分布式信息處理;
朱成軍(1978),男,貴州遵義人,博士研究生,主要研究方向為多媒體Web服務技術;
劉永利(1980),男,河南焦作人,博士研究生,主要研究方向為門戶體系結構及Web內容挖掘技術。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文