《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 基于企業(yè)服務(wù)總線消息補(bǔ)償方法的設(shè)計(jì)
基于企業(yè)服務(wù)總線消息補(bǔ)償方法的設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2013年第10期
孫赫勇
(南車青島四方機(jī)車車輛股份有限公司 信息技術(shù)部,山東 青島266111)
摘要: 基于企業(yè)服務(wù)總線實(shí)施系統(tǒng)集成過(guò)程中,配置基于消息的監(jiān)控平臺(tái),并添加基于消息的事務(wù)處理及異常干預(yù)補(bǔ)償機(jī)制。當(dāng)傳輸通道中出現(xiàn)異常消息時(shí),補(bǔ)償機(jī)制根據(jù)捕捉到的異常信息進(jìn)行參數(shù)匹配后基于消息進(jìn)行補(bǔ)償處理并存儲(chǔ)在緩存隊(duì)列中,根據(jù)需要可以對(duì)緩存隊(duì)列中的消息重新獲取和發(fā)送,避免異常消息丟失,確保了集成數(shù)據(jù)傳輸?shù)目煽啃院汪敯粜浴?
Abstract:
Key words :

摘  要: 基于企業(yè)服務(wù)總線實(shí)施系統(tǒng)集成過(guò)程中,配置基于消息的監(jiān)控平臺(tái),并添加基于消息的事務(wù)處理及異常干預(yù)補(bǔ)償機(jī)制。當(dāng)傳輸通道中出現(xiàn)異常消息時(shí),補(bǔ)償機(jī)制根據(jù)捕捉到的異常信息進(jìn)行參數(shù)匹配后基于消息進(jìn)行補(bǔ)償處理并存儲(chǔ)在緩存隊(duì)列中,根據(jù)需要可以對(duì)緩存隊(duì)列中的消息重新獲取和發(fā)送,避免異常消息丟失,確保了集成數(shù)據(jù)傳輸?shù)目煽啃院汪敯粜浴?br /> 關(guān)鍵詞: 企業(yè)服務(wù)總線;監(jiān)控平臺(tái);消息補(bǔ)償

    在基于企業(yè)服務(wù)總線系統(tǒng)集成平臺(tái)中,配置消息監(jiān)控平臺(tái)對(duì)消息流進(jìn)行實(shí)時(shí)監(jiān)控,針對(duì)每個(gè)消息傳輸步驟都有明確可視化的狀態(tài)變化數(shù)據(jù), 包括消息數(shù)據(jù)運(yùn)行情況統(tǒng)計(jì)、出錯(cuò)信息查看、傳輸數(shù)據(jù)歷史溯源,可以通過(guò)監(jiān)控平臺(tái)展示出來(lái)。在消息監(jiān)控平臺(tái)中采用消息跟蹤法捕捉異常,并根據(jù)異常消息的反饋信息進(jìn)行情景參數(shù)配置,對(duì)可預(yù)料范圍內(nèi)的異常進(jìn)行糾正、事物回滾,實(shí)現(xiàn)消息補(bǔ)償,預(yù)料外的異常消息也會(huì)存儲(chǔ)到中間件緩存隊(duì)列中,根據(jù)需要經(jīng)人工干預(yù)對(duì)消息可以重新獲取、重新發(fā)送,避免出現(xiàn)異常后消息丟失。消息補(bǔ)償機(jī)制主要采用消息跟蹤、消息補(bǔ)償、異常干預(yù)三種方法實(shí)現(xiàn)。
