物联网技术已经火了很多年了,业界各大厂商都有各自成熟的解决方案。我们公司主要搞新能源汽车充电,充电桩就是我们物联网技术的最大应用,车联网、物联网、

互联网三网合一。作为Azure重要的Partner和使用者,我们对Azure的IoT方案也是非常期待的,因此,最近计划研究一下Azure的IoT技术,同时将研究的成果分享给大家。

以本文作为IoT入门的第一篇吧。

IoT:Internet of Things,即连接一切

Azure提供了Azure IoT Hub:直译为Azure的物联网中心

Azure IoT Hub为物联网设备提供注册、管理、沟通交互的云服务。

可用于管理数十亿物联网设备,提供可靠和安全的云端与设备之间的双向通信支持,每月可处理数以万亿计消息,并简化了与其他Azure服务之间的集成,包括Azure机器学习以及

Azure流分析等。它是微软Azure IoT Suite的重要组成部分,也是微软物联网战略的重要基础。

Azure IoT Hub架构和特性:

1. 大规模可靠的设备到云、云到设备的双向通信

2. 通过使用安全凭据和访问控制机制确保每个设备的安全性通信(通过设备的安全密钥或者X.509证书)

3. 支持可扩展的监控设备的连接和标识管理事件

4. 与其他的Azure服务之间,提供了内置的可选的消息路由

5. 为主流的开发语言和平台提供了Device Library。http://azure.github.io/azure-iot-sdks/

架构图:

从上面这张图我们可以看出:

  • Azure IoT Hub对各种协议的支持:MQTT、AMQP、HTTP、Custom
  • 设备的支持:IP支持的设备、已有的IoT设备、低功耗设备
  • Event-based device-to-cloud ingestion:基于事件的设备到云的通讯,IoT Hub 可支撑来自物联网设备,每秒百万级的事件。这些事件既可以通过事件处理引擎被热处理,同时也可以被存储以备后续的分析。IoT Hub为了保证可靠的事件处理,将事件数据保存7天。
  • Reliable cloud-to-device messaging (or commands). :可靠的云到设备的消息通讯,可视化的云到设备消息管理:后台解决方案可以通过IoT Hub保证消息至少一次发送到物联网单个设备,同时消息支持TTL,消息发送确认和消息过期回执。

说到这里,我们不禁会想:为什么使用Azure IoT Hub?即:

Azure IoT Hub解决那些IoT问题:

1. 设备的认证和安全连接

  每个物联网设备连接到Azure IoT Hub时,需要提供其独有的Security Key

  IoT Hub identity registry 存储了设备的身份和Key

  IoT Hub后端提供了设备的白名单和黑名单机制,控制设备的访问

2. 监控设备的连接操作:提供了详细的设备身份管理操作日志和连接日志

3. 全面丰富的Device Library:设备SDK,支持主流的开发语言和平台:.Net Java Node.JS C 都支持

4. IoT 协议可扩展:MQTT v3.1.1, HTTP 1.1, or AMQP 1.0  支持Custom Protocol

5. Scale:支持每秒百万级的设备连接和事件

Azure IoT Hub是如何工作的:

Azure IoT Hub实现了服务辅助通信(Service-Assisted Communication)模式,调节设备与解决方案后端之间的交互。服务辅助通信的目标是在控制系统(例如 IoT Hub)与

专用设备(部署在不受信任的物理空间中)之间,建立可信任的双向通信路径(全双工通信)。 这种模式会遵循下列原则:

1. 安全性优先级最高,高于其他功能

2. 设备不接受未经请求的网络信息。 设备以仅限出站的方式建立所有连接和路由。 若要让设备从解决方案后端接收命令,设备必须定期启动连接,以检查是否有任何挂起的命令要

处理。

3. 设备只能同与它们对等的已知服务(例如 IoT Hub)进行连接或建立路由

