Azure 上的物联网产品介绍
微软云Azure上物联网产品提供了从设备接入到设备与云的双向通信,到数据在云中存储,到数据分析,最后到数据展示的完整解决方案,本文主要介绍一些基本的概念,后续的章节中,会详细介绍每款产品的使用方法及步骤。
在公众号中观看本课程视频:
或如下链接:https://v.qq.com/x/page/w3018a9etgc.html
Azure IoT 相关产品总览
设备接入云
云中负责消息收发的主要产品是IoTHub,具备如下特点和优势,也就是为什么我们会选择IoTHub呢?
Dps是设备预配服务,当有大量设备要接入IoT Hub时,可以提前配置预配服务,通过预配服务,设备可自动注册到IoT Hub中。
Azure 提供了C、NodeJS、C#,Python、Java等多种语言的设备SDK,通过这些SDK,使用Https,AMQP, MQTT协议经由设备连接字符串或者X509证书认证后, 设备即可接入IoT Hub,接入IoT Hub的设备,系统会自动为每一个设备创建一个设备孪生的Json文件,并公开了API/SDK,利用类似SQL的语法,可以快速查询云中的设备状态等,同时利用设备孪生,还能进行双向通信。
设备使用SDK发送消息到云端后,IoT Hub 自带的消息路由功能,可以将消息经过一定的过滤条件筛选后,转发到不同的终结点,典型的应用是,将所有原始消息发送到Blob,做历史记录,或者将特定的数据,例如温度高于100°C的消息发送到特定的消息队列,这样后端的应用就可以从该队列获取到消息并进行处理,实现与业务系统的对接。
实时数据分析
除了上述的IoT Hub 自带的消息路由的方式,Azure 上其他的服务也可以对IoT Hub的数据进行处理,比如典型的实时流分析,流分析可以以类似SQL的语法对数据进行查询,比如:
SELECT * INTO [output] FROM [IoTHubInput] HAVING Temperature > 30
同时流分析还支持翻转窗口,跳跃窗口,滑动窗口,会话窗口等几种开窗函数,可以实现更为复杂的数据分析,典型的场景例如:
每30秒监测一次传感器上报的平均温度,高于100度时报警,就是通过滑动窗口实现的。
边缘计算
在上一个案例中,在某些特定的场景下,我们只需要将温度大于100°C的数据上传,这样可以保证上传到云端的数据质量,在传感器众多的场景下,也能够节约传输成本。这样的需求,Azure 也是支持的,Azure提供了边缘计算产品,能够将流分析服务下沉到客户本地网络,提供如下优势:
将流分析下沉到边缘侧之后的架构,参见下图:
那么Azure IoT Edge是如何支撑流分析下沉到边缘的呢?
Azure IoT Edge采用兼容于Docker的容器技术,支持Windows和Linux边缘设备,在设备上装Runtime后,可以从Azure container registry中拉取镜像并自动部署,基于此结构,还支持将云上的认知服务、存储、数据库等部署在边缘。
端侧产品
以上介绍的是微软云上产品,微软在端侧同样提供了多种方案,最主要的是Windows操作系统,从小型设备到标准设备到边缘计算服务器,微软的IOT操作系统都进行了覆盖:
数据安全
云和端之间,需要保证数据传输的安全,微软提供了另一个安全的高级应用程序平台-Azure Sphere: