999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2020-06-21 15:16:16萬(wàn)洪莉李雨晨
軟件工程 2020年6期

萬(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é)議在這類問(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ò)輪詢從服務(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ā)起輪詢操作,查詢服務(wù)器端控制指令的相應(yīng)狀態(tài),根據(jù)控制指令控制執(zhí)行部件的動(dòng)作。

物聯(lián)網(wǎng)的感知層研究與設(shè)計(jì)也依賴于項(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ù)邏輯處理和門戶展示。在物聯(lián)網(wǎng)項(xiàng)目體系架構(gòu)中,服務(wù)器還兼具感知層和應(yīng)用層的通信接口功能。感知層數(shù)據(jù)上傳需求頻繁,一般的家用智能系統(tǒng)以秒為單位產(chǎn)生感知數(shù)據(jù)的上傳需求。應(yīng)用層由用戶通過(guò)移動(dòng)端發(fā)送控制指令至服務(wù)器,而基于HTTP協(xié)議的服務(wù)器架構(gòu)不具備主動(dòng)推送功能,不能將控制指令狀態(tài)推送給感知層的執(zhí)行器件。在基于HTTP協(xié)議的服務(wù)器架構(gòu)中,感知層的執(zhí)行器件需要向服務(wù)器發(fā)起輪詢操作,獲知指令狀態(tài),從而產(chǎn)生相應(yīng)動(dòng)作。這種輪詢操作造成了數(shù)據(jù)流的冗余,占用大量的系統(tǒng)資源。

為解決此類問(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)槔O(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ā)布溫度消息,消息代理將其推送給訂閱了該主題的客戶端(移動(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è)客戶端通過(guò)消息代理維持心跳連接即可。

本案例采用apollo的MQTT消息代理,將Web服務(wù)器、移動(dòng)端、硬件端都注冊(cè)為apollo MQTT消息代理上的客戶端,實(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客戶端,過(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ā)布功能類似,圖中的控制流變?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)域:控制理論與控制工程,電氣工程.

主站蜘蛛池模板: 欧美成人影院亚洲综合图| 尤物精品视频一区二区三区| 日韩不卡高清视频| 欧美综合区自拍亚洲综合天堂| 国产在线观看人成激情视频| 亚洲国产日韩视频观看| 成人福利在线观看| 日本亚洲成高清一区二区三区| 在线亚洲精品自拍| 中国美女**毛片录像在线| 免费高清a毛片| 熟妇无码人妻| 无码人中文字幕| 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲国产精品不卡在线| 一区二区三区国产| 91久久精品国产| 国产精品浪潮Av| 国产成人亚洲无码淙合青草| 久草视频精品| jizz国产视频| 五月天在线网站| 亚洲精品777| 国产欧美日韩视频怡春院| 亚洲无线视频| 国产精品无码AV片在线观看播放| www精品久久| 97se亚洲综合在线韩国专区福利| 亚洲日产2021三区在线| 特级毛片免费视频| 成人综合在线观看| 97se亚洲综合在线天天| 欧美激情视频一区| 成人国产小视频| 亚洲综合婷婷激情| yy6080理论大片一级久久| 成人毛片免费在线观看| 幺女国产一级毛片| 国产成人精品无码一区二| 国产农村妇女精品一二区| 欧美亚洲第一页| 91精品视频网站| 欧美 国产 人人视频| 久久人体视频| 精品成人免费自拍视频| 国产在线专区| 伊人精品视频免费在线| 国产丰满大乳无码免费播放| 国产高清免费午夜在线视频| 久久久久免费精品国产| av在线无码浏览| 国产成人免费高清AⅤ| 亚洲视频四区| 99精品热视频这里只有精品7| 中文字幕人妻av一区二区| 亚洲第一成年人网站| 国产又粗又猛又爽视频| 日韩人妻无码制服丝袜视频| 国产制服丝袜91在线| 99热这里只有精品免费国产| 久久国产亚洲欧美日韩精品| 国产乱人免费视频| 亚洲成a人片77777在线播放| 国产屁屁影院| 国产成人a在线观看视频| 亚洲成AV人手机在线观看网站| 午夜福利网址| 综合五月天网| 国内丰满少妇猛烈精品播| 野花国产精品入口| 国产精品亚洲片在线va| 亚洲精品国产综合99| 不卡视频国产| 国产女人在线视频| 国产精品一区在线观看你懂的| 久久成人18免费| 日本免费一级视频| 日韩高清欧美| 婷婷成人综合| 国产成年女人特黄特色毛片免| av在线人妻熟妇| 国产日本欧美在线观看|