一、 简介
- 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):可以集成到工厂车间运行的制造测试和配置设备中,以生成和打包设备身份证书。