国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MQTT協(xié)議的物聯(lián)網(wǎng)服務(wù)器設(shè)計(jì)與架構(gòu)分析

2020-06-21 15:16萬(wàn)洪莉李雨晨
軟件工程 2020年6期
關(guān)鍵詞:服務(wù)器

萬(wàn)洪莉 李雨晨

摘? 要:基于MQTT協(xié)議,進(jìn)行物聯(lián)網(wǎng)工程項(xiàng)目服務(wù)器端的架構(gòu)和開(kāi)發(fā),并針對(duì)服務(wù)器應(yīng)用架構(gòu)進(jìn)行性能分析。采用MVC設(shè)計(jì)模式進(jìn)行服務(wù)器端架構(gòu)設(shè)計(jì),采用JSP技術(shù)進(jìn)行開(kāi)發(fā)。服務(wù)器和硬件、移動(dòng)端的通信協(xié)議采用MQTT協(xié)議,搭建Apollo服務(wù)器實(shí)現(xiàn)對(duì)該協(xié)議的支持。經(jīng)分析,可提高物聯(lián)網(wǎng)服務(wù)器與感知層、應(yīng)用層的通信性能。

關(guān)鍵詞:物聯(lián)網(wǎng)通信協(xié)議;服務(wù)器;MQTT

Abstract: Based on MQTT (Message Queuing Telemetry Transport) protocol, the study conducts architecture construction and development of the Internet of Things (IoT) project server, and carries out performance analysis of the server application architecture. Model-View-Controller (MVC) mode is used to design the server architecture, and JSP technology is used to develop the server. MQTT is adopted as the communication protocol among the server, hardware and mobile terminal, and Apollo server is built to support the protocol. The analysis proves that the proposed method effectively improves the IoT server communication performance at perception layer and application layer.

Keywords: IoT communication protocol; server; MQTT

1? ?引言(Introduction)

1.1? ?現(xiàn)有物聯(lián)網(wǎng)項(xiàng)目架構(gòu)

HTTP是Web服務(wù)器開(kāi)發(fā)中廣泛使用的協(xié)議。但當(dāng)研究物聯(lián)網(wǎng)服務(wù)器的系統(tǒng)架構(gòu)時(shí),響應(yīng)時(shí)間,吞吐量,更低的電池和帶寬使用率成為衡量系統(tǒng)的主要性能指標(biāo),MQTT協(xié)議在這類(lèi)問(wèn)題的解決中更具優(yōu)勢(shì)[1-3]。在文獻(xiàn)[4]中,基于物聯(lián)網(wǎng)體系架構(gòu),以智能超市為業(yè)務(wù)背景,建設(shè)了物聯(lián)網(wǎng)實(shí)訓(xùn)教學(xué)體系。服務(wù)器架構(gòu)基于HTTP協(xié)議,采用硬件感知端、服務(wù)器端、移動(dòng)端和數(shù)據(jù)流、控制流的“三端兩流”架構(gòu)。如圖1所示。

在圖1所示的架構(gòu)中,數(shù)據(jù)流由硬件感知端起始。硬件感知端將采集的數(shù)據(jù)發(fā)送至服務(wù)器端,移動(dòng)端通過(guò)輪詢(xún)從服務(wù)器端獲得數(shù)據(jù)流,刷新UI界面進(jìn)行遠(yuǎn)程監(jiān)測(cè)。架構(gòu)的控制指令流由移動(dòng)端起始。移動(dòng)端發(fā)起控制指令,服務(wù)器端修改指令的相應(yīng)數(shù)據(jù)庫(kù)字段。硬件感知端發(fā)起輪詢(xún)操作,查詢(xún)服務(wù)器端控制指令的相應(yīng)狀態(tài),根據(jù)控制指令控制執(zhí)行部件的動(dòng)作。

物聯(lián)網(wǎng)的感知層研究與設(shè)計(jì)也依賴(lài)于項(xiàng)目所采用的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的典型模型。面向軟件測(cè)試的物聯(lián)網(wǎng)節(jié)點(diǎn)模擬單元開(kāi)發(fā)[5]所做工作主要集中在節(jié)點(diǎn)單元的開(kāi)發(fā)和測(cè)試,物聯(lián)網(wǎng)服務(wù)器端與感知層、應(yīng)用層的通信協(xié)議也采用HTTP協(xié)議。

