微软Azure IoT

 

国外物联网平台初探(二)
——微软Azure IoT

马智

平台定位

连接设备、其它 M2M 资产和人员,以便在业务和操作中更好地利用数据。

连接 IoT 设备

将所有设备连接到云,从这些设备接收大规模数据,以及管理这些设备的授权和限制。

在将设备连接到云和处理设备的聚合事件流时,互联设备的快速增长以及平台和协议的不一致会引起巨大挑战。平台预配容量以处理来自数百万设备的事件,同时支持 AMQP 和 HTTP 协议,保护每台设备的事件顺序。

实时监视

将设备连接到云并接收事件数据时,监视此数据流,以获得对业务的见解、促进效率提升及精简业务流程。

每秒分析数百万事件,以及快速开发和部署实时监视解决方案,从基础结构中的设备和传感器发送的数据获得可操作的建议。

Azure IoT架构

Azure IoT服务

Azure IoT 中心(IoT Hub)

  • Azure IoT 中心是一项完全托管的服务,可在数百万个 IoT 设备和一个解决方案后端之间实现安全可靠的双向通信。
    • 提供可靠的设备到云和云到设备的大规模消息传送。
    • 使用每个设备的安全凭据和访问控制来实现安全通信。
    • 可广泛监视设备连接性和设备标识管理事件。
    • 包含最流行语言和平台的设备库。
  • 设备级别的身份验证:每个设备设置独有的安全密钥,IoT 中心标识注册表会存储设备标识和密钥,后端可将个别设备加入允许列表或方块列表,以便完全控制设备访问权限。
  • 设备连接操作监控:设备标识管理操作与设备连接事件存在详细的操作日志,便于识别连接问题,例如,尝试使用错误凭据进行连接的设备、消息发送太频繁,或拒绝所有云到设备的消息。
  • 丰富的设备库:Azure IoT 设备 SDK 也支持C、C#、Java 和 JavaScript 等托管语言,支持许多 Linux 分发版、Windows 和实时操作系统。
  • 可扩展的IoT 协议。IoT 中心存在一个公共协议,它使设备可以通过本机方式使用 MQTT v3.1.1、HTTP 1.1 或 AMQP 1.0 协议。还可以通过以下方式扩展 IoT 中心,以便为自定义协议提供支持:
    • 现场网关:使用 Azure IoT 网关 SDK创建现场网关,该 SDK 可将自定义协议转换为 IoT 中心所理解的三个协议之一。
    • 云网关:自定义 Azure IoT 协议网关(在云中运行的一个开放源代码组件)。
  • 可扩展高并发的事件处理:Azure IoT 中心可扩展为数百万个同时连接的设备,以及每秒数百万个事件。
  • 基于事件的设备数据处理:事件处理器引擎在热路径上可以处理设备事件,也可以将它们存储在冷路径上以供分析。IoT 中心可保留最多 7 天的事件数据,以保证可靠的处理并消减负载峰值。
  • 可靠的云到设备消息传送:后端使用 IoT 中心将消息发送到单个设备(含至少一次的传递保证)。每条消息都有单独的生存时间设置,且后端可以请求传递和过期回执。这可确保完全了解云到设备消息的生命周期。
  • 存储和分析文件和缓存的传感器数据:设备使用 SAS URI 将 IoT 中心托管的文件上载到 Azure 存储空间。当文件到达云时,IoT 中心可以生成通知,使后端处理这些文件。

事件中心 Event Hubs

  • 事件中心是一种事件处理服务,用于向云提供大规模的事件与遥测数据入口,并且具有较低的延迟和较高的可靠性。事件中心充当事件管道"前门",位于事件生成者与事件使用者之间的组件或服务,可以将事件流的生成与这些事件的使用分离开来。
  • 事件中心每秒可以引入数百万的事件,从而能够处理和分析连接设备和应用程序生成的海量数据。
  • 事件中心收集到数据后,可以使用任何实时分析提供程序或批处理/存储适配器来转换和存储这些数据。
  • 事件中心可将事件流的生成与这些事件的使用分离开来,事件使用者可以根据自己的计划访问事件。
  • 每秒将数百万事件流式传输到多个应用程序中
    • 事件中心是一个高度可伸缩的发布-订阅采集器,每秒可获取数百万个事件,能够处理和分析互连设备与应用程序生成的海量数据。将数据采集到事件中心后,使用任何实时分析提供程序或者批处理/存储适配器来转换和存储数据。
  • 允许应用程序处理负载分布可变的事件
    • 大数据是当今互连世界的直接体现。大数据有很多来源,例如每隔数分钟就会生成遥测数据的互连式汽车和恒温器、每隔一秒就会生成事件的应用程序性能计数器,或者在用户每执行一个操作时就会捕获遥测数据的移动应用程序。具有弹性的托管采集器服务能够应对不断变化的负载分布,以及间断性连接造成的负载高峰。
  • 跨平台连接数百万台设备
    • 互连设备的快速涌现使 IT 行业面临更严峻的挑战,因为必须应对各种平台和协议。在连接这些不同数据源的同时处理大规模的聚合流已成为一个很大的难题。事件中心可让用户轻松置备容量以从数百万台设备采集事件,同时还能基于每台设备保留事件顺序。支持 AMQP 和 HTTP,让很多平台可与事件中心一起使用,本机客户端库也可用于各种流行平台。

