微软云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. CNN之yolo目标检测算法笔记

    本文并不是详细介绍yolo工作原理以及改进发展的文章,只用做作者本人回想与提纲. 1.yolo是什么 输入一张图片,输出图片中检测到的目标和位置(目标的边框) yolo名字含义:you only lo ...

  2. Error running 'tomcat:run' Cannot run program..CreateProcess error=2,系统找不到指定的文件

    Error running 'tomcat:run': Cannot run program "tomcat:run" (in directory "D:\WorkTes ...

  3. ng 循环数据

    显示数据的索引值 在ts中 public list:any[]=[ {title:"新闻1",},{title:"新闻2"},{title:"新闻3& ...

  4. [Machine learning] Logistic regression

    1. Variable definitions m : training examples' count \(X\) : design matrix. each row of \(X\) is a t ...

  5. 【maven的使用】1maven的概念与配置

    maven是一个基于java平台的自动化构建工具.构建工具的发展由make->ant->maven->gradle其中gradle还在发展中,使用较少,学习难度比较大,所以目前占据主 ...

  6. JavaSE----01.Java简介

    01.Java简介 1.java介绍     Java是于1995年由Sun公司推出的一种跨平台.面向对象的高级程序设计语言.Java最初的名字叫OAK.Java是一种通过解释方式来执行的语言,其语法 ...

  7. PHP7源码之array_flip函数分析

    以下源码基于 PHP 7.3.8 array array_flip ( array $array ) (PHP 4, PHP 5, PHP 7) array_flip - 交换数组中的键和值 arra ...

  8. 【流畅的python】16.1 - 生成器如何进化成协程

    在生成器中加入yield关键字后,生成器调用方可以向生成器传入值,只需要使用.send(...)方法就可以传送数据.发送的数据会成为生成器函数中yield表达式的值.所以生成器可以作为协程使用. 协程 ...

  9. JavaScript:如何获取某一天所在的星期

    我们会遇到的需求的是,获取今天或者某一天所在星期的开始和结束日期. 我们这里来获取今天所在星期的始末日期,我们可以通过(new Date).getDay()来获取今天是星期几,然后再通过这个减去或者加 ...

  10. django安装以及配置

    一.django的安装和启动 1.安装 pip3 install django==1.11.22 目前来讲1.11.22版本比较稳定 2.django的创建 命令行:cmd先去到django创建目录, ...