亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MQTT的物聯(lián)網(wǎng)平臺研究與設(shè)計

        2022-08-16 03:11:34郭翠娟
        計算機工程與設(shè)計 2022年8期
        關(guān)鍵詞:頁面設(shè)備

        郭翠娟,暴 寧,榮 鋒

        (1.天津工業(yè)大學(xué) 電氣與電子工程學(xué)院,天津 300387; 2.天津工業(yè)大學(xué) 天津市光電檢測技術(shù)與系統(tǒng)重點實驗室,天津 300387)

        0 引 言

        物聯(lián)網(wǎng)平臺作為設(shè)備集中接入、數(shù)據(jù)統(tǒng)一管理及提供應(yīng)用服務(wù)的重要環(huán)節(jié),是實現(xiàn)物聯(lián)網(wǎng)智能化管理的有效基礎(chǔ)[1]。物聯(lián)網(wǎng)平臺代替了傳統(tǒng)通過人力獲取多監(jiān)測現(xiàn)場情況的方式,使得用戶可遠程查看多個監(jiān)測環(huán)境信息及通過可視化界面與現(xiàn)場設(shè)備交互,有效改善了傳統(tǒng)監(jiān)測方式人工投入大,監(jiān)測效率低的問題。目前,物聯(lián)網(wǎng)平臺較多是針對某一特定物聯(lián)網(wǎng)環(huán)境進行獨立開發(fā),更注重于需求的實現(xiàn)[2-4],對平臺架構(gòu)的穩(wěn)定性、普適性及通信協(xié)議的一致性問題關(guān)注則相對較少。同時前后端開發(fā)語言的不一致及模板引擎的開發(fā)方式[5-7],使得前后端代碼邏輯耦合程度高,開發(fā)周期長且擴展性差。

        本文結(jié)合物聯(lián)網(wǎng)平臺開發(fā)需求及現(xiàn)在Web技術(shù)的發(fā)展,研究并設(shè)計了基于MQTT協(xié)議的物聯(lián)網(wǎng)平臺,對平臺的架構(gòu)及功能實現(xiàn)進行介紹。該物聯(lián)網(wǎng)平臺具有如下特點:①基于Nodejs環(huán)境,采用前后端分離架構(gòu)分層開發(fā)物聯(lián)網(wǎng)平臺,降低前后端服務(wù)器的耦合度,提升客戶端并發(fā)請求處理速度。②基于功能和業(yè)務(wù)邏輯進行模塊化開發(fā),解決頁面結(jié)構(gòu)冗雜問題的同時易于平臺實現(xiàn)功能擴展。③統(tǒng)一通信協(xié)議和數(shù)據(jù)傳輸格式,基于MQTT協(xié)議實現(xiàn)平臺同時與多個網(wǎng)關(guān)設(shè)備的連接通信。

        1 物聯(lián)網(wǎng)平臺總體架構(gòu)

        物聯(lián)網(wǎng)技術(shù)是智能時代最直接的產(chǎn)物,其主要由感知層、傳輸層及應(yīng)用層3部分組成。物聯(lián)網(wǎng)平臺屬于物聯(lián)網(wǎng)系統(tǒng)的應(yīng)用層,向上提供可視化頁面與客戶端進行交互,向下與設(shè)備端進行通信實現(xiàn)數(shù)據(jù)的解析存儲,是物聯(lián)網(wǎng)系統(tǒng)中服務(wù)應(yīng)用于數(shù)據(jù)分析的重要環(huán)節(jié)。

        本設(shè)計在Nodejs環(huán)境下,統(tǒng)一前后端開發(fā)語言,結(jié)合Web技術(shù)開發(fā)設(shè)計物聯(lián)網(wǎng)平臺。采用前后端分離架構(gòu)、JavaScript語言分別開發(fā)前端頁面和后端服務(wù)器,并基于MQTT協(xié)議與網(wǎng)關(guān)設(shè)備建立雙向通信,完成網(wǎng)關(guān)物理實體與虛擬注冊網(wǎng)關(guān)設(shè)備的映射,實現(xiàn)平臺對多個監(jiān)測現(xiàn)場底層傳感數(shù)據(jù)的接入、傳輸、處理及可視化。授權(quán)用戶通過前端頁面實時查看監(jiān)測現(xiàn)場數(shù)據(jù)信息以及對底層設(shè)備下發(fā)控制命令。物聯(lián)網(wǎng)平臺總體架構(gòu)如圖1所示,分為頁面視圖層、業(yè)務(wù)處理層、物接入層及數(shù)據(jù)存儲層4部分。

        圖1 物聯(lián)網(wǎng)平臺總體架構(gòu)

        (1)頁面視圖層主要實現(xiàn)與用戶交互。用戶通過瀏覽器基于HTTP協(xié)議訪問該物聯(lián)網(wǎng)平臺,通過提供的UI界面可查詢用戶、網(wǎng)關(guān)設(shè)備等信息及實現(xiàn)監(jiān)測數(shù)據(jù)可視化,并可通過平臺所提供的附加功能,如歷史數(shù)據(jù)查詢、日志記錄等信息進行決策。

        (2)業(yè)務(wù)處理層向上提供REST API接口,為前端用戶操作提供后臺服務(wù)支持[8],完成用戶注冊、設(shè)備注冊及信息查詢等邏輯操作。向下對物接入層提交的數(shù)據(jù)信息進行解析并存儲至數(shù)據(jù)庫。

        (3)物接入層主要實現(xiàn)與網(wǎng)關(guān)設(shè)備的雙向通信,完成網(wǎng)關(guān)設(shè)備的認證連接?;贛QTT協(xié)議實現(xiàn)平臺與網(wǎng)關(guān)設(shè)備之間的數(shù)據(jù)傳輸。

        (4)數(shù)據(jù)存儲層作為數(shù)據(jù)的存儲倉庫,主要用于存儲用戶、設(shè)備和監(jiān)測數(shù)據(jù)及狀態(tài)等信息。

        2 物聯(lián)網(wǎng)平臺具體設(shè)計

        物聯(lián)網(wǎng)平臺基本功能應(yīng)包括與多個網(wǎng)關(guān)設(shè)備通信、對監(jiān)測現(xiàn)場數(shù)據(jù)解析存儲及以網(wǎng)頁的形式實現(xiàn)監(jiān)測數(shù)據(jù)可視化,本文設(shè)計的物聯(lián)網(wǎng)平臺滿足上述需求并具有普遍的適用性。本文將以該平臺應(yīng)用于監(jiān)測溫室大棚環(huán)境信息為例,完成平臺功能的開發(fā)和測試。

        2.1 頁面視圖層設(shè)計實現(xiàn)

        頁面視圖層直接與用戶交互,提供給客戶端可視化界面及功能選擇?;谇昂蠖朔蛛x架構(gòu),前端可視化頁面采用目前流行的Vuejs前端框架[9]結(jié)合ElementUI組件庫實現(xiàn)。Vuejs屬于MVVM(model view view model)架構(gòu),它幫助我們屏蔽了具體的DOM操作和輸出格式,并分模塊設(shè)計頁面樣式和邏輯控制,只需聲明各部分之間的綁定關(guān)系便可實現(xiàn)數(shù)據(jù)和頁面的同步,改善了模板引擎開發(fā)過程中數(shù)據(jù)綁定速率慢及修改維護困難的問題?;谀K化的思想,在設(shè)計語言分模塊開發(fā)的基礎(chǔ)上,根據(jù)平臺功能需求進行模塊化開發(fā),一個模塊對應(yīng)平臺的一個功能實現(xiàn),使得在不改變原有代碼的基礎(chǔ)上便可進行功能擴展。

        物聯(lián)網(wǎng)監(jiān)測平臺有登錄模塊、地圖首頁、用戶管理、設(shè)備管理、功能實現(xiàn)、實時數(shù)據(jù)、歷史數(shù)據(jù)、日志記錄和報警記錄9大模塊。授權(quán)登錄的用戶可通過可視化頁面實現(xiàn)數(shù)據(jù)監(jiān)控及下發(fā)控制指令。每一個請求基于HTTP協(xié)議轉(zhuǎn)發(fā)至后端服務(wù)器進行處理,如查詢歷史數(shù)據(jù)、設(shè)備注冊和數(shù)據(jù)同步等操作。用戶與平臺交互的過程如圖2所示。

        圖2 用戶與平臺交互流程

        (1)登錄頁面主要對用戶身份進行驗證。在開發(fā)過程中,對用戶的密碼進行了MD5加密及格式控制,只有在用戶名及密碼與數(shù)據(jù)庫中存儲的用戶信息一致的情況下才可登錄到本平臺。驗證通過后將進入平臺首頁,即地圖頁面。地圖頁面通過在VUE框架中引入baidu-map插件實現(xiàn),通過該頁面可以查看不同網(wǎng)關(guān)設(shè)備分布的地理位置及在線狀態(tài)等信息。

        (2)用戶管理模塊顯示注冊用戶的信息,并提供給用戶可視化操作按鈕,實現(xiàn)用戶信息的增刪改查。設(shè)備管理模塊展示已注冊設(shè)備的信息,只有注冊的設(shè)備才能基于MQTT協(xié)議實現(xiàn)與平臺的數(shù)據(jù)傳輸。日志記錄模塊和報警模塊分別記錄所有用戶的命令操作和底層數(shù)據(jù)的報警信息,便于管理者對平臺集中管理和對監(jiān)測設(shè)備作出相應(yīng)決策和維護。以上四模塊均采用分頁功能實現(xiàn)數(shù)據(jù)的緩存顯示,提高了用戶的交互體驗。

        (3)功能實現(xiàn)模塊主要包括物聯(lián)網(wǎng)平臺所具備的基本功能,包括OTA升級功能、設(shè)備分組功能及影子數(shù)據(jù)同步功能。其中OTA升級功能負責(zé)對網(wǎng)關(guān)設(shè)備實現(xiàn)軟件系統(tǒng)升級,如軟硬件系統(tǒng)版本。設(shè)備分組功能主要實現(xiàn)對批量設(shè)備下發(fā)同一指令,實現(xiàn)對底層設(shè)備的統(tǒng)一控制。影子數(shù)據(jù)同步功能保證了平臺與底層設(shè)備的狀態(tài)同步。

        (4)實時數(shù)據(jù)頁面主要實現(xiàn)監(jiān)測現(xiàn)場的實時環(huán)境信息和設(shè)備開關(guān)狀態(tài)以可視化形式展示給客戶端。為保證數(shù)據(jù)的時效性,采用輪詢及Websocket兩種通信機制監(jiān)測實時數(shù)據(jù)。實時數(shù)據(jù)頁面將通過定時函數(shù),周期性的查詢實時數(shù)據(jù)表中的數(shù)據(jù)。若在這期間,后端服務(wù)器監(jiān)測到實時數(shù)據(jù)更新,將通過Websocket機制通知前端頁面[10],真正實現(xiàn)瀏覽器與服務(wù)器的全雙工通信。

        (5)歷史數(shù)據(jù)頁面通過引入Echarts圖表插件實現(xiàn),可以根據(jù)不同參數(shù)量和時間查看對應(yīng)參數(shù)的歷史數(shù)據(jù)曲線,便于用戶對棚內(nèi)監(jiān)測環(huán)境進行分析決策。

        2.2 業(yè)務(wù)處理層設(shè)計實現(xiàn)

        業(yè)務(wù)處理層作為中間層,是實現(xiàn)頁面視圖層、物接入層與數(shù)據(jù)庫交互的重要環(huán)節(jié)。該層采用當(dāng)下流行的Thinkjs框架搭建Web服務(wù)器,提供REST API接口響應(yīng)頁面視圖層和物接入層的請求。Thinkjs作為面向未來開發(fā)的Nodejs框架,繼承了Nodejs基于事件驅(qū)動,異步I/O及單線程的特點,解決了同步請求導(dǎo)致的資源浪費及多線程處理請求帶來的死鎖問題。Nodejs摒棄了一個線程處理一個請求的傳統(tǒng)方式。在實現(xiàn)異步I/O的過程中,主進程負責(zé)監(jiān)聽,并將其將監(jiān)聽到的請求作為事件加入到事件循環(huán)隊列中,連續(xù)的執(zhí)行循環(huán)體輪詢將待處理事件交由底層I/O線程異步處理,待處理完成后將響應(yīng)結(jié)果返回給應(yīng)用程序[11]。Nodejs異步處理請求如圖3所示。

        圖3 Nodejs異步處理請求

        2.2.1 處理客戶端請求

        本文基于REST風(fēng)格設(shè)計API,并根據(jù)功能需求同樣進行模塊化開發(fā),不同的功能模塊對應(yīng)不同的邏輯響應(yīng)模塊,并在模塊中對各個響應(yīng)函數(shù)進行異步封裝,利用Nodejs基于事件循環(huán)的處理機制實現(xiàn)前端頁面的快速響應(yīng)。當(dāng)前端頁面提交請求后,后端Web服務(wù)器通過控制函數(shù)根據(jù)請求API將請求分別送至相應(yīng)功能模塊進行處理。對于簡單的查詢請求,將與數(shù)據(jù)庫進行交互并將異步查詢結(jié)果以JSON格式返回至前端頁面;對于設(shè)備注冊等表單請求,則將注冊信息存入數(shù)據(jù)庫。如果是對底層設(shè)備控制命令的下發(fā),則將控制命令交由物接入層進行轉(zhuǎn)發(fā)處理。業(yè)務(wù)處理層在監(jiān)聽到實時數(shù)據(jù)更新時,基于Websocket協(xié)議將數(shù)據(jù)傳輸至前端頁面以展示給客戶端。業(yè)務(wù)層處理客戶端請求流程如圖4所示。

        2.2.2 處理數(shù)據(jù)請求

        業(yè)務(wù)處理層向下需對物接入層轉(zhuǎn)發(fā)的數(shù)據(jù)進行處理,基于Nodejs事件循環(huán)、異步I/O的特點,主線程無需等待響應(yīng)結(jié)果返回便可繼續(xù)處理剩余請求,實現(xiàn)數(shù)據(jù)的快速解析和存儲。在接收到物接入層提交的數(shù)據(jù)處理請求后,消息處理模塊對接收的消息根據(jù)類型和主題分模塊處理。對于網(wǎng)關(guān)設(shè)備的連接狀態(tài)或系統(tǒng)軟件版本號等實時性不強的消息,解析后直接存入數(shù)據(jù)庫。若消息為監(jiān)測現(xiàn)場的實時數(shù)據(jù),則根據(jù)請求體中的消息主題交由相應(yīng)函數(shù)處理。業(yè)務(wù)處理層處理數(shù)據(jù)請求如圖5所示。業(yè)務(wù)層主要處理以下4種主題的數(shù)據(jù)請求。

        (1)監(jiān)測現(xiàn)場的傳感器消息。

        (2)監(jiān)測現(xiàn)場的開關(guān)變量消息。

        (3)客戶端向設(shè)備端下發(fā)指令,設(shè)備端回復(fù)確認消息。

        (4)設(shè)備端主動向服務(wù)端獲取狀態(tài)同步的消息。

        圖5 業(yè)務(wù)處理層處理數(shù)據(jù)請求

        對于存在不確定量的網(wǎng)關(guān)設(shè)備向平臺同步發(fā)送實時數(shù)據(jù)的情況,如傳感數(shù)據(jù)或開關(guān)變量,則將數(shù)據(jù)緩存至消息隊列,待服務(wù)器空閑時進行存儲,并根據(jù)存儲在緩存數(shù)據(jù)庫中MessageId判斷是否該消息已被成功接收,保證了數(shù)據(jù)時效性的同時避免因數(shù)據(jù)阻塞丟包問題的發(fā)生。

        2.3 物接入層設(shè)計實現(xiàn)

        物接入層負責(zé)與網(wǎng)關(guān)設(shè)備連接通信,實現(xiàn)平臺對監(jiān)測現(xiàn)場底層數(shù)據(jù)的接收管理及對底層監(jiān)測設(shè)備狀態(tài)的反向控制。

        2.3.1 物聯(lián)網(wǎng)服務(wù)器

        物接入層利用MQTT協(xié)議完成網(wǎng)關(guān)設(shè)備的接入認證及數(shù)據(jù)的實時雙向傳輸。MQTT是一種基于代理的輕量級發(fā)布/訂閱消息傳輸協(xié)議, 其可在低帶寬、不可靠網(wǎng)絡(luò)中進行數(shù)據(jù)的有效傳輸,已成為物聯(lián)網(wǎng)標(biāo)準(zhǔn)傳輸協(xié)議[12]。MQTT協(xié)議主要由消息代理服務(wù)器和客戶端兩部分組成,其中客戶端包括消息的發(fā)布者和訂閱者。消息的發(fā)布者和訂閱者基于IP地址和端口連接到消息代理服務(wù)器,由代理服務(wù)器實現(xiàn)消息的接收和轉(zhuǎn)發(fā)。消息傳輸質(zhì)量等級分為QoS0、QoS1及QoS2這3種,代理服務(wù)器根據(jù)消息傳輸?shù)燃壟袛嗍欠裣蚩蛻舳税l(fā)布消息確認。其中傳輸?shù)南⒅饕芍黝}和元數(shù)據(jù)兩部分構(gòu)成,主題可理解為一種消息類型,元數(shù)據(jù)為主要的消息內(nèi)容,訂閱者根據(jù)約定主題才可獲得相應(yīng)的元數(shù)據(jù)信息。MQTT協(xié)議通信過程如圖6所示。

        圖6 MQTT協(xié)議通信過程

        本文選用EMQX作為消息代理服務(wù)器,即物聯(lián)網(wǎng)服務(wù)器。EMQX是支持大規(guī)模連接和分布式集群,發(fā)布訂閱模式5G時代下的開源物聯(lián)網(wǎng)消息服務(wù)器,可同時處理百萬條消息數(shù)據(jù),足夠滿足中小型企業(yè)的應(yīng)用需求?;陂_發(fā)需求,在EMQX服務(wù)器中加載數(shù)據(jù)庫插件,實現(xiàn)設(shè)備的認證連接;加載Wekhook插件,實現(xiàn)代理服務(wù)器向訂閱者轉(zhuǎn)發(fā)消息。

        2.3.2 平臺與網(wǎng)關(guān)設(shè)備通信實現(xiàn)

        平臺與網(wǎng)關(guān)的通信主要包括3種形式,即設(shè)備的認證連接、網(wǎng)關(guān)設(shè)備向平臺發(fā)送數(shù)據(jù)和平臺向網(wǎng)關(guān)設(shè)備同步信息,只有鑒權(quán)通過的設(shè)備才可與平臺進行數(shù)據(jù)傳輸。在本設(shè)計中,物聯(lián)網(wǎng)服務(wù)器為MQTT代理服務(wù)器,業(yè)務(wù)處理層和網(wǎng)關(guān)設(shè)備端為MQTT客戶端。

        (1)設(shè)備連接認證

        本文采用三元組即產(chǎn)品名、設(shè)備名和密鑰來標(biāo)識一個邏輯設(shè)備。在本設(shè)計中規(guī)定設(shè)備接入本平臺的用戶名為ProductName/DeviceName(用戶名/設(shè)備名),密鑰是由shortid插件產(chǎn)生的隨機且唯一的字符串。在物聯(lián)網(wǎng)服務(wù)器數(shù)據(jù)庫插件中設(shè)置連接條件實現(xiàn)設(shè)備的認證連接。當(dāng)有網(wǎng)關(guān)設(shè)備請求連接時,物聯(lián)網(wǎng)服務(wù)器將查詢數(shù)據(jù)庫網(wǎng)關(guān)設(shè)備表,若是已注冊的網(wǎng)關(guān)設(shè)備,則通過用戶名和密鑰連接到物聯(lián)網(wǎng)平臺。

        (2)網(wǎng)關(guān)設(shè)備向平臺傳輸數(shù)據(jù)

        引入EMQX自帶的Hook機制[13],實現(xiàn)代理服務(wù)器向客戶端的數(shù)據(jù)轉(zhuǎn)發(fā),包括設(shè)備端的連接狀態(tài)及其發(fā)布的數(shù)據(jù)消息。網(wǎng)關(guān)設(shè)備在注冊時,同步的將其可發(fā)布訂閱主題的權(quán)限存入了其對應(yīng)的數(shù)據(jù)庫集合中。物聯(lián)網(wǎng)服務(wù)器只會接收客戶端根據(jù)約定發(fā)布的主題,并將其封裝在請求體中,基于hook機制以POST請求方式將數(shù)據(jù)轉(zhuǎn)發(fā)至即業(yè)務(wù)處理層的消息處理模塊進行處理。以物聯(lián)網(wǎng)平臺為描述對象,平臺與網(wǎng)關(guān)設(shè)備通信的主題及函數(shù)見表1。

        表1 網(wǎng)關(guān)設(shè)備向物聯(lián)網(wǎng)平臺發(fā)布數(shù)據(jù)的主題及處理函數(shù)

        (3)平臺向設(shè)備端傳輸數(shù)據(jù)

        使用EMQX服務(wù)器的訂閱功能實現(xiàn)設(shè)備端的自動訂閱。即當(dāng)有設(shè)備連接到該平臺時,在EMQX服務(wù)器中便會根據(jù)主題權(quán)限定義當(dāng)前設(shè)備所能訂閱的主題,一旦監(jiān)聽到平臺發(fā)布主題,設(shè)備端便可根據(jù)物聯(lián)網(wǎng)服務(wù)器中的訂閱列表實現(xiàn)消息的獲取。在業(yè)務(wù)處理層封裝publishTo()函數(shù)實現(xiàn)平臺向網(wǎng)關(guān)設(shè)備端傳輸數(shù)據(jù),如通過前端頁面操作開關(guān)狀態(tài),OTA升級功能及影子數(shù)據(jù)同步等功能實現(xiàn)。

        網(wǎng)關(guān)設(shè)備經(jīng)過認證連接至物聯(lián)網(wǎng)平臺,頁面視圖層、業(yè)務(wù)處理層及物接入層協(xié)同與網(wǎng)關(guān)設(shè)備通信過程如圖7所示。

        圖7 物聯(lián)網(wǎng)平臺與網(wǎng)關(guān)設(shè)備通信

        2.4 數(shù)據(jù)存儲層

        本設(shè)計選擇MongoDB數(shù)據(jù)庫結(jié)合Redis緩存數(shù)據(jù)庫和Rabbitmq消息隊列構(gòu)成數(shù)據(jù)存儲層。MongoDB屬于非關(guān)系型數(shù)據(jù)庫,支持多功能查詢語句,其基于內(nèi)存的存儲方式相比于關(guān)系數(shù)據(jù)庫可實現(xiàn)更快速的數(shù)據(jù)讀取。同時MongoDB支持JSON格式的數(shù)據(jù)結(jié)構(gòu),與本平臺和設(shè)備端通信的數(shù)據(jù)格式相一致,大大加速數(shù)據(jù)解析效率,用于存儲用戶、設(shè)備、傳感數(shù)據(jù)及歷史數(shù)據(jù)等信息。

        Redis緩存數(shù)據(jù)庫和Rabbitmq消息隊列主要實現(xiàn)對設(shè)備端上傳的數(shù)據(jù)進行異步處理。每條消息有唯一標(biāo)識MessageId,從主題中提取并存入緩存數(shù)據(jù)庫,便于平臺快速查詢消息是否已被正確接收,保證設(shè)備端消息的不重不漏。對于多臺設(shè)備同時上傳數(shù)據(jù)至平臺的情況,則先將數(shù)據(jù)緩存至消息隊列,待服務(wù)器空閑時將數(shù)據(jù)輪流取出存放至數(shù)據(jù)庫,解決了因數(shù)據(jù)存儲不及時產(chǎn)生的丟包問題,同時提高平臺處理數(shù)據(jù)的并發(fā)能力。

        3 平臺測試及分析

        3.1 性能測試

        3.1.1 平臺服務(wù)器性能測試

        本平臺以網(wǎng)頁形式展示給客戶端可視化頁面,平臺處理請求的速度直接影響用戶體驗。因此在本地對基于Nodejs搭建的Web服務(wù)器和Tomcat服務(wù)器處理客戶端并發(fā)請求的吞吐率進行測試,服務(wù)器端統(tǒng)一返回一串字符。以不同并發(fā)數(shù)向服務(wù)器發(fā)送請求,每次并發(fā)測試持續(xù)30 s,分別得到各服務(wù)器的平均吞吐率,測試結(jié)果如圖8所示。由測試結(jié)果可知,隨著客戶端并發(fā)請求數(shù)的增加,Nodejs下的Web服務(wù)器處理的平均吞吐率高于Tomcat服務(wù)器,即基于Nodejs搭建的Web服務(wù)器可更快處理客戶端的并發(fā)請求。

        圖8 服務(wù)器平均吞吐率測試結(jié)果

        3.1.2 數(shù)據(jù)通信性能測試

        本文采用Jmeter測試工具模擬多個MQTT客戶端連接到平臺并發(fā)布數(shù)據(jù),設(shè)置MQTT客戶端連接超時的時間為10 s,對平臺同時與多個網(wǎng)關(guān)設(shè)備之間的通信進行測試。選取實時數(shù)據(jù)為發(fā)布內(nèi)容,長度為189字符/消息,MQTT客戶端的個數(shù)即為并發(fā)數(shù)據(jù)的條數(shù)。每次數(shù)據(jù)并發(fā)測試10次取平均值,通信結(jié)果見表2。由測試結(jié)果可知,當(dāng)超過2000個MQTT客戶端同時向平臺發(fā)布數(shù)據(jù)時,由于業(yè)務(wù)層基于HTTP協(xié)議接收數(shù)據(jù)存在單點故障的問題,將出現(xiàn)丟包的現(xiàn)象;但當(dāng)MQTT客戶端并發(fā)連接數(shù)不大于2000時,平臺可準(zhǔn)確接收全部數(shù)據(jù),滿足平臺的設(shè)計需求。

        表2 通信性能測試結(jié)果

        3.2 通信測試

        物聯(lián)網(wǎng)平臺與網(wǎng)關(guān)設(shè)備的通信將以設(shè)備端上傳數(shù)據(jù),平臺對現(xiàn)場環(huán)境信息實時顯示說明。物聯(lián)網(wǎng)平臺與網(wǎng)關(guān)設(shè)備通信測試結(jié)果(實時數(shù)據(jù)頁面)如圖9所示,包括對棚內(nèi)環(huán)境參數(shù)及底層設(shè)備開關(guān)狀態(tài)信息。平臺基于輪詢機制每十分鐘自動刷新實時數(shù)據(jù)頁面,若在兩次刷新頁面時間內(nèi),基于Websocket機制監(jiān)聽到實時數(shù)據(jù)的更新,則將最新的實時數(shù)據(jù)綁定至該頁面。并可通過開關(guān)按鈕實現(xiàn)對底層設(shè)備的反向控制。

        圖9 通信測試結(jié)果(實時數(shù)據(jù)頁面)

        3.3 UI界面

        平臺服務(wù)端其它主要功能設(shè)計結(jié)果如圖10所示,包括地圖首頁、設(shè)備詳情頁及歷史曲線頁。

        圖10 功能頁面

        4 結(jié)束語

        隨著智能時代的到來,物聯(lián)網(wǎng)平臺作為實現(xiàn)人與物交互的窗口,是物聯(lián)網(wǎng)技術(shù)不可或缺的部分。本文將Web系統(tǒng)架構(gòu)應(yīng)用于物聯(lián)網(wǎng)開發(fā),并基于MQTT協(xié)議利用EMQX服務(wù)器的Hook機制和管理機制,構(gòu)建了一個設(shè)備匯聚、信息集中管理和顯示的物聯(lián)網(wǎng)監(jiān)測平臺。經(jīng)測試,該平臺可實時獲取多個監(jiān)測現(xiàn)場的信息并提供給客戶端可視化服務(wù),滿足物聯(lián)網(wǎng)平臺功能需求,可作為多種物聯(lián)網(wǎng)環(huán)境下實現(xiàn)人物交互的監(jiān)測平臺。本文接下來將致力于安全快速處理并發(fā)數(shù)據(jù)問題的研究,結(jié)合云計算技術(shù)提高平臺分析數(shù)據(jù)、處理數(shù)據(jù)的能力。

        猜你喜歡
        頁面設(shè)備
        微信群聊總是找不到,打開這個開關(guān)就好了
        大狗熊在睡覺
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        刷新生活的頁面
        基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        500kV輸變電設(shè)備運行維護探討
        如何在設(shè)備采購中節(jié)省成本
        原來他們都是可穿戴設(shè)備
        消費者報道(2014年7期)2014-07-31 11:23:57
        同一Word文檔 縱橫頁面并存
        国产三级国产精品三级在专区| 国产目拍亚洲精品区一区| 狠狠综合亚洲综合亚色| 国产主播一区二区三区在线观看| 人妻体体内射精一区中文字幕| 亚洲av熟女中文字幕| 狠狠色丁香婷婷综合潮喷| 亚洲美腿丝袜 欧美另类| 性久久久久久久| 久久国产精99精产国高潮| 亚洲综合偷拍一区二区| 亚洲中文字幕精品乱码2021| 特级毛片爽www免费版| 99er视频| 日本最新在线一区二区| 青青草高中生在线视频| 国产av无码专区亚洲av中文| 国产nv精品你懂得| 亚洲一区精品一区在线观看| 99久久99久久久精品蜜桃| 日韩欧美成人免费观看| 成人区人妻精品一区二区不卡网站 | 天天射色综合| 国产乱人伦偷精品视频还看的| 亚洲av成人无码一区二区三区在线观看| 亚洲av综合色区无码一二三区| 亚洲 都市 校园 激情 另类| 狠狠躁天天躁无码中文字幕图| 无码av专区丝袜专区| 中文字幕高清不卡视频二区| 新婚少妇无套内谢国语播放| 性生交大片免费看淑女出招| 国产在线精品福利大全| 凹凸世界视频a一二三| 美女不带套日出白浆免费视频| 亚洲综合无码一区二区三区| 一区二区三区蜜桃在线视频| 澳门蜜桃av成人av| 亚洲熟妇无码八av在线播放 | 国产精品久久毛片av大全日韩 | 欧美v国产v亚洲v日韩九九|