文 本刊記者 郭嘉凱
雖然誕生已有20年時間,但消息中間件仍在各行各業(yè)的信息化建設中扮演著重要角色,而且,通過與新技術、新領域的結合,消息中間件的價值正得到更大的體現(xiàn)。
說起消息中間件,業(yè)內(nèi)很多人對其并不陌生。消息中間件誕生于上個世紀90年代,至今已經(jīng)有20年的歷史。當時,伴隨著互聯(lián)網(wǎng)應用的普及,企業(yè)需要在網(wǎng)絡環(huán)境中解決異構分布網(wǎng)絡環(huán)境下軟件系統(tǒng)的通信、互操作、協(xié)同、事務、安全等共性問題,從而提高異構分布網(wǎng)絡環(huán)境下軟件系統(tǒng)的互操作性、可移植性、適應性、可靠性等。在這種情況下,1994年IBM發(fā)布了消息隊列服務MQ系列產(chǎn)品,解決分布式系統(tǒng)異步、可靠傳輸?shù)耐ㄓ嵎諉栴},消息中間件從此誕生。
北京匯金科技股份有限公司產(chǎn)品研發(fā)中心產(chǎn)品總監(jiān)江學海:“消息中間件特別適用于需要可靠數(shù)據(jù)傳送的分布式的應用和環(huán)境?!?/p>
那么,什么是消息中間件?或者說,消息中間件的作用是什么呢?
目前,業(yè)界對于消息中間件并沒有標準的統(tǒng)一定義。一般情況下,普遍認為消息中間件的作用主要是利用高效可靠的消息傳遞機制進行與平臺無關的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模型,它可以在分布式環(huán)境下擴展進程間的通信。
可以看到,消息中間件的主要功能是進行底層數(shù)據(jù)的交換和傳遞,因此十分穩(wěn)定,也比較安全可靠?!跋⒅虚g件特別適用于需要可靠數(shù)據(jù)傳送的分布式的應用和環(huán)境。”北京匯金科技股份有限公司產(chǎn)品研發(fā)中心產(chǎn)品總監(jiān)江學海分析道。
采用消息中間件機制的系統(tǒng)中,不同的對象之間通過傳遞消息來激活對方的事件,完成相應的操作。發(fā)送者將消息發(fā)送給消息服務器,消息服務器將消息存放在若干隊列中,在合適的時候再將消息轉發(fā)給接收者。消息中間件能在不同平臺之間通信,它常被用來屏蔽掉各種平臺及協(xié)議之間的特性,實現(xiàn)應用程序之間的協(xié)同,其優(yōu)點在于能夠在客戶和服務器之間提供同步和異步的連接,并且在任何時刻都可以將消息進行傳送或者存儲轉發(fā),這也是它比遠程過程調用更進一步的原因。
正是因為其具備這樣的功能,所以一直以來,消息中間件都是企業(yè)信息化應用領域的應用重點之一。事實上,在目前國內(nèi)各行各業(yè)所建的各類系統(tǒng)中,隨處可見消息中間件的影子。如在政務行業(yè),省、市、縣多級數(shù)據(jù)傳遞交換匯總;金融行業(yè),中國人民銀行的全國票交影像交換系統(tǒng)和小額支付系統(tǒng);在交通行業(yè),海事局的船舶與船員管理系統(tǒng);在能源行業(yè),國家電網(wǎng)公司信息化“SG186”工程一體化企業(yè)級信息集成平臺項目等,在這些應用中,消息中間件都發(fā)揮著至關重要的作用。究其根源:只要有網(wǎng)絡,就會有數(shù)據(jù)(數(shù)據(jù)包,文件)傳遞,這就會牽扯到數(shù)據(jù)傳輸?shù)陌踩煽啃?,網(wǎng)絡越是發(fā)達對這類要求就越高,消息中間件就會得到長久生存發(fā)展。
事實上,最近幾年,隨著企業(yè)用戶對于信息化的重視程度越來越高,IT系統(tǒng)的規(guī)模也日益擴大,很多全國性的集團企業(yè)也都面臨著數(shù)據(jù)集成和共享的問題。因此,消息中間件的應用空間進一步擴大。
作為國內(nèi)最早從事消息中間件開發(fā)的IT服務商之一,北京匯金科技股份有限公司在幾年前就看到了這一趨勢,并且在傳統(tǒng)的消息中間件基礎上進行了擴展,開發(fā)了數(shù)據(jù)同步與交換中間件,來實現(xiàn)異構系統(tǒng)之間的數(shù)據(jù)共享和遷移?!澳壳盁o論是政府行業(yè)用戶,還是企業(yè)用戶,在這方面的需求都比較迫切。我們的這一產(chǎn)品,已經(jīng)在很多客戶處得到了成功應用。”江學海說。
“全國公共安全應急平臺就是其中一例。該應急平臺是由國務院發(fā)起建設的,要涉及很多部委、省市應急平臺的連接。而國辦、部委、省市應急平臺的應急數(shù)據(jù)是相對孤立的,局部的,分散的,是一種對外封閉的管理模式,沒有形成統(tǒng)一的應急數(shù)據(jù)共享與交換體制。有關部委,省市應急系統(tǒng)大多是屬于局部的,分散的,功能單一的系統(tǒng),而且不同系統(tǒng)之間沒有一個統(tǒng)一的標準,又采用了不同的建設平臺,出現(xiàn)了信息孤島的現(xiàn)象,無法發(fā)揮整體優(yōu)勢?!苯瓕W海舉例說道。
如果對每個平臺都進行接口的開發(fā),這一工作量顯然是十分巨大的。而在應用了數(shù)據(jù)同步與交換中間件之后,這一問題得到了很好的解決。
“各個部委、省市只需按照標準對需要共享的數(shù)據(jù)的格式進行定義,就可以很方便地完成數(shù)據(jù)的交換和傳輸?!苯绾Uf道。
事實上,消息中間件不僅在傳統(tǒng)信息化建設領域得到更廣泛的應用,近兩年,隨著云計算、物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)的發(fā)展,消息中間件與這些新技術、新領域也正在進行著融合。
例如,在物聯(lián)網(wǎng)方面,物聯(lián)網(wǎng)消息中間件就已經(jīng)在很多領域得到應用。最近幾年,基于RFID的物聯(lián)網(wǎng)應用越來越普及,已經(jīng)深入到各個行業(yè)中。大量的物聯(lián)網(wǎng)應用也給用戶帶來一個新的問題:“我要如何將我現(xiàn)有的系統(tǒng)與這些新的RFID Reader連接?”而這一問題的本質是企業(yè)應用系統(tǒng)與硬件接口的問題。因此,通透性是整個應用的關鍵,正確抓取數(shù)據(jù)、確保數(shù)據(jù)讀取的可靠性、以及有效地將數(shù)據(jù)傳送到后端系統(tǒng)都是必須考慮的問題。
物聯(lián)網(wǎng)消息中間件的出現(xiàn)則可以幫助用戶解決這一問題。物聯(lián)網(wǎng)消息中間件可以很好地扮演RFID標簽和應用程序之間的中介角色,從應用程序端使用中間件所提供的一組通用的應用程序接口(API),即能連到RFID讀寫器,讀取RFID標簽數(shù)據(jù)。這樣一來,即使存儲RFID標簽情報的數(shù)據(jù)庫軟件或后端應用程序增加或改由其他軟件取代,或者讀寫RFID讀寫器種類增加等情況發(fā)生時,應用端不需修改也能處理,省去多對多連接的維護復雜性問題。
而在移動互聯(lián)網(wǎng)方面,隨著企業(yè)移動信息化應用的普及,移動消息中間件的發(fā)展速度也十分快速,而且,其市場應用空間可能更為廣闊。
例如,一家全國性企業(yè)在應用移動營銷系統(tǒng)后,分布在全國各地的銷售人員每天都需要通過手機向總部傳輸數(shù)據(jù)和信息,而應用移動消息中間件,可以很安全地實現(xiàn)移動終端和服務器之間的數(shù)據(jù)斷點續(xù)傳。
由于消息中間件的應用空間日益廣闊,所以目前市場上的消息中間件產(chǎn)品也在日益增加。不過,這也給消息中間件的發(fā)展帶來了一些問題。其中,最大的問題之一就是如何將不同廠商的消息中間件連接起來,實現(xiàn)不同消息中間件之間的數(shù)據(jù)傳輸和信息交換。
事實上,由于缺乏統(tǒng)一的標準,各個廠商的設計和開發(fā)都是按照自己的需求進行,各個消息中間件都有不同的消息調用接口和不同的語義定義,這就造成了不同廠商的消息中間件之間不能互操作,這大大阻礙了消息中間件的發(fā)展。
目前,不同廠商消息中間件之間的連接,主要是通過JMS實現(xiàn)。JMS即Java消息服務(Java Message Service),應用程序接口是一個Java平臺中關于面向消息中間件的API,用于在兩個應用程序之間,或分布式系統(tǒng)中發(fā)送消息,進行異步通信。Java消息服務是一個與具體平臺無關的API,目前絕大多數(shù)消息中間件提供商都對JMS提供支持。
不過,雖然JMS可以解決不同消息中間件的連接問題,但由于其標準相對比較簡單,因此在應用過程中,會喪失消息中間件的一些特性。
此外,也有一些企業(yè)選擇通過專門開發(fā)的橋接器聯(lián)實現(xiàn)不同消息中間件之間的數(shù)據(jù)交換和傳輸,但也會帶來一些問題:例如傳輸速度、數(shù)據(jù)安全性等。
因此,對于消息中間件市場而言,建立一個統(tǒng)一、完善的標準規(guī)范體系,仍是其發(fā)展過程中所要面臨的重要挑戰(zhàn)之一。