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