流分析(Stream Analytics)

云中的事件实时流式处理引擎,可实时快速开发,对现有数据属性进行深入了解。

  • 为物联网解决方案执行实时分析
  • 每秒对数百万事件进行流式处理
  • 获得关键任务的可靠性和性能预测结果
  • 利用设备和应用程序的数据,创建实时仪表板和警报
  • 跨多个数据流进行关联
  • 使用常见的基于 SQL 的语言,以实现快速开发
  • 实时获取分析结果
    • 实现快速开发和部署低成本分析解决方案,从设备、传感器、基础结构和应用程序实时获取深入分析结果。
  • 实现快速开发
    • 减少为扩展的分布式系统开发分析功能时的困难并降低复杂程度。只需使用基于 SQL 的语法描述所需的转换,系统将自动分配以实现扩展、性能和恢复能力,完全不需要管理复杂的基础结构和软件。
  • 执行实时分析
    • 与事件中心的现成集成,每秒可接收数百万事件。比较多个实时流或将实时流与历史值和模型一起进行比较。这样可以实现异常检测和传入数据转换,并能够在流中出现特定错误或情况时触发警报,以及为实时仪表板提供支持。
  • 实现任务可靠性和扩展能力
    • 扩展以适应任何数据量需求,同时仍能实现高吞吐量、低延迟和有保证的恢复能力,不需要任何硬件或其它前期成本,也不需要耗费时间进行安装或设置。在数分钟内启动并运行。流分析可在高吞吐量的条件下处理数据,结果可预测且无数据丢失。

通知中心(Notification Hubs)

可缩放的大规模移动推送通知引擎,可快速将数百万条消息推送至多种平台(iOS, Android, WP等)

  • 在几分钟内广播至数百万设备
    • 快速将数百万条消息推送至 iOS、Android (Baidu Push)、Windows,或 Kindle 设备。
  • 支持任何后端系统
    • 可插入内部环境或 Azure 云端运行的任何后端系统:.NET、PHP、Java、Node。
  • 通过动态标签推送至不同用户群
    • 利用标签功能,根据活动、兴趣、位置,或首选项划分用户群,在正确的时间将正确的信息推送给正确的人员。
  • 使用模板轻松实现本地化
    • 使用模板功能推送本地化通知信息,让用户获得与自己所用语言一致的信息。模板功能无需为每个客户存储本地化设置。
  • 针对大规模环境设计
    • 无需重构或切分(Sharding),即可快速扩展至数百万设备,发送数十亿条推送通知。通知中心可自动对基础结构进行必要调整,用非常低的延迟将信息推送至每台活跃设备。

机器学习( Machine Learning )

提供开发简单、功能强大、可灵活扩展、基于托管云服务的预测分析方案

现属于Cortana智能套件

  • 主要功能
    • 数据探索、描述性分析、预测性分析
    • 监管学习、无人值守学习
    • 模型训练和评估

机器学习步骤

  1. 导入数据至平台
  2. 探索和可视化数据
  3. 生成和选择特性
  4. 创建和训练机器学习模型
  5. 部署和使用模型

开发工具界面 – 创建IoT中心

IoT中心创建结果

共享访问策略

开发工具界面 – 创建设备标识

开发工具界面 - 创建流分析作业监视器

开发工具界面 – 通知中心

开发工具界面 – 机器学习模型

Machine Learning Studio: 创建预测模型

开发工具界面 – Cortana智能库

选择分析方案

作者:马智

微信公众号:物联网那点事

