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

物聯網網關實時雙向通信模塊化設計

2021-05-20 06:50:34陳文藝
計算機工程與設計 2021年5期
關鍵詞:設備系統

陳文藝,高 婧,楊 輝

(1.西安郵電大學 現代郵政學院,陜西 西安 710061;2.西安郵電大學 通信與信息工程學院,陜西 西安 710121)

0 引 言

基于互聯網、傳統電信網等信息承載體,讓所有能夠被獨立尋址的普通物理對象實現互聯互通的網絡就是物聯網(internet of things,IOT)[1,2]。文獻[3]提出了物聯網系統中網關的作用。在物聯網通信協議的選擇中,HTTP協議采用“請求-應答”的方式實現通信,優點是方便、敏捷且易于擴展,缺點是無法實現數據的實時雙向傳輸[4]。在文獻[5]中提到的MQTT是一種構建于TCP/IP上的基于發布/訂閱(publish/subscribe)模式的“輕量級”通訊協議,它的有優點是開源、簡單和實現方便[6],缺點是功耗很高,且缺乏加密機制。

為了實現物聯網網關和云平臺的實時雙向通信,提高傳輸效率,本文采用在設計好的開放性的物聯網平臺上,以Node.js服務器為運行平臺,利用Redis數據庫快速存取技術[7],設計基于Socket.IO通信協議的物聯網網關和資源平臺實時雙向通信系統[8]的模塊化處理。與傳統物聯網通信協議相比之下,Socket.IO的優點是只需要在客戶端與服務器之間進行一次握手,便可快速建立Socket雙向通道,可以實現數據的實時雙向傳送,有效節約寬帶資源,從而提高系統對數據模型的實時更新效率,保證系統的穩定性和可靠性。

1 物聯網開放平臺與網關

物聯網系統從上至下分別為web前端界面、物聯網云平臺、物聯網網關和傳感設備。通過構建物聯網系統架構、云平臺以及網關,實現物聯網系統的實時雙向通信傳輸。

1.1 物聯網系統架構

為方便底層傳感設備數據安全、穩定、高效傳輸及存儲,建立物聯網系統架構,如圖1所示。

圖1 物聯網系統架構

物聯網系統架構主要由底層設備、物聯網網關、物聯網云平臺以及瀏覽器組成。物聯網系統使用基于平臺+網關的開放設備體系,完成對底層傳感設備數據的接入、處理以及傳輸操作,最終通過前端以界面形式展現給PC端用戶或者移動端用戶。

1.2 物聯網云平臺

云平臺采用統一的資源描述和面向資源的架構(ROA),利用異步非阻塞特性,在長連接、多請求的環境下優勢非常明顯[9]。利用Node.js語言高效的數據事件引擎、高并發的處理機制特點[10],來完成云平臺的設計與實現。物聯網云平臺架構如圖2所示。

圖2 物聯網云平臺架構

為了完成對底層設備數據的實時傳輸和擁有更高效率的處理機制,解決了HTTP協議不具有實時性和MQTT協議只能在處理器和內存資源有限制的硬件設備中運行的缺點,因此本文采用基于Socket.IO通信協議的實時雙向傳輸機制,對云平臺進行模塊劃分,可以更快速和高效完成對底層設備數據的處理與應用。

將云平臺劃分為機器服務器、資源服務器、事件服務器和用戶服務器4部分。其中用戶web服務器用來實現平臺與web端的交互,物聯網資源服務器則用來完成平臺數據的增刪改查、平臺事件的檢測和事件操作任務分發,物聯網事件服務器則用來維護事件和操作處理隊列,實時處理事件,通過在機器服務器中構建Socket.IO服務器端來完成平臺與網關的數據實時雙向傳輸。設備成功接入以后,在網關對設備數據進行解析和處理,將設備的數據通過物聯網網關傳輸到云平臺,完成設備與平臺之間的數據傳輸過程,讓平臺對設備的操作變得更加簡單和方便,工作量得以減少,擁有較高的工作效率。

1.3 物聯網網關

物聯網網關作為連接云平臺和底層設備的橋梁,完成對底層設備的認證、數據上傳、數據更新等管理與應用。為了實現網關對設備的協議的轉換、管理與廣泛接入,因此我們對網關進行分層架構和系統模塊設計。

1.3.1 構建網關分層架構

