蔡芳
摘要:隨著企業(yè)信息化建設(shè)的不斷發(fā)展,滿足各類業(yè)務(wù)需求的應(yīng)用系統(tǒng)也逐漸增加。為了消除信息孤島、解決各應(yīng)用系統(tǒng)之間的信息共享、流程驅(qū)動等問題,本文作者研究了基于ESB的應(yīng)用系統(tǒng)集成方法,通過基于服務(wù)總線的SOA框架,解決單位內(nèi)部的多個應(yīng)用系統(tǒng)的集成問題,實現(xiàn)多系統(tǒng)之間的跨平臺、跨技術(shù)的集成標(biāo)準(zhǔn)化,為后續(xù)的業(yè)務(wù)系統(tǒng)集成提供通用基礎(chǔ)平臺。
關(guān)鍵詞:ESB;系統(tǒng)集成;SOA
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)19-0232-02
Abstract: With the continuous development of enterprise information construction,various business systems increase. In order to eliminate information islands, solve the problem of information sharing and process-driven between application systems, the author of this paper studied the application system integration method based on ESB, through the service-oriented SOA framework, solve multiple system integration problem, implement standardized integration, to provide a common platform for future business system integration.
Key words: ESB; System Integration; SOA
1 引言
企業(yè)在信息化建設(shè)進程當(dāng)中,越來越多的業(yè)務(wù)系統(tǒng)投入使用,例如OA系統(tǒng)、人力資源系統(tǒng)、財務(wù)管理系統(tǒng)、項目管理系統(tǒng)、檔案管理系統(tǒng)、PDM系統(tǒng)等。因為管理責(zé)任主體不同,這些系統(tǒng)初期都以各自獨立的模式自主運行。隨著企業(yè)對內(nèi)部管理數(shù)據(jù)的唯一性、準(zhǔn)確性要求,以及對不同業(yè)務(wù)系統(tǒng)之間據(jù)交互的要求,不同業(yè)務(wù)系統(tǒng)之間的集成問題隨之出現(xiàn)。因不同業(yè)務(wù)系統(tǒng)采用的技術(shù)路線、實現(xiàn)的業(yè)務(wù)功能、執(zhí)行開發(fā)工作的廠商都不同,實現(xiàn)系統(tǒng)之間的無縫集成即成為一個技術(shù)難題。
面向服務(wù)的軟件架構(gòu)SOA(Service-Oriented Architecture)是一種解決異構(gòu)應(yīng)用系統(tǒng)之間松耦合集成的框架,通過WebService分布式計算服務(wù)模式,實現(xiàn)不同應(yīng)用系統(tǒng)之間的遠程調(diào)用,這種服務(wù)具有平臺無關(guān)性、普遍性、易于使用等優(yōu)點,可以溝通不同平臺、編程語言和組件模型中的不同類型系統(tǒng),方便地實現(xiàn)異構(gòu)系統(tǒng)之間的集成。
基于WebService的系統(tǒng)集成,早期實現(xiàn)了點到點的集成,即單個系統(tǒng)對單個系統(tǒng)的集成。這種集成缺乏伸縮性、擴展性、可重用性。因為系統(tǒng)的集成邏輯都直接通過編碼寫進應(yīng)用系統(tǒng)中,每一個系統(tǒng)對應(yīng)不同的需要集成的系統(tǒng)需要編寫多個接口服務(wù)程序,這個程序混亂難于管理,如圖1所示。應(yīng)該說,點到點的WebService集成不是真正意義上的SOA。
基于企業(yè)服務(wù)總線ESB(Enterprise Service Bus)的SOA集成框架,是一種端到端的服務(wù)集成框架,如圖2所示。這種框架通過ESB中間件作為服務(wù)管理基礎(chǔ),將各異構(gòu)應(yīng)用系統(tǒng)的通用服務(wù)插入到ESB總線上,支持服務(wù)的即插即用。它以標(biāo)準(zhǔn)為基礎(chǔ),以消息流轉(zhuǎn)為溝通方式,實現(xiàn)跨平臺、跨技術(shù)的多個應(yīng)用系統(tǒng)和服務(wù)間的信息溝通和數(shù)據(jù)共享。
2 相關(guān)技術(shù)及產(chǎn)品比較
目前流行的ESB產(chǎn)品包括商業(yè)ESB產(chǎn)品和開源的ESB產(chǎn)品。每個ESB產(chǎn)品的基本特征至少應(yīng)包括:
(1) 連接性:提供支持多種協(xié)議、多種服務(wù)的連接屬性。
(2) 交互性:提供支持不同服務(wù)之間的交互屬性。
(3) 集成性:提供對于異構(gòu)系統(tǒng)之間的集成屬性。
(4) 消息處理機制:提供統(tǒng)一的消息描述格式、多種通訊方式實現(xiàn)對異構(gòu)系統(tǒng)的消息處理。
(5) 管理機制:提供對服務(wù)的運行、交換、資源、安全以及接入等的管理、監(jiān)控功能。
(6) 安全性:提供保障服務(wù)安全的完整性校驗、消息審計、服務(wù)安全(認(rèn)證授權(quán)、傳輸加密、消息加密等)的安全機制,確保服務(wù)訪問過程的安全性、可靠性、一致性。
(7) 服務(wù)質(zhì)量:提供消息成功率/失敗率、流量控制、故障次數(shù)、響應(yīng)時間等服務(wù)質(zhì)量參數(shù),提高服務(wù)質(zhì)量QoS。
目前市場上的ESB總線產(chǎn)品很多,作者在研究對比了相關(guān)產(chǎn)品資料后,在總線產(chǎn)品的性能及擴展性等方面總結(jié)出以下幾個產(chǎn)品的特點。
2.1 ServiceMix
ServiceMix是Apache的ESB總線框架,具有獨立的JBI(Java Business Integration)容器,完全支持JBI規(guī)范。它有獨立的運行環(huán)境,以應(yīng)用服務(wù)器一樣的模式啟動,并支持動態(tài)熱部署。ServiceMix的容器運行環(huán)境采用內(nèi)核架構(gòu),性能較為突出。通信方面整合了ActiveMQ,也支持多種通信協(xié)議,例如HTTP和JMS。在管理組件上采用了JMX(Java Management Extensions),能夠?qū)Σ渴鹪诳偩€上的各種組件進行動態(tài)配置和管理,通過Web方式或JMX遠程均可訪問。ServiceMix內(nèi)核能夠整合到操作系統(tǒng)中,因此可以作為操作系統(tǒng)對外提供的服務(wù)。ServiceMix還提供了獨立的腳本命令控制臺,通過簡單命令管理應(yīng)用組件以及ServiceMix內(nèi)核實例。
2.2 Open ESB
OpenESB是Sun公司的開源ESB,對JBI支持程度極高。而GlassFish ESB是將OpenESB的核心運行環(huán)境與GlassFish應(yīng)用服務(wù)器以及NetBean的集成開發(fā)環(huán)境整合在一起的一個ESB框架,其中包含部分OpenESB組件。OpenESB提供了支持WS-BPEL2.0(Web Service Business Process Excution Language)的引擎,該引擎要依托NetBean集成開發(fā)平臺,可以使用NetBean的開發(fā)包和組件包,支持端點狀態(tài)的監(jiān)控、支持多線程執(zhí)行、業(yè)務(wù)流程的調(diào)試、系統(tǒng)錯誤的可靠性恢復(fù)中各個業(yè)務(wù)流程實例的數(shù)據(jù)庫持久化以及負(fù)載均衡等。
2.3 JBoss ESB
JBoss ESB是面向SOA的一個EAI(Enterprise Application Integration)平臺。它提供了很多EAI基礎(chǔ)功能,例如業(yè)務(wù)流程監(jiān)控、集成開發(fā)環(huán)境、工作流用戶接口、業(yè)務(wù)流程管理、分布式計算架構(gòu)以及應(yīng)用容器功能等。相對于其他ESB,它的技術(shù)架構(gòu)非常最獨立,僅支持J2EE標(biāo)準(zhǔn),不支持JBI規(guī)范。JBossESB支持 Web Service、多種遠程調(diào)用協(xié)議(例如:JMS),在擴展性方面功能較弱。
2.4 MuleESB
Mule是目前使用者最多的開源集成平臺,是基于Java的輕量級企業(yè)服務(wù)總線和集成平臺,具有基于模式的配置以及熱部署的突出特點。它支持20多種傳輸協(xié)議(例如:file,F(xiàn)TP,UDP,SMTP,POP,HTTP,SOAP,JMS等),并整合了許多流行的開源項目,比如Spring,ActiveMQ,CXF, Axis,Drools等。MuleESB不是基于JBI構(gòu)建的平臺,但為JBI容器提供了適配器,可以與JBI容器整合在一起。 MuleESB在靈活性,高效性以及易開發(fā)性方面優(yōu)勢明顯。MuleESB可以獨立運行,也可以部署在通用的應(yīng)用服務(wù)器上,通過Transports/Connectors與外部異構(gòu)系統(tǒng)連接,提供Routing(路由)、Transaction Management(事務(wù)管理)、Transformation(轉(zhuǎn)換)、Message Broker(消息代理)、Transportation Management(傳輸管理)、Security(安全)等核心模塊。集群能力較弱是MuleESB的較突出的弱點,因為它只能配置一個主實例和一個從實例。
2.5 Oracle OSB
Oracle Service Bus 是Oracle公司的 ESB商業(yè)產(chǎn)品,完全基于J2EE技術(shù)、并具有內(nèi)置的J2EE容器,可充分兼容開放技術(shù)標(biāo)準(zhǔn);支持Web Service等異構(gòu)技術(shù),支持WS-RM、WS-Policy、WS-Security等相關(guān)標(biāo)準(zhǔn)。OSB提供符合J2EE JCA(JAVA Connector Architecture)規(guī)范的標(biāo)準(zhǔn)Adapter,用于連接各業(yè)務(wù)系統(tǒng);提供可擴展的Transport框架,支持定制化開發(fā)擴展連接方式;提供Eclipse的IDE開發(fā)環(huán)境和基于Web瀏覽器控制臺的消息流編排。OSB中嵌入了Oracle Coherence(企業(yè)級的內(nèi)存數(shù)據(jù)網(wǎng)格)產(chǎn)品,在特定場景下為服務(wù)調(diào)用提供緩存,使總線的性能提升了80%。OSB的局限性是完全依賴于BEA Weblogic(現(xiàn)在是Oracle Weblogic Server)運行,對用戶的運行環(huán)境要求較高。
3 集成方法規(guī)劃設(shè)計
實施ESB項目是一個復(fù)雜的過程,既包括對現(xiàn)有業(yè)務(wù)系統(tǒng)的服務(wù)功能改造,又包括對后續(xù)業(yè)務(wù)系統(tǒng)的不斷接入,實現(xiàn)端到端的應(yīng)用集成,還包括對未來跨系統(tǒng)之間的流程驅(qū)動的實現(xiàn)規(guī)劃設(shè)計。因此需要制定詳細(xì)的項目實施計劃,合理制定階段目標(biāo),確保項目實施成功。圖3是ESB總線集成項目的功能示意圖。
為實現(xiàn)以上ESB集成功能,需要按照SOA的架構(gòu)設(shè)計方法對服務(wù)業(yè)務(wù)需求進行設(shè)計。服務(wù)業(yè)務(wù)需求包括功能性需求、非功能性需求以及服務(wù)實施需求。其中功能性需求是要對包含的所有服務(wù)進行定義,定義出服務(wù)接口、服務(wù)實現(xiàn)、服務(wù)契約等完整的一個服務(wù)標(biāo)準(zhǔn)定義模式,最終形成一套整體服務(wù)架構(gòu)框架圖。非功能性需求即是對集成服務(wù)的可用性、擴展性、安全性、管理性以及性能等進行定義。實施需求設(shè)計包括對服務(wù)實現(xiàn)、服務(wù)測試以及服務(wù)部署等需求的設(shè)計。圖4是 服務(wù)從定義階段到運行階段的開發(fā)流程示意圖。
4 結(jié)束語
在單位內(nèi)部實施ESB項目,實現(xiàn)業(yè)務(wù)系統(tǒng)的集成與流程驅(qū)動,首先需要選擇先進成熟的ESB產(chǎn)品,在此基礎(chǔ)上充分了解業(yè)務(wù)需求,描述清楚與業(yè)務(wù)系統(tǒng)關(guān)聯(lián)的服務(wù)的要素,建立服務(wù)建設(shè)規(guī)范以及服務(wù)定義標(biāo)準(zhǔn),由專業(yè)的ESB、SOA技術(shù)人員來完成ESB項目的技術(shù)實現(xiàn),最終留下完整的開發(fā)過程文檔供后續(xù)項目參考。作者所在單位尚未開展ESB的全過程開發(fā)工作,本文僅作為前期的探索研究理論支持。
參考文獻:
[1] 趙海蛟,潘善亮.基于Mule ESB的電子監(jiān)察系統(tǒng)的設(shè)計與實現(xiàn)[J].數(shù)據(jù)通信,2016(1):7-10.
[2] 黨懷義.基于SOA的飛行試驗數(shù)據(jù)管理系統(tǒng)研究[J].計算機測量與控制,2014,22(7):2135-2137.
[3] 林泳琴,黃晨暉.面向企業(yè)應(yīng)用集成的ESB框架的研究[J].計算機應(yīng)用,2010,30(6):1658-1660.
[4] 湯雷,張勇,徐宇婷.基于服務(wù)總線(ESB)的應(yīng)用集成(EAI)探索和研究[J].計算機技術(shù)與發(fā)展,2014.24.12:238-240.
[5] http://www.baidu.com.