一、 簡介
- Pelion Device Management 是一個與交互和管理連接設備等相關的服務。它包括以下功能:
①安全連接:通過它可以進行交互管理和IoT設備管理
②端對端遠程固件更新 解決方案
③有清晰的工作流程和配置機制,能夠簡化我們的開發過程,能夠讓我們無縫過渡到部署(實際運用)。
④有着靈活的配置機制。能夠和任何出廠設置一起使用,爲你的設備提供所需的信息去連接到 Device Management 。
⑤使用各種接口進行Web應用程序開發:REST APIs,軟件開發工具包(SDKs)和在線編譯。
⑥設備上使用定製的、可在多種操作系統下運行的客戶端,用以支持Device Management 的服務。 - 系統圖:
二、 Pelion Device Management
- 爲了提供一個端對端的解決方案,Pelion包括兩個部分:雲端服務、設備客戶端。雲端服務即Pelion Device Management 服務。
- 設備客戶端由三個部分組成:
①Device Management Connect 客戶端:提供鏈接到Device Management 服務器。
②Device Management Update 客戶端:接受和管理固件更新的安裝。
③Device Management Provision 客戶端:保存配置信息,信息包括:設備證書、服務端URIs、其他參數(設備連接到你的賬戶所需的) - 使用設備管理客戶端可以做到:
①創建一個唯一的設備ID,在設備管理服務器上註冊或者註銷設備,設備證書。
②基於標準的TSL/DTLS 的安全連接。
③在設備管理服務器上管理設備。
④從服務端控制設備和應用程序邏輯。
⑤通過服務端的控制,用Device Management Update 無線更新設備。
⑥使用統一移植層(PAL)將設備移植到不同的平臺。
三、 Device Management Connect
- Device Management Connect 提供IoT設備 和 企業軟件或Web應用間的安全連接,該安全連接是通過把兩者都連接到設備管理服務器、並且讓兩者有權限互聯來實現的。
一般用的都是業界的通信標準,例如:用LwM2M 協議來做設備管理,用CoAP 來實現設備和設備管理服務器之間的通信。 - Device Management Connect 提供:
①兩種客戶端:
a. Device Management Client
b. Device Management Client Lite:輕量級設備管理客戶端,使用預共享密鑰。
②設備管理用LwM2M
③通信用CoAP
④Web應用和設備管理服務器的連接
⑤端對端通道安全:
a. 設備和服務器之間的連接用的是DTLS/TLS。
b. Web應用程序和Device Management REST API 之間的連接用的是HTTPS。
⑥物聯網設備的優化。 - LwM2M:Lightweight Machine to Machine。Device Management Connect實現了LwM2M 標準,該標準提供了一致的設備管理,可以無視設備硬件和設備上跑的應用的差異。
- LwM2M包括了以下接口:
①引導程序接口:引導設備和Device Management 之間的安全連接。
②客戶端註冊接口:讓設備註冊到Device Management 。並且顯示設備資源,以便Web應用使用。
③設備管理和服務支持接口:讓應用可以操作設備資源。基於LwM2M Resource model,該接口可以讀、寫、操作設備。
④信息報告接口:讓應用可以觀察客戶端上的資源變化,當有值變化或者滿足一定條件時,接收到提醒。 - CoAP:The Constrained Application Protocol。CoAP協議是一種低開銷協議,專爲受限設備(有限性能MCU的設備)和低功耗IP網絡而設計。 它通常只使用UDP,但Device Management Client 已添加TCP支持。它還支持TLS / DTLS協議,以提供傳輸安全性和設備身份驗證。
- Device Management Edge:提供IoT 網關支持,當物聯網設備無法獨立連接時(通常是因爲它們使用非IP協議),Device Management Edge提供協議轉換。
四、 Device Management Update
- 爲實現更新,需要一個設備管理更新客戶端運行在設備上,一個設備管理更新服務器來推送更新。
- 典型更新的工作流程:
①先要構建一個新的固件鏡像,並把它上傳到設備管理服務器。鏡像中要包括設備管理更新客戶端(這次更新成功後下次還能再遠程更新)。
②創建並上傳清單文件(manifest file)。作用是描述這次更新,並且允許設備選擇是否更新。可以使用清單工具創建滿足所有設備管理要求的清單。
③固件鏡像和清單準備好之後,可以合併它們進行一次或多次更新操作,可以針對一些特定設備或一組設備。 - 設備上的Device Management Update客戶端,負責分析、安裝固件,報告更新進程。
- 固件鏡像應該有更新客戶端和你的應用內容,這樣以後才能再次更新。但固件鏡像不應該包括BootLoader,因爲它是不可更新的。
- 可以通過以下方式將固件上傳到設備管理服務器:
①設備管理服務器網站
②設備管理的API
③設備管理SDK中的一個
④清單工具的更新命令 - 可以通過以下方式發起一次更新操作:
①設備管理服務器網站
②設備管理的API
③設備管理SDK中的一個
- 設備要做一些是否進行固件更新的決定。諸如,該更新是否適用於這臺設備;要現在更新還是晚點再更新;固件鏡像要放在哪等等。我們要把這些信息在一次更新操作中傳達給設備,因此要創建一個包含一些更新元數據的清單。
- 清單會用私鑰進行簽名,確保只有可用的、可信任的更新纔會寫入存儲。清單中還包含一個可用於回退到上一版本的序列號,用Unix時間戳實現。可用清單工具來生成清單。
- 設備管理更新用證書來:確保端對端的安全性;驗證固件更新是源自真實且可信的來源。
五、 Device Management Provision
- 在設備大規模生產的過程中,我們可以用Device Management Provision來配置成千上萬個擁有唯一加密身份和正確服務器參數的設備。它允許我們創建、注入到設備和安全存放以下連接到設備管理服務器所需的東西:
私鑰、證書、服務器URL、服務器證書、連接參數、固件更新密鑰。 - 要使設備連接到設備管理服務器,我們要將每一個IoT設備配置到符合以下條件:
①具有唯一的加密憑證,設備管理服務可用於:
a. 驗證設備。
b. 生成session encryption keys。
c. 授權設備使用設備管理系統服務。
②配置了向服務器描述設備的信息,用於驗證軟件更新的密鑰,以及用於識別、連接和驗證設備管理服務器的正確服務器和連接參數。 - Provisioning SDK減少了爲大規模生產設備準備製造流程的開發時間。它包含以下軟件組件:
①密鑰和配置管理器(KCM):是設備上運行的設備管理客戶端軟件的一部分。它可以將敏感信息安全地存儲在設備的非易失性存儲器中。
②工廠配置客戶端(FCC):設備上運行的設備管理客戶端軟件的一部分。它將身份證書提取,驗證並保存到設備。
③(可選)Factory Configurator Utility(FCU):可以集成到工廠車間運行的製造測試和配置設備中,以生成和打包設備身份證書。