DDS/AMQP/XMPP - 物联网通信协议的详解及选择建议,dds协议

DDS协议(高可靠性、实时)

DDS(Data Distribution Service for Real-Time Systems),面向实时系统的数据分布服务,这是大名鼎鼎的OMG组织提出的协议,其权威性应该能证明该协议的未来应用前景。

适用范围:分布式高可靠性、实时传输设备数据通信。目前DDS已经广泛应用于国防、民航、工业控制等领域。

特点:

· 以数据为中心

· 使用无代理的发布/订阅消息模式,点对点、点对多、多对多

· 提供多大21种QoS服务质量策略

协议主要实现:

· OpenDDS 是一个开源的 C++ 实现

· OpenSplice DDS

点评:DDS很好地支持设备之间的数据分发和设备控制,设备和云端的数据传输,同时DDS的数据分发的实时效率非常高,能做到秒级内同时分发百万条消息到众多设备。DDS在服务质量(QoS)上提供非常多的保障途径,这也是它适用于国防军事、工业控制这些高可靠性、可安全性应用领域的原因。但这些应用都工作在有线网络下,在无线网络,特别是资源受限的情况下,没有见到过实施案例。

AMQP协议(互操作性)

· AMQP(Advanced Message Queuing Protocol),先进消息队列协议,这是OASIS组织提出的,该组织曾提出OSLC(Open Source Lifecyle)标准,用于业务系统例如PLM,ERP,MES等进行数据交换。

适用范围:最早应用于金融系统之间的交易消息传递,在物联网应用中,主要适用于移动手持设备与后台数据中心的通信和分析。

特点:

· Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流

· 面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全

协议实现:

· Erlang中的实现有 RabbitMQ

· AMQP的开源实现,用C语言编写OpenAMQ

· Apache Qpid

· stormMQ

XMPP协议(即时通信)

XMPP(Extensible Messaging and Presence Protocol)可扩展通讯和表示协议,XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。

适用范围:即时通信的应用程序,还能用在网络管理、内容供稿、协同工具、档案共享、游戏、远端系统监控等。

特点:

· 客户机/服务器通信模式

· 分布式网络

· 简单的客户端,将大多数工作放在服务器端进行

· 标准通用标记语言的子集XML的数据格式

点评:XMPP是基于XML的协议,由于其开放性和易用性,在互联网及时通讯应用中运用广泛。相对HTTP,XMPP在通讯的业务流程上是更适合物联网系统的,开发者不用花太多心思去解决设备通讯时的业务通讯流程,相对开发成本会更低。但是HTTP协议中的安全性以及计算资源消耗的硬伤并没有得到本质的解决。

相关推荐

相关文章