消息中間件在數(shù)據(jù)交換中的應用研究及其面臨的挑戰(zhàn)
摘要:簡要介紹了消息中間件在數(shù)據(jù)交換中的應用,論述了消息中間所面臨的挑戰(zhàn)及應對措施:傳輸消息大小不受限制;同時支持Windows 2000/nt/98/ME等多種操作系統(tǒng),并能通過配置充分發(fā)揮不同操作系統(tǒng)的性能;實現(xiàn)消息隊列操作的回滾與提交,使消息進行多級回執(zhí);以COM形式提供MQ Clinent API。
關鍵詞:數(shù)據(jù)交換 消息中間件 消息隊列 COM
計算機技術的不斷推陳出新,帶來了消息化發(fā)展的新浪潮,人們感受到了計算機及網(wǎng)絡技術所帶來的好處,于是對電子化、信息化應用的需求也越來越迫切。信息技術以其強大的滲透力,深入到社會經(jīng)濟生活的各個方面。在商業(yè)金融等領域,電子數(shù)據(jù)交換作為一種新的商務手段正在被廣泛使用。
數(shù)據(jù)交換EDI(Electronic Data Interchange)是一種計算機應用技術,根據(jù)事先達成的協(xié)議,將信息按照一定的標準進行格式化處理,并把這些格式化的數(shù)據(jù),通過計算機通信網(wǎng)絡在其計算機系統(tǒng)之間進行交換和自動處理。作為計算機通信技術的一部分,EDI可以應用于制造業(yè)、運輸業(yè)、零售業(yè)以及衛(wèi)生保健和政府部門等各種經(jīng)濟部門之中。
消息隊列中間件MOM(Message-Oriented Middleware)是一種特定的中間件,它利用高效可靠的消息傳遞機制進行平臺無關的數(shù)據(jù)交換,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。
1 數(shù)據(jù)交換的研究與應用現(xiàn)狀
1.1 國際發(fā)展現(xiàn)狀及趨勢
西方發(fā)達國家已普遍采用EDI。據(jù)統(tǒng)計,1992年底世界上使用EDI的企業(yè)超過10萬家,95年達到40萬家。美國早在60年代初期,就在公路、鐵路、海運和空運中應用EDI,而且每年還以100%的速度增長;西歐各國已將EDI應用于汽車、化工、電子、運輸、保險、分銷零售業(yè)中;日本已在銷售、貿(mào)易、運輸、和制造業(yè)中廣泛使用EDI;新加坡聲稱95%的貿(mào)易用EDI實現(xiàn)。據(jù)悉,美國政府及歐洲共同體大部分國家的海關宣布,從1992年起,采用EDI方式輸海關業(yè)務,如不采用EDI方式,其手續(xù)將被推遲辦理,或不再選為貿(mào)易伙伴。
1996年,亞洲六個國家和地區(qū)(中國、日本、印度、馬來西亞、菲律賓和中國***省)達成協(xié)議,將共同開發(fā)EDI系統(tǒng),以便使這些國家和地區(qū)在進出口過程中能夠實時采集進出口數(shù)據(jù),有效對客戶進行管理,減少報關錯誤。這無疑會加快亞洲國家的EDI建設進程。
在歐洲,一些大公司,包括超市連鎖公司,已經(jīng)開始對不開通EDI的供應商實行制裁措施(價格、處理時間、付款方式上實行岐視政策)。
新加坡貿(mào)易發(fā)展局宣布:從1999年1月1日起,所有進出口貿(mào)易都必須用EDI方式申報。
香港地區(qū)從2000年開始全面關閉進出口報關柜臺,所有的進出口報關必須通過EDI方式。
EDI的發(fā)展趨勢:
(1)應用EDI的行業(yè)會增多;
(2)EDI與其他信息傳送技術和系統(tǒng)的一體化;
(3)EDI技術將受Internet的沖擊。
1.2 國內(nèi)發(fā)展現(xiàn)狀
我國也早已經(jīng)開始重視和普及EDI技術,“八五”抓基礎、抓試點;“九五”建立起中國貿(mào)易網(wǎng)(China Trade Network),盡快實現(xiàn)與國際貿(mào)易網(wǎng)的大聯(lián)通,全面推行EDI。
近幾年來,國內(nèi)方正、中軟、啟宏科技、南通等軟件公司在數(shù)據(jù)交換平臺方面都已經(jīng)快速發(fā)展。
方正數(shù)碼公司2002年提出了面向信息資源整合的跨地域、跨部門應用技術框架,為橫跨多個政府機的服務、監(jiān)管智能的業(yè)務實現(xiàn)和同一機構內(nèi)多個部門不同業(yè)務系統(tǒng)之間的數(shù)據(jù)整合提供了進行有效轉換和交流的安全信息交換平臺——方正易暢InfoHub。
方正易暢InfoHub安全信息交換平臺的信息系統(tǒng)中為終端節(jié)點提供安全可靠的消息傳輸。它采用基于XML技術的消息結構進行信息的表達,存儲及傳輸。而作為封裝在消息結構中的消息內(nèi)容可以是XML格式的信息,EDI格式的信息,或者是采用用戶自己定義的格式的信息。
由中軟網(wǎng)絡技術股份有限公司與河南省國家稅務局聯(lián)合開發(fā)出《行政管理與監(jiān)控考核系統(tǒng)》填補了國家辦公軟件的空白。
中軟股份在此基礎之上建立系統(tǒng)框架,并通過技術框架與功能框架完美結合,使功能不斷擴充與完善,完成了《行政管理與監(jiān)控考核系統(tǒng)》。該系統(tǒng)已經(jīng)在駐馬店市國稅局得到了全面的推廣與實話,為提升稅務行業(yè)行政管理水平和質量做出了貢獻。
啟宏科技電子數(shù)據(jù)交換平臺,不僅為致力于提供數(shù)據(jù)交換與系統(tǒng)整合功能的軟件開發(fā)商提供基礎開發(fā)平臺,同時也可直接運用于各種行業(yè)及政府公用基礎數(shù)據(jù)交換平臺的建設。
2 存在的問題及解決方案
目前EDI技術需要解決如下問題:
(1)網(wǎng)絡通信傳輸標準:解決異型機、異型網(wǎng)絡環(huán)境下的信息交換;
(2)交易業(yè)務格式標準化:交易雙方必須使用相同的交易文件格式;
(3)語言文字標準化:交易雙方應使用相互理解的語言文字進行交換;
(4)EDI中心的建立與管理規(guī)范;
(5)權威性與合法性;
(6)安全保密性。
隨著EDI技術應用的深入,人們認識到:用戶將不會再采用大而僵化的通用產(chǎn)品,他們將通過構件集成的方式實現(xiàn)個性化的IT方案。權威市場研究及顧問機構Gartner指出,到2005年,至少70%的新的應用軟件將會以構件化的方式基于架構開發(fā)而成。
所有這一切決定了復雜而僵化的編碼式的軟件體系即將靈活的構件集成式的軟件體系取代。而中間件(Middleware)技術則為構件化應用軟件提供了一個實現(xiàn)資源共享的集成平臺。
3 中間件技術
起步于二十世紀90年代初期的中間件,是一類軟件的總稱,實現(xiàn)網(wǎng)絡互連、應用之間的互操作,與操作系統(tǒng)和數(shù)據(jù)庫并稱為三大基礎軟件。它位于操作系統(tǒng)和應用系統(tǒng)之間,是一種獨立的系統(tǒng)軟件或服務程序,應用軟件借助該軟件在不同平臺、不同的應用環(huán)境之間實現(xiàn)資源共享。
中間件是位于平臺(硬件和操作系統(tǒng))和應用之間的通用服務。如圖1所示,這些服務具有標準的程序接口和協(xié)議。針對不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口和協(xié)議規(guī)范的多種實現(xiàn)。
中間件所包括的范圍十分廣泛,針對不同的應用需求涌現(xiàn)出多種各具特色的中間件產(chǎn)品?;谀康暮蛯崿F(xiàn)機制的不同,將平臺分為以下主機幾類:消息隊列中間件、分布式面向對象中間件和事務處理中間件等。
消息隊列服務是一種松耦合的分布式應用集成形式。發(fā)送者將消息發(fā)送給消息服務器,消息服務器將消息存放在若干隊列中,在合適的時候再將消息轉發(fā)給接收者。這種模式下,發(fā)送和接收是異步的,發(fā)送者無需等待;二者的生命周期未必相同;發(fā)送消息的時候接收者不一定運行,接收消息的時候發(fā)送者也不一定運行;一對多通信:對于一個消息可以有多個接收者。
消息隊列中間件最重要的功能是及時提供可靠的消息通信手段。為了能夠完成消息的可靠傳輸,一般情況下,使用隊列的方式進行消息管理,也就是說,能常在進行數(shù)據(jù)傳輸時,將數(shù)據(jù)按照用戶定義的大小,拆分成若干消息放入消息隊列,按照同步或異步的通信方式發(fā)送或者接收消息。
在當前消息系統(tǒng)工程中,出于功能、安全性、可靠性等方面的考慮,大量使用路由器、交換機、防火墻的網(wǎng)絡設備,或使用集群、雙機熱備份等網(wǎng)絡技術,網(wǎng)絡結構日趨復雜。為了能夠滿足網(wǎng)絡使用的要求,中間件產(chǎn)品通??梢圆捎枚喾N方式進行部署,做到系統(tǒng)之間構筑一對一、一對多、多對一、多對多的樹型網(wǎng)絡結構,使系統(tǒng)配置和管理大為簡化,同時也能滿足系統(tǒng)數(shù)據(jù)傳輸?shù)囊蟆?/P>
消息傳輸中間件的跨平臺能力也是中間件的重要指標。為滿足異構平臺的數(shù)據(jù)通信要求,消息傳輸均使用標準的IP包封裝,因此中間件產(chǎn)品能做到真正跨平臺的數(shù)據(jù)通信。此外,消息傳輸中間件通常都提供豐富的API函數(shù)接口,可以支持標準C/C++、Microsoft Visual C++、Microsoft Visual Basic、Borland C、PowerZBuilder、Java等開發(fā)語言,特別是對標準的C/C++和Java的支持,方便在不同應用平臺的應用開發(fā),同時實際上也增強了消息傳輸中間件的跨平臺能力。
消息隊列服務系統(tǒng)即是把消息中間件技術應用于實踐中一種位于平臺(硬件和操作系統(tǒng))和應用之間的服務程序。
消息隊列是在多個不同的應用之間實現(xiàn)相互通信的一種異步傳輸模式,相互通信的應用可以分布于同一臺機器上,也可以分布于相連的網(wǎng)絡空間中的任一位置。其實現(xiàn)原理是:消息的發(fā)送者把自己想要發(fā)送的信息放入一個容器中(Message),然后把它保存至一個系統(tǒng)公用空間的消息隊列(Message Queue)中;本地或者是異地的消息接收程序再從該隊列中取出發(fā)給它的消息進行處理。
在消息傳遞機制中,有兩個重要的概念。一個是消息,一個是隊列。消息是由通信的雙方所需要傳遞的信息,它可以是各式各樣的媒體,如文本、聲音、圖象等等。消息最終的理解方式,為消息傳遞的雙方事先商定,這樣做的好處是,一是相當于對數(shù)據(jù)進行了簡單的加密,二則采用自己定義的格式可以節(jié)省通信的傳遞量。消息可以含有發(fā)送和接收者的標識,這樣只有指不定期的用戶才能看到只傳遞給他的信息和返回是否操作成功的回執(zhí)。消息也可以含有時間戳,以便于接收方對某些與時間相關的應用進行處理。消息還可以含有到期時間,它表明如果在指定時間內(nèi)消息還未到達則作廢,這主要應用與時間性關聯(lián)較為緊密的應用。
消息隊列是發(fā)送和接收消息的公用存儲空間,可以存在于內(nèi)存中或者是物理文件中。消息可以以兩種方式發(fā)送,即快遞方式(express)和可恢復模式(recoverable),它們的區(qū)別在于,快遞方式為了消息的快速傳遞,把消息放置內(nèi)存中,而不放于物理磁盤上,以獲取較高的處理能力;可恢復模式在傳送過程的每一步驟中,都把消息寫入物理磁盤中,以得到較好的故障恢復能力。消息隊列可以放置在發(fā)送方、接收方所在的機器上,也可以單獨放置在另外一臺機器上。正是由于消息隊列在放置方式上的靈活性,形成了消息傳送機制的可靠性。當保存消息隊列的機器發(fā)生故障而重新啟動以后,以可恢復模式發(fā)送的消息可以恢復到故障發(fā)生之前的狀態(tài),而以快遞方式發(fā)送的消息則丟失。另一方面,采用消息傳遞機制,發(fā)送方必須再擔心接收方是否啟動、是否發(fā)生故障等非必要因素,只要消息成功發(fā)送出去,就可認為處理完成,而實際上對方可能甚至未曾開機,或者實際完成時可能已經(jīng)是第二天了。
采用消息隊列技術帶來的好處是:由于是異步通信,無論是發(fā)送方還是接收方都不用等待對方返回成功消息,就可以執(zhí)行余下的代碼,因而大大地提高了事物處理的能力;當信息傳送過程中,信息發(fā)送機制具有一定功能的故障恢復能力;消息傳遞機制使得消息通信的雙方具有不同的物理平臺成為可能。
消息隊列分為用戶創(chuàng)建隊列和系統(tǒng)隊列,用戶隊列分為:
(1)“公共隊列”在整個可傳送消息的“消息隊列”網(wǎng)絡中復制并傳輸,并且有可能由網(wǎng)絡連接的所有站點訪問。
(2)“專用隊列”不在整個網(wǎng)絡中發(fā)布。相反,它們僅在所駐留的本地計算機上可用。專用隊列只能由知道隊列的完整路徑名或標簽的應用程序訪問。
(3)“管理隊列”包含確認在給定“消息隊列”網(wǎng)絡中發(fā)送的消息回執(zhí)的消息。指定希望MessageQueue組件使用的管理隊列。
(4)“響應隊列”包含目標應用程序接收到消息時返回給發(fā)送應用程序的響應消息。指定希望MessageQueue組件使用的響應隊列。
系統(tǒng)隊列分為:
(1)“日記隊列”可選地存儲發(fā)送消息的副本和從隊列中移除的消息副本。
(2)“死信隊列”存儲無法傳送或已過期的消息的副本。
(3)“專用系統(tǒng)隊列”是一系列存儲系統(tǒng)執(zhí)行消息處理操作所需的管理和通知消息的專用隊列。
消息隊列和電子郵件著很多相似處,他們都包含多個屬性,用于保存消息,消息類型中都指出發(fā)送者和接收者的地址;然而他們的用處卻有著很大的區(qū)別:消息隊列的發(fā)送者和接收者是應用程序,而電子郵件的發(fā)送者和接收者通常是人。
圖2是消息隊列應用程序的體系結構。
典型的MOM系統(tǒng)有:IBM的MQSeries、Microsoft的MSMQ等。
微軟消息中間件MSMQ可以在應用之間實現(xiàn)推送式的商務傳輸環(huán)境,即使在可靠性不高的網(wǎng)絡上也能建立可靠的應用。它具有易用、應用高度集成的特點。
由于完全支持COM、動態(tài)目標服務構架以主內(nèi)置集中式系統(tǒng)管理,MSMQ成為windows 2000 server上最容易使用、總署和管理的消息隊列產(chǎn)品。它提供全面的消息隊列功能,比如可靠而有強性的消息傳送、基于開銷的消息路由以及對事務處理的完全支持。MSMQ通過微軟的MSMQ-MQ series橋來提供與Mqseries緊密的互操作性,同樣通過leve18系統(tǒng)的產(chǎn)品提供與其它消息隊列產(chǎn)品的連接。
但它存在的不足是:它要求NT4.0以上,MQ1.0是基于SQL,其性能低而不穩(wěn)定。WINDOWS2000版本以后,開始實用,但也只能開發(fā)出縣級以下開發(fā)系統(tǒng),開發(fā)系統(tǒng)級別收到了一定的限制。
IBM的MQSeries中間件產(chǎn)品,以消息隊列的方式為分布式環(huán)境下實現(xiàn)程序之間的通信提供了靈活、快速并且易于使用的解決方案。這種消息交換與硬件、操作系統(tǒng)無關,并能夠保證數(shù)據(jù)既不會丟失又不會被復制。
MQSeries提供了一系列功能,對系統(tǒng)進行集成以提供快速、可靠和一致的系統(tǒng)內(nèi)信息訪問能力。MQSeries以消息處理和消息排隊的通信模式提供應用到應用的邊連接?;谕ㄐ胖虚g件MQSeries開發(fā)七號信令監(jiān)測系統(tǒng),能夠保證信息聯(lián)通的可靠性和安全性,同時也縮短了開發(fā)時間 ,為企業(yè)贏得市場。
IBM的Mqserices系列市場占有率高,性能穩(wěn)定,但該開發(fā)系統(tǒng)價格昂貴,在我國一般公司、企業(yè)等單位的使用就受到一定的限制。
CNT(CSS Network Technology)MQ Service是中軟網(wǎng)絡技術股份公司開發(fā)的一種分布式消息隊列服務系統(tǒng),是一個架構于Windows系統(tǒng)平臺的消息隊列服務系統(tǒng),較好地解決了目前消息隊列服務系統(tǒng)存在的缺陷和不足。
4 消息中間件所面臨的挑戰(zhàn)
消息隊列服務系統(tǒng)中,消息傳輸?shù)目煽啃耘c消息的大小受到一定的制約,目前,微軟和IBM的消息中間件產(chǎn)品對消息的大小和容量都有一定的限制,消息中間件在以后的開發(fā)中,將會向傳輸?shù)南⒋笮『腿萘坎皇芟拗频姆较虬l(fā)展??梢允褂貌鸱趾徒M裝技術,實現(xiàn)整個系統(tǒng)對所傳輸?shù)南⒋笮『腿萘坎皇芟拗啤?/P>
為了消息傳輸?shù)目煽啃阅茏銐蚋?,消息中間件將會使用消息多級回執(zhí)技術,使消息可以回滾和可以反悔,當消息從隊列中被提取的同時其暫存緩存區(qū)中,此時即使斷電,也可以保證消息的可靠傳輸而不被延遲和丟失。
消息隊列服務系統(tǒng)處理高并發(fā)服務是又一技術難點,服務器由原來處理5個并發(fā)任務到16并發(fā)任務,再到2000并發(fā)任務一直在不斷的改進。使用異步I/O機制,處理好進程與線程的正確關系是消息隊列服務系統(tǒng)又一技術關鍵所在。
以以COM形式提供MQ Client API是目前消息隊列服務系統(tǒng)的需求。API面對過程函數(shù)的組件接口在使用過程中會帶來一定的麻煩,使用COM面向對象的組件接口比使用API組件接口有很大的好處??梢詼p少定義函數(shù)、附加附件、制定優(yōu)先級等一系列繁瑣的過程。
5 消息中間件應用展望
隨著消息中間件應用的發(fā)展,消息中間件的應用前景會越來截止廣闊,將會脫離數(shù)據(jù)傳輸?shù)姆懂牰蔀橐环N新的應用模式;用消息驅動使異步更合理更優(yōu)化;用消息隊列來實現(xiàn)負載均衡機制也是一個很好的理念;目前各種消息隊列服務系統(tǒng)都各自用自己的傳輸協(xié)議,將來的發(fā)展趨勢會有通用的傳輸協(xié)議。
評論
查看更多