在項(xiàng)目架構(gòu)的應(yīng)用中,存在請(qǐng)求響應(yīng)較慢、電池消耗高的情況。采用傳統(tǒng)的基于HTTP的服務(wù)器作為物聯(lián)網(wǎng)項(xiàng)目的服務(wù)平臺(tái)的應(yīng)用場(chǎng)景越來(lái)越少。

1.2? ?實(shí)際應(yīng)用領(lǐng)域的物聯(lián)網(wǎng)服務(wù)器

目前在實(shí)際應(yīng)用中已普遍采用物聯(lián)網(wǎng)服務(wù)平臺(tái)進(jìn)行實(shí)際項(xiàng)目開(kāi)發(fā)。例如百度“天工”智能物聯(lián)網(wǎng)平臺(tái)[6]、阿里云Link物聯(lián)網(wǎng)平臺(tái)[7]、QQ物聯(lián)智能硬件開(kāi)放平臺(tái)”[8]、中國(guó)移動(dòng)物聯(lián)網(wǎng)設(shè)備云—OneNET[9]等。

產(chǎn)業(yè)級(jí)的物聯(lián)網(wǎng)服務(wù)器平臺(tái)不再局限于傳統(tǒng)Web服務(wù)器的HTTP協(xié)議,而是支持HTTP、CoAP、MQTT等多種協(xié)議適配,為城市消防、畜牧業(yè)、共享經(jīng)濟(jì)、環(huán)境監(jiān)控等多場(chǎng)景提供解決方案。

2? 基于MQTT協(xié)議的物聯(lián)網(wǎng)服務(wù)器架構(gòu)(IoT server architecture based on MQTT protocol)

2.1? ?HTTP和MQTT在物聯(lián)網(wǎng)服務(wù)器通信中的對(duì)比

基于HTTP協(xié)議的物聯(lián)網(wǎng)項(xiàng)目架構(gòu)已經(jīng)滯后于實(shí)際應(yīng)用開(kāi)發(fā)的技術(shù)發(fā)展。瓶頸在于服務(wù)器的HTTP通信協(xié)議。HTTP協(xié)議作為一種無(wú)狀態(tài)通信協(xié)議,適于開(kāi)發(fā)Web應(yīng)用程序,進(jìn)行業(yè)務(wù)邏輯處理和門(mén)戶(hù)展示。在物聯(lián)網(wǎng)項(xiàng)目體系架構(gòu)中,服務(wù)器還兼具感知層和應(yīng)用層的通信接口功能。感知層數(shù)據(jù)上傳需求頻繁,一般的家用智能系統(tǒng)以秒為單位產(chǎn)生感知數(shù)據(jù)的上傳需求。應(yīng)用層由用戶(hù)通過(guò)移動(dòng)端發(fā)送控制指令至服務(wù)器,而基于HTTP協(xié)議的服務(wù)器架構(gòu)不具備主動(dòng)推送功能,不能將控制指令狀態(tài)推送給感知層的執(zhí)行器件。在基于HTTP協(xié)議的服務(wù)器架構(gòu)中,感知層的執(zhí)行器件需要向服務(wù)器發(fā)起輪詢(xún)操作,獲知指令狀態(tài),從而產(chǎn)生相應(yīng)動(dòng)作。這種輪詢(xún)操作造成了數(shù)據(jù)流的冗余,占用大量的系統(tǒng)資源。

為解決此類(lèi)問(wèn)題,需要在物聯(lián)網(wǎng)服務(wù)器平臺(tái)中引入“發(fā)布/訂閱”機(jī)制的協(xié)議規(guī)范。MQTT協(xié)議作為消息隊(duì)列遙測(cè)傳輸協(xié)議,是一個(gè)基于TCP/IP協(xié)議的發(fā)布/訂閱協(xié)議。設(shè)計(jì)的初始目的是為了極有限的內(nèi)存設(shè)備和網(wǎng)絡(luò)帶寬很低的網(wǎng)絡(luò)中進(jìn)行通信,非常適合物聯(lián)網(wǎng)通信[10-13]。

