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:

Azure 上的物联网产品介绍的更多相关文章
- Azure 上通过 SendGrid 发送邮件
SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(二)
前言 (二)建立虚拟网络环境,以及域控和DNS服务器 1搭建虚拟网络环境 在Azure上创建虚拟网络.本例选择的是东南亚数据中心.后面在创建虚机的时候,也选择这个数据中心. VNet Name: ...
- 在Azure上的VM镜像库中找到想要的镜像
Azure上的虚机镜像库中, 有很多的镜像,其中当然也包括了用户自定义上传的镜像. 在Powershell中如果想使用这些镜像的话, 则需要知道其名称 下面这条命令,可以获得所有的镜像信息 $imag ...
- 在Azure上部署Windows Server Core
作为服务器操作系统,图形界面真心有些多余了,这也是很多人喜欢Linux服务器的原因之一.从Windows Server 2008开始,微软提供了Server Core版本,其实就是一个没有图形界面的服 ...
- 在 Azure 上使用 Docker运行 Mono
Docker 是最近相当热门的一个名词,它是一个基于 Linux Container 的轻量化的虚拟技术,而微软也相当积极与 Docker 合作,在 Azure 上支持这个火热的技术,并且提供简单的方 ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(一)
(一)前言 本文主要介绍了实践部署AzurePack的Website Cloud的过程.在部署之前, 首先要对AzurePack有个基本的了解. Azure Pack是微软的私有云方案,具有弹性. ...
- 在Azure上实现Linux Server故障转移
要充分利用公有云的弹性扩展和高可用, 首先要在应用系统层面支持横向扩展(scale out),这个说起来很容易,或者说对新开发的应用系统而言已经成为标配.但是对已有的.老旧的应用系统来说,这就比较困难 ...
- Microsoft Azure News(2) 在Microsoft Azure上运行SAP应用程序
<Windows Azure Platform 系列文章目录> 2014年6月27日消息,在 Microsoft Azure 上提供 SAP Business Suite 软件.All-I ...
- Azure上七层负载均衡APP Gateway
Azure的SLB和ILB是最常用的4层负载均衡工具.但有些场景是7层的负载均衡,SLB和ILB就无能为力了. Azure上已经推出了APP Gateway的服务,就是7层负载均衡的负载均衡器. 如上 ...
随机推荐
- classpath:类路径
classpath:可以用于web.xml中获取spring springmvc配置文件的位置 用于sprnig配置文件中获取mapper的位置 classpath:可以获取到java目录下的,res ...
- CRS-2674: Start of 'ora.cssd' on 'rac2' failed 引发的rac集群服务起不来问题
问题背景:客户反馈Oracle rac集群节点宕机 1.首先查看宕机原因,归档日志满导致服务重启,查看归档日志路径是USE_DB_RECOVERY_FILE_DEST (默认路径), 安装的时候没有做 ...
- 第二篇 python进阶
目录 第二篇 python进阶 一 数字类型内置方法 二 字符串类型内置方法 三 列表类型内置方法(list) 四 元组类型内置方法(tuple) 五 字典内置方法 六 集合类型内置方法(self) ...
- bugku 一个普通的压缩包
压缩包打不开,用winhex打开压缩包,发现头文件是zip的,将后缀改为zip,成功解压. 打开发现还是个压缩包,而且打不开,提示secret.png损坏,使用winhex打开. 将a8 3c 7a ...
- C# Foreach循环本质与枚举器
对于C#里面的Foreach学过 语言的人都知道怎么用,但是其原理相信很多人和我一样都没有去深究.刚回顾泛型讲到枚举器让我联想到了Foreach的实现,所以进行一番探究,有什么不对或者错误的地方大家多 ...
- Java中Integer.parseInt和Integer.valueOf,你还傻傻分不清吗?
在Java的Integer类中,有Integer.valueOf(String s)和Integer.parseInt(String s)两个静态方法,他们都能够将字符串转换为整型,他们到底有什么区别 ...
- 《深入理解Java虚拟机》-----第9章 类加载及执行子系统的案例与实战
概述 在Class文件格式与执行引擎这部分中,用户的程序能直接影响的内容并不太多, Class文件以何种格式存储,类型何时加载.如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为,用户 ...
- Javascript字符串常用方法详解
字符串 字符串就是一个或多个排列在一起的字符,放在单引号或双引号之中. 'abc'"abc" length属性 js里的字符串类似于数组,都是一个一个字符拼凑在一起组成的,因此可以 ...
- i春秋DMZ大型靶场实验(三)内网转发DMZ2
更具实验文件知道存在源码泄露 下载源码进行源码审计 发现admin账号 查看user.php 发现mysql 账号 端口 对登录后源码进行审计 发现上传文件的两处漏洞 对 fiel name 可以 ...
- Pycharm中Python Console与Terminal的区别
1.Python Console是Python交互式模式,可以直接输入代码,然后执行,并立刻得到结果 2.Terminal是命令行模式,与系统的CMD(命令提示符)一样,可以运行各种系统命令