柳吉慶,石 磊,張 軍
(中國電子科技集團第38研究所,合肥 230088)
基于消息的系統異步集成框架設計與實現
柳吉慶,石 磊,張 軍
(中國電子科技集團第38研究所,合肥 230088)
為實現異步方式下的應用信息系統集成,建立了一個基于消息的系統集成框架,設計了該框架下的信息結構和分類體系,闡述了基于消息實現異步集成的消息產生和消費過程,最后介紹了一個基于該框架實現的外購件器材信息同步應用實例。
系統集成;消息服務;集成規范;企業服務總線
隨著信息技術和網絡技術的飛速發展,企業信息系統的數量和規模都在不斷增長,各個信息系統之間的數據同步和共享需求日益強烈,為實現企業內應用系統之間的互連互通,需實現企業應用之間的系統集成[1]。目前企業應用系統集成的數據信息交互主要可分為兩種方式(圖1):同步交互方式(Synchronous)以及異步交互方式(Asynchronous),二者具有不同的適用業務場景[2]。同步交互方式下,通常是一個請求(request)/應答(response)的過程,交互請求方在發出請求后會等待返回相應的結果(不管請求成功還是失敗)后才會執行后續的業務操作,例如Web服務調用屬于典型的同步交互方式。與同步交互方式不同的是,異步交互方式下的交互發起方只需要負責將相關信息發送至特定“消息容器”中,并不需要等待接收方接收或處理該消息,消息的發送方和消費方并不直接進行通信,每一個消息包含了處理它的業務邏輯所需要的數據以及數據狀態。
針對應用系統集成方式,國內外眾多學者從不同角度展開了相關的研究。Web服務是一種使用較為普遍的系統集成方式,相關學者就Web服務的語義表達、發現方法、權限控制等問題展開了大量的研究,但Web服務通常僅適用于同步交互方式。在消息集成的研究方面,目前對具體實現過程的完整表述還比較少。異步交互方式下應用系統之間是一種松散耦合關聯,當涉及到多個應用系統之間的數據同步共享時,采用基于消息的異步交互方式更加合理,本文將主要就企業應用集成中基于消息的異步交互方式相關問題進行具體闡述。

圖1 信息同步交互方式與異步方式
圖2為基于消息的企業信息系統集成總體框架。首先為保證不同信息系統對消息都能夠正確進行發送和解析,需要針對消息的分類、消息主體結構、消息身份標識等內容制定一系列統一的消息集成規范,各個應用系統都應該按照相關規范的約定產生或消費消息;消息服務器是消息的載體,提供了消息管理的一系列功能,包括消息的分發、分類、存儲、監控、安全控制等,根據消息的使用用途可將消息分為隊列(Queue)和主題(Topic)兩大類,另外因為消息產生和使用的異步性,還需要考慮消息的持久化存儲問題,可通過文件服務器或數據庫服務器進行消息的物理存儲。

圖2 消息集成總體框架示意圖
2.1消息的結構設計
消息一般由消息頭(Message Header)、消息屬性(Message Property)以及消息體(Message Body)三部分組成[4],如圖3所示。
1)消息頭
符合JMS消息規范的若干屬性,例如消息優先級、消息分組信息、消息過期標示、消息產生日期等,通常為固有屬性,和具體的業務無關。
2)消息屬性
消息頭所包含的屬性字段往往不能滿足實際的業務需求,如果需要除消息頭字段以外的值,就可以使用消息屬性,消息屬性包含屬性名和屬性值兩部分。
3)消息體
消息體是消息的核心部分,主要的業務數據信息包含在消息體內,一般來說,消息體的類型可以為文本、集合、流或對象等多種類型。

圖3 消息結構示意圖
本文設計了四個自定義消息屬性,以滿足消息產生和消費的匹配要求,如表1所示。
其中,Sender為消息的產生者標識,可以是為不同應用系統指定的唯一標識(例如對應域名或系統英文縮寫簡稱);Level為消息的描述內容等級,可分為錯誤(ERROR)、信息(INFO)和警告(WARN)等;TypeName為消息的分類關鍵詞,主要是為了方便消息使用方根據該屬性進行消息過濾;Receiver為消息指定接收者,其取值規則與Sender類似,可以為單值、集合或空(廣播類消息)。
消息體是消息的主體內容,雖然各類消息的具體內容和樣式不盡相同,但從通用性和規范性的角度考慮,對消息體采用的描述格式以及結構應作統一要求,本文將消息體內容設計為JSON文本格式,并對消息體包含的要素進行定義,如表2所示。

