撰文/中國電子科技集團(tuán)第38研究所 柳吉慶 徐禮祥 張軍
基于服務(wù)總線的應(yīng)用集成平臺設(shè)計(jì)與開發(fā)
撰文/中國電子科技集團(tuán)第38研究所 柳吉慶 徐禮祥 張軍
隨著計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,制造型企業(yè)面臨的市場競爭日益激烈,為實(shí)現(xiàn)有效整合產(chǎn)品生命周期各個階段產(chǎn)生的各類信息和流程,上線并實(shí)施了越來越多的企業(yè)信息系統(tǒng)(Enterprise Information System,EIS),然而各個EIS之間存在著編程語言差異、平臺差異、通信協(xié)議差異和數(shù)據(jù)結(jié)構(gòu)差異等諸多系統(tǒng)異構(gòu)問題,如何實(shí)現(xiàn)各個相關(guān)的EIS系統(tǒng)間的高效互通,實(shí)現(xiàn)數(shù)據(jù)和資源的共享,實(shí)現(xiàn)企業(yè)內(nèi)部乃至企業(yè)之間的多個應(yīng)用系統(tǒng)集成,成為企業(yè)相關(guān)信息技術(shù)部門迫切需要解決的重要問題。
面向服務(wù)的架構(gòu)(Service-Oriented Architecture,SOA)正逐漸成為企業(yè)應(yīng)用集成的發(fā)展主導(dǎo)方向。SOA是一種定義集成基于服務(wù)的軟件應(yīng)用方法,通過服務(wù)調(diào)用和組合實(shí)現(xiàn)相關(guān)業(yè)務(wù)流程。服務(wù)是離散的功能單元,封裝了可重用的業(yè)務(wù)邏輯,平臺獨(dú)立、位置透明且可互操作,具有基于行業(yè)標(biāo)準(zhǔn)、松散耦合、與協(xié)議無關(guān)性和業(yè)務(wù)敏捷性等優(yōu)勢。
在企業(yè)內(nèi)部應(yīng)用整合問題的解決方案上,較早采用的是企業(yè)應(yīng)用集成(Enterprise Application Integration,EAI)方式,使用如CORBA和COM等消息中間件進(jìn)行分布式、跨平臺的程序交互,使用中間件、XML等技術(shù)來進(jìn)行數(shù)據(jù)分配。EAI這種基于部件的架構(gòu)并沒有統(tǒng)一的標(biāo)準(zhǔn),解決方案往往比較笨重,不利于規(guī)則的重新整合和修改,因而EAI并不是實(shí)現(xiàn)SOA的理想架構(gòu)。在此背景下,企業(yè)服務(wù)總線(Enterprises Service Bus,ESB)被提出作為取代EAI的位置,成為實(shí)現(xiàn)SOA的一種理想集成工具。
企業(yè)服務(wù)總線是面向服務(wù)架構(gòu)SOA的基礎(chǔ)設(shè)施,ESB是SOA參考架構(gòu)的中心構(gòu)件,通過ESB平臺實(shí)現(xiàn)各種服務(wù)注冊、管控以及服務(wù)之間的協(xié)調(diào)交互,集成基于不同硬件、不同操作系統(tǒng)、不同數(shù)據(jù)庫和不同傳輸協(xié)議實(shí)現(xiàn)的異構(gòu)系統(tǒng)之間的應(yīng)用,為SOA架構(gòu)模型提供基于網(wǎng)絡(luò)的底層分布式總線功能,例如服務(wù)通信、協(xié)作和服務(wù)組合流程等。
基于上述分析,本文將設(shè)計(jì)一個基于ESB的企業(yè)應(yīng)用統(tǒng)一集成平臺,并對集成平臺中的若干關(guān)鍵技術(shù)進(jìn)行具體闡述。
圖1所示為基于服務(wù)總線的企業(yè)應(yīng)用集成平臺總體框架示意圖。應(yīng)用集成平臺的運(yùn)行需要一系列外圍環(huán)境的支撐:關(guān)系數(shù)據(jù)庫或文件服務(wù)器用做數(shù)據(jù)信息的持久化存儲容器,消息服務(wù)器(Message Queue,MQ)則充當(dāng)消息產(chǎn)生和消費(fèi)的中轉(zhuǎn)代理,應(yīng)用服務(wù)器則提供了基于Web頁面的服務(wù)管理控制或調(diào)用的支持。
企業(yè)應(yīng)用集成平臺底層需要ESB基礎(chǔ)平臺的支撐,ESB基礎(chǔ)平臺提供了一系列的底層基礎(chǔ)功能組件,例如數(shù)據(jù)轉(zhuǎn)換、協(xié)議適配、消息路由、安全控制和日志記錄等。數(shù)據(jù)轉(zhuǎn)換功能可實(shí)現(xiàn)不同格式數(shù)據(jù)的自定義轉(zhuǎn)化,例如將xml格式數(shù)據(jù)轉(zhuǎn)化為Json格式數(shù)據(jù);協(xié)議適配可以實(shí)現(xiàn)對多接口類型的兼容介入,例如常見的HTTP、FTP和JMS等協(xié)議;消息路由可實(shí)現(xiàn)對接口消息數(shù)據(jù)傳遞流向的自定義控制。
圖1 集成平臺總體框架
企業(yè)應(yīng)用集成平臺對外提供的功能體現(xiàn)在對消息和服務(wù)的管控上,在遵循相關(guān)集成標(biāo)準(zhǔn)技術(shù)規(guī)范的基礎(chǔ)上進(jìn)行消息和服務(wù)的設(shè)計(jì)開發(fā),其中消息一般用于異步信息交互,服務(wù)則用于同步信息交互。
運(yùn)行在企業(yè)內(nèi)部的各個EIS通過企業(yè)應(yīng)用集成平臺統(tǒng)一進(jìn)行數(shù)據(jù)信息交互,交互的方式可分為兩大類:一類是通過部署在集成平臺的服務(wù)進(jìn)行請求/響應(yīng)的實(shí)時同步方式調(diào)用,另一類是通過部署在集成平臺的消息端點(diǎn)將關(guān)鍵信息以消息的方式進(jìn)行發(fā)送或消費(fèi),消息和服務(wù)的元數(shù)據(jù)信息及使用過程信息可通過管理監(jiān)控平臺獲取。
1.集成規(guī)范設(shè)計(jì)
系統(tǒng)集成接口成功應(yīng)用的關(guān)鍵因素是參與集成開發(fā)的相關(guān)系統(tǒng)就接口實(shí)現(xiàn)達(dá)成一致,制定詳細(xì)的接口規(guī)范,接口提供方和使用方在各自開發(fā)過程中嚴(yán)格遵守此接口規(guī)范,在點(diǎn)對點(diǎn)(Point to Point)集成方式下,應(yīng)用系統(tǒng)的接口開發(fā)是兩兩進(jìn)行的,制定的接口規(guī)范通常缺乏全局考慮,僅對特定接口有效。當(dāng)系統(tǒng)應(yīng)用集成場景變得日益復(fù)雜后,一個系統(tǒng)往往需要對接多個其他系統(tǒng),因此往往需同時遵循多個不同的接口規(guī)范,而這些接口規(guī)范存在著不一致甚至相悖的可能,造成系統(tǒng)集成開發(fā)無章可循的現(xiàn)象。在采用企業(yè)應(yīng)用集成平臺后,由于對服務(wù)和消息實(shí)現(xiàn)了統(tǒng)一管理發(fā)布,因此需要就集成開發(fā)中的一些共性問題制定相關(guān)的集成規(guī)范,對企業(yè)應(yīng)用系統(tǒng)接口的開發(fā)方和使用方開發(fā)的交付物提出明確的要求,并依據(jù)相應(yīng)的規(guī)范作為集成工作評估的依據(jù)。從集成實(shí)現(xiàn)的方式上可將集成規(guī)范大致分為服務(wù)集成規(guī)范和消息集成規(guī)范,如圖2所示,集成規(guī)范可進(jìn)一步進(jìn)行逐級細(xì)化,例如服務(wù)集成規(guī)范可包含服務(wù)設(shè)計(jì)開發(fā)規(guī)范,服務(wù)設(shè)計(jì)開發(fā)規(guī)范可細(xì)分為服務(wù)命名規(guī)范、服務(wù)結(jié)構(gòu)規(guī)范、服務(wù)異常處理規(guī)范等。制定集成規(guī)范是實(shí)現(xiàn)集成平臺有效開發(fā)管理的基礎(chǔ)條件,應(yīng)予以充分重視。
圖2 系統(tǒng)集成規(guī)范體系
2.服務(wù)集成設(shè)計(jì)
服務(wù)集成是整個企業(yè)集成平臺提供的最為重要的功能之一,Web服務(wù)是實(shí)現(xiàn)服務(wù)集成最常見的方法,運(yùn)用集成平臺的ESB技術(shù)解決集成問題的一個重要出發(fā)點(diǎn)是:通過服務(wù)集成功能盡量降低應(yīng)用系統(tǒng)之間的耦合度和減少已有接口的開發(fā)調(diào)整工作,可通過服務(wù)代理、服務(wù)建模以及服務(wù)編排分別實(shí)現(xiàn)了服務(wù)的繼承、拓展與協(xié)同。
(1)服務(wù)代理。
采用ESB技術(shù)后,對外服務(wù)的接口將進(jìn)行統(tǒng)一,由ESB基礎(chǔ)平臺暴露相關(guān)的一系列服務(wù)代理接口供服務(wù)請求方進(jìn)行調(diào)用,如圖3所示,服務(wù)請求方通過ESB平臺上開放的服務(wù)地址對服務(wù)提供方的Web服務(wù)進(jìn)行間接調(diào)用,ESB平臺只起到代理轉(zhuǎn)發(fā)的作用,不對服務(wù)業(yè)務(wù)邏輯本身做任何處理,因此調(diào)用ESB上的代理服務(wù)與直接調(diào)用服務(wù)提供方提供的原始服務(wù)效果是完全一樣的。
圖3 服務(wù)代理模式示意圖
此種模式下,只需服務(wù)請求方將原有的Web服務(wù)請求地址改為ESB發(fā)布的服務(wù)地址,其他不需做任何改動,若已有的系統(tǒng)集成Web服務(wù)接口已能滿足業(yè)務(wù)需求,則可以使用此功能實(shí)現(xiàn)Web服務(wù)的透明訪問。
(2)服務(wù)建模。
在企業(yè)集成平臺上發(fā)布獨(dú)立的Web 原子服務(wù)(非代理服務(wù)),與服務(wù)代理模式中ESB平臺不做任何業(yè)務(wù)處理不同的是,服務(wù)建模中的業(yè)務(wù)邏輯在ESB平臺中單獨(dú)實(shí)現(xiàn),不依賴于其他應(yīng)用信息系統(tǒng)。在服務(wù)建模中,主要完成兩部分的工作內(nèi)容:服務(wù)接口和服務(wù)實(shí)現(xiàn)的定義,如圖4所示,服務(wù)接口主要描述了服務(wù)對外的方法、參數(shù)等信息,是生成的服務(wù)描述(WSDL)的數(shù)據(jù)來源;服務(wù)實(shí)現(xiàn)則負(fù)責(zé)執(zhí)行具體的業(yè)務(wù)邏輯,將接口定義和實(shí)現(xiàn)分離也有利于保持Web服務(wù)的穩(wěn)定性。
圖4 Web服務(wù)調(diào)用過程示意圖
(3)服務(wù)編排。
服務(wù)編排可被視為服務(wù)代理與服務(wù)建模功能結(jié)合的產(chǎn)物。ESB在內(nèi)部將若干個相關(guān)聯(lián)的信息系統(tǒng)提供的Web服務(wù)按一定順序進(jìn)行排列和組合,完成中間環(huán)節(jié)的數(shù)據(jù)格式轉(zhuǎn)化工作,最終實(shí)現(xiàn)多個服務(wù)的組合,組合成具有新功能的服務(wù),發(fā)布部署在ESB平臺上供使用,使用此方式可以類似“搭積木”的方式從有限數(shù)量的基礎(chǔ)服務(wù)中衍生出大量的新服務(wù),從而滿足企業(yè)內(nèi)業(yè)務(wù)需求的新增和變更。
3.消息集成設(shè)計(jì)
消息的發(fā)送和消費(fèi)需要消息服務(wù)器的支持,消息服務(wù)器專門用于存儲、轉(zhuǎn)發(fā)以及管理產(chǎn)生或消費(fèi)的消息數(shù)據(jù),具有運(yùn)算速度高、運(yùn)行可靠。數(shù)據(jù)吞吐能力強(qiáng)等特點(diǎn)。集成平臺中包含消息服務(wù)器,并與ESB基礎(chǔ)平臺保持緊密集成。
(1)消息結(jié)構(gòu)設(shè)計(jì)。
如圖5所示,消息結(jié)構(gòu)設(shè)計(jì)主要是對消息的消息頭屬性和消息體的結(jié)構(gòu)和數(shù)據(jù)格式定義。消息頭屬性定義主要是為了便于進(jìn)行消息的發(fā)送/訂閱相互匹配,消息體是消息的主體內(nèi)容,雖然各類消息的具體內(nèi)容和樣式不盡相同,但從通用性和規(guī)范性的角度考慮,對消息體采用的描述格式以及結(jié)構(gòu)應(yīng)作統(tǒng)一要求。
圖5 消息結(jié)構(gòu)示意圖
(2)消息分類設(shè)計(jì)。
如圖6所示,按照消息數(shù)據(jù)的業(yè)務(wù)范疇對消息進(jìn)行分類,每一類消息又可根據(jù)描述的粒度不同進(jìn)行層層細(xì)分,從而形成一個樹形的層次劃分體系。
圖6 消息分類層次結(jié)構(gòu)示意圖
對于消息的發(fā)送方來說,其所發(fā)送的消息有且只歸屬一個與之對應(yīng)的消息分類(消息分類樹的末端節(jié)點(diǎn)),消息的分類條目隨著參與集成的應(yīng)用系統(tǒng)增多或業(yè)務(wù)集成點(diǎn)的拓展而不斷更新增加,根據(jù)消息集成的領(lǐng)域特點(diǎn),制定科學(xué)合理的分類體系,是實(shí)現(xiàn)消息發(fā)送與消費(fèi)順利銜接的重要前提條件。
4.管控平臺設(shè)計(jì)
采用服務(wù)總線技術(shù)實(shí)現(xiàn)信息系統(tǒng)集成,各個應(yīng)用系統(tǒng)都需要通過應(yīng)用集成平臺提供的服務(wù)或消息端點(diǎn)進(jìn)行交互,因此需要對服務(wù)和消息進(jìn)行管控。集成管控平臺是集成平臺的必要輔助模塊,通過此平臺對集成平臺發(fā)布的服務(wù)進(jìn)行查詢、添加、更新和刪除等操作,特定應(yīng)用系統(tǒng)的接口開發(fā)人員可通過此平臺方便地了解提供服務(wù)的服務(wù)地址、業(yè)務(wù)功能、接口方法、接口參數(shù)和調(diào)用示例等信息;應(yīng)用系統(tǒng)的維護(hù)人員可通過此平臺了解與本系統(tǒng)相關(guān)的消息、服務(wù)的運(yùn)行狀態(tài)和運(yùn)行性能等指標(biāo)數(shù)據(jù)。
本文所設(shè)計(jì)的企業(yè)應(yīng)用集成平臺已在企業(yè)內(nèi)部得到了良好的應(yīng)用,解決了企業(yè)之前存在的集成架構(gòu)落后、集成缺乏統(tǒng)一管理和規(guī)范以及主數(shù)據(jù)實(shí)時同步難以實(shí)現(xiàn)等問題。服務(wù)集成方面,將原有各個信息系統(tǒng)提供的Web服務(wù)統(tǒng)一發(fā)布在ESB平臺上并統(tǒng)一進(jìn)行服務(wù)日志的記錄;消息集成方面,通過制定消息讀寫技術(shù)規(guī)范,包括人員組織、物料、項(xiàng)目、日志和待辦事項(xiàng)等多種類型的業(yè)務(wù)數(shù)據(jù)以消息的形式實(shí)現(xiàn)多應(yīng)用系統(tǒng)之間的數(shù)據(jù)同步,圖7所示為開發(fā)的集成平臺管控模塊實(shí)際應(yīng)用界面。
圖7 集成平臺管控模塊系統(tǒng)應(yīng)用界面
企業(yè)服務(wù)總線是當(dāng)前實(shí)現(xiàn)SOA架構(gòu)下的企業(yè)應(yīng)用系統(tǒng)集成的一種理想集成工具,本文設(shè)計(jì)了一個基于企業(yè)服務(wù)總線的企業(yè)應(yīng)用集成總體框架,對集成框架中的集成規(guī)范制定、服務(wù)與消息的集成內(nèi)容以及管控平臺設(shè)計(jì)等若干關(guān)鍵技術(shù)進(jìn)行了闡述,通過在企業(yè)的實(shí)際應(yīng)用,證明了該集成平臺設(shè)計(jì)的可行性和有效性。
《智能制造》雜志征稿通知
一、征文范圍
1.數(shù)字化設(shè)計(jì)與制造
2.智能設(shè)計(jì)理論、方法及系統(tǒng)
3.自動化與現(xiàn)代制造系統(tǒng)
4.機(jī)器人技術(shù)及應(yīng)用
5.虛擬設(shè)計(jì)與虛擬樣機(jī)
6.網(wǎng)絡(luò)化控制與制造技術(shù)
7.綠色設(shè)計(jì)與綠色制造中的智能技術(shù)
8.智能加工、智能檢測與控制
9.數(shù)字企業(yè)與數(shù)字化工廠
10.制造系統(tǒng)建模、運(yùn)行、控制、優(yōu)化與調(diào)度
11.先進(jìn)制造模式與戰(zhàn)略
12.制造信息與知識處理
13.數(shù)控技術(shù)與數(shù)字化裝備
14.現(xiàn)場總線與無線傳感網(wǎng)技術(shù)
注:以上內(nèi)容范疇供參考,圍繞智能制造全領(lǐng)域,具體題目請自擬。
二、論文遴選、刊錄出版和基本要求
1.《智能制造》編輯部組織編委會有關(guān)專家,對投稿進(jìn)行審查、遴選,擇優(yōu)刊登。審查遴選期限為自編輯部收到稿件后的三個月。對于刊登的論文,編輯部提供正式錄用通知。
2.論文內(nèi)容必須是作者未正式發(fā)表過的研究成果,論文主題與智能制造相關(guān),投稿作者須恪守學(xué)術(shù)道德規(guī)范,文責(zé)自負(fù),嚴(yán)禁一稿多投及中途撤稿。論文字?jǐn)?shù)4000~7000字。
3.論文應(yīng)包括以下項(xiàng)目:論文題目;作者簡介(200字以內(nèi),包括姓名、工作單位、通信地址、電話、手機(jī)、電子信箱等);中文摘要、關(guān)鍵詞、標(biāo)題和正文、參考文獻(xiàn)。
三、編輯部投稿聯(lián)系方式
聯(lián)系人:張友蘋
聯(lián)系電話:010-68993880-293
郵箱:imchina@idnovo.com.cn