在網關分層架構中,可將其分為由平臺通信層和數據模型管理同步層組成的網關內部模塊,由協議適配層和感知接口層組成的設備接入模塊兩部分組成,并且在兩個模塊之間采用TCP進行通信,來實現設備的接入認證,設備的管理以及設備數據的協議轉化。網關分層架構如圖3所示。

圖3 網關分層架構

圖3中,物聯網網關分層架構主要由感知接口層、協議適配層、數據模型同步與處理層以及平臺通信層組成。其中通過在平臺通信層構建Socket.IO客戶端,以及在機器服務器中構建服務器端,來完成物聯網平臺雙向通信系統的實現;數據模型同步與處理層用來實現平臺數據下發以及設備數據上傳的過程,實現平臺模型與網關模型的同步更新;協議適配層來完成設備數據模型與實際設備間的數據轉換,實現物聯網平臺對各類設備的接入;感知接口層實現設備的接入驅動程序,對于大多數通用設備,提供通用適配程序;開發程序來連接非標設備。

1.3.2 構建網關系統

網關系統的功能是完成底層傳感設備數據的獲取和存儲、在原有基礎上加快事件處理速度、減緩云平臺的壓力,實現物聯網網關對底層傳感設備的應用和管理。網關系統模塊如圖4所示。

圖4 網關系統模塊

圖4中,網關系統模塊由Socket.IO通信模塊、網關和設備模型模塊、網關和設備管理與事件處理模塊、設備通信模塊以及網關心跳、加密處理模塊5部分組成。Socket.IO通信模塊功能是實現物聯網平臺和網關的實時雙向通信,完成設備的接入等一系列操作;網關和設備模型模塊功能是在網關上電后自動與平臺通信,按平臺注冊數據模型創建網關和設備物理模型,并維持與平臺實時同步更新;網關和設備管理與事件處理模塊功能是完成對網關和設備的狀態管理、網關的配置管理和設備的位置及操作管理,同時實現對網關設備模型事件處理模塊和事件監測模塊的處理;設備通信模塊功能是通過TCP通信來實現底層設備的接入,完成傳感設備數據和物理網關設備模型數據的轉換;網關心跳管理模塊功能是需要定時上傳心跳消息到機器服務器,否則機器服務器認為網關關機,并上傳狀態到平臺數據庫;加密處理模塊功能是采用MD5加密方式對網關接入認證時分配的userKey和網關ID進行認證授權網關。

2 網關平臺雙向通信系統

通過構建機器服務器、物聯網雙向通信系統以及物聯網網關分模塊設計,實現物聯網系統雙向通信傳輸。

2.1 機器服務器設計

在物聯網資源平臺內部構建機器服務器,用來實現網關設備的接入、身份驗證以及模型同步。機器服務器模塊如圖5所示。

圖5 機器服務器模塊

圖5中,機器服務器模塊主要由Redis消息隊列模塊、消息處理模塊、接口模塊和Socket.IO服務器模塊構成。

Redis消息隊列可以緩存數據,解決數據高并發情況,Socket.IO服務器端與Socket.IO客戶端進行數據的實時雙向交互;消息處理模塊來實現對消息的解析、處理和分發;接口模塊用來實現數據的交互和緩存讀取的作用。

通過在物聯網平臺機器服務器中建立Socket.IO服務器和網關中建立Socket.IO客戶端,來完成平臺與網關的雙向實時通信,并完成網關設備的認證、網關設備數據的上傳與更新和網關/設備的心跳傳輸。在完成網關設備的認證接入后,從物聯網資源平臺讀取已注冊好的模型,完成網關設備模型的同步更新。

2.2 雙向通信系統設計

Socket.IO是Node.js平臺下基于WebSocket協議的實時通信模塊,它由客戶端的JavaScript和服務端的Node.js組成[11]。其通信方式和傳統的HTTP協議不同之處在于,客戶端和服務端之間只需要進行一次握手過程,之后便建立快速的Socket雙向通道,在原理上有效地節約了服務端寬帶資源,且提高系統傳輸效率。

在物聯網系統中,基于Socket.IO雙向通信協議完成物聯網網關和云平臺的數據傳輸,其中包括底層傳感設備的接入認證、數據和心跳消息傳輸。設備認證過程主要實現底層設備的安全接入,保證系統的安全性,并返回相應的數據模型到網關側;數據傳輸過程不僅實現設備數據的有效收集并將其存入系統數據庫中,同時也可根據平臺側需求完成數據模型的同步更新與修改,最后需要定時上傳設備心跳消息,保證設備保持在線狀態,同時發送給云平臺。

