黃俊杰
( 數(shù)字廣西集團有限公司,廣西 南寧530000)
近幾年,獲得質(zhì)變發(fā)展的IoT 產(chǎn)品,在諸多領(lǐng)域均得到了廣泛運用,人們對物聯(lián)網(wǎng)所提出需求自然有別于過去。該技術(shù)強調(diào)先采集感知數(shù)據(jù)再同云端平臺耦合,隨著相關(guān)產(chǎn)品使用量的增加,感知數(shù)據(jù)量持續(xù)增多,原有技術(shù)所能發(fā)揮作用有限,這便是大數(shù)據(jù)物聯(lián)網(wǎng)適用中間件技術(shù)被提出的背景。
物聯(lián)網(wǎng)中間件是連接云端和智能硬件的橋梁,而智能硬件數(shù)量的增加,使引入感知數(shù)據(jù)變得更加繁雜,如何高效處理數(shù)據(jù),自然成為當下亟待解決的問題。既有理想承載能力,又可對大數(shù)據(jù)進行訓(xùn)練的MDM-IoT,逐漸走入人們視野。若依架構(gòu)為切入點,該服務(wù)器可被分為云計算服務(wù)器、大數(shù)據(jù)服務(wù)器,其集群架構(gòu)如圖1 所示:

圖1 服務(wù)器集群架構(gòu)示意圖
要想以算法服務(wù)器為依托,對大數(shù)據(jù)進行可靠且高效的訓(xùn)練,關(guān)鍵是要引入算法鏡像技術(shù),這樣做既能夠降低更新算法的難度,還可使算法安全性得到保障,在減少系統(tǒng)損耗的基礎(chǔ)上,突出強調(diào)部署的便捷性與簡單性。
早期虛擬方式的代表為XEN 和KVM,上述方式為后續(xù)方式的誕生奠定了基礎(chǔ)。當然,上述方式也有較為明顯的不足存在,主要是用戶對環(huán)境十分依賴,應(yīng)用程序性能與任務(wù),通常無法達到預(yù)期。在此背景下,容器技術(shù)應(yīng)運而生,該技術(shù)的特點是擺脫環(huán)境依賴和整套系統(tǒng),用戶可以隨意對內(nèi)容進行增加或刪除,系統(tǒng)功能不會被影響。雖然LXC 和KVM均為虛擬技術(shù),但前者可使內(nèi)核得到充分利用,屬于典型的內(nèi)核輕量設(shè)計,系統(tǒng)架構(gòu)如圖2 所示。本文所討論服務(wù)器便采用該管理模式,利用鏡像倉庫對算法鏡像進行管理,并基于Git 倉庫對配置與部署文件加以管理。其優(yōu)勢主要體現(xiàn)在以下方面:首先是極其輕量,算法鏡像僅有必要Lib 文件與Bin 文件;其次是秒級部署,對不同大小算法鏡像容器進行部署的時間,其差別往往僅有數(shù)秒;最后是移植簡便,在構(gòu)建工作結(jié)束后,有關(guān)人員可將其部署在任何區(qū)域,真正做到了簡單并且高效[1]。

