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