2.3 網關模塊化設計

根據需求的不同,完成網關的功能模塊劃分,對劃分好的模塊進行封裝管理與開發,且各模塊之間不存在耦合,方便后續的軟件程序化設計。網關模塊化設計如圖6所示。

圖6 網關模塊化設計

如圖6所示,針對本系統,網關主要完成3部分操作:一是網關設備認證模塊,當有底層設備接入時,網關發送認證請求到平臺端,認證成功,返回物理網關數據模型;二是數據上傳與指令下發模塊,底層傳感設備可以實現將數據實時上傳到平臺并且存入系統的數據庫中,與此同時,完成平臺模擬數據類型和設備數據數據類型的同步,平臺可以將更新好的數據模型下發到網關中;三是網關設備心跳的管理模塊,定時發送網關和設備的心跳消息到機器服務器中,長時間斷開會被認為處于關機狀態,同時還需上傳狀態到數據庫中,完成網關和設備的心跳管理過程。

2.3.1 設備認證模塊

設備首次接入時,需經兩次認證,完成系統對底層設備的權限認證管理,其目的是確保設備接入合理及整個系統的安全,認證流程如圖7所示。

圖7 設備注冊認證流程

圖7中,底層傳感設備接入注冊時,網關端需發送認證請求數據包到平臺端,平臺端通過建立端口監聽來自網關端發送的數據。初次注冊認證時,網關端發送不攜帶userKey的數據包到平臺端,平臺端接收數據包并進行解析,判斷數據包中userKey是否為空,如果為空則生成認證隨機數,并存入Redis數據庫中,對網關userKey和生成的認證隨機數通過MD5方式進行加密,得到加密后的user-Key。反之,則根據網關ID從數據庫中讀取已經生成好的認證隨機數,并按照上述加密方式完成加密流程。對上述加密內容進行解密工作,若解密后的userKey與二次認證請求時的userKey一致,則說明認證成功,返回認證成功標識和數據模型到網關端,否則返回認證失敗,結束流程。

2.3.2 數據上傳與下發模塊

(1)設備數據上傳

設備需與平臺建立連接來完成設備數據的實時傳輸,及設備認證成功后平臺與設備數據模型的同步更新。底層設備數據經由TCP協議傳送至網關端,實現數據模型的同步更新過程,每當平臺注冊的虛擬數據模型發生更改時,對應的物理數據模型也必須更改,完成設備實時數據與狀態更新數據與定義好數據模型的同步轉換。數據上傳流程如圖8所示。

圖8 設備數據上傳流程

圖8中,設備數據上傳前,首先完成流程初始化工作。網關客戶端監聽來自底層設備上傳的數據,并對數據類型做出判斷和處理。若監聽到的為設備認證消息,則通過設備認證流程完成設備認證,并返回平臺中的網關設備模型;若監聽到的為設備數據更新消息,則需通過數據上傳流程同步更新數據至平臺端,完成底層設備數據的實時更新過程;若監聽到的為設備心跳消息,需定時上傳網關和設備的心跳消息到機器服務器中,判斷二者是否關機,并上傳網關和設備狀態到平臺數據庫中。

(2)平臺數據下發

在平臺端構造JSON格式設備控制指令,經網關下發指令消息到具體設備,實現對底層設備的操作,操作流程如圖9所示。

圖9 數據下發

圖9中,當平臺需要對設備進行操作時,進行初始化,對于平臺下發的JSON消息數據進行監聽,對于接收到的消息類型進行判斷和對應處理,并通過Socket.IO協議由平臺下發給網關。若監聽到的為指令消息,則通過網關下發給具體的底層傳感設備,對其進行具體的操作;若監聽到的為模型消息,平臺端則會返回認證完成時相應的設備模型和網關模型到網關中,至此,平臺數據下發過程結束。

2.3.3 心跳消息模塊

系統建立連接后,設置網關心跳間隔為30 s,主要包含兩方面作用:一是驗證設備、網關與平臺之間的是否保持連接;二是確保網關保持在線,完成數據有序傳輸,心跳消息上傳如圖10所示。

