王圣博,王澤昊,高梓桐,高俊鋒
(哈爾濱理工大學 計算機科學與技術學院,黑龍江 哈爾濱 150080)
隨著物聯網技術的不斷發展,社會已進入到一個萬物互聯的時代。各式各樣的物聯網設備已相繼融入到日常工作和生活中,比如智能家居、智能物流和智慧城市等。物聯網設備具有可靠性高和穩定性強的優點,對工作環境和工作時間沒有條件限制[1-5]。因此,各行各業陸續使用物聯網設備取代傳統的人工方案,用來降低人工成本,提高工作效率。
物聯網應用項目的典型結構通常包括三個部分:設備節點對象、數據中心對象和服務終端對象。設備節點對象和服務終端對象可統稱為物聯網設備,而數據中心對象通常歸屬于云平臺的數據服務中心。設備節點對象由嵌入式設備構成,大部分設備并不包含操作系統。嵌入式設備收集各種傳感器的監測數據,封裝成定制的數據包,并通過通信網絡將數據包聚合到數據中心。當數據中心對象接收到來自設備節點的數據包時,解析并處理這些數據,最終存儲相應的采集數據。終端節點負責將數據中心對象的數據可視化,一旦數據狀態發生了變化,終端節點可以實時更新顯示數據。同理,終端節點也可以上傳控制指令給數據匯聚中心,經數據匯聚中心解析并處理這些指令數據,最終下發給設備節點對象去執行[6-8]。
由此可知,設備節點對象、數據匯聚中心對象和終端節點對象之間的數據對接顯得尤其重要,它是整個物聯網應用系統的基礎。
在互聯網環境中,采用數據直接接入的方式是一種最簡單的方法。用作設備節點對象的物聯網設備,通過網絡通信接口,直接與數據中心對象交換數據[9-10]。但是,這種數據接入方法會產生以下三種主要問題:
(1)安全性問題
任何連接互聯網的設備都可以訪問設備節點對象、數據中心對象和服務終端對象。無法識別物聯網設備的合法性,這將物聯網設備的數據直接暴露于網絡中,使系統面臨著潛在的安全風險。
(2)可靠性問題
即使物聯網設備屬于合法設備,也無法保證對象滿足某種功能。例如設備節點對象不具備采集濕度傳感器數據的功能,但下發指令卻發出采集濕度數據的命令。
(3)兼容性問題
物聯網設備的軟件系統存在著顯著的差異。一部分物聯網設備沒有集成操作系統,而另外一部分物聯網設備則集成了操作系統。物聯網設備所采用的無線通信技術也不盡相同,涉及廣域網傳輸技術和近距離傳輸技術。物聯網設備所使用的網絡通信協議也各式各樣,包括TCP、UDP、HTTP、MQTT等。因為軟硬件的差異,所以數據直接接入就會存在兼容性問題,無法更換或更新設備。
不能很好地解決數據接入問題,就會嚴重影響物聯網系統的可靠性和穩定性。隨著物聯網系統的規模越來越大,數據接入問題也越來越常見。因此,研究數據接入問題,已經成為物聯網技術研究者普遍關注的熱點問題之一。
為解決異構物聯網設備的數據接入問題,設計了云平臺的數據接入架構,如圖1所示。與物聯網系統的典型結構相似,數據接入架構也將數據接入系統劃分為設備節點對象、數據中心對象和服務終端對象三個層次。但是,兩者的內部結構又存在顯著的區別。

圖1 數據接入架構
為提高數據接入的安全性,在數據接入架構中,數據中心對象存在前后兩級結構。數據中心對象的前級引入了物聯網設備驗證環節,用來檢驗物聯網設備和功能的合法性。只有通過安全驗證的物聯網設備,才能訪問數據中心對象的后級數據。這將在很大程度上避免數據中心對象直接暴露在網絡環境中,從而降低非法訪問的可能性。前級結構獨立于后級結構,在物聯網設備連入網絡之前,數據中心對象必須通過系統管理員注冊物聯網設備及其功能信息。后級結構依賴于前級的安全驗證信息。
為提高物聯網設備的兼容性和靈活性,數據接入架構提供了數據接口程序庫。數據接口程序庫的框架結構如圖2所示。數據接口程序庫介于硬件和用戶程序之間,并為用戶數據提供了數據封裝和解析的標準接口。數據接口程序并不依賴具體硬件,可以為異構硬件設備提供統一的接口標準,抽象了數據對接的內部細節。用戶只需要根據需求選擇相應的功能,就可以完成數據的封裝和解析,不需要單獨處理數據,避免意外的錯誤。

圖2 物聯網設備的數據接入接口
為保證通信的正確性和可靠性,通信雙方必須使用約定的接入方法;否則,雙方通信過程中的數據則被視為非法數據或者干擾數據。物聯網設備的數據接入分為兩個部分:設備注冊和功能注冊。數據中心對象的管理員負責設備注冊和功能注冊,錄入相關的設備信息,并導出數據接口程序庫用于物聯網設備的數據通信。
在物聯網設備使用之前,必須首先在數據中心對象中注冊這種設備。一旦注冊了物聯網設備,數據中心對象將會留存物聯網設備的相關信息。當與物聯網設備通信時,數據中心對象將會校驗已連接設備的信息。只有合法的設備,才能訪問對應設備的數據域。
設備注冊指定了物聯網設備的描述信息。設備描述信息包括設備唯一性標識(MAC地址)、設備類型、通信接口類型和通信協議等信息。一般來說,通信模組內置了TCP/IP、UDP、MQTT和CoAP等物聯網常用的多種通信協議,可以讓設備通過本模塊提供的協議在傳輸層或應用層實現網絡通信。但是,不同型號的通信模組,它們的操作方法也不盡相同。因此,網絡數據傳輸的功能是由設備廠商負責實現。
功能注冊指定了物聯網設備的數據描述信息。數據描述信息包括數據加密類型、數據格式和數據類型等信息。數據加密類型指定數據的傳輸既可以使用明文傳輸,也可以使用密文傳輸。數據格式指定數據包封裝的格式,支持常見的數據包格式,比如TLV、JSON等。數據類型用來指定物聯網設備的數據功能,即傳感器數值或者用戶指令等數據域類型,比如溫度和大氣壓等數據。
在物聯網技術應用過程中,將物聯網設備的數據直接暴露于網絡中,將面臨著巨大的安全風險。確保數據接入的安全性和可靠性是本文研究的重點問題。一方面,當前的物聯網技術并沒有提供數據接入的接口規范;另一方面,物聯網設備也呈現出日新月異的變化。針對這種情況,設計一種合理的數據接入方法不僅能有效減少安全性問題,還能顯著提高異構物聯網設備的兼容問題。
在前人研究的基礎上,優化了物聯網應用項目的典型結構,在每個組成部分中增加設備注冊和功能注冊模塊。設備注冊模塊用來驗證設備接入對象的合法性,而功能注冊模塊用來驗證功能接入對象的合法性。沒有注冊的設備和功能,無法訪問數據中心對象對應的數據域。注冊的設備和功能,通過加密算法封裝數據包,確保數據接入的安全性和可靠性。實踐結果表明,這種數據接入方法能夠克服異構物聯網設備的結構差異,安全可靠地將異構設備節點對象接入數據中心對象,并由服務終端對象可靠地訪問。這種數據接入方法規范了設備節點對象、數據中心對象和服務終端對象之間的數據對接流程,可以防止非法入侵或避免意外的錯誤,從而減少不必要的經濟損失和系統風險。