微软云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 上的物联网产品介绍的更多相关文章

  1. Azure 上通过 SendGrid 发送邮件

    SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...

  2. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(二)

    前言 (二)建立虚拟网络环境,以及域控和DNS服务器   1搭建虚拟网络环境 在Azure上创建虚拟网络.本例选择的是东南亚数据中心.后面在创建虚机的时候,也选择这个数据中心. VNet Name: ...

  3. 在Azure上的VM镜像库中找到想要的镜像

    Azure上的虚机镜像库中, 有很多的镜像,其中当然也包括了用户自定义上传的镜像. 在Powershell中如果想使用这些镜像的话, 则需要知道其名称 下面这条命令,可以获得所有的镜像信息 $imag ...

  4. 在Azure上部署Windows Server Core

    作为服务器操作系统,图形界面真心有些多余了,这也是很多人喜欢Linux服务器的原因之一.从Windows Server 2008开始,微软提供了Server Core版本,其实就是一个没有图形界面的服 ...

  5. 在 Azure 上使用 Docker运行 Mono

    Docker 是最近相当热门的一个名词,它是一个基于 Linux Container 的轻量化的虚拟技术,而微软也相当积极与 Docker 合作,在 Azure 上支持这个火热的技术,并且提供简单的方 ...

  6. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(一)

    (一)前言 本文主要介绍了实践部署AzurePack的Website Cloud的过程.在部署之前, 首先要对AzurePack有个基本的了解.   Azure Pack是微软的私有云方案,具有弹性. ...

  7. 在Azure上实现Linux Server故障转移

    要充分利用公有云的弹性扩展和高可用, 首先要在应用系统层面支持横向扩展(scale out),这个说起来很容易,或者说对新开发的应用系统而言已经成为标配.但是对已有的.老旧的应用系统来说,这就比较困难 ...

  8. Microsoft Azure News(2) 在Microsoft Azure上运行SAP应用程序

    <Windows Azure Platform 系列文章目录> 2014年6月27日消息,在 Microsoft Azure 上提供 SAP Business Suite 软件.All-I ...

  9. Azure上七层负载均衡APP Gateway

    Azure的SLB和ILB是最常用的4层负载均衡工具.但有些场景是7层的负载均衡,SLB和ILB就无能为力了. Azure上已经推出了APP Gateway的服务,就是7层负载均衡的负载均衡器. 如上 ...

随机推荐

  1. 深入Dapper.NET源码 (文长)

    目录 前言.目录.安装环境 Dynamic Query 原理 Part1 Dynamic Query 原理 Part2 Strongly Typed Mapping 原理 Part1 : ADO.NE ...

  2. [Python] Python 学习记录(2)

    1.range(x,y) [x,y) >>> range(0,4) #0,1,2,3 >>> range(1,4) #1,2,3 2.dics dics.get(k ...

  3. Scala 学习笔记之集合(1)

    package com.citi.scala object CollectionDemo { def main(args: Array[String]): Unit = { /** * List */ ...

  4. Docker 学习笔记之 核心概念

    Docker核心概念: Docker Daemon Docker Container Docker Registry Docker Client 通过rest API 和Docker Daemon进程 ...

  5. Curl的移植编译以及注意事项

    最近需要用curl来发送http请求,遇到了不少问题,查了不少资料,都是零零散散的,现在总结下.   1.移植编译 ./configure --prefix=$(PWD)/build --host=a ...

  6. 无意间做了个 web 版的 JVM 监控端(前后端分离 React+Spring Boot)

    之前写了JConsole.VisualVM 依赖的 JMX 技术,然后放出了一个用纯 JMX 实现的 web 版本的 JConsole 的截图,今天源码来了. 本来就是为了更多的了解 JMX,第一步就 ...

  7. python编程基础之六

    运算符和表达式 +,-,*,/,     加减乘除 %, 模运算 **,  幂运算 //  整除 运算优先级方面:** >正负号(+,-)>//,%>*,/>+,- 模运算有一 ...

  8. 从一道ctf看php反序列化漏洞的应用场景

    目录 0x00 first 前几天joomla爆出个反序列化漏洞,原因是因为对序列化后的字符进行过滤,导致用户可控字符溢出,从而控制序列化内容,配合对象注入导致RCE.刚好今天刷CTF题时遇到了一个类 ...

  9. 基于Matlab/Simulink的模型开发(连载一)

    概述 基于模型的开发将省去繁琐的代码编写步骤,只需要拖动几个模块,就像搭积木一般,轻松搭建您自己的飞控算法.飞控开发人员可以将更多的精力放在算法本身,而不需要过多关注代码实现的细节,这样将大大加快开发 ...

  10. 了解ajax基本爬取方式

    '''爬去豆瓣电影数据了解ajax的基本爬去方式 ''' from urllib import requestimport jsonimport ssl url = "https://mov ...