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