圖10 設備心跳上傳

圖10中,設備需要定時通過TCP通信協議向網關發送相應的心跳消息,用以確定設備是否與網關之間保持聯系,同時需要網關通過Socket.IO通信協議將設備的心跳消息定時發送給平臺,用來判斷設備與平臺之間的聯系,并將設備的實時狀態上傳到平臺數據庫中。

2.4 網關平臺實時雙向通信系統模塊化實現

采用Socket.IO雙向通信機制和Redis數據庫的數據緩存功能來完成物聯網網關實時雙向通信模塊化設計的實現。

2.4.1 Socket.IO雙向通信機制

Socket.IO實現了實時、雙向的通信機制,它解決了實時的通訊問題,并統一了服務器與客戶端的編程方式,啟動了socket以后,就像建立了一條客戶端與服務端的管道,兩邊可以互通有無[12]。其連接流程包括:服務器端啟動一個socket服務,監聽‘connection’事件;客戶端創建一個Websocket,并連接服務器端的socket,并綁定接收socket事件的方法;客戶成功接入后,服務器端socket就可以向客戶端發消息了。socket通訊可以簡單的理解為一個真正意義上的長鏈接,不主動斷開的話該通道一直存在,并且通道的兩端可以互相喊話。

物聯網網關與云平臺之間采用基于Websocket協議的Socket.IO機制進行雙向通信,其中Socket.IO消息機制如圖11所示。

圖11 Socket.IO消息機制圖解

圖11中,通過Socket.IO雙向通信消息機制實現物聯網網關與云平臺之間的數據傳輸。Socket.IO雙向通信流程為:網關服務器被創建成功,然后設置相應的端口號和IP參數,網關客戶端便根據訪問設置好的IP參數和端口號來完成與服務器的連接;當需要對底層傳感設備進行認證、數據更新以及網關/設備定時心跳上傳時,通過圖11的Socket.IO消息機制,利用socket.meit(“消息名稱”,json格式消息內容)方式將數據傳輸到資源平臺,同時也可實現服務器將數據推送給客戶端,并且通過socket.on(“消息名稱”,json格式消息內容)方式來監聽數據是否成功被接收,來完成物聯網網關與資源平臺的雙向通信。

2.4.2 Redis數據庫

Redis是基于key-value的一種NoSql數據庫,廣泛應用于分布式的應用中,一般用于放置緩存數據[13]。通過對key做一致性哈希,實現key對應Redis結點的分布,Redis支持異步將內存中的數據寫到硬盤上,同時不影響繼續服務。為了確保一定的運行效率,它的數據暫存在內存中,因此支持對復雜數據結構的高速操作。在云平臺中Socket.IO服務器跟數據庫Redis相連,用來完成對于設備數據的緩存存儲,當數據類型比較多、數據量較大或者出現高并發情況時,將數據暫存到Redis緩存隊列中,提高系統的效率,減少內存占用。緩存的數據有首次認證時服務端產生的認證隨機數、每個成功連接且在線的網關Socket.ID號、網關/設備狀態和網關/設備心跳時的超時時間。

3 測 試

對整個系統完成功能測試和性能測試來驗證系統的可行性,其中硬件設備包括溫濕度傳感器/攝像機(DM365)、曙光Sugon服務器和PC機一臺。性能測試采用Jmeter軟件測試整個雙向通信系統相關參數等。

3.1 功能測試

設計相關測試用例對物聯網網關通信各個模塊進行具體測試,該測試的具體功能有:設備認證、設備數據上傳和狀態更新、平臺指令數據下發和平臺模型數據下發、網關/設備心跳。

(1)設備認證

當有底層設備需要接入物聯網平臺時,需要對于底層設備進行認證,認證成功后平臺返回網關/設備數據模型。設備認證服務器端數據和客戶端數據圖傳輸圖如圖12、圖13 所示。

圖12 設備認證服務器端

圖13 設備認證客戶端

(2)圖片數據上傳

當底層設備為攝像機時,需要將采集到的圖片發送至平臺,通過前端界面顯示出來,進行系統的功能測試。系統功能測試如圖14所示。

圖14 功能測試

3.2 性能測試

為了保證系統能夠有效運行,對系統進行相關的性能測試,驗證系統的可行性,見表1。