圖2 LXC 系統(tǒng)架構(gòu)
要想使該系統(tǒng)即便身處大數(shù)據(jù)環(huán)境,仍具備持續(xù)且高效運行的條件,關(guān)鍵是以可靠性與穩(wěn)定性為切入點,對接收和存儲信息的部分進行設(shè)計。
1.3.1 緩存設(shè)計
信道數(shù)據(jù)以監(jiān)控數(shù)據(jù)、心跳數(shù)據(jù)和感知數(shù)據(jù)為主,若以優(yōu)先級別高低為依據(jù),上述數(shù)據(jù)的排列順序應(yīng)當是:①心跳數(shù)據(jù);②監(jiān)控數(shù)據(jù);③感知數(shù)據(jù),借助異步隊列分級緩存上述數(shù)據(jù),作為解析封裝數(shù)據(jù),供算法服務(wù)器使用。這里要明確一點,算法服務(wù)器面臨數(shù)據(jù)為集群數(shù)據(jù),大數(shù)據(jù)服務(wù)器服務(wù)對象是物聯(lián)網(wǎng)設(shè)備。而分區(qū)分級緩存所強調(diào)內(nèi)容,主要是分級對應(yīng)數(shù)據(jù)分級;分區(qū)依據(jù)為IoT 對應(yīng)服務(wù)器,任意服務(wù)器數(shù)據(jù)均以管轄終端為主,尚未達到集群數(shù)據(jù)同步的高度。
1.3.2 長連接設(shè)計
服務(wù)通信以長連接和短連接為主,前者強調(diào)保持所建立連接,為后續(xù)信息提供信道,對信息進行傳輸?shù)男首匀豢梢缘玫教嵘:笳邉t需要對信道連接進行數(shù)次建立與關(guān)閉,不僅耗費大量時間,還存在性能被嚴重損耗的可能。在強調(diào)大流量和高并發(fā)的當下,借助后端負載均衡與長連接方案,可使大數(shù)據(jù)得到高效傳輸及處理。
在智能硬件耦合方面,MDM-IoT 對無線、串口和網(wǎng)絡(luò)協(xié)議進行了融合,此外,考慮到保證數(shù)據(jù)完整的重要性,有關(guān)人員還對不丟包協(xié)議進行了研發(fā),通過及時處理并補發(fā)丟包數(shù)據(jù)的方式,確保大數(shù)據(jù)能夠獲得高效且穩(wěn)定的處理。
C/S 將智能硬件視為Client 端,其職責是對緩沖區(qū)是否有感知數(shù)據(jù)存在進行持續(xù)檢查,如果發(fā)現(xiàn)有感知數(shù)據(jù)存在,要及時將其發(fā)送并清空。若發(fā)送心跳數(shù)據(jù)后,中間件沒有傳回相應(yīng)的數(shù)據(jù),則要對數(shù)據(jù)進行再次發(fā)送,在發(fā)送三次后,仍未收到相應(yīng)數(shù)據(jù),表明傳輸網(wǎng)絡(luò)存在故障,此時,智能終端將對中間件進行重新連接并且建立通信。
這里要明確一點,心跳包頻率往往由雙方以通信質(zhì)量需要達到的要求為依據(jù)進行確定,中間件的作用是對設(shè)計數(shù)據(jù)模型的具體要求進行提供。實際應(yīng)用時,有關(guān)人員應(yīng)以物聯(lián)網(wǎng)設(shè)備所感知數(shù)據(jù)的質(zhì)量及大小為參考,通過優(yōu)化傳輸格式等細節(jié)的方式,使心跳數(shù)據(jù)得到同步,為監(jiān)控展示等環(huán)節(jié)的順利開展提供便利。
對感知數(shù)據(jù)加以提供的主體是智能硬件,數(shù)據(jù)經(jīng)由中間件解析,對是否存在丟包情況進行判斷,隨后,借助異步隊列完成緩存原始數(shù)據(jù)/上傳數(shù)據(jù)/解析數(shù)據(jù)的操作,在分類推送的基礎(chǔ)上,將感知數(shù)據(jù)所提取參數(shù)傳遞至服務(wù)器內(nèi)部,用來對大數(shù)據(jù)進行訓(xùn)練,通過將Web 端和心跳數(shù)據(jù)進行長連接的方式,為設(shè)備通信有效性提供保障[2]。此外,有監(jiān)控必要性的數(shù)據(jù),除了眾所周知的設(shè)備id,還有設(shè)備地點、PM2.5 和環(huán)境溫度等,上述數(shù)據(jù)均由服務(wù)器將結(jié)果向Web 端進行推送并展示。
本文所討論設(shè)計方案,其特點主要體現(xiàn)如下:
首先,可對數(shù)據(jù)完整性進行感知。大數(shù)據(jù)服務(wù)器往往會先解析智能硬件所傳遞數(shù)據(jù),再將提取所得數(shù)據(jù)批次號傳遞給智能硬件,只有收到服務(wù)器發(fā)回信號,智能硬件才能對其他數(shù)據(jù)進行傳遞。若響應(yīng)信號與之前發(fā)送信號有大致相同的批次號,則表明數(shù)據(jù)完整。
其次,可對數(shù)據(jù)穩(wěn)定性進行感知。在數(shù)據(jù)被接收后,中間件將針對原始數(shù)據(jù)/解析數(shù)據(jù)/封裝數(shù)據(jù)開啟相應(yīng)隊列,由隊列負責處理緩存等操作,確保舊數(shù)據(jù)能夠定期被刪除。如果網(wǎng)絡(luò)存在故障,將出現(xiàn)封裝數(shù)據(jù)無法上傳的情況,等到網(wǎng)絡(luò)恢復(fù)正常,該系統(tǒng)將及時掃描上傳失敗數(shù)據(jù)并進行補發(fā)。上文所提及環(huán)節(jié)的開展形式均為多進程,這樣設(shè)計的目的是確保數(shù)據(jù)能夠被高效獲取并得到充分利用,避免資源出現(xiàn)不必要浪費。
最后,可對數(shù)據(jù)高效性進行感知。通信雙方對長連接加以應(yīng)用的初衷,主要是降低數(shù)據(jù)交互難度。基于心跳設(shè)計為長連接活躍性進行保持,一般情況下,KeepAlive 所設(shè)置時間均為7200s,也就是說,如果在7200s 內(nèi)沒有數(shù)據(jù)被傳輸,則要利用探針對連接是否可用加以確定,該測試的默認次數(shù)為10 次,間隔為75s,有關(guān)人員可結(jié)合實際情況進行調(diào)整。本文所討論中間件,便以上述機制為依托,在傳送心跳數(shù)據(jù)的同時獲取相應(yīng)監(jiān)控數(shù)據(jù),達到對設(shè)備狀態(tài)進行實時監(jiān)控的最終目的。
在對物聯(lián)網(wǎng)設(shè)備所采集數(shù)據(jù)進行解析后,MDM-IoT 便進入等待服務(wù)器消費的狀態(tài),將Web 端和心跳數(shù)據(jù)相連接的基礎(chǔ)上,借助算法服務(wù)器對特征值參數(shù)加以分析,并向Web 端傳送分析結(jié)果,確保Web 端能夠?qū)⒆罱K數(shù)據(jù)進行直接展示。
常規(guī)追蹤技術(shù)的代表是鏈路測試技術(shù),該技術(shù)強調(diào)以路由網(wǎng)絡(luò)鏈的測試為依托,對攻擊源頭加以確定,在實際應(yīng)用時有關(guān)人員發(fā)現(xiàn),要想使該技術(shù)發(fā)揮出應(yīng)有作用,通常需要滿足大量要求,不僅要反復(fù)測試,追蹤花費的時間也相對較長,這也決定其并不適合被用來對固件進行升級[3]。
而MDM-IoT 創(chuàng)造性的引入了數(shù)據(jù)包作為記錄載體,強調(diào)基于技術(shù)包對ip 進行追蹤并記錄,該技術(shù)又被稱作SPIE。本文所提及反向追蹤算法,便對該技術(shù)進行了利用,其原理如下:服務(wù)器ip 會在穩(wěn)定運行的同時固定,為智能終端的連接提供支持,除特殊情況外,智能終端及相應(yīng)服務(wù)器均處于相同網(wǎng)段內(nèi),由智能終端對網(wǎng)絡(luò)進行分配,明確服務(wù)器所處層級,如果服務(wù)器位于云端,只需對云端ip 加以提供即可。若服務(wù)器位于其他層級,則要視情況對相應(yīng)信息進行提供。
研究表明,傳統(tǒng)端現(xiàn)有物聯(lián)網(wǎng)設(shè)備的內(nèi)部程序,多為對執(zhí)行文件進行燒錄,如果應(yīng)用程序有更新需求,通常需要前往現(xiàn)場重新燒錄,人力資源被浪費的情況無法避免。有關(guān)人員出于對上述問題加以解決的考慮,基于MDM-IoT 對遠程升級服務(wù)進行了集成,用戶只要將固件上傳,便能夠通過遠程控制的方式,使固件得到升級。在此過程中,反向追蹤也發(fā)揮了重要作用,該算法主要被用來查找設(shè)備并下發(fā)更新指令,由系統(tǒng)對應(yīng)用進行自主下載并升級,升級完成后,設(shè)備將自動上線。該過程所需通信協(xié)議的幀格式如下:

表1 自定義幀格式
上文對輕量級的通用中間件平臺進行了設(shè)計,該平臺創(chuàng)造性地將應(yīng)用層和智能硬件感知相融合,通過云計算的方式,賦予智能硬件全新使命。現(xiàn)階段,基于該技術(shù)所設(shè)計IoT 產(chǎn)品,在北京等地得到了大力推廣與運用,相關(guān)產(chǎn)品憑借良好的伸縮性和穩(wěn)定性,獲得了用戶的一致認可,由此可見,端云一體化有極大的發(fā)展空間,對其進行優(yōu)化仍然是未來研究的重點。