摘要:傳統的數據集成解決方案業務敏捷性不強,難以對業務變更作出快速的響應。基于SOA的數據集成中間件在層次上采用了SOA的層次劃分,在功能上采用了SOA的服務設計思想,對業務邏輯進行了服務分離,降低了數據集成中間件內部的耦合度,提高了數據集成中間件的復用性和擴展性,從而提升了數據集成中間件的業務敏捷性。
關鍵詞:數據集成;中間件;面向服務架構;服務總線
中圖分類號:TP391文獻標識碼:A
文章編號:1002-3100(2008)12-0035-03
Abstract: The traditional solution of data integration is poor on the business agility, so it is hardly in responding to the change of business for quickly. A middleware of data integration which based on then SOA, uses the service oriented architecture, and makes use ofthe thought of service design in the SOA to design the function of this middleware. To separates the business logic by the service, induces the coupling degree in the middleware of data integration, advances then reusable attribute and expansibility and business agility of then middleware.
Key words: data integration; middleware; service oriented architecture(SOA); enterprise service bus(ESB)
0引言
數據作為信息系統的重要組成內容貫穿于整個信息系統,對數據的集成在信息系統集成過程中起到基礎支撐性的作用。對已有的業務系統進行集成,關鍵內容之一就是對各業務系統下的異構數據進行集成,使其在不同的系統之間能夠實現共享。傳統的解決方案是從各底層數據源中提取數據,經過一致性轉換后形成一個集中庫,這種方法需要重復存儲大量的數據,且難以對業務的變更做出快速的響應。
本文提出一種基于SOA的數據集成中間件,采用SOA的設計思想,將數據集成中的各種業務分離成可供復用的服務,通過對這些服務的不同組合實現不同的業務邏輯,從而達到數據集成的敏捷性。
1SOA相關技術簡介
1.1SOA概念及特征
SOA(Service-Oriented Arehitecture,面向服務的體系結構)是指為了解決在Intenet環境下業務集成的需要,通過連接能完成特定任務的獨立功能實體實現的一種軟件系統架構[1-2]。SOA的目的在于對業務的變化提供快速響應,即“業務敏捷性”(Business Agility)。實現這一目的的核心手段是將分離的關注點定位于業務流程邏輯中的各種功能,將這些功能設計成松散耦合的、自治的、可復用的、可組合的功能實體,并將這些功能實體封裝成具有統一標準的服務描述、統一標準的服務契約且抽象的服務,再通過對服務的不同組合實現不同的業務,實現系統的集成。SOA具有三大基本特征:
(1)平臺無關性。SOA的體系架構基于一套全球標準化且公開的標準,如SOAP WSDL、XML和XML Schema等,這些標準均與廠商無關的,開發商依據標準開發相關產品,因此SOA與開發平臺、硬件平臺、操作系統無關。
(2)業務敏捷性。SOA的目的就是業務敏捷性,通過對服務的重新編排、組合等較小的改動,使得信息系統能夠對內部改組、企業合并、組織業務變化等帶來的業務變更做出快速響應,提高信息系統的響應效率。
(3)高服務質量。服務的自治性、無狀態性以及服務之間的松散耦合確保SOA體系結構能夠提供高質量的服務。

