【摘要】隨著大數據及物聯(lián)網(IoT)技術的應用以及普及,社會各領域對物聯(lián)網技術的需求也越來越高。傳統(tǒng)的物聯(lián)網技術不能進行大數據下的機器學習,而且需要比較高的二次開發(fā)成本;在這樣的背景下,面向大數據物聯(lián)網的中間件技術就日益重要。
【關鍵詞】消息中間件;MQ;大數據;物聯(lián)網
1. 前言
物聯(lián)網指的是借助射頻技術連接多個智能終端,并對它們進行識別和管理。物聯(lián)網的主要特征包括:(1)感知能力強。可以借助射頻技術(RFID)及內置在智能設備上的傳感器,對物體進行感知,并且這種感知可以認為是隨時隨地的。(2)共享的廣泛性。通過通信網及互聯(lián)網實現隨時、隨地的信息共享。(3)數據的智能處理。物聯(lián)網采集到海量數據后,可以借助云計算、大數據技術進行智能處理。
在物聯(lián)網技術應用到各行各業(yè)時,有些共性的問題需要解決:(1)優(yōu)先級問題。在多個業(yè)務、產品同時需要發(fā)送或接收消息的時候,為了解決不同業(yè)務的優(yōu)先級問題并提高報文的傳輸效率,需要為不同業(yè)務、產品設置優(yōu)先級;這樣高優(yōu)先級的消息就可以在最短時間內優(yōu)先得到收發(fā),低優(yōu)先級的則可以稍微延后處理。(2)可靠的消息傳輸。很多領域的傳輸內容是非常關鍵的、不允許丟失的,為了保證數據包能夠可靠、不重復的到達接收端,就需要保證數據傳輸的冗余性和可靠性,即使出現網絡中斷等異常情況,也可以保證數據的可靠到達。
中間件在操作系統(tǒng)和應用軟件之間,它以自己實現的復雜性保證企業(yè)應用的簡單化。如果沒有中間件,則應用需要直接和操作系統(tǒng)、網絡通信協(xié)議以及數據庫等直接交互,需要考慮系統(tǒng)的多樣性、網絡通信協(xié)議的復雜性等各種因素。中間件屏蔽了底層的這些差異,并且為開發(fā)者提供公共的接口,簡化了程序設計。
物聯(lián)網領域可以借助中間件技術將各種智能硬件設備連接起來,并整合到云端,真正實現云環(huán)境與智能終端的端、云一體化,從而可以解決海量消息通信的問題。
2. MQ消息中間件
在消息中間件領域,占據商業(yè)市場統(tǒng)治地位的是IBM的Websphere MQ,它是一款基于消息隊列的中間件,其自身實現保證能夠屏蔽底層操作系統(tǒng)平臺間的差異,從而實現跨平臺、跨網絡的消息傳輸。Websphere MQ包括消息傳輸系統(tǒng)以及應用程序接口兩部分,在應用程序間傳送消息時可以實現不同網絡協(xié)議、不同操作系統(tǒng)以及不同語言的應用之間的消息傳送。最重要的是,Websphere MQ的消息傳輸是高效并且可靠的,消息不會丟失。
MQ消息中間件有如下優(yōu)點:(1)應用開發(fā)對底層透明。在開發(fā)應用程序時,只關注業(yè)務實現即可,并不需要過多操心業(yè)務層以下的通信協(xié)議、操作系統(tǒng)細節(jié)等,因此程序開發(fā)更加簡單。(2)系統(tǒng)開發(fā)周期短。消息中間件提供了統(tǒng)一的API接口,標準的實現和接口避免了各種適配、測試及整合工作,從而有效縮短開發(fā)周期。(3)降低風險和成本。如果不使用中間件,在實現業(yè)務應用程序時,就需要考慮可靠性、耦合度等各種性能因素,會提高總的成本;另外,標準的消息中間件能夠保證業(yè)務系統(tǒng)實現無縫銜接,保證新系統(tǒng)與老系統(tǒng)在過渡期的穩(wěn)定運行。
IBM的Websphere MQ在實際使用過程中會涉及到一些對象的概念,包括消息、隊列管理器、隊列、通道等。這些對象都有其特定屬性,屬性不同會導致對象有不同的特性和工作方式。
隊列管理器是MQ中各資源的容器,可以容納隊列、通道等對象。MQ中通信的基本對象是消息,它實際上可以理解成一段數據,能夠作為信息載體而被應用程序理解。消息內容分為消息頭和消息體兩部分,其中消息頭是消息的屬性描述,指定了消息如何被隊列管理器或應用程序處理;消息頭可以完全由隊列管理器自動生成,應用程序可以覆蓋各屬性。消息體是應用程序間傳輸的實際內容,存在形式可以是字符串、xml文件甚至是二進制數據。
消息實際上是存放在隊列中的。根據隊列的用途,可以將隊列分為本地隊列、遠程隊列定義、傳輸隊列等。消息是按照先后順序存放到隊列中的,在消費消息時有兩種模式,默認情況下使用先進先出模式,也可以設置為優(yōu)先級模式,這樣會根據消息的優(yōu)先級從高到低進行消費。通道把兩個隊列管理器連接起來,保證消息可以從源端的隊列管理器發(fā)送到目的端的隊列管理器,實現兩個隊列管理器間的點到點通信。
為了方便應用程序編寫,Websphere MQ提供了統(tǒng)一的API接口,主要的接口是兩個:發(fā)送消息(PUT)和接收消息(GET)。使用Websphere MQ完成兩個系統(tǒng)間的消息傳輸的示意圖如圖1所示:
3. 中間件在大數據物聯(lián)網領域的應用
將中間件應用到大數據物聯(lián)網領域時,通常會涉及到三個部分:物聯(lián)網智能設備采集端、前置端以及服務器端。大量智能設備分布在需要采集數據的區(qū)域,并且將采集到的數據實時傳送到前置端。前置端和服務器端都會部署MQ服務器,數據被從前置端發(fā)送到服務器端。
為便于對前置端以及服務器端的MQ對象進行統(tǒng)一管理,需要制定隊列、通道等對象的命名規(guī)則。
前置端需要配置遠程隊列定義、傳輸隊列,服務器端需要配置接收隊列。隊列的命名規(guī)范包括:(1)遠程隊列定義規(guī)范。QR_業(yè)務名稱_智能終端采集設備編號,舉例來說,如果物聯(lián)網設備采集的是氣象數據,則1234號設備使用的遠程隊列可以命名為QR_QIXIANG_1234。(2)傳輸隊列規(guī)范。QX_業(yè)務名稱_智能終端采集設備編號,例如QX_QIXIANG_1234。(3)接收隊列規(guī)范。QL_業(yè)務名稱_智能終端采集設備編號,例如QR_QIXIANG_1234。
通道的命名規(guī)范相對簡單,CH_業(yè)務名稱_智能終端采集設備編號即可,例如CH_QIXIANG_1234。
經過這樣命名后,不同智能終端采集設備采集到的不同業(yè)務數據就可以使用獨立的通道進行消息傳輸,傳輸到服務器端后也可以保存在各自的隊列中,實現業(yè)務上的相互隔離,保證了消息的安全性。不同智能終端采集設備采集數據并通過前置端傳輸到服務器端的示意圖如圖2所示:
傳輸物聯(lián)網消息的過程中,可以設置消息的優(yōu)先級,以保證高優(yōu)先級的消息數據具有優(yōu)先權。Websphere MQ消息的優(yōu)先級可以設置為0到9中的任意值,0表示優(yōu)先級最低,9表示優(yōu)先級最高;這樣設置了消息的優(yōu)先級后,可以對重要業(yè)務的報文、時效性要求高的報文設置高優(yōu)先級,以優(yōu)先接收它們。
某些業(yè)務的消息數據報文可能比較大,受制于網絡帶寬等資源的限制,這些消息在傳輸過程中會長時間的占用網絡帶寬,導致其他消息不能及時傳輸。為了解決這一問題,就需要在緊急消息到達時,允許中斷大消息的傳輸,從而保證緊急消息的優(yōu)先傳輸?;谶@樣的考慮,Websphere MQ對傳輸消息的最大大小做了限制,允許傳輸的最大單條消息為100M。
4. 總結
目前物聯(lián)網在各行各業(yè)得到了廣泛的應用,物聯(lián)網智能終端在傳輸數據時,要保證消息 的實時性、可靠性以及高效率,消息中間件產品完全可以滿足這種要求。消息中間件應用到大數據物聯(lián)網領域中時,可以設置傳輸的消息數據的優(yōu)先級,以保證高優(yōu)先級的消息優(yōu)先被處理,并且在保證消息可靠傳輸的同時效率也比較高,完全符合物聯(lián)網的應用需求。
參考文獻:
[1]王艷.物聯(lián)網網關異構協(xié)議中間件關鍵技術研究[D].深圳大學,2016.
[2]ShashankShesharSingh,AjayKumar,KuldeepSingh,BhaskarBiswas.C2IM:Communitybasedcontext-awareinfluencemaximizationinsocialnetworks[J].PhysicaA:StatisticalMechanicsanditsApplications,2019,514.
[3]陳宇翔.精通WebSphereMQ[M].安徽:安徽科學技術出版社,2014,9.
[4]楊放春.異構網絡中間件與開放式API技術[M].北京:北京郵電大學出版社,2007,3.
作者簡介:吳謀碩,湖南湘鄉(xiāng)人,碩士,副教授,研究方向:大數據,信息檢索,數字媒體。