Azure IoT的更多相关文章

  1. Azure IoT带来更高效的新能源生产和会看人脸色的无人超市

    全球分析机构都认为物联网将在未来几年呈现爆发式增长,到2020年,各种传感器.新型物联网设备,再加上传统PC.智能手机.平板电脑.网络电视,以及各类可穿戴智能设备,将交织成一个由300亿到500亿台设 ...

  2. Connecting my Particle Photon Internet of Things device to the Azure IoT Hub(Translation)

    原文: http://www.hanselman.com/blog/ConnectingMyParticlePhotonInternetOfThingsDeviceToTheAzureIoTHub.a ...

  3. 【物联网云端对接-1】 通过HTTP协议与微软Azure IoT hub进行云端通信

    在2015年曾写过一篇文章<从微软build 2015,展望微软未来发展>,提到了微软的Azure和Windows 10 IoT,那算是初次接触微软物联网技术.比较幸运的是在后续的时间里, ...

  4. Azure IoT 技术研究系列1-入门篇

    物联网技术已经火了很多年了,业界各大厂商都有各自成熟的解决方案.我们公司主要搞新能源汽车充电,充电桩就是我们物联网技术的最大应用,车联网.物联网. 互联网三网合一.作为Azure重要的Partner和 ...

  5. Azure IoT 技术研究系列2-起步示例之设备注册到Azure IoT Hub

    上篇博文中,我们主要介绍了Azure IoT Hub的基本概念.架构.特性: Azure IoT 技术研究系列1-入门篇 本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT ...

  6. Azure IoT 技术研究系列3-设备到云、云到设备通信

    上篇博文中我们将模拟设备注册到Azure IoT Hub中:我们得到了设备的唯一标识. Azure IoT 技术研究系列2-设备注册到Azure IoT Hub 本文中我们继续深入研究,设备到云.云到 ...

  7. Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别

    上两篇博文中,我们介绍了将设备注册到Azure IoT Hub,设备到云.云到设备之间的通信: Azure IoT 技术研究系列2-设备注册到Azure IoT Hub Azure IoT 技术研究系 ...

  8. Azure IoT 技术研究系列5-Azure IoT Hub与Event Hub比较

    上篇博文中,我们介绍了Azure IoT Hub的使用配额和缩放级别: Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别 本文中,我们比较一下Azure IoT Hub和 ...

  9. Azure IoT Hub和Event Hub相关的技术系列-索引篇

    Azure IoT Hub和Event Hub相关的技术系列,最近已经整理了不少了,统一做一个索引链接,置顶. Azure IoT 技术研究系列1-入门篇 Azure IoT 技术研究系列2-设备注册 ...

随机推荐

  1. Wireshark 基本介绍和学习 TCP 三次握手

    这篇文章介绍另一个好用的抓包工具 Wireshark, 用来获取网络数据封包,包括 HTTP.TCP.UDP 等网络协议包. 记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过 ...

  2. .gitignore模板

    github/gitignore · GitHub列举了一些有用的.gitignore的模板.比如这个是visual studio的. 另外说一个题外话,如果不想看见solution目录的那个sdf, ...

  3. 融云的Java端实现

    产品中要使用融云实现即时通讯,下面是实现步骤: 1 .注册appkey secret,这个是第一步: 2 .下载融云Java客户端 https://github.com/rongcloud/serve ...

  4. 实战:sqlserver 数据实时同步到mysql

    1.安装安装mysqlconnector 2.配置mysqlconnector ODBC数据管理器->系统DSN->加入->mysql ODBC 5.3 ANSI driver-&g ...

  5. [Rails Level 2] Ground up

    1. Rails commends line: Example: rails new blog --skip-test-unit --database=postgresql

  6. Shell 获取当前时间

    #! /bin/bash time=`date '+%Y-%m-%d %H:%M:%S'` # echo $time sql='SELECT `username`, `password` FROM ` ...

  7. colorAccent、colorPrimary、colorPrimaryDark actionbar toolbar navigationbar

    伴随着Android5.0的发布也更新了support-v7-appcompat 到V21,其中增加了ToolBar.recyclerview.cardview等控件. Android5.0对改变AP ...

  8. SpringMVC12拦截器

    创建登陆界面 <%@ page language="java" import="java.util.*" pageEncoding="utf-8 ...

  9. MVC中给TextBoxFor设置默认值和属性

    例如:(特别注意在设置初始值的时候 Value 中的V要大写) @Html.TextBoxFor(model => model.CustomerCode, new { Value=" ...

  10. markdown 简明语法

    今天同事聊到markdown用法 之前不怎么了解  先把网上的建明语法贴出来 以备后用. 基本符号 *,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号 空白行表示另起一个段落 `是 ...