基于網(wǎng)關(guān)的設(shè)備平臺(tái)交互控制技術(shù)漫談
作者:朱嶸良,單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心
Labs 導(dǎo)讀
隨著社會(huì)發(fā)展,智能化給人們生活帶來了很大的便捷性,智能家居的應(yīng)用越來越廣泛,人們往往只需要一部手機(jī)就可以遠(yuǎn)程管理家里的各種智能家居設(shè)備,那么這些智能設(shè)備與平臺(tái)間是如何進(jìn)行數(shù)據(jù)交互的呢?本文以家庭網(wǎng)關(guān)為例,介紹設(shè)備與平臺(tái)間相關(guān)交互控制技術(shù)。
1傳統(tǒng)交互控制技術(shù)
在介紹設(shè)備平臺(tái)交互控制技術(shù)之前,我們先看下人們較為熟悉的傳統(tǒng)對(duì)光貓、路由器設(shè)備進(jìn)行管理的交互方式。配置過路由器的都知道,我們可以通過連接路由器WiFi或插網(wǎng)線的方式,打開路由器的局域網(wǎng)管理頁(yè)面(例如:http://192.168.1.1),直接對(duì)路由器進(jìn)行各種參數(shù)設(shè)置及管理。該方式主要是在路由器上起了一個(gè)內(nèi)網(wǎng)服務(wù),用戶可以通過連上路由器內(nèi)網(wǎng),訪問該服務(wù)。其缺點(diǎn)是只能在局域網(wǎng)內(nèi)使用,不便于遠(yuǎn)程操作(雖然可以開啟遠(yuǎn)程web管理,但增加了路由器暴露到公網(wǎng)的風(fēng)險(xiǎn)),同樣數(shù)據(jù)基本都在本地處理完成,在功能方面有很多局限性。因此,通常會(huì)考慮設(shè)備訪問平臺(tái),由平臺(tái)對(duì)設(shè)備進(jìn)行管理的方式。下面以家庭網(wǎng)關(guān)為例,主要介紹基于網(wǎng)關(guān)的設(shè)備平臺(tái)交互控制技術(shù)。
2基于網(wǎng)關(guān)的設(shè)備平臺(tái)交互控制技術(shù)
要想實(shí)現(xiàn)平臺(tái)對(duì)設(shè)備管理,需要在設(shè)備上安裝訪問平臺(tái)的服務(wù)(其表現(xiàn)形式為網(wǎng)關(guān)設(shè)備操作系統(tǒng)上的一個(gè)進(jìn)程),由設(shè)備單向訪問平臺(tái)的方式進(jìn)行數(shù)據(jù)上傳、獲取指令數(shù)據(jù)。設(shè)備訪問平臺(tái)常用協(xié)議主要有UDP、TCP兩種方式。其中,UDP是無(wú)連接傳輸協(xié)議,提供簡(jiǎn)單非可靠信息傳送服務(wù),適合應(yīng)用于數(shù)據(jù)上報(bào)場(chǎng)景。而要想實(shí)現(xiàn)對(duì)設(shè)備的管理需要平臺(tái)向設(shè)備返回相應(yīng)的控制指令,往往采用TCP協(xié)議來進(jìn)行控制指令交互。基于TCP協(xié)議的交互方式又分為長(zhǎng)連接、短連接兩種方式。
2.1 基于TCP長(zhǎng)連接的交互
TCP長(zhǎng)連接模式下,設(shè)備與平臺(tái)幾乎一直保持連接(連接斷開時(shí)會(huì)重連),平臺(tái)可隨時(shí)向設(shè)備推送指令消息。下面以MQTT為例介紹其數(shù)據(jù)交互原理。MQTT是一個(gè)輕量級(jí)的發(fā)布/訂閱消息傳輸協(xié)議,基于TCP長(zhǎng)連接進(jìn)行通信。MQTT最初由Andy Stanford-Clark博士和 Arlen Nipper博士于1999年創(chuàng)建,它最初的用途是將石油管道上的傳感器與衛(wèi)星相連接,實(shí)現(xiàn)數(shù)千英里長(zhǎng)的石油和天然氣管道的無(wú)人值守監(jiān)控,現(xiàn)已成為國(guó)內(nèi)外各大物聯(lián)網(wǎng)平臺(tái)最主流的傳輸協(xié)議之一[1,2]。
基于網(wǎng)關(guān)的設(shè)備平臺(tái)交互示意圖如圖1。在通訊過程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publisher)、代理服務(wù)器(Broker)和訂閱者(Subscriber)。本案例中,業(yè)務(wù)平臺(tái)為消息發(fā)布者,MQTT服務(wù)是代理服務(wù)器,網(wǎng)關(guān)是訂閱者。其交互流程如下:平臺(tái)部署MQTT服務(wù),網(wǎng)關(guān)基于MQTT協(xié)議與平臺(tái)保持通信同時(shí)向平臺(tái)訂閱消息;用戶通過手機(jī)上的APP、小程序、WEB服務(wù)等載體向業(yè)務(wù)平臺(tái)發(fā)起對(duì)網(wǎng)關(guān)的遠(yuǎn)程管理;業(yè)務(wù)平臺(tái)向MQTT服務(wù)發(fā)起發(fā)布消息請(qǐng)求;MQTT服務(wù)推送消息到網(wǎng)關(guān),網(wǎng)關(guān)收到消息后執(zhí)行相關(guān)指令。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。
圖1
2.2 基于TCP短連接的交互
TCP短連接模式下,設(shè)備通過心跳輪詢機(jī)制與平臺(tái)保持通信,每次請(qǐng)求都會(huì)重新建立連接。在該模式下,設(shè)備平臺(tái)交互示意圖如圖2。交互流程如下:網(wǎng)關(guān)通過輪詢的方式(每隔一段時(shí)間發(fā)起請(qǐng)求)發(fā)起TCP心跳與設(shè)備平臺(tái)保持通信;當(dāng)用戶通過客戶端向業(yè)務(wù)平臺(tái)發(fā)起遠(yuǎn)程管理請(qǐng)求時(shí),業(yè)務(wù)平臺(tái)向設(shè)備平臺(tái)發(fā)起指令通知;設(shè)備平臺(tái)記錄本次指令請(qǐng)求,待網(wǎng)關(guān)下一次發(fā)起心跳時(shí),返回指令標(biāo)識(shí);網(wǎng)關(guān)根據(jù)收到的指令標(biāo)識(shí)發(fā)起相應(yīng)的業(yè)務(wù)請(qǐng)求或執(zhí)行指令。
圖2
上述方式中,MQTT具有簡(jiǎn)單、穩(wěn)定、開放、輕量級(jí)的特點(diǎn),但所有設(shè)備都需要與平臺(tái)維持連接。TCP短連接心跳輪詢機(jī)制下,設(shè)備與平臺(tái)交互有一個(gè)輪詢周期,周期太短,平臺(tái)壓力很大;周期過長(zhǎng),可以降低平臺(tái)壓力,但業(yè)務(wù)處理不及時(shí),體驗(yàn)很差。當(dāng)設(shè)備量達(dá)到億級(jí)以上時(shí),無(wú)論是基于TCP長(zhǎng)連接的MQTT通信還是基于TCP短連接的心跳輪詢機(jī)制,都存在平臺(tái)中心化的問題(所有設(shè)備都需要直接與平臺(tái)保持通信),導(dǎo)致平臺(tái)存在巨大的通信壓力。下面介紹一種改進(jìn)方案“分層模式”。其示意圖如圖3。將對(duì)接網(wǎng)關(guān)的平臺(tái)改造成拆分成一級(jí)平臺(tái)、二級(jí)平臺(tái)模式,業(yè)務(wù)平臺(tái)對(duì)接一級(jí)平臺(tái),一級(jí)平臺(tái)對(duì)接各二級(jí)平臺(tái),每個(gè)二級(jí)平臺(tái)與一部分網(wǎng)關(guān)維持通信。這樣可以實(shí)現(xiàn)分散平臺(tái)壓力,但建立過多平臺(tái)也導(dǎo)致增加了平臺(tái)維護(hù)成本。
圖3
3邊緣計(jì)算
隨著5G的發(fā)展,催生了邊緣計(jì)算的發(fā)展,同樣上述交互方式可以通過邊緣計(jì)算方式實(shí)現(xiàn),其交互示意圖如圖4。主要改造點(diǎn)如下:賦能邊緣節(jié)點(diǎn),原部署在網(wǎng)關(guān)上的業(yè)務(wù)管理服務(wù)上移到邊緣節(jié)點(diǎn),由邊緣節(jié)點(diǎn)保持與平臺(tái)的通信,同時(shí)通過邊緣節(jié)點(diǎn)對(duì)其連接的網(wǎng)關(guān)進(jìn)行管理。通過邊緣計(jì)算改造方式,可以大幅緩解云平臺(tái)通信壓力,同時(shí)能保障消息交互及時(shí)性,但需要對(duì)邊緣節(jié)點(diǎn)進(jìn)行升級(jí)改造。
圖4