表1 消息自定義屬性列表

表2 消息體組成結構要素
2.2消息的分類
按照消息數據的業務范疇對消息進行分類,每一類消息又可根據描述的粒度不同進行層層細分,從而形成一個樹形的層次劃分體系。

圖4 消息層次分類結構示意圖
對于消息的發送方來說,其所發送的消息有且只歸屬一個與之對應的消息分類(消息分類樹的末端節點),消息的分類務目隨著參與集成的應用系統增多或業務集成點的拓展而不斷更新增加,根據消息集成的領域特點,制定科學合理的分類體系,是實現消息發送與消費順利銜接的重要前提務件。
2.3消息的發布/訂閱
消息從產生到被消費主要分為以下五個步驟:
1)消息的創建,消息發送方確定相關的消息屬性,消息類型(隊列還是主題)以及消息的發送模式(持久還是非持久)。
2)提供消息發送方的身份認證信息,從而與消息服務器進行連接,并指定消息發送的目的地。
3)消息消費者同樣需要提供身份認證信息,與消息服務器進行連接,指定消息過濾務件(針對topic類型消息而言)并成功實現對指定消息目的地的消息訂閱,并實時監聽該消息目的地,從而保障能夠及時獲取從該目的地傳輸過來的消息。
4)消息發送方的消息若滿足消息消費方的消息過濾務件,則消息消費方可對該消息的消息體進行進一步解析,從中獲取關鍵信息,執行后續的業務操作(例如調用ESB[5,6]服務,更新本系統相關業務數據等)。
5)消息消費方確認該消息已被收到,消息傳輸結束,若在消息消費過程中出現異常,則該消息將不被確認,待相關故障消除后,消費方仍然能獲取該消息的內容。
圖5、圖6分別描述了消息的發送和消費過程。

圖5 發送消息流程
某制造型企業先后上線了PDM和ERP系統,考慮到外購件與庫存、采購、財務等多個業務有著緊密聯系,因此將外購件的基礎信息在ERP系統中進行維護。與此同時,產品零部件中一般都會包含若干外購件,零部件的設計成果保存在PDM系統中,因此在PDM系統中同樣需要存儲外購件與設計相關的屬性信息。原先的系統集成方式為:PDM系統通過定期篩選新增或發生變更的外購件信息,從而保持與ERP系統中外購件信息的同步。這種信息集成方式存在的主要問題是實時性差,在兩次數據同步的時間間隔內,會出現新增的外購件在PDM系統中找不到、更新的外購件信息在PDM系統中無法體現等問題,通過縮小同步時間間隔雖然可以降低此類問題發生的概率,但如果同步時間間隔設置過小,則頻繁的信息服務調用又會給雙方系統造成較大的負擔,基于消息的系統集成方式則可以有效解決此問題。
針對該企業的主要業務進行分析,采用二級消息層次分類體系,將消息數據劃分為基礎數據類、業務數據類、公共數據類三個大類,每一大類下進一步劃分為若干個子類,如表3所示。
根據此消息分類系統,外購件信息集成相關設置的消息關鍵參數如表4所示。

圖6 消費消息流程

表3 消息層次分類體系實例

表4 外購件消息關鍵參數清單

