基于Azure IoT开发.NET物联网应用系列-全新的Azure IoT架构
物联网技术已经火了很多年了,业界各大厂商都有各自成熟的解决方案。我们公司主要搞新能源汽车充电,充电桩就是物联网技术的最大应用,车联网、物联网、互联网三网合一。2017年的时候重点研究过Azure IoT技术架构和使用,
随着业界技术的发展,近期又重新关注并研究了最新的Azure IoT架构,现在将结合着.NET Core技术和Azure IoT 做一些物联网应用,将研究的成果分享给大家。
关于IoT的一些基本概念,重新梳理一下,分享给大家:
- IoT:Internet of Things,即万网互联。
- IoT Devices:物联网设备。
- IoT Edge Devices:物联网边缘计算设备。
- IoT Gateway:IoT网关,负责IoT物联网设备的接入、管理和控制、通讯(上行和下行)
- 通讯协议:TCP、MQTT、AMQP、HTTPS、zgebee等等
- Azure IoT Central。 IoT Central 是完全托管的 IoT物联网 SaaS(软件即服务)服务
- 目前Azure仍然提供了Azure IoT Hub:直译为Azure的物联网中心。
- Azure IoT Hub为物联网设备提供注册、管理、沟通交互的云服务。可用于管理数十亿物联网设备,提供可靠和安全的云端与设备之间的双向通信支持,每月可处理数以万亿计消息,并简化了与其他Azure服务之间的集成,包括Azure机器学习以及
- Azure流分析等。它是微软Azure IoT Suite的重要组成部分,也是微软物联网战略的重要基础。
接下来,我们看一下Azure IoT最新的技术架构:
下面,我们详细介绍一下这个架构组成:
一、 Things(物联网设备侧)
1. IoT devices:前面已经介绍过了,泛指各类物联网设备。设备可以安全地注册到云中,并且可以连接到云之后,发送和接收数据。
2. IoT edge devices:物联网边缘计算设备,某些设备可能会是在设备本身上或在现场网关中执行一些数据处理的边缘设备。举个大家平时常见的设备:充电桩,作为IoT边缘计算设备,其自身有嵌入式操作系统、AI智能芯片,可以实现一些简单的边缘计算场景
3. Cloud Gateway:云网关,云网关提供一个云中心,以便设备安全地连接到云并发送数据。 它还提供设备管理功能,包括设备的命令和控制。
对于云网关,Azure 建议使用Azure IoT 中心。Azure IoT 中心是从设备引入事件的托管云服务,充当设备与后端服务之间的消息代理。 同时提供安全连接、事件引入、双向通信和设备管理。
当然,我们也可以自建云网关,支持各类物联网设备的接入、管理和控制。
4. Bulk devices provisioning:设备批量设置,统一管理设置海量设备。 对于注册和连接许多组设备。可以使用 IoT 中心设备预配服务 (DPS)。 DPS 可用于大规模分配设备并将设备注册到特定 Azure IoT 中心终结点。
二、Insights(洞察、洞见,可以理解为设备接入管理、数据处理、数据持久化、数据分析、可视化)
1. Streaming Processing:流式数据处理
Azure提供了专门的流分析服务。 流分析可以使用时间开窗函数、流聚合和外部数据源联接大规模执行复杂分析。假如说我们自建系统做物联网数据流式分析的话,可以使用Kafka、Flink、Spark等主流的大数据流式分析技术。
2. Data transformation:数据转换操作或聚合遥测数据流。
常见的场景包括通讯协议转换,例如,将二进制数据转换为 JSON,或者合并数据点。 如果数据在到达 IoT 中心之前必须转换,可以使用协议网关(一个可以转换数据的网关)。 同时,数据可以在到达 IoT 中心后转换。
在这种情况下,可以使用 Azure Functions 函数计算,Azure Functions内置了与 IoT 中心、Cosmos DB 和 Blob 存储的集成。
3. Warm path store:热存储
热存储,存储实时物联网设备上传下发的数据,这些数据必须可按设备实时查询,以用于报告和可视化。举个实际的业务场景:充电桩实时上传的电压、电流、SOC等实时设备数据,这些数据的实时性要求高,可以存储在热存储中。
4. Cold path store:冷存储
如果所有的物联网设备数据全部存储在热存储中,其硬件成本会很高。数据具备一定的时效性,因为,当数据失去了一定的时效性要求后,可以存储在冷存储中,降低存储的成本。
这些数据会保留较长时间,用于批处理。 对于冷路径存储,可以使用 Azure Blob 存储。 数据可无限期地以较低成本在 Blob 存储中存档,并且可以轻松访问以进行批处理。
5. UI Reporting and tools:可视化展现
可视化展现方面,通常包含:IoT设备管理UI、设备控制UI、趋势图、连接状态图表、数据分析图表等等,这个地方可以使用各类UI展现技术实现了。
三、 Action(运维管理、操作)
1. Machine Learning:机器学习
大家会问,用机器学习干什么?通过历史遥测数据执行模型训练,实现IoT设备的预测性维护,同时还能做什么?还可以对上报的数据建立不同的模型,实时进行训练,智能控制设备。比如说充电桩的例子,动态调控充电功率,实现最大充电效率。
2. Business integration:业务流程集成
业务流程集成根据来自设备数据执行各类后续操作。 可以包括:存储实时消息、引发警报、发送电子邮件或短信,或者与 CRM 集成。举个实际的业务场景:当需要设备运维时,发出一个运维工单到产品运维部门,实现IoT设备的智能运维和派单处理。
3. User Management:用户管理
用户管理限制哪些用户或组可以在设备上执行操作,例如升级固件。 它还定义应用程序中的用户功能。
综上是Azure IoT架构的详细介绍和说明,比2017年时,产品更加SaaS化,更加AI智能、更加体系。分享给大家。
周国庆
2020/6/7
基于Azure IoT开发.NET物联网应用系列-全新的Azure IoT架构的更多相关文章
- 基于.Net Core开发的物联网平台 IoTSharp V1.5 发布
很高兴的宣布新版本的发布, 这次更新我们带来了大量新特性, 最值得关注的是, 我们逐步开始支持分布式, 这意味着你可以通过多台服务器共同处理数据, 而不是原来的单机处理, 我们也将遥测数据进行分开存储 ...
- Window Azure ServiceBus Messaging消息队列技术系列1-基本概念和架构
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列1-基本概念和架构
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...
- 腾讯IOT之树莓派物联网设备
目录 腾讯IOT之树莓派物联网设备 硬件配置 软件配置 Tecent IOT 开发平台的使用 新建项目 新建产品 添加自定义功能 设备开发 微信小程序配置 面板配置 新建设备 使用设备 在线调试 设备 ...
- Windows Azure 服务总线和物联网
机器到机器 (M2M) 计算正迅速成为一种技术,所有开发人员和架构师需要拥抱. 许多研究表明一个未来世界的数百亿美元的设备 (在地球上的每一个人的出现).MSDN杂志有2篇文章讨论Azure服务总线和 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列-索引篇
Azure Messaging ServiceBus Messaging相关的技术系列,最近已经整理了不少了,统一做一个索引链接,置顶. 方便查找,并后续陆陆续续再增加. 学习消息队列技术,可以先看第 ...
- 小熊派IoT开发板系列教程正式发布——免费学习
[摘要] 小熊派开源社区针对小熊派IoT开发板首次规划了小熊派未来的系列教程.从基础到进阶的设计,可适应具有不同基础的开发者,通过该系列教程的学习,开发者能够轻松掌握IoT产品的开发.该系列教程包括单 ...
- 【Windows10 IoT开发系列】PowerShell的相关配置
原文:[Windows10 IoT开发系列]PowerShell的相关配置 可使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备.PowerShe ...
- HC大会,华为联合合作伙伴发布一站式物联网IoT开发工具小熊派BearPi
传统的物联网产品开发步骤复杂,涉及硬件开发.软件开发.云端开发等众多流程.而且产品的开发周期长.开发成本高.产品稳定性不佳.维护成本高.而物联网设备本身市场竞争激烈,价格低,设备更新迭代快,所以在保证 ...
随机推荐
- 死磕synchronized底层实现
点赞再看,养成习惯,微信搜索[三太子敖丙]第一时间阅读. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. 前言 ...
- 接口(API)测试理念
什么是接口测试 接口测试就是针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性: 测试的重点是检查数据交互.传递.和控制管理过程以及系统间的相互 ...
- doxygen+graphviz轻松绘制函数调用图(call graph)
前言 之前的工作环境习惯了使用source insight查看函数分析代码,切换到mac下后改用vscode,发现缺少函数调用关系图生成.跨平台的understand可以很好的解决,但是公司没有购买, ...
- zabbix 自定义指标数据来源
1.cpu load https://blog.csdn.net/scugxl/article/details/77199403 1)基本含义:运行队列长度,表示当前有多少个正在等待的进程和正在执行的 ...
- js-实现多列布局(瀑布流)
本文是使用面向对象的思想实现多列布局(瀑布流).当然,使用面向过程也能实现,具体效果图和案例如下: 具体实现代码如下: <!DOCTYPE html> <html lang=&quo ...
- springboot中yml常用配置
server: port: 8080 spring: datasource: #数据源配置 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc: ...
- 有点干货 | Jdk1.8新特性实战篇(41个案例)
作者:小傅哥 博客:https://bugstack.cn - 汇总系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获!
- JSP+SSM+Mysql实现的图书馆预约占座管理系统
项目简介 项目来源于:https://gitee.com/gepanjiang/LibrarySeats 因原gitee仓库无数据库文件且存在水印,经过本人修改,现将该仓库重新上传至个人gitee仓库 ...
- 网络编程杂谈之TCP协议
TCP协议属于网络分层中的传输层,传输层作用的就是建立端口与端口的通信,而其下一层网络层的主要作用是建立"主机到主机"的通信,所以在我们日常进行网络编程时只要确定主机和端口,就能实 ...
- 读Pyqt4教程,带你入门Pyqt4 _004
在PyQt4教程的这部分中,我们将探讨应用中事件和信号的发生. 事件是GUI程序的重要部分,由用户或者系统产生.当我们调用应用的 exec_() 方法,应用进入主循环.主循环获取事件并把它们发往对象. ...