盡管該術(shù)語經(jīng)常被寬松地應(yīng)用,但嚴(yán)格定義的“物聯(lián)網(wǎng)”(IoT) 是指通過 Internet.Protocol 在網(wǎng)絡(luò)上通信或可訪問的嵌入式設(shè)備。在本文中,物聯(lián)網(wǎng)“解決方案”和物聯(lián)網(wǎng)“架構(gòu)”指的是使嵌入式設(shè)備能夠連接到物聯(lián)網(wǎng)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施、拓?fù)浠蚣夹g(shù)。
與所有嵌入式設(shè)計(jì)一樣,應(yīng)選擇添加物聯(lián)網(wǎng)連接以滿足特定的應(yīng)用要求。并非所有應(yīng)用程序都面臨相同的挑戰(zhàn),因此已經(jīng)提出、創(chuàng)建和部署了不同的架構(gòu)。在本文中,我將簡(jiǎn)要描述然后討論 開發(fā)人員使用FreeRTOS 的三種對(duì)比鮮明的物聯(lián)網(wǎng)架構(gòu)。這三種架構(gòu)是傳統(tǒng)的“網(wǎng)絡(luò)服務(wù)器設(shè)備”、“虛擬云設(shè)備”和“點(diǎn)對(duì)點(diǎn)”直接到設(shè)備的配置。這些只是許多可以選擇的架構(gòu)中的三種(包括這三種架構(gòu)的混合體)。
對(duì)于那些更熟悉使用 Web 和云設(shè)備進(jìn)行物聯(lián)網(wǎng)連接的傳統(tǒng)方法的人來說,這里使用術(shù)語對(duì)等 (P2P) 來描述一種架構(gòu),該架構(gòu)直接與部署的物聯(lián)網(wǎng)設(shè)備建立雙向命令和數(shù)據(jù)連接,因此術(shù)語“直接到設(shè)備”。 Nabto 是點(diǎn)對(duì)點(diǎn)架構(gòu)的一個(gè)例子。Nabto 使用 FreeRTOS 提供跨所有嵌入式平臺(tái)的通用運(yùn)行時(shí)環(huán)境,以利用其低功耗、無滴答運(yùn)行的優(yōu)勢(shì)。)
用例
從廣義上講,有三個(gè)基本的物聯(lián)網(wǎng)用例類別:
數(shù)據(jù)監(jiān)控和采集。 此類用途的示例包括運(yùn)輸公司在卡車在全國(guó)范圍內(nèi)移動(dòng)時(shí)監(jiān)控其卡車的位置、生產(chǎn)公司監(jiān)控制造的零件數(shù)量、車輛保險(xiǎn)公司記錄其客戶的駕駛習(xí)慣,或維護(hù)公司監(jiān)控已部署設(shè)備的性能屬性,以便在潛在故障發(fā)生之前對(duì)其進(jìn)行預(yù)測(cè)。
提供控制接口。 此類用途的示例包括能夠遠(yuǎn)程打開或關(guān)閉農(nóng)場(chǎng)的動(dòng)物飼料槽,遠(yuǎn)程改變排水系統(tǒng)中泵的速度,遠(yuǎn)程切換生產(chǎn)線正在生產(chǎn)的零件,或者只是打開或關(guān)閉關(guān)閉一個(gè)窗口。控制界面可以由中央監(jiān)督和控制計(jì)算機(jī)系統(tǒng)以編程方式驅(qū)動(dòng),或由用戶手動(dòng)驅(qū)動(dòng)。
提供圖形用戶界面 (GUI)。 對(duì)于上述用例 1 或 2,GUI 為使用 IoT 設(shè)備的用戶提供了一個(gè)界面。通常需要 GUI 來向不同類別的用戶顯示不同的屏幕。例如,遠(yuǎn)程維護(hù)技術(shù)人員(甚至?xí)?jì)師)可能可以訪問本地操作員無法訪問的屏幕和數(shù)據(jù)。
挑戰(zhàn)
不同的用例帶來不同的挑戰(zhàn),因此由不同的物聯(lián)網(wǎng)架構(gòu)提供服務(wù)。用例可能需要確保 IoT 上的節(jié)點(diǎn)能夠:
被標(biāo)識(shí)和定位,可能被命名,并分配一個(gè) IP 地址
部署在客戶的網(wǎng)絡(luò)防火墻后面時(shí)可以訪問
在沒有互聯(lián)網(wǎng)的情況下運(yùn)行,特別是在設(shè)備調(diào)試期間
從不同的地理區(qū)域使用,這可能需要語言、貨幣或測(cè)量單位轉(zhuǎn)換(國(guó)際化)
僅由經(jīng)過身份驗(yàn)證的用戶訪問,或僅將他們的數(shù)據(jù)發(fā)送到經(jīng)過身份驗(yàn)證的服務(wù)器
確保通過 Internet 傳輸?shù)臄?shù)據(jù)已安全加密
確保數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)庫安全且私密(誰擁有數(shù)據(jù)?)
確保所有交換數(shù)據(jù)和命令的完整性
動(dòng)態(tài)更改正在采集的數(shù)據(jù)、采集數(shù)據(jù)的速率或采集數(shù)據(jù)的發(fā)送位置
動(dòng)態(tài)改變連接數(shù)或數(shù)據(jù)流
易于集成,易于使用
具有成本效益
體系結(jié)構(gòu) 1:Web 設(shè)備
在本文中,術(shù)語 Web 設(shè)備是指?jìng)鹘y(tǒng)的嵌入式 TCP/IP Web 服務(wù)器,如圖1所示。
圖 1:Web 設(shè)備的架構(gòu)
這種方法已經(jīng)使用多年,并且有充分的理由。當(dāng) IoT 被設(shè)想為一個(gè)家庭自動(dòng)化網(wǎng)關(guān),可以協(xié)調(diào)家中許多較小的設(shè)備時(shí),Web 設(shè)備方法尤其受到關(guān)注。它的主要優(yōu)點(diǎn)包括:
它使用熟悉的技術(shù)
它是完全獨(dú)立的,不依賴于云服務(wù)
CGI(和其他服務(wù)器端)腳本可以提供非常強(qiáng)大的控制接口
包含一個(gè)簡(jiǎn)單的 FTP 或 TFTP 服務(wù)器將允許在部署后更新網(wǎng)頁和腳本(但請(qǐng)注意,必須連接每個(gè)部署的設(shè)備,然后單獨(dú)更新)。然而,盡管有這些優(yōu)點(diǎn),但快速重讀上述物聯(lián)網(wǎng)挑戰(zhàn)表明傳統(tǒng)網(wǎng)絡(luò)設(shè)備僅適用于一小部分潛在用例。依次通過每個(gè)點(diǎn)會(huì)花費(fèi)太長(zhǎng)時(shí)間,但以下幾點(diǎn)值得強(qiáng)調(diào):
嵌入式固件有很多接口層,因此很復(fù)雜。必須提供的層示例包括 TCP/IP、HTTP 解析器、CGI 腳本執(zhí)行、模板生成和文件系統(tǒng)。
即使是非常簡(jiǎn)單的 Web 界面也需要大量的 HTML 邏輯,因此需要計(jì)算時(shí)間、內(nèi)存資源和高帶寬。
在包括 DHCP 服務(wù)器(IP 地址的動(dòng)態(tài)分配)和防火墻的標(biāo)準(zhǔn)網(wǎng)絡(luò)上部署 Web 設(shè)備可能需要在終用戶的路由器中設(shè)置特定規(guī)則,以便使 Web 設(shè)備可訪問。
從防火墻外部訪問 Web 設(shè)備需要 VPN、端口轉(zhuǎn)發(fā)、動(dòng)態(tài) DNS 或這些技術(shù)的組合。對(duì)于日常用戶來說,這些都是復(fù)雜的技術(shù)。
架構(gòu) 2:虛擬云設(shè)備
虛擬云設(shè)備通常有少量固件,包括 IP 堆棧和將數(shù)據(jù)推送到預(yù)先確定的云服務(wù)器的規(guī)則。用戶與云服務(wù)器而不是物聯(lián)網(wǎng)設(shè)備本身進(jìn)行通信,因此才有了“虛擬”術(shù)語。
圖 2:虛擬云設(shè)備的架構(gòu)
再次回顧物聯(lián)網(wǎng)挑戰(zhàn)列表表明,虛擬云設(shè)備能夠克服標(biāo)準(zhǔn)網(wǎng)絡(luò)設(shè)備無法克服的挑戰(zhàn)。以下是虛擬云設(shè)備的一些值得注意的優(yōu)勢(shì):
它們稀疏的資源需求有助于降低成本和功耗。
呈現(xiàn)的界面駐留在易于訪問的云端,只需調(diào)整單個(gè)集中式服務(wù)器即可輕松響應(yīng)新的界面需求。
國(guó)際化可以在服務(wù)器中實(shí)現(xiàn)。
對(duì)于需要連續(xù)記錄數(shù)據(jù)以供將來離線分析(所謂的“大數(shù)據(jù)”收集)的應(yīng)用程序,這是一種有效的解決方案。
然而,再次僅克服了挑戰(zhàn)的子集,盡管方便地是與標(biāo)準(zhǔn)網(wǎng)絡(luò)設(shè)備克服的挑戰(zhàn)不同的子集。以下幾點(diǎn)也值得強(qiáng)調(diào):
虛擬云設(shè)備適合只需要從物聯(lián)網(wǎng)設(shè)備推送數(shù)據(jù)而不是向物聯(lián)網(wǎng)設(shè)備推送數(shù)據(jù)的應(yīng)用程序。
它本質(zhì)上是不靈活的。編譯固件時(shí)決定推送哪些數(shù)據(jù)、推送數(shù)據(jù)的頻率以及推送數(shù)據(jù)的位置。這種不靈活還會(huì)導(dǎo)致帶寬浪費(fèi),因?yàn)閿?shù)據(jù)的數(shù)量和頻率是固定的,必須考慮到壞的情況。
對(duì)互聯(lián)網(wǎng)連接有內(nèi)在的依賴。
數(shù)據(jù)平均過期時(shí)間為推送間隔的一半。
如果數(shù)據(jù)存儲(chǔ)在其他人的服務(wù)器上,隱私可能會(huì)成為一個(gè)問題。
架構(gòu) 3:直接對(duì)等設(shè)備
與僅與云服務(wù)器通信的虛擬云設(shè)備不同,啟用 Nabto 的設(shè)備僅出于以下兩個(gè)原因使用云服務(wù)器——所有其他通信都直接與部署的物聯(lián)網(wǎng)設(shè)備本身進(jìn)行。
圖 3:點(diǎn)對(duì)點(diǎn)連接選項(xiàng)
Nabto 設(shè)備使用云服務(wù)器來:
直接與 IoT 設(shè)備調(diào)解并建立連接,每個(gè) IoT 設(shè)備都有一個(gè)可解析的 URL,例如 serialnumber.myDomain.net,而不是預(yù)先確定的 IP 地址。
使用“UDP 打孔”建立連接,這是 Skype 等 IP 語音 (VoIP) 服務(wù)使用的一種技術(shù)。如果您熟悉 Skype 的使用,您就會(huì)知道您可以在通話時(shí)將呼叫連接到該人的任何位置(即使他們?cè)诜阑饓竺妫恍柚涝撊说?Skype ID,并擁有該人同意可以建立聯(lián)系。用于建立呼叫的技術(shù)對(duì)用戶是隱藏的,為用戶留下一個(gè)簡(jiǎn)單的點(diǎn)擊通話用戶界面。
使用 FreeRTOS+Nabto,您可以連接到遠(yuǎn)程物聯(lián)網(wǎng)設(shè)備,無論該設(shè)備在連接時(shí)位于何處(即使它位于防火墻后面),只需知道設(shè)備的 URL,并作為合法用戶進(jìn)行安全驗(yàn)證。同樣,用于建立連接的技術(shù)對(duì)軟件集成工程師是隱藏的,他們必須只提供一個(gè) C 函數(shù),而終用戶只需要知道物聯(lián)網(wǎng)設(shè)備的 URL。與 Skype 不同,Nabto 使用普通的互聯(lián)網(wǎng)命名方案和 DNS 系統(tǒng)。
允許通過基于 Web 的豐富用戶界面訪問微型物聯(lián)網(wǎng)設(shè)備,而物聯(lián)網(wǎng)設(shè)備不需要文件系統(tǒng)或完整的 TCP/IP 堆棧。物聯(lián)網(wǎng)設(shè)備只需要提供大約 10K 字節(jié)的代碼空間和幾千字節(jié)的 RAM。這是通過(對(duì)用戶)將存儲(chǔ)和處理 Web 內(nèi)容的負(fù)擔(dān)無縫地轉(zhuǎn)移到功能強(qiáng)大的大型云服務(wù)器,讓 IoT 設(shè)備使用低帶寬協(xié)議提供實(shí)時(shí)數(shù)據(jù)和接收命令來實(shí)現(xiàn)的。此外,網(wǎng)絡(luò)內(nèi)容緩存在用于查看用戶界面的網(wǎng)絡(luò)瀏覽器、平板電腦或智能手機(jī)應(yīng)用程序中,即使在沒有互聯(lián)網(wǎng)連接的情況下也可以訪問設(shè)備。
圖 4:使用 Nabto 為小型物聯(lián)網(wǎng)設(shè)備創(chuàng)建豐富的用戶界面
回顧 IoT 挑戰(zhàn)列表表明,這種類型的點(diǎn)對(duì)點(diǎn)架構(gòu)為每個(gè)列出的挑戰(zhàn)提供了解決方案。方便的是,從 IoT 設(shè)備設(shè)計(jì)人員的角度來看,它也是容易集成的設(shè)備之一,而從終用戶的角度來看,部署后更改數(shù)據(jù)采集決策的能力使其成為靈活的設(shè)備之一。內(nèi)置加密和身份驗(yàn)證,用戶可以完全控制數(shù)據(jù)存儲(chǔ)和隱私。
-
嵌入式
+關(guān)注
關(guān)注
5068文章
19017瀏覽量
303245 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2903文章
44269瀏覽量
371233 -
網(wǎng)絡(luò)服務(wù)器
+關(guān)注
關(guān)注
0文章
30瀏覽量
10883
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論