MQTT 和 DDS:物联网中的机器对机器通信
物联网 (IoT) 最近受到了很多关注。其中一些背后的推动力是最近宣布了一项 OASIS 计划,该计划将 IBM MQTT 协议标准化为“事物”通信的一种手段。这篇纽约时报博客文章提供了一些关于 MQTT 和公告的背景。
如果 MQTT 给您一种似曾相识的感觉,那么您可能熟悉对象管理组 (OMG) 实时系统数据分发服务 (DDS) 标准。与 MQTT 一样,DDS 专为解决机器对机器 (M2M) 通信而设计,这是物联网的基础。
DDS 与 MQTT
然而,虽然他们可能有共同的愿望,但 MQTT 和 DDS 是截然不同的标准。每个都围绕有关 IoT 将如何组成的不同假设进行了优化:
- MQTT 针对集中式数据收集和分析进行了优化 - 将传感器和移动设备连接到在数据中心运行的应用。
- DDS 针对分布式处理进行了优化 - 将传感器、设备和应用程序直接相互连接,而不依赖于集中式 IT 基础设施。
MQTT 和 DDS 的区别体现在底层架构上。
MQTT 架构
MQTT 是轴辐式的。传感器、设备和应用程序通过在数据中心的服务器(或设备)上运行的消息代理进行通信。所有通信路由都通过这个集中代理。
DDS 架构
DDS 是去中心化的。产生数据的事物直接与使用该数据的应用程序和事物通信。换句话说,点对点。数据仅在数据中心需要时才流向数据中心。
MQTT和DDS由于架构不同,适用于不同类型的应用。
MQTT 应用程序
MQTT 支持经典 M2M 应用程序,其中客户端机器与服务器机器一对一对话。一个例子是远程资产监控,例如监控油井和管道的传感器。
DDS 应用程序
DDS 最好 当并非所有数据处理都集中时。例如,考虑一个病人监护系统。床边、护士站、电子健康记录甚至医生的移动设备都需要传感器数据(例如生命统计数据)。通过数据中心路由传感器数据以将其发送到位于同一位置的床边监视器的效率非常低。由于总带宽要求,它甚至可能在技术上站不住脚。
哪种物联网通信协议最好?
因此,虽然 MQTT 和 DDS 都为物联网提供了标准的通信基础,但它们的架构却适用于截然不同的部署拓扑。在分布式数据流时选择集中式解决方案可能会对应用程序的可扩展性和效率产生深远影响。
物联网技术