1 消息跟蹤
    制定“CQSF-XML”的數(shù)據(jù)交換模型作為統(tǒng)一的消息報(bào)文格式,規(guī)范系統(tǒng)間消息通信標(biāo)準(zhǔn),結(jié)構(gòu)化數(shù)據(jù)便于消息跟蹤功能的實(shí)現(xiàn),同時(shí)體現(xiàn)了系統(tǒng)集成的契約原則。CQSF-XML消息報(bào)文主要格式[1]如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <TradeData>
    <BaseInfo>
    <TradeSeq>信息傳輸交易序列號(hào)</TradeSeq>
    <ActionCode>操作編碼</ActionCode>
    <TradeTime>信息傳輸交易時(shí)間</TradeTime>
    <SourceSys>信息傳輸源系統(tǒng)名稱</SourceSys>
    <Target>信息傳輸源系統(tǒng)名稱</Target>
    <ResultCode>應(yīng)答碼</ResultCode>
    <ResultMsg>返回消息</ResultMsg>
    <ExceptionMsg>錯(cuò)誤信息描述</ExceptionMsg>
    </BaseInfo>
    <SwitchMsg>業(yè)務(wù)信息</SwitchMsg>
    </TradeData>
    消息報(bào)文內(nèi)容分為報(bào)文頭信息(BaseInfo)和業(yè)務(wù)數(shù)據(jù)信息(SwitchMsg),報(bào)文頭信息中包含傳輸控制管理信息和一些消息實(shí)時(shí)狀態(tài)標(biāo)識(shí)。其中ResultCode(應(yīng)答碼)描述消息錯(cuò)誤級(jí)別。主要應(yīng)答碼定義如表1所示。

    在企業(yè)服務(wù)總線消息傳輸過(guò)程中,數(shù)據(jù)在每個(gè)節(jié)點(diǎn)都會(huì)發(fā)生變化,將這一系列的信息變化記錄下來(lái)就組成信息交換過(guò)程中的監(jiān)控記錄,包括系統(tǒng)的整體運(yùn)行狀況。另外,對(duì)監(jiān)控記錄劃分級(jí)別,可實(shí)現(xiàn)動(dòng)態(tài)更改消息監(jiān)控深度,從而可以根據(jù)不同的需要實(shí)現(xiàn)不同級(jí)別的信息監(jiān)控。消息跟蹤架構(gòu)[2]示意圖如圖1所示。

2 消息補(bǔ)償
    消息補(bǔ)償架構(gòu)示意圖如圖2所示。源系統(tǒng)通過(guò)企業(yè)服務(wù)總線同時(shí)向系統(tǒng)B和系統(tǒng)C發(fā)送數(shù)據(jù),請(qǐng)求服務(wù)信息被放在緩存中,作為事務(wù)處理機(jī)制提交,一旦系統(tǒng)C請(qǐng)求調(diào)用失敗,就會(huì)觸發(fā)異常處理程序。異常處理程序根據(jù)消息報(bào)文進(jìn)行事務(wù)回滾處理,依次調(diào)用系統(tǒng)B和系統(tǒng)C中已注冊(cè)的事務(wù)補(bǔ)償處理程序回滾業(yè)務(wù)數(shù)據(jù),業(yè)務(wù)數(shù)據(jù)被存儲(chǔ)在MQ中,等待重新發(fā)送。
3 異常干預(yù)
    系統(tǒng)實(shí)時(shí)檢查事件庫(kù)中的異常信息,根據(jù)預(yù)先在WMB中配置的E-mail節(jié)點(diǎn)自動(dòng)向指定人員發(fā)送異常通知郵件。維護(hù)人員通過(guò)異常干預(yù)控制界面定位異常信息,并從預(yù)先配置的異常干預(yù)措施中選擇解決方案。異常干預(yù)功能提供跟蹤處理,支持消息重傳、批處理過(guò)程重做等操作,可以對(duì)異常干預(yù)結(jié)果進(jìn)行查看。異常干預(yù)融合在監(jiān)控平臺(tái)之中。例如當(dāng)某個(gè)消息出現(xiàn)異常而中斷時(shí),可以在監(jiān)控平臺(tái)中查詢到這個(gè)異常中斷的服務(wù),同時(shí)查詢界面中會(huì)顯示能夠處理該異常的一些可行的異常干預(yù)措施(例如再運(yùn)行該任務(wù)等)。異常干預(yù)架構(gòu)示意圖如圖3所示。

    企業(yè)服務(wù)總線消息補(bǔ)償處理機(jī)制,采用系統(tǒng)化方法保證消息傳輸正確,及時(shí)準(zhǔn)確定位錯(cuò)誤原因,在出現(xiàn)異常時(shí)進(jìn)行事務(wù)回滾,確保消息的可靠性傳輸,提高了我公司企業(yè)服務(wù)總線運(yùn)行的健壯性。
參考文獻(xiàn)
[1] 丁躍潮,張濤.XML實(shí)用教程(第1版)[M].北京:北京大學(xué)出版社,2006.
[2] 張瀟毅,鄧波,丁鯤.一種基于事件流處理引擎的企業(yè)服務(wù)總線平臺(tái)[J].解放軍理工大學(xué)學(xué)報(bào),2010,11(2):178-183.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。