阿里云物联网平台简介
物联网体系
应用层:智能家居、智慧交通、环境监测 (web端应用)
平台层:物联网平台(阿里云物联网平台)
网络层:2/3/4G NB-loT WiFi 蓝牙(STM32+WiFi模块+sensor模块)
感知层:传感器、芯片、通信模组
阿里云物联网架构
主要有:设备接入-设备通信-设备管理-安全能力-规则引擎解析转发数据
设备接入
开源多种平台设备端代码,提供跨平台移植指导,赋能企业基于多种平台做设备接入。
提供MQTT、CoAP等多种设备的设备SDK,既满足长连接的实时性需求,也满足短连接的低功耗需求。
提供2/3/4G、NB-loT、LoRa等不同网络设备接入方案,解决企业异构网络设备接入管理痛点。
设备与云端通信
设备可以使用物联网平台,通过loT Hub与云端进行双向通信。物联网平台提供了设备与云端的上下行通道,为设备上报与指令下行提供稳定可靠的支撑。
设备管理
提供完整的设备生命周期管理功能,支持设备注册、功能定义、脚本解析、在线调试、远程配置、固件升级、远程维护、实时监控、分组管理、设备删除。
提供设备物模型,简化应用开发。
提供设备上下行变更通知服务,方便实时获取设备状态。
提供数据存储能力,方便用户海量设备数据的存储及及时访问。
支持OTA升级,赋能设备远程升级。
提供设备影子缓存机制,将设备与应用解耦,解决不稳定无线网络下的通信不可靠痛点。
安全能力
身份认证
一机一密的设备认证机制,降低设备被攻破的安全风险,适合有能力批量预分配ID密匙烧入到每个芯片的设备。安全级别高。
一型一密的设备预烧,认证时动态获取三元组,适合批量生产时无法将三元组烧入每个设备的情况。安全级别普通。
通信安全
支持TLS(MQTT\HTTP)、DTLS(CoAP)数据传输通道,保证数据的机密性和完整性,适用于硬件资源充足、对功耗不是很敏感的设备。安全级别高。
支持TCP(MQTT)、**UDP(CoAP)**上自定义数据对称加密通道,适用于资源受限、功耗敏感的设备。安全基本普通。
支持设备权限管理机制,保障设备与云端安全通信。
支持设备级别的通信资源(TOPIC等)隔离,防止设备越权等问题。
规则引擎解析转发数据
配置规则实现设备与设备之间的通信,快速实现M2M场景。
将数据转发到消息列队(MQ)中,保障应用消费设备上行数据的稳定可靠性。
将数据转发到表格存储(Table Store),提供设备数据采集+结构化存储的联合方案。
将数据转发到流计算(StreamCompute)中,提供设备数据采集+流失计算的联合方式。
将数据转发到TSDB,提供设备数据采集+时序数据存储的联合方案。
将数据转发到函数计算中,提供设备数据采集+事件计算的联合方案。
基础概念
设备接入
产品和设备
产品:设备的集合,通常指一组具有相同功能的设备。
设备:某个产品下的具体设备。可以直接连接物联网平台,也可以作为子设备通过网关连接物联网平台。
网关与子设备
网关:能够直接连接物联网平台的设备,且具有子设备管理功能,能够代理之设备连接云端。
子设备:本质也是设备。不能直接连接物联网平台,只能通过网关连接。
鉴权信息(三元组)
ProductKey:物联网平台为产品颁发的全局唯一标识。
DeviceName:在注册设备时,自定的或自动生成的设备名称,具备产品维度内的唯一性。
DeviceSecret:物联网平台为设备颁发的设备密钥,和DeviceName成对出现。
设备安全信息认证
为保障设备安全,物联网平台为设备颁发证书,包括产品证书(ProductKey)与设备证书(DeviceName和DeviceSecret)。其中设备证书与设备一一对应,以确保设备的唯一合法性。设备通过协议接入IoT Hub之前,需依据不同的认证方案,上报产品证书和设备证书,云端通过认证后,方可接入物联网平台。针对不同的使用环境,物联网平台提供了多种认证方案。
- 一机一密:每台设备烧录自己的设备证书。(烧录ProductKey、DeviceName和DeviceSecret,认证通过,激活设备。)
- 一型一密:同一产品下设备烧录相同产品证书。(先烧录ProductKey、DeviceName,发送激活请求,认证通过,下发DeviceSecret)
- 子设备认证:网关连接上云后,子设备的认证方案。
设备接入协议
MQTT
订阅者:
发布者:
代理:
通信模式介绍
PUB/SUB
- 物联网平台维护所有的Topic的发布订阅用户列表。
- 当发布者将消息发布到Topic后,物联网平台会检查该Topic的所有订阅用户,然后将消息转发给所有订阅了该Topic的设备。
RRPC
- 基于开源MQTT协议封装的同步通信模式
- 服务端下发指定给设备时,需要同步得到设备端的响应。
设备管理
设备生命周期管理:创建设备、激活设备、删除设备、禁用设备、启用设备
设备状态管理:红色-离线、绿色-在线、灰色-未激活
设备标签管理:如厂商、设备型号等展示用的静态扩展信息,可以保存为设备标签。
物模型:
- 属性:设备运行的状态,支持GET和SET服务,应用可以发起对属性的读取和设置请求。
- 服务:设备可被外部调用的能力和方法,可设置输入参数和输出参数。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。
- 事件:设备运行时的时间,事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。如,某些任务完成的信息,或者设备发生故障或告警时的温度等,时间可以被订阅和推送。