Fotolia

评估 权衡你正在考虑的技术、产品和项目的利弊。

XMPP:物联网协议的赢家,还是仅次于MQTT的第二名?

从最初的Jabber开始,XMPP已经走了很长一段路,但是轻量级的XMPP- iot规范准备好迎接聚光灯了吗?

最初是由Jabber开源社区于1999年开发的,最初称为Jabber可扩展消息传递和到场协议XMPP作为一种通信协议得到了广泛的应用。基于可扩展标记语言, XMPP支持网络上多个实体之间快速、接近实时的数据交换。除了提供到场和消息传递功能,它还被用于VoIP、游戏和最近的物联网应用。

XMPP已经走过了一段很长的路Jabber根指出,Eric Hanselman451 Research的首席分析师,尤其是现在已经有了轻量级版本,例如XMPP-IoT。Hanselman说:“物联网的很多重点现在都放在了获取计算资源相对有限的端点可以使用的东西上。”

“因为XMPP已经存在和使用了很长一段时间,它有一个相当丰富的支持环境,”Hanselman说。特别是,它已经拥有了大量的代码库和sdk,并且被广泛地用作“在系统之间推送数据块的良好、通用的方式”。

另一方面,他指出,XMPP所基于的XML根是潜在的缺陷。批评人士断言,对于许多类型的数据交换来说,它是低效的,这鼓励了其他技术的发展,例如JavaScript对象符号(JSON)。不过,您可以使用XMPP来移动任何类型的数据,Hanselman指出。“有些人觉得XMPP有点复杂,但XMPP- iot做的一件事是让你卸下一些协议管理部分,并委派信任,”他补充说。

xmpp物联网的优缺点

汉塞尔曼表示,物联网的总体挑战在于选择太多。目前仍在进行的辩论大多围绕着“为目的而健身”的问题。使用XMPP有一整套方法可以实现它;问题在于你需要在多大程度上依靠自己,Hanselman补充道。

Eric HanselmanEric Hanselman

“我们在我们的部署中支持XMPP协议,我们已经采用了XMPP物联网规范,这是一个开放社区支持的标准,”他说Sushant希夫他是西雅图IoTfy的首席技术官物联网平台对硬件制造商。希夫看到互操作性是最大的问题之一在物联网。“XMPP联盟是一个很好的解决方案,”他说。

Sushant希夫Sushant希夫

在他看来,XMPP-IoT规范编写得很好,易于实现。XMPP已经是IM协议的底层谷歌视频群聊,WhatsApp信使以及其他与聊天相关的应用程序。由于每个使用XMPP的设备都有一个唯一的Jabber ID, Taneja称它为“经过验证的、易于设置和易于扩展的协议”。JID看起来很像电子邮件地址,但是域部分绑定到客户机使用的XMPP服务器上。由于它的根源是“聊天应用程序”,XMPP还实现了一个“好友列表”,在物联网应用程序中,这有助于实现接入设备的访问控制。Taneja说:“我们使用它的情况是,连接设备需要与我们的服务器进行双向通信,以及两个远程连接设备需要通过可靠和安全的协议彼此通信。”

物联网协议比较:XMPP与MQTT

除了XMPP之外,Taneja还评估了用于机器对机器和设备对服务器通信的MQTT。两种协议都有各自的优点和缺点;Taneja解释了两者之间的六个比较点:

  1. MQTT是一种轻量级的发布/订阅协议,这使它成为在内存受限的设备上实现M2M时的一个明确选择。
  2. MQTT没有定义消息格式;使用XMPP,您可以定义消息格式和get结构化数据从设备。定义的结构有助于验证消息,并使其更容易处理和理解来自这些连接设备的数据。
  3. XMPP创建一个设备标识,也称为Jabber ID。在MQTT中,在代理实现中分别创建和管理身份。
  4. XMPP支持联合,这意味着连接到不同平台的不同制造商的设备可以通过标准通信协议彼此通信。
  5. MQTT具有不同级别的服务质量。这种灵活性在XMPP中不可用。
  6. 随着设备数量的增加,MQTT部署变得难以管理,而XMPP则非常容易扩展。

“对我们来说,XMPP已经被证明是有用的,在我们有结构化数据和与我们服务器通信的设备没有内存限制的情况下;它们通常是像Amazon Echo这样的集线器/控制器设备。”

有些人觉得XMPP有点复杂,但是XMPP- iot做的一件事是让你卸下一些协议管理部分,并委托信任。
Eric Hanselman451 Research的首席分析师

“当涉及到M2M通信Taneja说,他还补充说,正在努力使MQTT像XMPP一样更高效、更容易采用。然而,他说,“我们相信XMPP的成功在于解决互操作性问题。”

兰开斯特艺术他说,他的公司的云服务大量使用XMPP来支持安全的远程物联网接入服务。该协议是一个广泛使用的真正的标准协议,具有许多官方扩展,包括支持物联网应用,”他说。“AllSeen Alliance使用XMPP扩展AllJoyn,我们不需要使用XMPP扩展。我们正在使用XMPP标准中定义的标准消息‘节’,”他说,并补充说这些节安全地封装了通常只在本地网络中工作的所有joyn物联网协议消息。

对XMPP不那么热心将韦恩他是总部位于达拉斯的咨询和服务提供商CompuCom物联网解决方案集团的高级副总裁。他认为XMPP的聊天应用历史是其核心功能。“它可以在物联网领域发挥作用,但还有比XMPP更好的技术,”他说。他说:“虽然你可以使用MQTT来构建聊天应用程序,但它确实更适合在物联网方面使用,用于机器对机器的消息传递。”“[XMPP]将是物联网的松散部分,但不是我们像MQTT或oBIX那样日复一日使用的工具,也不是更工业和建筑自动化协议。”

“通信是物联网战略的一部分,但你需要能够通过其他连接端点设备的工业协议”。温说。

Pragnesh GoyaniPragnesh Goyani

对于将XMPP应用于物联网任务也持怀疑态度的是Pragnesh Goyani位于10博官网佛罗里达州庞帕诺海滩的Sato Global Solutions的物联网网关主管。,though he admitted that verdict could vary depending on the specific use case. "I have used XMPP for a very successful messaging application with around 10 million users. The advantages of XMPP for that is its extensibility, flexibility and built-in messaging support," he said.

考虑使用XMPP吗?物联网协议的建议

如果你正在考虑XMPP, Hanselman建议看看你的数据类型和你正在使用什么,你正在尝试进入设备之间的通信流,以及在后端有什么支持。在他看来,XMPP有“许多好的插件”,可以适应多种用途。

他说:“考虑一下您是否正在寻找类似JSON所提供的语义交换,这可能会推动您朝这个方向发展。”对于物联网,你需要考虑整个系统,也许考虑a框架,如AllJoyn或者类似的选择。他补充说:“这是一个你在多大程度上想要根据你想要交换的信息和你想要做的工作量来调整这些协议的问题。”

Goyani说:“在我处理过的大多数物联网场景中,MQTT的发布-sub特性使其非常有利。”通常情况下,设备使用电池运行,或者没有强大的处理能力,必须在一个受限制的环境中24小时运行。他说,在这种情况下,“MQTT及其轻量级的特性在我看来胜过任何东西。”

另一方面,“当建立一个有结构化数据而没有设备的双向通信通道时内存约束,使用XMPP,”Taneja建议。

下一个步骤

了解更多物联网协议,并深入到MQTT协议CoAP协议

深入挖掘物联网(IoT)标准和认证

搜索首席信息官

搜索安全

搜索网络

搜索数据中心

搜索数据管理

关闭