徐榮照 洪中華 沈立東 鄒欣延 趙旭 粟源 劉洋博
摘 要 MES(Manufacturing Execution System,生產(chǎn)制造執(zhí)行系統(tǒng))是集團(tuán)推進(jìn)企業(yè)信息化建設(shè)的重要系統(tǒng),依靠現(xiàn)代信息技術(shù)實(shí)現(xiàn)生產(chǎn)智能化,提升生產(chǎn)過(guò)程柔性化。ESB是工廠(chǎng)各執(zhí)行系統(tǒng)與MES系統(tǒng)間集成的重要手段,其通信方式與傳統(tǒng)的編程對(duì)接相比具有靈活可變、即插即用等諸多優(yōu)點(diǎn),但是其實(shí)施難度大,主要體現(xiàn)在標(biāo)準(zhǔn)統(tǒng)一管理方面。
關(guān)鍵詞 MES;ESB;系統(tǒng)集成
1ESB概述
ESB是傳統(tǒng)中間件技術(shù)與XML、WEB結(jié)合的產(chǎn)物,提供了網(wǎng)絡(luò)中最基本的連接中樞。它可以消除應(yīng)用間的技術(shù)差異,讓不同應(yīng)用服務(wù)器協(xié)調(diào)配合。從功能上看,ESB提供了事件驅(qū)動(dòng)和文檔導(dǎo)向的處理模式,以及分布式的運(yùn)行管理機(jī)制,它支持基于內(nèi)容的路由和過(guò)濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標(biāo)準(zhǔn)接口[1]。
2ESB的核心架構(gòu)
ESB的核心架構(gòu)分為三個(gè)組件或子系統(tǒng),即偏開(kāi)發(fā)態(tài)的設(shè)計(jì)器,偏運(yùn)行態(tài)的ESB核心引擎和SOA治理管控平臺(tái)三個(gè)方面的內(nèi)容。以上三者組合和集成形成一款完整的ESB服務(wù)總線(xiàn)產(chǎn)品[2]。
首先對(duì)于ESB總線(xiàn)引擎是一個(gè)完全相對(duì)獨(dú)立的內(nèi)容,即常說(shuō)的ESB的Server端,一個(gè)完整的ESB引擎一般都有集成消息中間件的能力。類(lèi)似ServiceMix的ESB可以看到核心是基于OSGI運(yùn)行框架下的ActiveMQ+CXF組件來(lái)實(shí)現(xiàn)基礎(chǔ)核心功能。沒(méi)有設(shè)計(jì)器和管控平臺(tái),引擎也可以獨(dú)立部署和運(yùn)行,即可以自己寫(xiě)代碼或?qū)懪渲梦募?,將開(kāi)發(fā)好的服務(wù)包部署到ESB引擎環(huán)境里面。
一個(gè)ESB引擎本身也需要部署在application server里面,即引擎可以部署在類(lèi)似weblogic,jboss或tomcat等各種中間件容器中。而對(duì)于很多開(kāi)源的ESB可以看到引擎本身已經(jīng)集成了更加輕量的Jetty作為服務(wù)運(yùn)行容器。
其次是ESB設(shè)計(jì)器,設(shè)計(jì)器是屬于開(kāi)發(fā)和設(shè)計(jì)態(tài)的一個(gè)內(nèi)容,重點(diǎn)則是對(duì)http,rest,消息等各種內(nèi)容進(jìn)行集成。當(dāng)前類(lèi)似talend和mule等都提供了很強(qiáng)大的服務(wù)設(shè)計(jì)器能力。即我們常說(shuō)的服務(wù)代理,http和soap服務(wù)集成,數(shù)據(jù)庫(kù)適配,路由,消息集成和適配,分支和條件判斷,異常處理,任務(wù)作業(yè),組合服務(wù)等都是設(shè)計(jì)器需要支撐的核心能力。
設(shè)計(jì)器往往是給服務(wù)開(kāi)發(fā)和設(shè)計(jì)人員使用,目的是為了簡(jiǎn)化服務(wù)的開(kāi)發(fā)和封裝,提升開(kāi)發(fā)效率,一個(gè)開(kāi)放的架構(gòu)模式最好的方式就是脫離了設(shè)計(jì)器仍然可以通過(guò)其他手工方式進(jìn)行服務(wù)的開(kāi)發(fā)和封裝,而不是被設(shè)計(jì)器綁定。而對(duì)于設(shè)計(jì)器本身的輸出,一種是轉(zhuǎn)化為了普通的java代碼,還有一種方式是設(shè)計(jì)器的輸出為xml配置文件??梢钥吹綄?duì)于xml配置文件這種方式更加方便和解耦,在設(shè)計(jì)器產(chǎn)生部署包或測(cè)試運(yùn)行的時(shí)候,設(shè)計(jì)器端首先是讀取xml配置文件的內(nèi)容再動(dòng)態(tài)生成和部署服務(wù)[3]。
最后一個(gè)內(nèi)容是SOA管控平臺(tái),主要的作用是實(shí)現(xiàn)服務(wù)的全生命周期管理,包括服務(wù)的元數(shù)據(jù)管理,服務(wù)目錄庫(kù),服務(wù)的申請(qǐng),服務(wù)的開(kāi)通和鑒權(quán),服務(wù)運(yùn)行日志審計(jì)和監(jiān)控,服務(wù)運(yùn)行分析,服務(wù)預(yù)警,服務(wù)SLA等各種功能。即SOA管控平臺(tái)提升了對(duì)ESB引擎本身的管控和治理能力[4]。
ESB數(shù)據(jù)傳輸流程:
(1)推送流程:接收、校驗(yàn)、構(gòu)建SOAP響應(yīng)、推送數(shù)據(jù)、保存響應(yīng)。
(2)獲取流程:接收、校驗(yàn)、構(gòu)建SOAP響應(yīng)、請(qǐng)求數(shù)據(jù)、保存響應(yīng)。
(3)服務(wù)檢測(cè):定時(shí)觸發(fā)、構(gòu)建SOAP響應(yīng)、調(diào)用檢測(cè)、更新?tīng)顟B(tài)。
(4)數(shù)據(jù)重傳:定時(shí)觸發(fā)、根據(jù)失敗數(shù)據(jù)查找對(duì)應(yīng)服務(wù)和方法、構(gòu)建SOAP響應(yīng)、發(fā)送[5]。
3ESB在工廠(chǎng)的實(shí)施
ESB在系統(tǒng)間通訊方面就起了很重要的作用。所有通訊都通過(guò)ESB服務(wù)器,并且對(duì)所有系統(tǒng)開(kāi)放的接口都是一樣的,在未來(lái)有新系統(tǒng)需要與原有系統(tǒng)進(jìn)行通訊的時(shí)候就可以只進(jìn)行一次開(kāi)發(fā)。ESB主要解決系統(tǒng)異構(gòu)集成、 業(yè)務(wù)功能擴(kuò)展、數(shù)據(jù)共享和數(shù)據(jù)交換的問(wèn)題,同時(shí)具有不錯(cuò)的拓展性,能很好地適應(yīng)未來(lái)企業(yè)現(xiàn)代化發(fā)展趨勢(shì)。
工廠(chǎng)目前使用的ESB是使用WEB并通過(guò)XML通訊的,可以在ESB服務(wù)器上查看所有系統(tǒng)間的通訊過(guò)程,并可看到具體的申請(qǐng)和反饋信息。我們可以通過(guò)監(jiān)控服務(wù)調(diào)用的成功率、服務(wù)響應(yīng)平均時(shí)間、調(diào)用違規(guī)次數(shù)等指標(biāo)來(lái)了解服務(wù)的運(yùn)行情況。
4結(jié)束語(yǔ)
MES作為生產(chǎn)調(diào)度指揮系統(tǒng),需要與其他所有生產(chǎn)相關(guān)的系統(tǒng)進(jìn)行通訊,從而指揮整個(gè)生產(chǎn)系統(tǒng)相互配合。本文針對(duì)企業(yè)服務(wù)總線(xiàn)ESB進(jìn)行了使用及技術(shù)方面的說(shuō)明,詳細(xì)描述了ESB的核心架構(gòu)和重要作用,結(jié)合工廠(chǎng)的實(shí)際情況,將現(xiàn)有系統(tǒng)進(jìn)行整合,而整合這些系統(tǒng)的通信手段就是ESB。所有需整合的系統(tǒng)依照ESB的接口標(biāo)準(zhǔn)修改或開(kāi)發(fā)統(tǒng)一的接口,系統(tǒng)的連接方式由原本體外通訊修改為:系統(tǒng)?ESB?系統(tǒng)。
參考文獻(xiàn)
[1] 趙萬(wàn)青.數(shù)據(jù)交換與共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].湖北:華中科技大學(xué),2012.
[2] 薛軍超.MySQL網(wǎng)絡(luò)數(shù)據(jù)庫(kù)開(kāi)發(fā)[M].北京:人民郵電出版社,2001: 229.
[3] 王翔,孫遜.模式-工程化實(shí)現(xiàn)及擴(kuò)展(設(shè)計(jì)模式C# 版)[M].北京:電子工業(yè)出版社,2012:10.
[4] 趙朋飛.基于ESB的Web服務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2013,(10):204-207.
[5] 楊毅,楊杰.一種提高軟件需求分析質(zhì)量的方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(5):16-20.