2.2? ?基于MQTT協(xié)議的物聯(lián)網(wǎng)服務(wù)器架構(gòu)設(shè)計(jì)

MQTT協(xié)議是廣泛應(yīng)用的物聯(lián)網(wǎng)協(xié)議,使用該協(xié)議需要MQTT消息代理及服務(wù)。有兩種方法使用MQTT服務(wù),一是租用現(xiàn)成的MQTT服務(wù)器,使用公用的MQTT服務(wù)器的好處是功能全面,易用性高。但需要注冊(cè)賬號(hào),靈活性差,有些平臺(tái)還需要付費(fèi)。另一方法是自己使用開(kāi)源的MQTT組件來(lái)搭建。圖2以物聯(lián)網(wǎng)工程項(xiàng)目中溫度數(shù)據(jù)在服務(wù)端、感知端、移動(dòng)端的數(shù)據(jù)流向?yàn)槔?,設(shè)計(jì)了基于MQTT的物聯(lián)網(wǎng)服務(wù)器架構(gòu)的物聯(lián)網(wǎng)項(xiàng)目體系。

在圖2的物聯(lián)網(wǎng)服務(wù)器系統(tǒng)架構(gòu)中,Web服務(wù)器、感知端和移動(dòng)端都作為Client,在MQTT消息代理上注冊(cè)并連接。針對(duì)系統(tǒng)中的溫度信息,三個(gè)Client都訂閱名為“temperature”的topic。感知端發(fā)布消息,內(nèi)容為溫度數(shù)據(jù),Web服務(wù)器訂閱“temperature”,消息代理則會(huì)把溫度消息推送給Web服務(wù)器,Web服務(wù)器發(fā)布溫度消息,消息代理將其推送給訂閱了該主題的客戶(hù)端(移動(dòng)端)。整個(gè)架構(gòu)采用發(fā)布/訂閱機(jī)制,數(shù)據(jù)幀格式即主題格式(topic),比HTTP協(xié)議的請(qǐng)求頭短很多,通信效率高,在系統(tǒng)中沒(méi)有數(shù)據(jù)更新,沒(méi)有數(shù)據(jù)流發(fā)生時(shí),各個(gè)客戶(hù)端通過(guò)消息代理維持心跳連接即可。

本案例采用apollo的MQTT消息代理,將Web服務(wù)器、移動(dòng)端、硬件端都注冊(cè)為apollo MQTT消息代理上的客戶(hù)端,實(shí)現(xiàn)發(fā)布/訂閱功能。下面主要闡述將傳統(tǒng)的基于HTTP的Web服務(wù)器包裝成MQTT Client,從而將其角色轉(zhuǎn)換為兼容MQTT協(xié)議的服務(wù)器的架構(gòu)過(guò)程。

2.3? ?基于MQTT協(xié)議的物聯(lián)網(wǎng)服務(wù)器開(kāi)發(fā)

2.3.1? ?物聯(lián)網(wǎng)服務(wù)器的消息發(fā)布功能

物聯(lián)網(wǎng)服務(wù)器的消息發(fā)布功能接收移動(dòng)端的控制指令,并以發(fā)布者的角色,通過(guò)apollo MQTT消息代理,推送給硬件執(zhí)行器所在的MQTT客戶(hù)端,過(guò)程如圖3所示。

由于服務(wù)器兼具傳統(tǒng)的HTTP服務(wù)器的業(yè)務(wù)邏輯功能和MQTT的消息發(fā)布訂閱功能,因此,可選取HTTP Web組件監(jiān)聽(tīng)移動(dòng)端發(fā)送的控制指令。在本課題中,選用Servlet監(jiān)聽(tīng)器實(shí)現(xiàn)對(duì)移動(dòng)端控制指令的監(jiān)聽(tīng)功能。

