摘要:物联网套件是阿里云专门为物联网领域的开发人员推出的,其目的是帮助开发者搭建安全性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。全球多节点部署让海量设备全球范围都可以安全低延时接入阿里云IoT Hub,安全上提供多重防护保障设备云端安全,性能上能够支撑亿级设备长连接,百万消息并发。

阿里云物联网套件简介

物联网套件还提供了一站式托管服务,数据从采集到计算到存储,用户无需购买服务器部署分布式架构,用户通过规则引擎只需在web上配置规则即可实现采集+计算+存储等全栈服务。

总而言之,基于物联网套件提供的服务,物联网开发者可以快速搭建稳定可靠的物联网平台。

那物联网套件到底提供了什么服务呢?

传统企业基于物联网进行业务创新,通过运营设备数据来实现效益的提升。这样的做法基本上已经是行业的共识,大势所趋。但是企业的物联网转型或者建设物联网平台还是会遇到各种各样的阻碍,这已经严重制约了物联网的发展。对此,阿里云针对行业的痛点,提供了一系列服务帮助企业建设物联网平台。

1.让设备轻松接入云端

首先,企业的物联网转型会遇到设备接入云端的痛点,尤其是大规模设备的接入,云端必然要考虑分布式架构,网络延时性,设备安全性等等问题,这些问题成了第一道拦路虎。所以,首当其冲,物联网套件就要解决这个问题,套件提供设备端SDK让设备轻松接入阿里云。这样企业在不用购买服务器的情况下就可以实现大规模的设备接入云端,而且物联网套件保障设备与云端通信的质量,性能,安全以及网络等等问题。

2.提供设备管理服务

设备接入云端之后,当然要知道哪个设备接上来了,这时云端就要提供设备管理的服务。套件提供树形结构的设备管理模型,以及提供设备的状态管理。

3.保护设备和数据

安全是物联网最重要的话题。很多企业由于在安全上不够重视,最终付出了惨重的代价,这些案列不胜枚举。

物联网套件在安全上做了很多事情,包括在所有节点提供身份验证和端到端加密服务,这些节点包括设备端和阿里云各个云服务。换句话说,如果没有通过身份验证,是不能够进行节点间的数据交换的,即意味着设备无法与物联网套件通信。此外,物联网套件还提供了设备级的权限粒度服务,这个服务保证设备或者应用程序只有具有相应的访问权限,才能操作某些资源,简单来说,你想控制某个设备或者你想拿到某个设备的数据,都必须具有相应的权限,不是你想拿就能拿的。

4.存储设备数据

企业要进行物联网业务创新,必然需要对设备数据进行存储分析。

物联网套件不会做存数据的工作,因为这不是它擅长的事情。但是,物联网套件会联合阿里云其他存储产品,例如Table Store,RDS为客户提供采集+存储的完整解决方案。简单来说,物联网套件通过规则引擎与存储产品打通,企业不需要购买服务器,只需要在规则引擎中配置一些简单的规则,就可以将设备数据存储到指定的资源中。

5.计算设备数据

有了数据,必然少不了计算。

同存储一样,物联网套件也不会做计算的事情。但是,物联网套件会通过规则引擎与阿里云的计算产品无缝打通,例如流式计算,大规模计算。具体的来说,就是物联网套件将接入的设备数据按照客户的意愿转发到计算产品中。这样企业就可以不用购买服务器,只需要在规则引擎中配置一些简单的规则,就可以对设备数据进行各种各样的计算,可以是实时计算,也可以是离线计算。


产品架构

阿里云物联网套件资料-爱折腾
阿里云物联网套件包括以下一部分:

IoT Hub

为设备和物联网应用程序提供发布和接收消息的安全通道。IoT Hub目前支持CoAP协议和MQTT协议:

设备可以基于CoAP协议与IoT HUb短连接通信,应用设备低功耗场景。
设备也可以基于MQTT协议与IoT Hub长连接通信,应用指令实时响应的场景。
详情请参考IoT Hub

安全认证&权限策略

物联网套件为每个设备颁发唯一的证书,依赖证书才能连接IoT Hub。提供设备级的授权粒度,任何设备只能对自己所属的Topic发布订阅消息,服务端凭借阿里云AK对账号下所属的Topic进行操作,如果想要操作其他账号下的Topic,必须要需要经过授权才可以操作。

规则引擎

为用户提供类SQL语言的规则引擎,帮助用户过滤数据、处理数据,并能够发送数据到阿里云其他服务,例如Table Store,MNS,DataHub等等,也能够发送到数据到其他Topic。

设备影子

设备影子是一个 JSON 文档,用于存储设备或者应用的当前状态信息。每个设备都会在云端有唯一的设备影子对应,您可以使用设备影子通过 MQTT 或 HTTP 获取和设置设备的状态,无论该设备是否连接到 Internet。


