摘 要:針對(duì)程序開(kāi)發(fā)者各應(yīng)用程序間沒(méi)有統(tǒng)一數(shù)據(jù)傳輸標(biāo)準(zhǔn),很難實(shí)現(xiàn)程序間的交互這一問(wèn)題,提出了基于 XML 和消息中間件的統(tǒng)一的信息交換模型,實(shí)現(xiàn)了各區(qū)域間信息的共享與交互。
關(guān)鍵詞:信息交換模型;消息中間件;XML
引言
信息交換是指不同計(jì)算機(jī)應(yīng)用程序之間互相交流有用信息,便于跨平臺(tái)、跨數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交換,主要應(yīng)用于電子商務(wù)、遠(yuǎn)程服務(wù)、數(shù)據(jù)集成等領(lǐng)域。信息交換的前提條件是進(jìn)行信息互換的應(yīng)用程序間有著統(tǒng)一的數(shù)據(jù)傳輸標(biāo)準(zhǔn),但是,目前不同的應(yīng)用程序由于采用的開(kāi)發(fā)技術(shù)或者開(kāi)發(fā)平臺(tái)不同,導(dǎo)致各個(gè)應(yīng)用程序均使用自身的專有信息通信格式,很難實(shí)現(xiàn)各應(yīng)用程序之間的信息交互。
針對(duì)以上問(wèn)題提出了一種基于XML和消息中間件的信息交互模型,有效提取出各信號(hào)機(jī)提供的數(shù)據(jù),實(shí)現(xiàn)系統(tǒng)控制區(qū)域的動(dòng)態(tài)劃分和合并,以及各區(qū)域間數(shù)據(jù)的共享與交互。
1 XML與消息中間件
1.1 XML技術(shù)
1998年,互聯(lián)網(wǎng)聯(lián)合組織(W3C,World Wide Web Consortium)發(fā)布XML(eXtensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言),該語(yǔ)言將SGML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)的功能和HTML的易用性結(jié)合在了 Web應(yīng)用中,擴(kuò)展性和可驗(yàn)證性較好,而且易于使用和易于移植。因此,XML在一些中間件、電子商務(wù)等領(lǐng)域大受歡迎[1]。
XML單獨(dú)處理文檔的三個(gè)要素(數(shù)據(jù)、結(jié)構(gòu)和顯示格式)。顯示方式主要通過(guò)在StyleSheet(樣式表文件)中保存,改變文檔顯示方式只需要通過(guò)修改StyleSheet即可,許多復(fù)雜的數(shù)據(jù)關(guān)系都可以通過(guò)XML 的自我描述性表現(xiàn)[2],方便基于XML的應(yīng)用程序準(zhǔn)確查找XML文件中的數(shù)據(jù),XML可以作為數(shù)據(jù)交互標(biāo)準(zhǔn)實(shí)現(xiàn)不同系統(tǒng)間的通信[3]。
1.2 消息中間件技術(shù)
中間件位于操作系統(tǒng)和應(yīng)用程序之間的一類軟件,封裝了一類應(yīng)用程序的共性并且提供相應(yīng)的API進(jìn)行二次開(kāi)發(fā),最終完成一個(gè)應(yīng)用程序。中間件主要分為底層中間件和高層中間件。前者主要為了解決某一類問(wèn)題或者支持單個(gè)應(yīng)用程序;后者側(cè)重于整合應(yīng)用程序,和若干個(gè)應(yīng)用程序都有交互,一般運(yùn)行時(shí)都是基于底層中間件的。
消息中間件實(shí)現(xiàn)的信息交互的主要特點(diǎn)是消息傳遞機(jī)制是高效可靠而且平臺(tái)無(wú)關(guān)的?;谙⑴抨?duì)以及傳遞模型,消息中間件可以支持多通信協(xié)議,實(shí)現(xiàn)了分布式系統(tǒng)的集成。MOM的基本組成包括消息和MOM提供者、客戶端,前者主要指的是管理工具和相關(guān)API。由于MOM中提供的路由體系結(jié)構(gòu)不同,所以MOM可以應(yīng)用于集中式消息服務(wù)器上也可以由各客戶端實(shí)現(xiàn)路由功能。ActiveMQ就是其中的一種。
2 信息交換模型設(shè)計(jì)
信息交換是指不同信息實(shí)體之間信息交互的過(guò)程而信息交換模型狹義是指服務(wù)于不同信息實(shí)體間信息交互的模型,廣義是指連接多個(gè)應(yīng)用程序的接口模型。信息交換模型主要運(yùn)用于開(kāi)發(fā)基于異構(gòu)數(shù)據(jù)庫(kù)的應(yīng)用程序,完成跨平臺(tái)的信息訪問(wèn)。信息實(shí)體間的信息共享或者信息交換過(guò)程一般都分為三個(gè)步驟:生成信息、傳輸信息和處理信息。不同信息實(shí)體有不同的需求和規(guī)范,所以各信息實(shí)體涉及的技術(shù)和處理流程均有差別。
2.1 模型研究
基于 XML /消息中間件的信息交換系統(tǒng)主要包括三部分:XML處理器、消息中間件以及信息交換終端[4]。XML處理器和各異構(gòu)信息源連接,主要負(fù)責(zé)信息的采集、轉(zhuǎn)換或者信息的解析;消息中間件負(fù)責(zé)完成網(wǎng)絡(luò)環(huán)境下信息的傳輸;信息交換終端主要負(fù)責(zé)信息的加密和解密、信息的處理、信息的路由管理等。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。
2.2 模型設(shè)計(jì)
2.2.1 信息交換邏輯。整個(gè)信息交換模型包括三部分:源終端信息交換系統(tǒng),中間信息交換網(wǎng)絡(luò)和目的終端信息交換系統(tǒng),如圖2所示。
源終端信息交換系統(tǒng)是信息交換過(guò)程中的發(fā)起方,比如交通信號(hào)控制系統(tǒng)中的后臺(tái)軟件管理員想配置某路口信號(hào)機(jī)的執(zhí)行方案,此時(shí)負(fù)責(zé)發(fā)送信息的后臺(tái)管理軟件是源終端信息交換系統(tǒng),被配置的路口信號(hào)機(jī)系統(tǒng)是目的終端信息交換系統(tǒng)。中間信息交換網(wǎng)絡(luò)負(fù)責(zé)把信息通過(guò)適當(dāng)?shù)耐ㄐ沛溌忿D(zhuǎn)發(fā)到目的終端信息交換系統(tǒng)。發(fā)送端應(yīng)用程序發(fā)送信息時(shí),首先源業(yè)務(wù)應(yīng)用程序負(fù)責(zé)對(duì)原始信息進(jìn)行處理和格式轉(zhuǎn)換,然后將信息提交至源終端信息交換系統(tǒng)進(jìn)行信息的封裝,最后通過(guò)源終端信息交換系統(tǒng)把信息提交給中間信息交換網(wǎng)絡(luò)。接收端應(yīng)用程序接收信息時(shí),中間信息交換網(wǎng)絡(luò)負(fù)責(zé)將信息轉(zhuǎn)發(fā)至目的終端信息交換系統(tǒng),目的終端信息交換系統(tǒng)首先對(duì)信息進(jìn)行驗(yàn)證,然后將正確而完整的信息發(fā)送至目的應(yīng)用程序,目的應(yīng)用程序根據(jù)需求對(duì)信息進(jìn)行解析并且進(jìn)行相應(yīng)的業(yè)務(wù)處理。
2.2.2 信息交換網(wǎng)絡(luò)環(huán)境配置。信息交換網(wǎng)絡(luò)的集成主要是基于消息中間件的信息服務(wù)功能完成的。文章選用Apache 的Active MQ,Active MQ提供的標(biāo)準(zhǔn)、可靠、跨語(yǔ)言的信息傳輸系統(tǒng),主要是提供了一個(gè)信息交換平臺(tái),負(fù)責(zé)管控和完成一個(gè)集成系統(tǒng)的各子應(yīng)用程序間的通信過(guò)程[6]。Active MQ主要實(shí)現(xiàn)了信息的路由、轉(zhuǎn)發(fā)以及基于主題的發(fā)布/訂閱等功能。信息交換網(wǎng)絡(luò)組成一個(gè)信息服務(wù)域,在該信息服務(wù)域中要求安裝和配置Active MQ。
2.2.3 消息路由機(jī)制。信息交換的消息路由機(jī)制是基于主題實(shí)現(xiàn)的,以交通信號(hào)控制系統(tǒng)為例,消息路由機(jī)制如圖4所示,交通信號(hào)控制系統(tǒng)和各路口的信號(hào)機(jī)控制平臺(tái)的信息交換是通過(guò)消息中間件Active MQ實(shí)現(xiàn)的。Active MQ 屬于發(fā)布/訂閱型的消息中間件,交通信號(hào)控制系統(tǒng)作為發(fā)布端時(shí)的主題為“Teleseme Signal Messages”,信號(hào)機(jī)控制平臺(tái)作為發(fā)布端時(shí)的主題為“Signal Teleseme Messages”。交通信號(hào)控制系統(tǒng)主動(dòng)向信號(hào)機(jī)控制平臺(tái)發(fā)送消息時(shí),將消息發(fā)送至“Teleseme Signal Messages”隊(duì)列中,作為訂閱者的信號(hào)機(jī)控制平臺(tái)便從該隊(duì)列讀取消息,信號(hào)機(jī)控制平臺(tái)主動(dòng)向交通信號(hào)控制系統(tǒng)發(fā)送消息時(shí),將消息發(fā)送至“Signal Teleseme Messages”隊(duì)列中,作為訂閱者的交通信號(hào)控制系統(tǒng)從該隊(duì)列讀取消息。
3 結(jié)束語(yǔ)
文章設(shè)計(jì)的基于XML和消息中間件的信息交換模型,實(shí)現(xiàn)了各信號(hào)機(jī)提供的數(shù)據(jù)的有效提取,以及系統(tǒng)控制區(qū)域的動(dòng)態(tài)劃分和合并,但由于不同應(yīng)用系統(tǒng)間數(shù)據(jù)量差異大,且有很多實(shí)時(shí)數(shù)據(jù),如何進(jìn)一步完善更加通用、可移植的信息交換系統(tǒng),使其能夠應(yīng)用在更多的領(lǐng)域有待更深入研究。
參考文獻(xiàn)
[1]Eric Jui-Lin,Ru Hui-Tsai.An empirical study of XML/EDI[J].The Journal of Systems and Software,2011(58):271-279.
[2]趙一雪.基于XML數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢優(yōu)化的研究[D].哈爾濱工程大學(xué),2006.
[3]王曉玲,栗金峰,董逸生.基于演化計(jì)算的XML數(shù)據(jù)的關(guān)系存儲(chǔ)[J].計(jì)算機(jī)研究與發(fā)展,2003,7,40(7):1110-1116.
[4]牛德雄,武友新,江恭和.基于統(tǒng)一信息交換模型的信息交換研究[J].計(jì)算機(jī)工程與應(yīng)用,2005(21).
[5]鄒盟軍,黃煒.基于消息機(jī)制和XML的數(shù)據(jù)交換中心的設(shè)計(jì)[J].電力系統(tǒng)及其自動(dòng)化學(xué)報(bào),2004(4).
[6]史小平,趙瑋.消息隊(duì)列中間件技術(shù)研究與功能分析[J].內(nèi)蒙古科技與經(jīng)濟(jì),2009(2).
作者簡(jiǎn)介:郭小丹(1980-),女,碩士,實(shí)驗(yàn)師,主要研究方向:計(jì)算機(jī)網(wǎng)絡(luò)及單片機(jī)。