本文所討論的HTTP服務(wù)器功能基于JSP模型二設(shè)計(jì)模式開(kāi)發(fā),由中央控制器對(duì)所有View層發(fā)出的請(qǐng)求進(jìn)行處理,所有View層發(fā)出的請(qǐng)求以“.action”做結(jié)尾標(biāo)識(shí)。因此,本文所設(shè)計(jì)的監(jiān)聽(tīng)器主要監(jiān)聽(tīng)中央控制器的“change.action”請(qǐng)求。一旦監(jiān)聽(tīng)到“change.action”請(qǐng)求,說(shuō)明移動(dòng)端發(fā)出了控制指令,監(jiān)聽(tīng)器將監(jiān)聽(tīng)到的控制指令包裝為名為“instructions”的主題(topic),主題內(nèi)容即為控制指令內(nèi)容。并將該topic通過(guò)apollo MQTT消息代理推送給訂閱了該主題的硬件執(zhí)行器件,從而實(shí)現(xiàn)對(duì)硬件執(zhí)行器件的主動(dòng)推送控制功能。

2.3.2? ?物聯(lián)網(wǎng)服務(wù)器的消息訂閱功能

物聯(lián)網(wǎng)服務(wù)器的消息訂閱功能接收硬件感知層上傳的感知數(shù)據(jù),調(diào)用MVC模型中的業(yè)務(wù)邏輯層,完成感知層數(shù)據(jù)的持久存儲(chǔ)。過(guò)程與圖3的發(fā)布功能類(lèi)似,圖中的控制流變?yōu)閿?shù)據(jù)流。

消息訂閱功能和HTTP服務(wù)器接口的數(shù)據(jù)上傳功能數(shù)據(jù)流向一樣。但基于MQTT協(xié)議的數(shù)據(jù)幀長(zhǎng)度很短,可定制格式,適于內(nèi)存有限的感知層硬件處理器,也適于數(shù)據(jù)流頻繁、帶寬有限的物聯(lián)網(wǎng)環(huán)境。

3? ?功耗分析(Power analysis)

3.1? ?無(wú)線網(wǎng)絡(luò)初始化期間功耗對(duì)比

物聯(lián)網(wǎng)服務(wù)器主要起到對(duì)數(shù)據(jù)流的持久存儲(chǔ)和UI展示,對(duì)控制流的接收接口和對(duì)感知層執(zhí)行器件的指令發(fā)送功能。因此,基于MQTT協(xié)議的物聯(lián)網(wǎng)服務(wù)器不再基于HTTP協(xié)議,采用請(qǐng)求/響應(yīng)模式提供這兩大服務(wù)。通過(guò)MQTT協(xié)議架構(gòu)的物聯(lián)網(wǎng)服務(wù)器與移動(dòng)端、感知層建立了常連接,可基于MQTT的心跳響應(yīng)維持三者在消息代理上的連接狀態(tài)。數(shù)據(jù)流和控制流的傳輸都基于發(fā)布/訂閱機(jī)制。在與服務(wù)器建立初始化連接期間,HTTPS協(xié)議比MQTT協(xié)議的電池消耗略少,如表1所示。

3.2? ?無(wú)線網(wǎng)絡(luò)保持連接期間通信功耗對(duì)比

物聯(lián)網(wǎng)工程項(xiàng)目通信過(guò)程過(guò)程中,電池消耗指標(biāo)在保持連接中更具衡量代表性。保持連接所需要的電源消耗對(duì)比如表2所示。

通過(guò)對(duì)電池消耗表的分析,可以看出,HTTPS和MQTT通信方式在電源消耗上,隨著保持連接時(shí)長(zhǎng)的增加,在4G和WiFi聯(lián)網(wǎng)的情況下,都會(huì)大幅減少,但總體來(lái)說(shuō),MQTT比HTTPS通信方式電源消耗減少50%左右。

4? ?結(jié)論(Conclusion)