名词解释

产品
设备的集合,每个产品都有productKey加以区别,产品下面可以有成千上万的设备,并用设备证书区别每个设备
productKey
productKey是物联网套件为产品颁发的唯一标识。这个参数很重要,需要用户保管好,在设备认证以及通信中都会用到
设备
归属于某个产品下的具体设备,用设备证书区别每个设备
deviceName
用户注册设备时,自定义生成的设备编号,可以基于该编号与设备通信,保证产品维度内的唯一性。这个参数很重要,需要用户保管好,在设备认证以及通信中都会用到
deviceSecret
物联网套件为设备颁发的设备密钥,和deviceName或者deviceId成对出现。这个参数很重要,需要用户保管好,在设备认证会用到。
RRPC
全称:Revert-RPC。从字面上理解,可以实现由服务端请求设备端并能够设备端响应的功能
Topic类
同一产品不同设备的Topic集合,用${productkey}和${deviceName}通配一个唯一的设备,一个Topic类对一个productkey下所有设备通用
Topic
Topic类中具体的某个Topic,与设备关联;也是Pub/Sub模型中消息的传输中介,可以向Topic发布或者订阅消息。例如设备A (deviceName=123,productkey=pk)将消息发布到Topic: /pk/123/upload。CCP协议和MQTT协议都支持Pub/Sub模型
发布
对应的英文名称:Pub。设备端的发布协议,操作Topic的权限,意思是具有往Topic中发布消息的权限
订阅
对应的英文名称:Sub。设备端的订阅协议,操作Topic的权限,意思是具有从Topic中订阅消息的权限
授权
对于设备端,设备必须具有权限,才可以往某个Topic发布订阅消息,这让用户可以完全控制Topic的消息转发,帮助用户控制数据的安全性
规则引擎
为用户提供类SQL语言的规则引擎,帮助用户将Topic中的数据进行过滤处理,并能够将处理后的数据发送到阿里云其他服务,例如MNS,Table Store,DataHub等等


产品功能

阿里云物联网套件帮助您快速搭建稳定可靠、安全可控的物联网应用

1.设备接入

提供不同网络的设备接入方案,例如2/3/4G、NB-IoT、LoRa等,解决企业异构网络设备接入管理的痛点
提供多种协议的设备SDK,例如MQTT、CoAP等,这样既能满足设备需要长连接保证实时性的需求,也能满足设备需要短连接降低功耗的需求
开源多种平台设备端代码,并且提供跨平台移植手册,让企业可以基于不同平台有能力将设备接入物联网套件

2.设备通信

提供设备与云端的上下行通道,能够稳定可靠的支撑设备上报与指令下发设备的场景
提供设备影子缓存机制,将设备与应用解耦,解决在无线网络不稳定情况下的通信不可靠痛点

3.安全能力:

提供一机一密的设备认证机制,降低设备被攻破的安全风险
提供TLS标准的数据传输通道,保证数据的机密性和完整性
提供设备权限管理机制,保障设备与云端安全通信
提供设备秘钥安全管理机制,防止设备密钥泄露
提供芯片级安全存储方案,防止设备密钥被破解

4.设备管理

提供设备生命周期的管理,可以注册、删除设备
提供设备online-offline变更通知服务,可以实时获取设备状态
提供设备权限管理,设备基于权限与云端通信
支持OTA升级,让设备具有远程升级的能力

5.规则引擎解析转发数据

基于规则引擎可以配置规则实现设备与设备之间的通信,快速实现M2M场景
基于规则引擎将数据转发到MNS,保障应用消费设备上行数据的稳定可靠性
基于规则引擎将数据转发到Table Store,提供设备数据采集+存储的联合方案
基于规则引擎将数据转发到StreamSql,提供设备数据采集+计算的联合方案


产品限制

阿里云物联网套件限制

产品
一个账号最多只能创建1000个产品
Topic类
一个产品最多只能定义50个Topic类
广播Topic
同一个topic最多可被1000个设备订阅,服务器SDK每秒只可发一条广播
Topic的长度
不能超过128字节
CoAP协议包大小
不能超过1K
MQTT协议包大小
不能超过256K
通信
设备只能对自己的Topic进行发布订阅消息
设备订阅
设备订阅和取消订阅10秒后生效,您可以提前订阅,并且一次订阅永久生效。比如设备发送了SUB请求到topicA,那么10秒后的消息设备才能收到,后续无需订阅即可收到消息,除非设备取消订阅
规则引擎
同一个账号不超过100个规则
规则引擎
数据格式必须是JSON才能使用规则引擎
规则引擎
一条规则中转发数据的操作不能超过10个
流量限制
单个设备数据上报上限QoS0为30条/秒,QoS1为10条/秒,下行接收限制50条/秒