王圣博,王澤昊,高梓桐,高俊鋒
(哈爾濱理工大學 計算機科學與技術學院,黑龍江 哈爾濱 150080)
隨著物聯(lián)網(wǎng)技術的不斷發(fā)展,社會已進入到一個萬物互聯(lián)的時代。各式各樣的物聯(lián)網(wǎng)設備已相繼融入到日常工作和生活中,比如智能家居、智能物流和智慧城市等。物聯(lián)網(wǎng)設備具有可靠性高和穩(wěn)定性強的優(yōu)點,對工作環(huán)境和工作時間沒有條件限制[1-5]。因此,各行各業(yè)陸續(xù)使用物聯(lián)網(wǎng)設備取代傳統(tǒng)的人工方案,用來降低人工成本,提高工作效率。
物聯(lián)網(wǎng)應用項目的典型結構通常包括三個部分:設備節(jié)點對象、數(shù)據(jù)中心對象和服務終端對象。設備節(jié)點對象和服務終端對象可統(tǒng)稱為物聯(lián)網(wǎng)設備,而數(shù)據(jù)中心對象通常歸屬于云平臺的數(shù)據(jù)服務中心。設備節(jié)點對象由嵌入式設備構成,大部分設備并不包含操作系統(tǒng)。嵌入式設備收集各種傳感器的監(jiān)測數(shù)據(jù),封裝成定制的數(shù)據(jù)包,并通過通信網(wǎng)絡將數(shù)據(jù)包聚合到數(shù)據(jù)中心。當數(shù)據(jù)中心對象接收到來自設備節(jié)點的數(shù)據(jù)包時,解析并處理這些數(shù)據(jù),最終存儲相應的采集數(shù)據(jù)。終端節(jié)點負責將數(shù)據(jù)中心對象的數(shù)據(jù)可視化,一旦數(shù)據(jù)狀態(tài)發(fā)生了變化,終端節(jié)點可以實時更新顯示數(shù)據(jù)。同理,終端節(jié)點也可以上傳控制指令給數(shù)據(jù)匯聚中心,經(jīng)數(shù)據(jù)匯聚中心解析并處理這些指令數(shù)據(jù),最終下發(fā)給設備節(jié)點對象去執(zhí)行[6-8]。
由此可知,設備節(jié)點對象、數(shù)據(jù)匯聚中心對象和終端節(jié)點對象之間的數(shù)據(jù)對接顯得尤其重要,它是整個物聯(lián)網(wǎng)應用系統(tǒng)的基礎。
在互聯(lián)網(wǎng)環(huán)境中,采用數(shù)據(jù)直接接入的方式是一種最簡單的方法。用作設備節(jié)點對象的物聯(lián)網(wǎng)設備,通過網(wǎng)絡通信接口,直接與數(shù)據(jù)中心對象交換數(shù)據(jù)[9-10]。但是,這種數(shù)據(jù)接入方法會產(chǎn)生以下三種主要問題:
(1)安全性問題
任何連接互聯(lián)網(wǎng)的設備都可以訪問設備節(jié)點對象、數(shù)據(jù)中心對象和服務終端對象。無法識別物聯(lián)網(wǎng)設備的合法性,這將物聯(lián)網(wǎng)設備的數(shù)據(jù)直接暴露于網(wǎng)絡中,使系統(tǒng)面臨著潛在的安全風險。
(2)可靠性問題
即使物聯(lián)網(wǎng)設備屬于合法設備,也無法保證對象滿足某種功能。例如設備節(jié)點對象不具備采集濕度傳感器數(shù)據(jù)的功能,但下發(fā)指令卻發(fā)出采集濕度數(shù)據(jù)的命令。
(3)兼容性問題
物聯(lián)網(wǎng)設備的軟件系統(tǒng)存在著顯著的差異。一部分物聯(lián)網(wǎng)設備沒有集成操作系統(tǒng),而另外一部分物聯(lián)網(wǎng)設備則集成了操作系統(tǒng)。物聯(lián)網(wǎng)設備所采用的無線通信技術也不盡相同,涉及廣域網(wǎng)傳輸技術和近距離傳輸技術。物聯(lián)網(wǎng)設備所使用的網(wǎng)絡通信協(xié)議也各式各樣,包括TCP、UDP、HTTP、MQTT等。因為軟硬件的差異,所以數(shù)據(jù)直接接入就會存在兼容性問題,無法更換或更新設備。
不能很好地解決數(shù)據(jù)接入問題,就會嚴重影響物聯(lián)網(wǎng)系統(tǒng)的可靠性和穩(wěn)定性。隨著物聯(lián)網(wǎng)系統(tǒng)的規(guī)模越來越大,數(shù)據(jù)接入問題也越來越常見。因此,研究數(shù)據(jù)接入問題,已經(jīng)成為物聯(lián)網(wǎng)技術研究者普遍關注的熱點問題之一。
為解決異構物聯(lián)網(wǎng)設備的數(shù)據(jù)接入問題,設計了云平臺的數(shù)據(jù)接入架構,如圖1所示。與物聯(lián)網(wǎng)系統(tǒng)的典型結構相似,數(shù)據(jù)接入架構也將數(shù)據(jù)接入系統(tǒng)劃分為設備節(jié)點對象、數(shù)據(jù)中心對象和服務終端對象三個層次。但是,兩者的內(nèi)部結構又存在顯著的區(qū)別。
圖1 數(shù)據(jù)接入架構
為提高數(shù)據(jù)接入的安全性,在數(shù)據(jù)接入架構中,數(shù)據(jù)中心對象存在前后兩級結構。數(shù)據(jù)中心對象的前級引入了物聯(lián)網(wǎng)設備驗證環(huán)節(jié),用來檢驗物聯(lián)網(wǎng)設備和功能的合法性。只有通過安全驗證的物聯(lián)網(wǎng)設備,才能訪問數(shù)據(jù)中心對象的后級數(shù)據(jù)。這將在很大程度上避免數(shù)據(jù)中心對象直接暴露在網(wǎng)絡環(huán)境中,從而降低非法訪問的可能性。前級結構獨立于后級結構,在物聯(lián)網(wǎng)設備連入網(wǎng)絡之前,數(shù)據(jù)中心對象必須通過系統(tǒng)管理員注冊物聯(lián)網(wǎng)設備及其功能信息。后級結構依賴于前級的安全驗證信息。
為提高物聯(lián)網(wǎng)設備的兼容性和靈活性,數(shù)據(jù)接入架構提供了數(shù)據(jù)接口程序庫。數(shù)據(jù)接口程序庫的框架結構如圖2所示。數(shù)據(jù)接口程序庫介于硬件和用戶程序之間,并為用戶數(shù)據(jù)提供了數(shù)據(jù)封裝和解析的標準接口。數(shù)據(jù)接口程序并不依賴具體硬件,可以為異構硬件設備提供統(tǒng)一的接口標準,抽象了數(shù)據(jù)對接的內(nèi)部細節(jié)。用戶只需要根據(jù)需求選擇相應的功能,就可以完成數(shù)據(jù)的封裝和解析,不需要單獨處理數(shù)據(jù),避免意外的錯誤。
圖2 物聯(lián)網(wǎng)設備的數(shù)據(jù)接入接口
為保證通信的正確性和可靠性,通信雙方必須使用約定的接入方法;否則,雙方通信過程中的數(shù)據(jù)則被視為非法數(shù)據(jù)或者干擾數(shù)據(jù)。物聯(lián)網(wǎng)設備的數(shù)據(jù)接入分為兩個部分:設備注冊和功能注冊。數(shù)據(jù)中心對象的管理員負責設備注冊和功能注冊,錄入相關的設備信息,并導出數(shù)據(jù)接口程序庫用于物聯(lián)網(wǎng)設備的數(shù)據(jù)通信。
在物聯(lián)網(wǎng)設備使用之前,必須首先在數(shù)據(jù)中心對象中注冊這種設備。一旦注冊了物聯(lián)網(wǎng)設備,數(shù)據(jù)中心對象將會留存物聯(lián)網(wǎng)設備的相關信息。當與物聯(lián)網(wǎng)設備通信時,數(shù)據(jù)中心對象將會校驗已連接設備的信息。只有合法的設備,才能訪問對應設備的數(shù)據(jù)域。
設備注冊指定了物聯(lián)網(wǎng)設備的描述信息。設備描述信息包括設備唯一性標識(MAC地址)、設備類型、通信接口類型和通信協(xié)議等信息。一般來說,通信模組內(nèi)置了TCP/IP、UDP、MQTT和CoAP等物聯(lián)網(wǎng)常用的多種通信協(xié)議,可以讓設備通過本模塊提供的協(xié)議在傳輸層或應用層實現(xiàn)網(wǎng)絡通信。但是,不同型號的通信模組,它們的操作方法也不盡相同。因此,網(wǎng)絡數(shù)據(jù)傳輸?shù)墓δ苁怯稍O備廠商負責實現(xiàn)。
功能注冊指定了物聯(lián)網(wǎng)設備的數(shù)據(jù)描述信息。數(shù)據(jù)描述信息包括數(shù)據(jù)加密類型、數(shù)據(jù)格式和數(shù)據(jù)類型等信息。數(shù)據(jù)加密類型指定數(shù)據(jù)的傳輸既可以使用明文傳輸,也可以使用密文傳輸。數(shù)據(jù)格式指定數(shù)據(jù)包封裝的格式,支持常見的數(shù)據(jù)包格式,比如TLV、JSON等。數(shù)據(jù)類型用來指定物聯(lián)網(wǎng)設備的數(shù)據(jù)功能,即傳感器數(shù)值或者用戶指令等數(shù)據(jù)域類型,比如溫度和大氣壓等數(shù)據(jù)。
在物聯(lián)網(wǎng)技術應用過程中,將物聯(lián)網(wǎng)設備的數(shù)據(jù)直接暴露于網(wǎng)絡中,將面臨著巨大的安全風險。確保數(shù)據(jù)接入的安全性和可靠性是本文研究的重點問題。一方面,當前的物聯(lián)網(wǎng)技術并沒有提供數(shù)據(jù)接入的接口規(guī)范;另一方面,物聯(lián)網(wǎng)設備也呈現(xiàn)出日新月異的變化。針對這種情況,設計一種合理的數(shù)據(jù)接入方法不僅能有效減少安全性問題,還能顯著提高異構物聯(lián)網(wǎng)設備的兼容問題。
在前人研究的基礎上,優(yōu)化了物聯(lián)網(wǎng)應用項目的典型結構,在每個組成部分中增加設備注冊和功能注冊模塊。設備注冊模塊用來驗證設備接入對象的合法性,而功能注冊模塊用來驗證功能接入對象的合法性。沒有注冊的設備和功能,無法訪問數(shù)據(jù)中心對象對應的數(shù)據(jù)域。注冊的設備和功能,通過加密算法封裝數(shù)據(jù)包,確保數(shù)據(jù)接入的安全性和可靠性。實踐結果表明,這種數(shù)據(jù)接入方法能夠克服異構物聯(lián)網(wǎng)設備的結構差異,安全可靠地將異構設備節(jié)點對象接入數(shù)據(jù)中心對象,并由服務終端對象可靠地訪問。這種數(shù)據(jù)接入方法規(guī)范了設備節(jié)點對象、數(shù)據(jù)中心對象和服務終端對象之間的數(shù)據(jù)對接流程,可以防止非法入侵或避免意外的錯誤,從而減少不必要的經(jīng)濟損失和系統(tǒng)風險。