通過(guò)分析目前物聯(lián)網(wǎng)工程架構(gòu)下通信協(xié)議的應(yīng)用現(xiàn)狀,以物聯(lián)網(wǎng)服務(wù)器與感知層和應(yīng)用層的通信協(xié)議為入手點(diǎn),架構(gòu)并開(kāi)發(fā)了一個(gè)基于MQTT的物聯(lián)網(wǎng)服務(wù)器。通過(guò)分析,采用MQTT協(xié)議的物聯(lián)網(wǎng)服務(wù)器在與物聯(lián)網(wǎng)感知層和應(yīng)用層的通信過(guò)程中,在網(wǎng)絡(luò)初始化之后的連接保持期間,功耗有顯著下降。

參考文獻(xiàn)(References)

[1] Vishal Kumar, Gayatri Sakya, Chandra Shankar. WSN and IoT based smart city model using the MQTT protocol[J]. Journal of Discrete Mathematical Sciences and Cryptography, 2019, 22(8): 1423-1434.

[2] Jameel Ahamed, Md. Zahid, Mohd Omar, et al. AES and MQTT based security system in the internet of things[J]. Journal of Discrete Mathematical Sciences and Cryptography, 2019, 22(8): 1589-1598.

[3] Arlen Nipper. MQTT's role as an IoT message transport[J]. Control engineering: Covering control, instrumentation, and automation systems worldwide, 2019, 66(1): 20-21.

[4] 顧兆旭,焦戰(zhàn),崔鵬.基于物聯(lián)網(wǎng)的智能超市實(shí)訓(xùn)室建設(shè)方案初探[J].軟件工程,2018,21(12):60-62.

[5] 李曉明,Thierno Gueye.面向軟件測(cè)試的物聯(lián)網(wǎng)節(jié)點(diǎn)模擬單元開(kāi)發(fā)[J].軟件工程,2019,22(7):1-5.

[6] 百度.天工-智能物聯(lián)網(wǎng)[EB/OL].https://cloud.baidu.com/solution/iot/index.html.2019

[7] 阿里.阿里云Link平臺(tái)正式發(fā)布[EB/OL].http://www.kmykt.com/hy_new/644.html,2017.

[8] 騰訊.QQ物聯(lián)智能硬件開(kāi)放平臺(tái)[EB/OL].https://iot.open.qq.com,2014.

[9] 中國(guó)移動(dòng).OneNet物聯(lián)網(wǎng)開(kāi)放平臺(tái)[EB/OL].https://open.iot.10086.cn,2019.

[10] 侯敏,劉倩,楊華勇,等.基于MQTT協(xié)議的海洋觀測(cè)數(shù)據(jù)推送系統(tǒng)[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(20):227-231.

[11] 郭力,胡偉,張政成.試析MQTT協(xié)議在物聯(lián)網(wǎng)中的應(yīng)用[J].電腦知識(shí)與技術(shù),2019,15(28):31-32;37.

[12] 蔣樹(shù)慶,房瀅.一種基于MQTT協(xié)議的數(shù)據(jù)采集控制系統(tǒng)[J].信息通信,2019(8):80-82.

[13] 耿錫濤.基于MQTT協(xié)議的電力設(shè)備溫度在線監(jiān)測(cè)系統(tǒng)應(yīng)用研究[J].工業(yè)控制計(jì)算機(jī),2019,32(10):73-74.

作者簡(jiǎn)介:

萬(wàn)洪莉(1978-),女,碩士,副教授.研究領(lǐng)域:物聯(lián)網(wǎng)工程,Web應(yīng)用開(kāi)發(fā).

李雨晨(1979-),男,碩士,工程師.研究領(lǐng)域:控制理論與控制工程,電氣工程.

猜你喜歡
服務(wù)器
通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
PowerTCP Server Tool
中國(guó)服務(wù)器市場(chǎng)份額出爐
得形忘意的服務(wù)器標(biāo)準(zhǔn)
網(wǎng)絡(luò)環(huán)境
配置連接服務(wù)器
計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
服務(wù)器操作系統(tǒng)可信加固技術(shù)研究
如何應(yīng)對(duì)虛擬服務(wù)器的安全性及合規(guī)性挑戰(zhàn)
關(guān)于Linux的視頻服務(wù)器開(kāi)發(fā)與實(shí)現(xiàn)分析