表1中,選取3000個樣本數,在HTTP協議和Socket.IO 協議兩種方式下,利用Jmeter軟件進行性能測試。整個系統的性能測試報告中主要由采取的通信協議、樣本的個數、平均回應時長、錯誤的概率、丟包的概率以及傳輸速率幾個方面組成。由實驗結果可知,對比之下,采

表1 聚合報告對比

取Socket.IO協議時數據傳輸效率有明顯的提高,丟包率有了明顯的下降,整個系統的工作效率有了較大的提升。由測試結果可知,采用Socket.IO雙向通訊協議作為物聯網網關與平臺之間的雙向通信協議,不僅能夠實現網關和平臺之間的數據實時傳輸,還提高了整個系統的運行速率,保證了系統的安全性和穩定性。

4 結束語

基于Node.JS運行平臺,通信部分采用Socket.IO通信協議,系統數據庫用Redis來完成對于底層傳感設備數據的緩存存取的功能,完成了網關與平臺之間的實時雙向通信系統的模塊化設計與實現。首先,通過對于物聯網系統、云平臺以及網關架構的設計完成物聯網通信系統的框架實現。其次,根據不同的功能需求,對于通信系統完成不同模塊實現不同功能的設計,利用Socket.IO雙向通信協議,實現物聯網網關與云平臺之間關于底層設備認證、底層設備數據與心跳數據的實時傳輸過程。最后,通過進行功能和性能測試來完成對于系統的驗收工作。通過上述的測試結果可知,基于Socket.IO通信協議的網關與平臺的雙向通信系統相比于傳統協議而言,可以更有效地提高系統的工作效率以及系統運行時的穩定性。

猜你喜歡
設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 久久青草热| 亚洲婷婷丁香| 国产精品开放后亚洲| 成人91在线| 欧美精品另类| 国产麻豆aⅴ精品无码| 成人精品午夜福利在线播放| 欧美激情视频二区| 九色视频一区| 国产日本欧美在线观看| 一级毛片免费不卡在线 | 久久精品中文字幕少妇| 日本午夜三级| 亚洲天堂视频网| 91精品国产一区自在线拍| 91久久偷偷做嫩草影院精品| 亚洲中文字幕在线精品一区| 国产无码高清视频不卡| 亚欧乱色视频网站大全| 国产精品55夜色66夜色| 亚洲精品福利网站| 日韩人妻无码制服丝袜视频| 国产精品美女免费视频大全 | 日韩欧美亚洲国产成人综合| 22sihu国产精品视频影视资讯| 91亚洲精品第一| 麻豆国产在线不卡一区二区| 蜜桃视频一区二区| 色综合成人| 久久熟女AV| 91免费国产在线观看尤物| 国产精品亚洲片在线va| 久热这里只有精品6| 欧美日韩午夜| 99久久精品视香蕉蕉| 国产精品自拍露脸视频| 18禁影院亚洲专区| 久久久久中文字幕精品视频| 亚洲美女视频一区| 中文字幕永久视频| 久久亚洲天堂| AV片亚洲国产男人的天堂| 国产精品福利导航| 久久精品国产国语对白| 国产精品网拍在线| 久久精品免费看一| 欧美激情视频二区| 亚洲欧洲日韩久久狠狠爱| 久久久精品无码一区二区三区| 欧美午夜一区| 久久亚洲中文字幕精品一区| 就去吻亚洲精品国产欧美| 乱人伦99久久| 国产精品高清国产三级囯产AV| 色老头综合网| 亚洲一区二区精品无码久久久| 国产免费黄| 国产拍在线| 九色综合伊人久久富二代| 欧美综合区自拍亚洲综合绿色 | 永久在线播放| 伊人91视频| 秘书高跟黑色丝袜国产91在线| 2020亚洲精品无码| 情侣午夜国产在线一区无码| 日本三区视频| 日本亚洲欧美在线| 久热re国产手机在线观看| 久久永久精品免费视频| 色综合天天综合| 国产精品一区在线观看你懂的| 九九视频免费在线观看| 亚洲精品无码抽插日韩| 波多野结衣视频一区二区 | 五月综合色婷婷| 亚洲无码高清一区二区| 99激情网| 免费Aⅴ片在线观看蜜芽Tⅴ| 免费人成在线观看视频色| 99这里精品| 经典三级久久| 亚洲aaa视频|