OPC UA 协议与 MQTT 协议

OPC UA protocol vs MQTT protocol

我想根据 OPC UA 和 MQTT 这两种协议的一般特征(例如开销(数据包)、安全性、信息建模和可靠性)进行比较。我在哪里可以找到每个协议的开销和其他特征的一些样本数据,以便我比较它们。我需要你的建议。您可以推荐任何工具来比较这些协议。

我还没有看到 OPC UA 与 MQTT 的比较。请记住,OPC-UA 最适合 SCADA 系统,MQTT 非常适合 Publish/Subscribe 通过移动网络等不可靠网络进行消息传递。

如果低开销对您来说很重要,MQTT 可能比 OPC-UA 更适合。这当然在很大程度上取决于您的用例。

如果您对 MQTT 开销感兴趣,您可能会发现此 link 很有用:http://stephendnicholas.com/archives/1217

如果您对 MQTT 和安全感兴趣,此博客 post 系列可能对您有所帮助:http://www.hivemq.com/introducing-the-mqtt-security-fundamentals/

如果您刚开始使用 MQTT,这个深入的博客 post 系列可能对您有价值:http://www.hivemq.com/mqtt-essentials-wrap-up/

OPC UA 和 MQTT 是正交的,因为它们试图解决不同的问题。

OPC UA WG 目前正在开发一个 PubSub 扩展 OPC UA,它指定了如何通过 MQTT、AMQP 或 XMPP 发送 OPC UA 有效负载。

MQTT 的最大问题之一是负载的格式留给了应用程序,这意味着您在没有专门编码以相互协作的应用程序之间没有真正的互操作性。 OPC UA PubSub 扩展通过为 OPC UA 有效负载定义语法来解决此限制。

MQTT 是一种基于代理的消息传递协议,其中有效负载编码和内容完全是特定于应用程序的。因此,如果您想在您开发的两个应用程序之间发送消息,这将很有用。

OPC UA 是一种架构(OPC 统一架构),其中通信协议只是所讨论主题的一部分。 OPC UA 应用程序能够以面向对象的方式公开对象、变量、方法和数据结构的全网状网络。今天的通信基于 client/server 模型,其中服务器公开一组标准服务以浏览可用对象、读取和写入数据、调用方法或订阅数据更改或事件。

主要目标是通过定义有关如何使信息可用的元元模型、定义访问信息的标准服务以及定义不同的传输协议和数据编码来提供来自不同供应商的应用程序之间的互操作性。服务调用。协议包括提供端到端安全性的优化 OPC UA 二进制协议,以及基于 Web 服务或 HTTPS 的协议。

OPC UA 工作目前正在开发第二个基于发布订阅的通信模型,该模型允许在 OPC UA 应用程序之间进行消息传递。除了基于 UDP 的点对点协议外,此 PubSub 扩展还将使用基于代理的消息传递协议,如 AMQP 和 MQTT。

因此很难比较 OPC UA,它是一套完整的功能,包括 MQTT 等协议和 MQTT 作为独立协议。

其他回复已包含对 MQTT 的引用 material。

这里有一些指向 OPC UA 的链接 material:

包含对 OPC UA 的一些高级介绍的小册子: https://opcfoundation.org/resources/brochures/

OPC UA 规范: https://opcfoundation.org/developer-tools/specifications-unified-architecture

免费评估和测试工具:

测试/演示客户端: https://www.unified-automation.com/downloads/opc-ua-clients.html

测试/演示服务器: https://www.unified-automation.com/downloads/opc-ua-servers.html

不同编程语言的开发工具: https://www.unified-automation.com/downloads/opc-ua-development.html