摘 要: 針對傳統的企業應用集成(EAI)缺乏靈活性和適應性、集成難度較大等問題,討論了相關的支撐技術,充分利用SOA具有的松耦合、跨平臺、可重用的優點,提出一種基于SOA的新型企業應用集成框架,實現了用戶訪問與底層數據、企業應用相分離,將業務流程改造為標準的松耦合企業服務。該框架的成功應用大大提高了企業應用集成系統開發的效率和經濟效益。
關鍵詞: 面向服務架構; 企業應用集成; Web服務; 松耦合
20世紀80年代至90年代,各大企業不斷開發自己的應用系統,隨著業務的增長和信息化的發展,企業信息門戶等,要求企業的應用系統是一個高度集成和開放的系統。然而由于大部分企業擁有異構系統,系統間信息無法共享、流程無法互通、軟件無法復用等難題,形成一個個的“信息孤島”,成為企業發展的瓶頸。在此種情況下,傳統的企業應用集成(EAI)解決方案不能方便、靈活、低代價地實現異構系統的集成,難于快速適應企業現代業務變化的需求。
近年出現了SOA、SCA、Web Services、ESB等新技術[1,3],將EAI與SOA結合是解決傳統EAI缺陷的有效方法。SOA通過良好的接口定義,實現了接口與服務實現的分離,服務的重用性和位置的透明性使服務的實現能夠獨立于硬件平臺、操作系統和編程語言。本文結合基于SOA的EAI最新研究成果,提出一種基于SOA的企業應用集成框架,從而靈活地實現異構系統的松耦合集成,大幅度改善應用系統的服務水平,達到提高企業經濟效益的最終目的。
1 企業應用集成(EAI)
1.1 EAI的概念
企業應用集成是一種全新的企業集成解決方案,能融合企業的遺留應用,讓企業利用現有的信息資源快速提供新的產品和服務,增進與客戶、供應商和其他相關利益集團的聯系。企業應用集成能夠將企業的業務流程、應用軟件、硬件和各種標準聯合起來,在兩個或更多的企業應用之間實現無縫集成,使它們像一個整體或一個系統一樣處理企業業務過程[1]。EAI通過建立底層結構來聯系橫貫整個企業的異構系統、應用、數據源等,完成在企業內部的ERP、SCM、CRM、數據倉庫、數據庫,以及其他重要的內部系統之間無縫共享和交換數據的需要。
1.2 EAI的三個集成層面
企業應用軟件的集成可以在表示層、數據層和功能層3個要點上實現。
表示層、數據層集成都屬于緊耦合的應用系統集成方式,系統的靈活性和擴展性較弱,為了實現各應用系統之間的松耦合,保證原有系統的數據安全性和邏輯安全性,需要一種面向功能層(服務)的企業系統集成方式。因此,提出了基于面向服務架構(SOA)的新型企業應用集成模型。
1.3 傳統EAI集成方案特點
傳統的企業應用集成主要采用點對點的集成、基于中間件的集成、CORBA、COM/DCOM、J2EE等分布式計算技術,它們都是針對特定的軟硬件結構、網絡環境或者特定的應用領域而研究開發的,耦合性高、互操作性差,面對軟硬件結構的變化,系統的自適應能力較差。為此利用SOA具有松耦合、跨平臺、可重用的優點,提出基于SOA的應用集成框架,可以很好地解決這些問題,尤其是針對多個運行在不同平臺的應用程序間的相互集成[2]。
2 面向服務架構(SOA)概述
2.1 SOA概念
傳統的企業應用集成(EAI)解決方案不能方便、靈活、低代價地實現異構系統的集成,難于快速適應企業現代業務變化的需求。在此背景下提出面向服務架構SOA(Service-Oriented Architecture),其基本思想是以服務為核心,把各種應用分解為軟件服務模塊,這些服務模塊被統一整合到一起,利用服務解決異構問題。
2.2 SOA交互模型
SOA描述了三類角色,它們分別是服務提供者、服務請求者和服務代理者。服務提供方負責開發和部署Web服務,并同時定義服務,通過服務代理方發布服務。服務代理方(通常稱為服務注冊商)負責服務的注冊和尋找Web服務。服務代理方列出有助于服務請求方查找和訂閱所需服務的各種服務類型、描述和位置。服務請求方負責服務的調用。服務請求方通過服務代理方的幫助找到Web服務,調用所需服務,并通過服務提供方執行這些服務。它們之間的交互關系如圖1所示。
基于SOA交互模型的企業應用集成的優點有[4]:
(1)通用性強:Web服務是由一系列標準組成的,集成應用系統的方法具有很好的通用性和兼容性。
(2)重用性高:封裝為服務后的各遺留系統之間相互獨立,重用性較高。
(3)可擴展性:接口用統一標準開發,容易對新開發服務進行集成。升級單個服務或服務消費者無需寫整個應用。
(4)服務注冊和調用靈活:通過采用數據表、私有UDDI、公共UDDI的方式為企業內外用戶提供不同的調用方式,大大提高了服務的注冊和調用的效率。
3 基于SOA的企業應用集成框架
SOA是一種架構模型,實現它的技術很多,如分布式對象技術:CORBA、COM/DCOM、J2EE;面向消息的中間件技術;Web Services技術等。但由于Web Services是面向服務的分布式計算框架,具有松散耦合、平臺無關、易于集成等優點,是目前實現SOA的最佳選擇[5]。
3.1 Web Services技術分析
Web Services是自包含、模塊化的應用程序,它可以在網絡(通常為Web)中被描述、發布、查找以及調用。以XML為主的、開放的Web規范技術是Web Services的基石,因此它具有比任何現有對象技術更好的開放性,實現它的關鍵技術有三項:
(1)XML/SOAP。可擴展的標記語言XML是Web Services平臺中表示數據的基本格式。簡單對象訪問協議SOAP提供了標準的RPC方法來調用Web Services。SOAP是基于XML的,XML是SOAP的數據編碼方式。
(2)WSDL。Web Services描述語言WSDL是一種基于XML的語言,用于描述Web Services及其函數、參數和返回值。因為是基于XML的,所以WSDL文檔最大的優點是人可以閱讀,機器也可以閱讀的。一些開發工具甚至可以根據Web Services生成WSDL文檔,又能導入WSDL文檔,生成調用相應Web Services的代碼。
(3)UDDI。統一描述、發現與集成UDDI規范定義了這樣的注冊中心,Web Services的提供者可以在其中發布相應的WSDL文檔,Web Services的消費者則可以在其中找到自己需要的服務,并通過WSDL文檔獲得如何調用相應Web Services的方法。
Web Services技術有一套開放的規范標準,包括XML、SOAP、WSDL、UDDI、WSFL、HTTP等。Web Services協議棧是以XML為基礎,SOAP、WSDL與UDDI為核心的標準協議集。如圖2所示。
Web Services采用了分層的思想,各層分別實現不同的功能,上面幾層建立在下面幾層提供的功能之上。左面的文本表示協議棧的對應層所使用的標準技術,右面垂直的部分表示在協議棧中每一層必須滿足的需求。
3.2 基于SOA的EAI解決方案模型
SOA是可重用網絡服務的一個集合,通過定義良好的且平臺獨立的接口進行通信。這些服務提供了對數據、IT基礎架構的訪問,并允許對服務供應、消費以及生命周期進行管理?;赟OA的解決方案需要來自基于SOA的共享的基礎架構服務[6]。圖3給出了一個SOA解決方案模型的高級視圖,基礎架構服務從邏輯上被分組為4個服務層次,每個服務層可由一些不同粒度的公共服務組成。
(1)共享的應用程序服務層。是指需要集成的企業應用系統和數據倉庫。通過相應的數據庫接口適配器和應用程序接口適配器進行數據的整合與應用系統的互連。
(2)消息和代理服務層。是基礎架構中的核心整合服務層,包括消息傳輸、動態路由、目錄服務及數據轉換等服務。
(3)共享的業務服務層。側重對業務流程的支持,通過對生產或運行中關鍵服務進行管理,使得對企業復雜多變的業務流程能方便、靈活地定制和實施。
(4)用戶交互服務層。提供統一的用戶交互服務,包括單點登錄、權限控制及個性化服務等。
3.3 基于SOA的EAI框架的總體設計
基于SOA的EAI框架如圖4所示。整個框架結構從上到下,從左到右分為四層,依次為客戶訪問層、企業應用集成層、消息傳輸層、服務提供與封裝層。還包括SOAP路由器、企業防火墻、公共以及私有UDDI注冊中心、企業服務總線等。各層主要功能如下:
(1)客戶訪問層:Web客戶通過企業防火墻和外部交互網關后訪問應用層的典型應用,充當服務請求者的角色。
(2)企業應用集成層:它是集成框架的核心部件,自身包含了多個組件,如集成服務器、用戶身份認證、消息服務、Web服務安全控制等。
(3)消息傳輸層:作為消息總線連通了企業應用集成層和服務提供與封裝層的消息交互,作為企業應用集成層為消息格式轉換功能提供了元數據映射模式。
(4)服務提供與封裝層:提供相應的數據接口和企業應用接口服務,集成各個應用系統和數據存儲庫。對企業內部各種信息系統進行服務封裝,為應用集成系統提供各類Web服務接口。
該集成框架基于SOA體系架構,采用Web Services技術,企業的各種遺留信息系統包括新開發的Web服務應用,通過Web Services封裝器將各自的功能進行封裝。Web Services能徹底地改變傳統的EAI中點對點的集成處理方式,以一種松散的服務捆綁集合形式,能夠快速、低代價地開發、發布、發現和動態綁定應用。結合了Web Services的EAI系統實現了一種面向服務層的松耦合的企業應用集成系統,可以最大限度地同時滿足性能和靈活性的要求。
參考文獻
[1] LEE J, SIAU K, HONG S. Enterprise integration with ERP and EAI[J].Communications of the ACM 2008,46(2).
[2] 王彥麗,陳明,陳峰,等.基于Web Services企業應用集成的設計與分析[J].計算機技術與發展,2008,18(9):212-
215.
[3] 張廣勝,蔣昌俊,湯憲飛,等.面向服務的企業應用集成系統描述與驗證[J].軟件學報,2007,18(12):3015-3030.
[4] 劉賢梅,劉茜,徐鋒,等. 基于SOA的企業應用集成模型的研究[J].計算機工程與設計.2009,26(30):3790-3793.
[5] 張海軍,史維軍,劉偉.基于SOA企業應用集成框架研究與實現[J].計算機工程與設計,2008,29(8):2085-2088, 2092.
[6] 李磊,牛春雷,陳寧江,等.一種高效的Web服務性能優 化策略[J].計算機研究與發展,2007,44(7):1191-1198.