4. 设备和服务之间或设备和网关之间的通信路径在应用程序协议层受到保护

5. 系统级别的授权和身份验证以每个设备的标识为基础。 它们可让访问凭据和权限近乎实时地撤销。

6. 对于因为电源或连接性而导致连接不稳定的设备而言,可通过保留命令和设备通知直到设备连接并接收它们,进而促进其双向通信。 IoT 中心为发送的命令维护特定于设备的队

7. 针对通过网关到特定服务的受保护传输,应用程序有效负载数据会受到单独保护

这里的服务辅助通信模式,业界已大规模地使用服务辅助通信模式实现推送通知服务,例如 Windows 推送通知服务、Google Cloud Messaging 和 Apple Push Notification 服

务等,其实就是设备和云端的全双工通信。

上面介绍了Azure IoT Hub的架构、特性、使用场景、通信协议等等,作为一个简单的入门介绍吧,让大家可以快速了解并入门。

周国庆

2017/4/14

Azure IoT 技术研究系列1的更多相关文章

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

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

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

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

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

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

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

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

  5. Azure IoT 技术研究系列2-设备注册到Azure IoT Hub

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

  6. Azure IoT 技术研究系列2

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

  7. Azure IoT 技术研究系列3

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

  8. Azure IoT 技术研究系列4

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

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

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

随机推荐

  1. 五大好用的开源MySQL管理工具推荐

    众所周知,对于数据库管理工作者(DBA)来说,保持数据正常运行在最佳状态需要具备敏捷.专注.冷静和快速的反应能力.因为数据库几乎是所有应用程序成功运行的核心,由于DBA负责组织数据,因此寻找可靠的工具 ...

  2. 新年春节EDM邮件内容设计案例分享

    春节自古以来都是中国最重要的节日.随着中国的发展,中国的春节在世界上都已受到越来越多人的关注,有许多国家和地区都将春节定为法定假日.与此同时,许多品牌营销商也选择在这个时候为中国客户发送马年新年邮件, ...

  3. node_modules .bin文件夹下的文件

    node_modues/.bin文件夹下,对于一个npm包,有两个可执行文件,没有后缀名的是是对应unix系的shell脚本,.cmd文件对应的是windows bat脚本,内容都是用node执行一个 ...

  4. 阶段3 1.Mybatis_12.Mybatis注解开发_7 Mybatis注解开发一对多的查询配置

    一对多的配置,一个用户对应多个账户 需要在Accout里面增加根据用户的uid查询的方法 在user里面指定子一对多的查询配置 换行显示 测试 把这里注销掉.测试延迟加载,代码注释掉后,延迟加载就没有 ...

  5. 函数传参和firture传参数request

    前言 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数.比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行.但 ...

  6. win10 iis部署后 浏览目录报错 500.19

    错误摘要HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效.详细错误信息模块 IIS Web Core  通知 BeginReq ...

  7. cocos2dx基础篇(10) 按钮控件CCControlButton

    [3.x] (1)去掉 “CC” (2)对象类 CCObject 改为 Ref (3)按钮事件回调依旧为 cccontrol_selector ,没有使用 CC_CALLBACK_2 (4)按钮状态  ...

  8. 操作系统(1)——X86-32硬件介绍、实验环境相关配置、uCore部分技巧介绍

    实验环境 本文假设已经创建虚拟机并配置好Ubuntu 16.04(网上太多教程了,所以这里就不赘述了). X86-32硬件介绍 x86指的是80386这种机器(一种32位CPU,在早期得到了广泛的应用 ...

  9. python 使用 with open() as 读写文件

    读文件: 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: >>> f = open('E:\python\python\test.tx ...

  10. 关于BeautifulSoup4 解析器的说明

    一.解析器概述 如同前几章笔记,当我们输入: soup=BeautifulSoup(response.body) 对网页进行析取时,并未规定解析器,此时使用的是python内部默认的解析器“html. ...