1.2SOA體系結構
服務是SOA的核心內容,“面向服務架構”是一個術語,代表一個模型,其中的自動化邏輯可分解為小的、不同的邏輯單元,這些邏輯單元組成一個較大的業務自動化邏輯片斷,并可以對這些邏輯單元進行獨立的分布式部署[3],這些邏輯單元就是服務。
SOA體系結構主要由三個角色組成:服務請求者、服務提供者、服務注冊庫。服務提供者在服務注冊庫中注冊有包含服務描述和其它相關文檔、協議的服務契約,使服務能夠被發現。服務請求者首先查詢服務注冊庫,依據服務契約找到服務提供者,通過向服務提供者發送滿足其服務契約的消息,綁定服務提供者。圖1為SOA體系結構。
2基于SOA的數據集成中間件
2.1基于SOA的數據集成中間件的設計思想
基于SOA的數據集成中間件采用面向服務的設計思想,將數據集成中間件的主要功能按其特點進行分離、抽象,封裝成符合標準的服務形式;在數據集成中間件內的消息,數據視圖都基于統一的標準;利用Web技術的標準體搭建數據集成中間件的運行環境和平臺。
在層次劃分上,基于SOA的數據集成中間件采用了SOA的層次結構,分為Web技術層,業務層,服務總線層,服務提供層。這樣的層次劃分,降低了數據集成中間件的開發難度,同時將數據集成中間件的主要功能封裝成具有統一標準的服務,提高了擴展能力和業務敏捷性。
在服務設計上,按照SOA的服務設計規范,將數據集成中間件預期的業務邏輯按操作粒度建模成服務;服務間的消息采用SOAP協議,服務運行產生的結果采用XML文檔存儲,這樣保證了服務的無狀態性、自治性,降低了服務之間的耦合度。使用XML Schema作為數據視圖的描述格式,為數據集成提供標準的中間格式;用XML文檔做為集成過程中數據的緩存。
2.2基于SOA的數據集成中間件的體系結構
圖2是其數據集成中間件體系結構圖,從層次結構上看,基于SOA的數據集成中間件分為以下四個層次:
①Web技術層,位于體系結構的頂層,是數據集成中間件的對外部分。Web技術層通過開放的技術標準(如Http、Ftp、SMTP、XML、SOAP、WSDL和UDDI等)對服務進行封裝;對數據視圖的訪問操作被封裝到一個用戶訪問界面,對數據的集成也被封裝為具有標準描述格式的服務。與用戶之間的消息發送、接收及消息交付質量控制也是由Web技術層完成。②業務層是數據集成中間件功能業務的提供層,該層利用服務層提供的服務實體組成數據查詢、數據交互、數據視圖管理、服務管理等業務流程,并提供這些業務流程的入口點、參數和相關描述。③服務總線是框架的核心部分,由它完成服務的注冊、查詢、綁定、調用、協調,以及對組合服務的編排工作;服務之間的消息交互也由服務總線完成。服務經服務總線注冊后發布,并獲得一個全局唯一性標示;服務請求者依據服務描述、服務契約生成服務請求消息,服務總線根據請求查詢并定位服務,完成對服務的調用工作,實現服務請求者與服務提供者的邦定。④服務提供層是服務的實體層,由各種功能實體及其服務封裝描述組成。數據集成中間件的主要服務都是由這些功能實體組成。服務層內包含了不同粒度的服務:原子服務和組合服務,原子服務存儲有其功能實體和服務描述、服務契約;組合服務只存儲了其服務的編排文件、服務描述和服務契約,這些服務共同構成了數據集成中間件的功能基礎。
從功能劃分上來看,數據集成中間件包含了管理模塊、安全管理模塊、數據引擎模塊、存儲管理模塊、數據源適配器模塊,這些功能模塊由多個不同的服務組成。
(1)管理模塊:主要是對數據視圖、元數據、用戶的管理。管理模塊為管理者提供一個圖形化的界面,引導管理者根據異構數據源之間數據的關系建立統一的數據視圖;對用戶進行劃分,授予其對數據視圖不同層次的訪問權限。管理模塊還提供對元數據的更新管理,使得中間件能夠及時提供對新數據源的支持。
(2)安全管理模塊:主要為數據集成提供安全保障,包括三個方面的內容:權限認證,對用戶訪問權限的認證和對管理員權限的認證;加密解密,對進出中間件的數據加密和對數據視圖文件的加密;服務控制,對服務運行時進行監控,保證服務的完整執行。其中服務控制部分由服務總線完成,其它部分由服務層內的服務組合構成。
(3)數據引擎模塊:該模塊是數據集成中間件的核心模塊。數據引擎負責對用戶的查詢請求進行優化處理,制定一個開銷最小的查詢計劃,按計劃對查詢進行分解,將查詢分解為對底層數據源的查詢,再將這些查詢序列化,按序列化調用數據源適配器,執行查詢;適配器返回查詢結果后,數據引擎首先對數據進行必要的篩選,再依據數據視圖定義的數據關聯關系對數據進行合并。
(4)存儲管理模塊:數據集成中間件采用XML Schema描述數據視圖的描述,用XML文檔存儲用戶、管理員信息和緩存中間數據。存儲管理模塊主要對XML文檔的讀取和存儲管理。
(5)適配器:負責與底層數據源進行連接,執行數據查詢,并將查詢結果從數據源的本地格式轉化為統一的標準格式。值得注意的是:基于SOA的數據集成中間件在適配器的設計上也采用了SOA的思想,將適配器的文檔轉化功能設計并封裝成一個服務,用XML文檔存儲了數據源本地格式與標準格式之間的轉化關系,通過讀取XML文檔來指導完成對某一數據源的格式轉換。這種設計思想提高了服務的復用程度,降低了開發的工作量。
3結束語
基于SOA的數據集成中間件以面向服務的設計思想對數據集成過程中的主要業務流程進行了劃分,將業務流程邏輯分離為松耦合的、自治的、無狀態的、可復用的功能實體,并將其封裝為具有統一描述標準的服務,再通過對服務的編排組成業務,提高了數據集成中間件的擴展性,降低了其內部的耦合度和開發工作量。基于SOA的數據集成中間件具有很強的業務敏捷性,能夠對業務變更作出快速的響應,具有很強的使用價值。
參考文獻:
[1] 佚名. 專題:SOA面向服務架[EB/OL].(2006-08-04)[2008-06-25]. http://www.51cto.com/html/2006/0106/16327.htm.
[2] 佚名. 面向服務的體系結構SOA概述[EB/OL].(2006-01-04)[2008-06-25]. http://www.51cto.com/html/2006/0104/16186.htm.
[3] 伊爾(Erl,T.)(美). SOA概念、技術與設計[M]. 王滿紅,陳榮華,譯. 北京:機械工業出版社,2006.
[4] 王忠,龍博. 基于SOA的手機用戶自助服務系統架構研究[J]. 科學技術與工程,2007,19(4):5108-5111.
[5] 劉小琳,鄭有才. 面向服務的工作流技術[J]. 計算機工程與應用,2005,16(3):24-28.
[6] 余亮,魏峻. 基于服務和規則擴展的工作流模型[J]. 計算機工程與應用,2004,40(31):186-189.