Skip to main content

什么是Azure IoT Hub

分类:  Azure物联网 标签:  #IoT Hub # #Azure入门 发布于: 2023-08-13 17:50:39

物联网中大家经常说的一句话是:万物互联, 这句话总结和概括的非常好,从字面意思上就可以理解物联网的本质。但是当我们从技术实现上来理解这句话的时候有很多需要考虑的地方, 例如:

  • 万物的范畴主要有哪些?
  • 如何创建一个标准使得符合范畴的事物可以联入网络?
  • 符合范畴的事物联入网络之后需要使用什么标准互相通讯?
  • 是否可以对联入网络的事物进行控制,监控,操作?

这些问题都是技术需要考虑和解决的问题。

针对这些问题,物联网首先规划了联入的范畴:各种可以使用MQTT或者AMQP协议进行通讯的设备,这几乎是可以囊括大多数的设备,只要设备能通过特定的技术使用协议进行通讯即可。

另外一个问题,我们在万维网(www)的设计开发过程中,我们有一个很重要的角色: Web服务器Web服务器作为所有万维网接入的一个中心点,当前所有的基于万维网的应用都必须围绕Web服务器进行。回到物联网设计上,我们同样也需要一个类似Web服务器的角色,这个角色应该要能够承担设备的接入,消息的传递以及交换。目前物联网的设计中还没有明确提出像Web服务器这样的概念,在现有的解决方案里大家不约而同的使用已有的一些软件来充当类似的角色,例如使用Rabbit MQ(一款用于消息交换的软件)作为物联网的中心服务器。未来是否会有明确的概念和软件产品作为一个标准来实现物联网中类似Web服务器的角色,这个谁也说不清,但是如果真的有这样一个标准,那么这个标准应该会包含:

  • 规定使用特定的协议接入设备
  • 对设备的元数据进行存储和处理。
  • 实际设备的接入和管理
  • 存储和交换大量的消息,并规定通讯消息的格式。

我们前面有提到一些物联网的解决方案中有使用类似Rabbit MQ这样现成的软件来集成类似的方案,但是这样的方案起初并不是为物联网设计的,目前看起来还不能标准化。

是时候引入由微软提供的物联网服务Azure IoT Hub了。
没有文档明确的说明Azure IoT Hub是为了创建一个标准的物联网服务器,也没有任何的迹象表明微软是在制定一个物联网的服务器设计标准,但是至少Azure IoT Hub的确是符合了物联网开发的很多需求:

  • 提供多协议的支持, 这包括:MQTTAMQP, 以及HTTPS, 甚至为了不同的环境还提供一些协议的变体:MQTT on WebSocket以及AMQT on WebSocket
  • 提供设备的元数据保存和管理。
  • 使用多种方式对接入的设备进行认证,管理。
  • 统一了设备间,设备和云之间的消息交互格式。
  • 对物联网中交互的形式做了统一的规定。
  • 提供了很多工具,SDK方便用户进行物联网应用的开发。
  • 对物联网的安全做了很多的尝试,提供相应的工具和理论支持。

我们可以根据官方的文档来列一列这个服务目前提供的一些基本概念,当然这些概念我们后面的文章会一一介绍:

  • 物联网设备的接入管理以及认证。
  • 物联网设备间的通讯。
  • 物联网设备的遥测。
  • 支持在物联网设备上的多个操作。
  • 集成用于通讯的终结点。
  • 物联网设备以及云之间的消息处理方法。

具体到实际的技术概念上:

  • 使用Device Twin或者module twin保存设备或者模块的元数据。
  • 使用Device to Cloud MessageReported Property以及File Upload,让设备可以和云进行主动通讯。
  • 使用Direct methodTwin's Desired PropertiesSchedule Jobs以及Cloud-to-device Message,使得云以及云应用可以主动和设备交互。
  • 使用Message RoutingMessage Enrichments对物联网中的消息进行分类处理。
  • 使用SAS KeyX509证书等安全手段对设备进行接入认证。
  • 使用Azure Device Provisioning Service扩展功能大规模的自动注册设备。

等等,以上都是由Azure IoT Hub提供的功能。

总结一下:Azure IoT Hub是由微软提供的基于云平台的物联网服务,并围绕这个基本的服务,利用扩展功能和工具支持大数据量的,高可用的物联网解决方案。

我们接下来一步一步的学习如何使用Azure IoT Hub来创建自己的物联网解决方案。