圖7 外購件消息產生消費示意圖
考慮到未來可能會有多個信息系統需要使用到外購件信息,因此將外購件消息對應的消息模式定義為發布/訂閱模式,從而使得一務消息可以被多個消費者同時獲取;將消息持久化參數設置為True以確保不會發生消息丟失引起系統間外購件信息不同步的情況;消息屬性中的TypeName屬性采用了消息分類名(Material)+消息子類(MaterialChange)的格式,包含了外購件增、改、刪的幾種情況;對于新增或更新外購件的情形,PDM系統需要調用企業服務總線上發布的Web服務來獲取對應的外購件的詳細信息再做系統內外購件數據變更,而對于刪除外購件則無需調用Web服務,故其消息體內容的ServiceUrl可以為空。
圖7為基于消息的外購件信息集成示意圖。首先,PDM系統需要對消息服務器上外購件相關的消息主題進行訂閱并啟動消息監聽,當在ERP系統發生外購件信息變更時,ERP系統通過消息組件發送消息至消息服務器,PDM系統會第一時間收到該消息,對消息體進行內容解析,獲取其中的Action、ID以及ServiceUrl參數,當Action為Add或Update,通過ServiceUrl尋找并調用部署在ESB平臺上的Web服務接口,ID為外購件的唯一標識值,作為該Web服務的請求參數,ESB在此充當的是服務代理的角色,實際的服務由ERP系統提供,通過Web服務調用獲取外購件的詳細信息,在PDM系統中處理對應的外購件信息,至此整個消息的發送與消費過程結束。
本文系統介紹了一種基于消息的企業信息系統集成框架,針對消息集成中的消息參數、消息體、消息分類體系等關鍵問題進行了設計,闡述了基于該集成框架設計下的消息產生、消費過程,給出了一個具體的應用實例。該集成框架在企業內部已經得到了實際應用,并取得了良好的應用效果。
[1] 唐智勇,吳剛.基于Web Service柔性異構數據集成系統設計及查詢處理[J].微電子學與計算機,2010(8):36-40.
[2] 梅雪峰,趙文靜.基于消息隊列和Web服務的分布式系統異步交互方式體系架構[J].西北大學學報,2004(6):655-658.
[3] 紀波林,王志堅.基于JMS體系結構的消息服務技術的應用研究[J].計算機應用研究,2003,(11):48-51.
[4] 戴俊,朱曉民.基于ActiveMQ的異步消息總線的設計與實現[J].計算機系統應用,2010,(8):215,254-257.
[5] 劉云.基于ESB的企業應用集成的研究[D].西安:西安工業大學,2012.
[6] 范菁,熊麗榮,徐聰.分布式企業服務總線平臺數據集成研究及應用[J].計算機科學,2014,(2):206-214.

圖9 α1-α2仿真結果曲線
圖9中曲線1和2分別為α1-α2與轉向角δ的關系曲線。與轉速曲線相同,α1超前于α2且在輸入轉向角δ接近π/2.5時,α1率先發生躍變。
本文分析了四輪全向移動機器人的運動模式,基于電子差速技術和阿克曼轉向原理推算出不同運動模式下轉角、速度與輸入轉角關系的數學模型;在MATLAB的Simulink模塊中建立上述模型并仿真,由仿真的結果可以得到:1)四輪全向移動時,輸入角為某些特殊值時,速度或轉角會發生躍變;2)當輸入轉角δ大于60°時,v1與v2偏差較大。因此,為保證四輪獨立轉向的穩定性與各輪的協同性,δ需小于60°;當δ大于60°工況下,選擇直線運動和原地轉向相配合的模式來完成目標運動。
參考文獻:
[1] 張京,陳度,王書茂,胡小安,王冬.農用輪式機器人四輪獨立轉向驅動控制系統設計與試驗[J].農業工程學報,2015,31(18):63-70.
[2] 付宜利,李寒,徐賀,馬玉林.輪式全方位移動機器人幾種轉向方式的研究[J].制造業自動化,2005,27(10):33-37.
[3] KIM W K, KIM D H, YI B J. Kinematic modeling of mobile robots by transfer method of augmented generalized coordinates[J].RoboticsSystems,2004,21(6):302-320.
[4] 翟麗,董守全,羅開宇.四輪轂電機獨立驅動車輛轉向電子差速控制[J].北京理工大學學報,2010,30(8):901-905.
[5] Mao Xu,Wang Xina, Zhang Junchao, et al. Design of electric orchard vehicle four-wheel steering control system[J].Advanced Materials Research,2013,51(2):1966-1969.
[6] Jefri Efendi Mohd Salih, Mohamed Rizon, Sazali Yaacob,et al. Designing Omni-Directional Mobile Robot with Mecanum Wheel[J]. American Journal of Applied Sciences,2006,3(5):1831-1835.
[7] 來鑫,陳辛波,等.四輪獨立驅動與轉向電動車輛運動控制系統及控制策略研究[J],汽車工程學報,2015,5(5):335-340.
Design and implementation of synchronous system integration framework based on message
LIU Ji-qing, SHI Lei, ZHANG Jun
TP311
A
1009-0134(2016)10-0117-05
2016-06-17
柳吉慶(1982 -),男,安徽合肥人,工程師,博士研究生,主要從事企業管理信息系統集成工作。