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