李昂 譚智超 田杰 何迎生
關(guān)鍵詞:物聯(lián)網(wǎng);多協(xié)議網(wǎng)關(guān);面向接口編程思想;網(wǎng)關(guān)服務(wù)器;通用網(wǎng)關(guān);傳輸協(xié)議
0 引言
物聯(lián)網(wǎng)是一種新興技術(shù)[1],它被廣泛應(yīng)用于醫(yī)療保健、交通運(yùn)輸、制造和智慧城市等多個(gè)領(lǐng)域[2-5]。物聯(lián)網(wǎng)能通過終端設(shè)備感知信息、采集數(shù)據(jù)并通過對(duì)應(yīng)網(wǎng)關(guān)服務(wù)器處理后,上傳至云端進(jìn)行處理分析,達(dá)到提高資源利用率、優(yōu)化生產(chǎn)效率的目的[6]。然而,若當(dāng)前存在多個(gè)來自不同制造廠商的設(shè)備時(shí),物聯(lián)網(wǎng)將會(huì)需要多個(gè)對(duì)應(yīng)的網(wǎng)關(guān)服務(wù)器進(jìn)行處理,使得不同設(shè)備之間難以交換數(shù)據(jù),最終導(dǎo)致用戶需要安裝多個(gè)不同制造廠商的網(wǎng)關(guān)控制對(duì)應(yīng)的設(shè)備,造成臃腫而繁雜的操作體驗(yàn),如圖1所示。
因此,需要一種通用網(wǎng)關(guān)服務(wù)器作為調(diào)解器,處理多種協(xié)議,使得不同協(xié)議的物聯(lián)網(wǎng)設(shè)備能夠通過統(tǒng)一的網(wǎng)關(guān)進(jìn)行通信[7]。目前,物聯(lián)網(wǎng)通用網(wǎng)關(guān)服務(wù)器設(shè)計(jì)中一種常見的方法是使用中間件平臺(tái),如消息隊(duì)列遙測(cè)傳輸(MQTT) 協(xié)議,以實(shí)現(xiàn)不同物聯(lián)網(wǎng)設(shè)備和網(wǎng)關(guān)之間的通信[8];另一種方法是使用語(yǔ)義技術(shù)來增強(qiáng)不同物聯(lián)網(wǎng)設(shè)備和網(wǎng)關(guān)的交互性[9]。然而,MQTT雖然具有安全、輕量、可擴(kuò)展性等優(yōu)點(diǎn),但對(duì)復(fù)雜數(shù)據(jù)結(jié)構(gòu)的支持有限,無法實(shí)現(xiàn)雙向通信;而基于語(yǔ)義技術(shù)增強(qiáng)的方法雖然可以實(shí)現(xiàn)數(shù)據(jù)集成和靈活性,但其實(shí)現(xiàn)的復(fù)雜性難以忽視。
在本文中,提出了一種基于面向接口編程思想的通用物聯(lián)網(wǎng)網(wǎng)關(guān)服務(wù)器設(shè)計(jì)。該設(shè)計(jì)可靈活地接入不同的設(shè)備,減少中間開發(fā)時(shí)間成本,具有良好的可擴(kuò)展性。通過將不同通信協(xié)議的功能封裝成獨(dú)立的接口,該設(shè)計(jì)能夠?qū)崿F(xiàn)跨協(xié)議的通信,支持復(fù)雜數(shù)據(jù)結(jié)構(gòu)和雙向通信,并確保數(shù)據(jù)交換的隱私和完整性。
1 物聯(lián)網(wǎng)通用網(wǎng)關(guān)服務(wù)器設(shè)計(jì)
針對(duì)上述提出的問題,本文提出了一種新型的物聯(lián)網(wǎng)通用網(wǎng)關(guān)設(shè)計(jì),并對(duì)網(wǎng)關(guān)接口協(xié)議、內(nèi)部信息系統(tǒng)、對(duì)外部用戶提供的接口三方面進(jìn)行設(shè)計(jì),并給出了網(wǎng)關(guān)服務(wù)器整體架構(gòu)的設(shè)計(jì),如圖2所示。
接口適配層可將不同通信協(xié)議進(jìn)行整合,轉(zhuǎn)換為系統(tǒng)可支持的標(biāo)準(zhǔn)通信協(xié)議或數(shù)據(jù)格式;處理完成后將數(shù)據(jù)發(fā)送至設(shè)備管理模塊進(jìn)行設(shè)備的相關(guān)操作;最后再經(jīng)過系統(tǒng)統(tǒng)一的協(xié)議通過系統(tǒng)定義的通信接口發(fā)送至客戶端,最終達(dá)到靈活接入不同協(xié)議設(shè)備的目的。
1.1 接口適配層
接口適配器是一種常見的設(shè)計(jì)模式,它基于面向接口編程思想,主要用于解決物聯(lián)網(wǎng)設(shè)備之間通信協(xié)議的不兼容性問題。接口適配器將來自不同制造商的物聯(lián)網(wǎng)設(shè)備使用的各種通信協(xié)議轉(zhuǎn)換為系統(tǒng)支持的標(biāo)準(zhǔn)通信協(xié)議和數(shù)據(jù)格式,以確保它們能夠正常交互。接口適配器的設(shè)計(jì)思想是將底層的細(xì)節(jié)和實(shí)現(xiàn)與上層的業(yè)務(wù)邏輯分離,通過面向接口的設(shè)計(jì),提高系統(tǒng)的可擴(kuò)展性和靈活性。
下面將結(jié)合實(shí)例對(duì)接口適配層進(jìn)行分析與設(shè)計(jì)。
假設(shè)當(dāng)前有一個(gè)IoT 設(shè)備,它從房間收集溫度和濕度數(shù)據(jù)后,通過專有通信協(xié)議發(fā)送到網(wǎng)關(guān)進(jìn)行處理和分析。為將數(shù)據(jù)標(biāo)準(zhǔn)化,可以定義一種表示溫度和濕度數(shù)據(jù)的通用數(shù)據(jù)格式。例如,可以定義一個(gè)JSON 數(shù)據(jù)格式,其中包含溫度和濕度字段,以及指示數(shù)據(jù)收集時(shí)間的時(shí)間戳:
最后,可以使用這個(gè)消息結(jié)構(gòu)定義發(fā)送和接收消息的傳輸協(xié)議。例如,使用基于HTTP 封裝的協(xié)議,其中消息作為HTTP-POST 請(qǐng)求發(fā)送到網(wǎng)關(guān),響應(yīng)由HTTP 狀態(tài)代碼和JSON 有效負(fù)載組裝返回。
接口適配器采用面向接口編程的思想,定義了一種通用數(shù)據(jù)格式和協(xié)議,并將專有通信協(xié)議轉(zhuǎn)換為標(biāo)準(zhǔn)的HTTP協(xié)議。通過使用通用的接口和協(xié)議,不同類型的設(shè)備可以使用同一種協(xié)議和數(shù)據(jù)格式與不同的網(wǎng)關(guān)和系統(tǒng)進(jìn)行交互。這種設(shè)計(jì)模式通過分離底層實(shí)現(xiàn)和業(yè)務(wù)邏輯,提高了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
1.2 設(shè)備管理層
在設(shè)備管理模塊中,第一步是與接口適配層(In?terface Adapter Layer,IAL) 建立通信接口,實(shí)現(xiàn)物聯(lián)網(wǎng)設(shè)備與系統(tǒng)其余部分之間的數(shù)據(jù)和命令交換。
下一步是確保來自物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù)采用統(tǒng)一格式,以便系統(tǒng)的其余部分能統(tǒng)一處理,這是接口適配層再次發(fā)揮作用的地方。它進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,將來自不同設(shè)備的數(shù)據(jù)標(biāo)準(zhǔn)化,這將更易于管理和分析。
在建立通信接口并完成數(shù)據(jù)轉(zhuǎn)換過程后,設(shè)備管理模塊就可以提供一組與設(shè)備管理相關(guān)的API(Appli?cation Programming Interfaces)。這些API為系統(tǒng)的其他部分提供了一種標(biāo)準(zhǔn)化的方式來與物聯(lián)網(wǎng)設(shè)備進(jìn)行交互,通常包括設(shè)備發(fā)現(xiàn)、設(shè)備配置、設(shè)備狀態(tài)監(jiān)控、數(shù)據(jù)采集和存儲(chǔ)、數(shù)據(jù)可視化分析、告警和通知模塊,如表1所示。
在接口適配層進(jìn)行標(biāo)準(zhǔn)化數(shù)據(jù)的基礎(chǔ)上,通過在設(shè)備管理模塊中實(shí)現(xiàn)這些API,有效地管理和監(jiān)控的物聯(lián)網(wǎng)設(shè)備,提高設(shè)備性能,并防止停機(jī)或設(shè)備故障。
1.3 實(shí)施安全功能
在此模塊中,將討論網(wǎng)關(guān)服務(wù)器應(yīng)實(shí)施的一些基本安全功能,以確保網(wǎng)關(guān)服務(wù)器能更加有效地保護(hù)設(shè)備和數(shù)據(jù)的安全性,并預(yù)防各種潛在的威脅和攻擊。
數(shù)據(jù)加密:數(shù)據(jù)加密是一項(xiàng)重要的安全功能,可確保數(shù)據(jù)在傳輸和存儲(chǔ)過程中的機(jī)密性。服務(wù)器使用AES-256 等強(qiáng)加密協(xié)議來加密敏感數(shù)據(jù),并將加密密鑰安全存儲(chǔ),確保只有授權(quán)用戶才能訪問它們。
訪問控制:訪問控制是另一個(gè)重要的安全功能,它限制對(duì)敏感數(shù)據(jù)和資源的訪問。服務(wù)器使用基于角色的訪問控制(RBAC) 和用戶身份驗(yàn)證機(jī)制對(duì)訪問進(jìn)行控制,僅允許授權(quán)用戶訪問數(shù)據(jù)和設(shè)備。
用戶認(rèn)證:用戶認(rèn)證是一種用于驗(yàn)證訪問系統(tǒng)的用戶身份的機(jī)制。網(wǎng)關(guān)服務(wù)器通過使用密碼和雙因素身份驗(yàn)證(手機(jī)+ 電腦雙重認(rèn)證)來實(shí)現(xiàn),要求用戶創(chuàng)建一個(gè)強(qiáng)密碼,并定期更改以確保安全。
1.4 實(shí)施負(fù)載均衡和故障轉(zhuǎn)移機(jī)制
為確保物聯(lián)網(wǎng)網(wǎng)關(guān)服務(wù)器的高可用性和擴(kuò)展性,將對(duì)服務(wù)器實(shí)施負(fù)載均衡和故障轉(zhuǎn)移機(jī)制。通過負(fù)載均衡技術(shù),服務(wù)器可以均衡地響應(yīng)請(qǐng)求,從而避免出現(xiàn)負(fù)載過重和性能大幅下降的情況;而故障轉(zhuǎn)移機(jī)制則可以在服務(wù)器故障或不可用時(shí)自動(dòng)將請(qǐng)求轉(zhuǎn)移到備用服務(wù)器,從而確保系統(tǒng)的連續(xù)性和可用性。
負(fù)載均衡可以通過多種方式實(shí)現(xiàn),其中包括循環(huán)法、最小連接數(shù)、IP 散列等。在循環(huán)中,請(qǐng)求按順序在服務(wù)器之間分發(fā);在最少連接中,具有最少活動(dòng)連接的服務(wù)器接收下一個(gè)請(qǐng)求;IP 哈希根據(jù)客戶端的IP 地址分發(fā)請(qǐng)求。服務(wù)器將結(jié)合循環(huán)法和最少連接數(shù)實(shí)現(xiàn)負(fù)載均衡,請(qǐng)求按順序(循環(huán))在服務(wù)器之間分發(fā),活動(dòng)連接最少的服務(wù)器接收下一個(gè)請(qǐng)求(最少連接)。這種組合可以幫助有效地平衡負(fù)載,確保沒有服務(wù)器過載,同時(shí)最大限度地減少響應(yīng)時(shí)間。在服務(wù)器較少時(shí),則采用動(dòng)態(tài)負(fù)載均衡。根據(jù)實(shí)時(shí)服務(wù)器負(fù)荷和相關(guān)網(wǎng)絡(luò)指標(biāo)(如CPU 使用率、內(nèi)存使用率和網(wǎng)絡(luò)流量等),執(zhí)行動(dòng)態(tài)負(fù)載均衡算法對(duì)請(qǐng)求進(jìn)行合理分配,確保具有最多可用資源的服務(wù)器接收下一個(gè)請(qǐng)求。
在實(shí)現(xiàn)故障轉(zhuǎn)移機(jī)制方面系統(tǒng)將采用冗余方法,即其中主服務(wù)器由一個(gè)或多個(gè)輔助服務(wù)器備份。當(dāng)主服務(wù)器出現(xiàn)故障時(shí),輔助服務(wù)器會(huì)自動(dòng)接管,確保為物聯(lián)網(wǎng)設(shè)備提供無縫服務(wù)。這可以通過集群來實(shí)現(xiàn),其中多個(gè)服務(wù)器連接成一個(gè)組并共享相同的資源和數(shù)據(jù)。
2 結(jié)束語(yǔ)
在本文中,提出了一種基于面向接口編程思想的物聯(lián)網(wǎng)多協(xié)議通用網(wǎng)關(guān)服務(wù)器設(shè)計(jì),其中包括接口適配層設(shè)計(jì)、設(shè)備管理層設(shè)計(jì)及安全功能、負(fù)載均衡和故障轉(zhuǎn)移機(jī)制的實(shí)施。
接口適配層提供標(biāo)準(zhǔn)接口適配各種協(xié)議,實(shí)現(xiàn)不同物聯(lián)網(wǎng)設(shè)備和網(wǎng)關(guān)的集成;設(shè)備管理層簡(jiǎn)化對(duì)各種物聯(lián)網(wǎng)設(shè)備的管理流程,實(shí)現(xiàn)了對(duì)不同協(xié)議設(shè)備的統(tǒng)一管理方式;安全功能的實(shí)施可確保數(shù)據(jù)完整性、機(jī)密性和可用性,這對(duì)物聯(lián)網(wǎng)系統(tǒng)的正常運(yùn)轉(zhuǎn)至關(guān)重要。此外,負(fù)載均衡和故障轉(zhuǎn)移機(jī)制的實(shí)施提高了服務(wù)器的可靠性和可用性,為用戶提供持續(xù)服務(wù)。
物聯(lián)網(wǎng)通用網(wǎng)關(guān)服務(wù)器集成各種物聯(lián)網(wǎng)設(shè)備和網(wǎng)關(guān)、簡(jiǎn)化設(shè)備管理并增強(qiáng)物聯(lián)網(wǎng)系統(tǒng)的可靠性和安全性,為通用網(wǎng)關(guān)服務(wù)器的設(shè)計(jì)提供了一種新的思路。