胡永立
機科發(fā)展科技股份有限公司 北京 100044
當前我國廣泛利用物聯(lián)網(wǎng)信息推送系統(tǒng),并且具有良好的發(fā)展前景,并且逐步形成互聯(lián)網(wǎng)軟件系統(tǒng),在未來將會在全球推廣。本文論述了基于MQTT物聯(lián)網(wǎng)消息推送系統(tǒng),進一步優(yōu)化系統(tǒng)性能。
MQTT全稱Message Queuing Telemetry Transport,于1999年由IBM發(fā)布,這是一種消息傳輸協(xié)議。其消息在傳輸時代碼占用空間小,對于遠程連接非常有效,這種協(xié)議適用低寬帶、受限設備的情況。因此,MQTT是物聯(lián)網(wǎng)智能寄居首次選擇的傳輸協(xié)議,可用于多種現(xiàn)實服務中,還可以適用家庭自動化的設備。并且該協(xié)議也適用移動運用,積極及耗能均比較小,數(shù)據(jù)包也是最小的,可有效將信息分解,可傳輸至一或多個的接收器。
協(xié)議特點具體如下:
開放性。該協(xié)議是由IBM公司與Eurotech一起研制的,專門為設備網(wǎng)絡定制。MQTT利用二進制形式,通信開銷和協(xié)議交換比較小,可以降低網(wǎng)絡流量,同時可以簡化網(wǎng)絡復雜度。MQTT支持簡單的信息模式。MQTT具有開發(fā)公開的協(xié)議,可以專業(yè)定制設備網(wǎng)絡。
輕巧性。傳輸?shù)母袷绞亲钚』模钚〉臄?shù)據(jù)包僅有2比特。所以復雜度較低且容量小。
第三,可靠性。有三種不同服務的質(zhì)量。發(fā)布消息時完全依賴于底層的TCP/IP網(wǎng)絡。消息丟失可能發(fā)生。如果客戶端出現(xiàn)了意外掉線的情況,可以使用另外的方式多發(fā)布一條消息。同時,可實現(xiàn)持久性的訂閱。MQTT具有三種等級的信息發(fā)布服務質(zhì)量,針對“至多一次”這一級別,表示會產(chǎn)生信息丟失和重復,主要是采集各類環(huán)境傳感器的數(shù)據(jù),記錄丟失一次并不會產(chǎn)生較大的影響,因為在不今后會再次發(fā)送。針對“至少一次”這一級別,保障信息送達,但是可能會發(fā)生信息重復的情況,“只有一次”表示消息傳達一次,主要是在計費系統(tǒng)中利用,如果發(fā)生信息重復和信息丟失等問題,影響到結(jié)果的正確性。
第四,發(fā)布以及訂閱的消息模式簡單,而且積極非常小,在推送傳輸時可能是不同步的,但這種不同步是可以實現(xiàn)的,可簡單的發(fā)布、連接、訂閱以及斷開的使用方式。
MQTT在移動應用中的優(yōu)勢如下:
可靠的傳輸性??煽堪踩畔⒔换ィ呖捎眯砸约按笠?guī)模的支持,和企業(yè)服務的建議集成。
消息的實時推送??蓪崿F(xiàn)有效的實時通知,并且所推送的內(nèi)容非常豐富。訂閱以及發(fā)布消息十分靈活,能有效存儲和過濾消息。
成本低、耗能低、帶寬低。這就說明了移動應用程序所占用的空間十分小,而且利用效率比較高,電量耗費也比較小,與SMS相比,更具有經(jīng)濟性。
MQTT結(jié)構(gòu)主要包括MQTT消息代理和MQTT客戶端,客戶端利用MQTT協(xié)議連接消息代理。在推送消息的過程中,MQTT定義了消息代理和發(fā)布者以及調(diào)閱者,消息代理指的是服務器端,主要是利用Mosquitto應用程序,這是開源信息代理軟件,主要負責推送信息,支持信息推送模式。在嵌入式計算機和微型控制器等移動設備中都可以利用這種軟件,可以實現(xiàn)設備之間的短消息通信。消息代理服務器端可以接收和管理主題,同時可以接受訂閱者,注冊并且管理以及維護發(fā)布者。同時可以儲存發(fā)布的信息,并且向有需要的訂閱者發(fā)送消息。訂閱者首先進行注冊,隨后提交訂閱主題,隨后等待接受有關主題的消息[1]。
消息中間件利用消極傳遞機制,實現(xiàn)平臺數(shù)據(jù)交流,根據(jù)數(shù)據(jù)通信集成分布式系統(tǒng)。構(gòu)建消息傳遞和消息排隊模型,可以在拓展進程間實現(xiàn)通信,有利于處理網(wǎng)絡環(huán)境復雜的通信工作。
消息中間件主要包括點對點模式和發(fā)布/訂閱模式。利用點對點模式,主要是通過PTP模式實現(xiàn)消息發(fā)布者和信息接受者之間一對一通信,消息發(fā)布者向消息隊列中發(fā)布消息,消息接受者再讀取消息。PTP模式比較簡單,但是通信雙方具有較高的耦合度,同時又缺乏拓展性,如果通信雙方某方發(fā)生變化,另一方需要變更應用程序,因此無法實現(xiàn)多方數(shù)據(jù)通信,系統(tǒng)通信靈活性因此受到影響。
在發(fā)布/訂閱模式中,可以實現(xiàn)多對多的通信,通過建立消息代理服務器的特定主體,因此作為中介,實現(xiàn)多個消息發(fā)布者和訂閱者之間通信。消息發(fā)布者根據(jù)主體發(fā)布信息,無須考慮信息接受者的目的。消息訂閱者需要結(jié)合相應主題獲取相應的消息,無須考慮信息發(fā)送地址。消息訂閱者可以將訂閱消息分為持久訂閱和非持久訂閱,利用持久訂閱模式,訂閱者在不在線狀態(tài)中,可以暫時存儲消息,如果是在線狀態(tài),可以向訂閱者轉(zhuǎn)發(fā)消息。針對非持久訂閱模式,要求訂閱者必須處于在線狀態(tài),如果離線時間比較長,將會自動刪除消息。
對比點對點模式,發(fā)布/訂閱模式可以利用消息代理服務器,提高數(shù)據(jù)通信雙方的松耦合,保障網(wǎng)絡拓撲的拓展性和動態(tài)性。利用消息代理服務器實現(xiàn)消息和轉(zhuǎn)發(fā)和管理,在大規(guī)模數(shù)據(jù)交互過程中,將會影響到消息代理服務器性能,引發(fā)單電失效的問題,整體系統(tǒng)的可靠性和高效性因此受到影響[2]。
基于MQTT物聯(lián)網(wǎng)消息推送系統(tǒng)主要包括消息發(fā)布者和基于MQTT消息代理服務器以及移動終端,根據(jù)實際情況,消息發(fā)布者和消息訂閱者可能會發(fā)生變化,客戶端可以發(fā)布信息,也可以訂閱信息。消息發(fā)布者可以向MQTT消息代理服務器發(fā)布消息,打包發(fā)送數(shù)據(jù)為信息形式,并且向MQTT消息代理服務器中發(fā)送。消息訂閱者可以向MQTT消息代理服務器訂閱消息,也可以取消訂閱的消息,訂閱者具有獨立的消息接收隊伍,并且根據(jù)需求解包和解密處理消息。消息推送系統(tǒng)的核心是消息代理服務器,接收了消息之后,需要封裝、壓縮以及加密處理消息。
利用系統(tǒng)初始化模塊,可以啟動消息代理服務器的服務功能,客戶端可以利用客戶端初始化模塊,高效連接消息代理服務器。移動終端連接了消息代理服務器支護,經(jīng)過注冊獲取注冊賬號,發(fā)布/訂閱信息主題,利用訂閱表管理模塊記錄訂閱主題和賬號標識。消息發(fā)布者打包處理發(fā)送的數(shù)據(jù)信息,向MQTT消息代理服務器中發(fā)送,根據(jù)消息優(yōu)先級,在相應的系統(tǒng)剛接手隊伍當中存放消息,消息代理模塊在隊伍當中獲取信息,根據(jù)訂閱表中的客戶端訂閱信息,向響應的訂閱者推動消息。觸發(fā)了MQTT消息代理服務器消息監(jiān)聽器之后,根據(jù)消息訂閱者各種信息,同時可以提醒通知訂閱者及時接受消息。消息訂閱者利用移動終端監(jiān)聽到最新消息之后,可以讀取各個接受隊列中的消息。
本文論述了基于MQTT的農(nóng)業(yè)物聯(lián)網(wǎng)消息推送系統(tǒng),在登錄了系統(tǒng)之后可以查看GIS地理定位,通過點擊鼠標之后,確定土地種植情況,實時更新傳感器采集的數(shù)據(jù)信息,同時可以發(fā)揮遠程控制作用,幫助管理人員高效管理農(nóng)種土地。
基于MQTT農(nóng)業(yè)物聯(lián)網(wǎng)消息推送系統(tǒng)主要包括種植記錄和施肥記錄以及打藥記錄以及采摘記錄。利用種植記錄模塊可以為用戶展示出種植分區(qū)和種植種類以及種植時間等情況。利用施肥記錄模塊記錄肥料平成和施肥時間以及施肥對象等,種植人員可以結(jié)合施肥記錄確定作物施肥的信息,同時可以遠程控制施肥工作。利用打藥記錄模塊記負責記錄農(nóng)藥名稱和農(nóng)藥噴灑時間以及面積等,管理人員可以遠程控制農(nóng)藥噴灑工作,有效監(jiān)控農(nóng)作物的生長情況。利用采摘記錄模塊可以記錄農(nóng)作物的采摘情況,詳細記錄農(nóng)作物的名稱和采摘時間等,通過記錄這些時間,避免發(fā)生提前采摘等問題。
利用各種集成技術,可以利用基于MQTT農(nóng)業(yè)物聯(lián)網(wǎng)消息推送系統(tǒng)自動采集農(nóng)作物周邊環(huán)境的空氣溫度和濕度以及土壤等信息,實現(xiàn)實時遠程傳輸。系統(tǒng)在實際運行過程中,需要充分發(fā)揮出傳感器技術的作用,在特定位置安裝特定傳感器,采集沒異性數(shù)據(jù)參數(shù)。如果傳感器無法正常工作,那么利用該系統(tǒng)可以反饋于監(jiān)管人員和決策人員。在數(shù)據(jù)分析專欄當中,系統(tǒng)可以自動顯示傳感器的工作狀態(tài),如果傳感器發(fā)生故障,基于MQTT農(nóng)業(yè)物聯(lián)網(wǎng)消息推送系統(tǒng)可以提出警報,提醒用戶及時處理問題。
在MQTT網(wǎng)絡消息的推送系統(tǒng)中,選擇MQTT協(xié)議效果高,而且戰(zhàn)勝資源非常低,而且采用訂閱以及發(fā)布的制度可自動把消息發(fā)布者所發(fā)布的消息及時推送至移動終端,可有效滿足終端資源特點,避免對服務器造成過大的壓力,節(jié)省人力部門的成本以及網(wǎng)絡的資源。因此,在大數(shù)據(jù)交互消息代理服務器所遇到的問題,可構(gòu)建服務器集群,有效加強服務器穩(wěn)定以及可靠性,可有效支持更多用戶。