我想根据这两种协议的一般特征(例如开销(数据包)、安全性、信息建模和可靠性)来比较 OPC UA 和 MQTT。我在哪里可以找到每个协议的开销和其他特性的一些示例数据,以便我比较它们。我需要你的建议。您可以建议任何工具来比较这些协议。
3 回答
MQTT 是基于代理的消息传递协议,其中有效负载编码和内容完全是特定于应用程序的。因此,如果您想在您开发的两个应用程序之间发送消息,这将很有用。
OPC UA 是一种架构(OPC 统一架构),其中通信协议只是所讨论主题的一部分。OPC UA 应用程序能够以面向对象的方式公开对象、变量、方法和数据结构的全网状网络。今天的通信基于客户端/服务器模型,其中服务器公开一组标准服务以浏览可用对象、读取和写入数据、调用方法或订阅数据更改或事件。
主要目标是通过定义有关如何使信息可用的元元模型、定义用于访问信息的标准服务以及为服务调用定义不同的传输协议和数据编码来提供来自不同供应商的应用程序之间的互操作性。协议包括提供端到端安全性的优化 OPC UA 二进制协议,以及基于 Web 服务或 HTTPS 的协议。
OPC UA 工作目前正在研究第二个基于发布订阅的通信模型,该模型允许 OPC UA 应用程序之间的消息传递。除了基于 UDP 的点对点协议外,此 PubSub 扩展还将使用基于代理的消息传递协议,如 AMQP 和 MQTT。
因此,作为独立协议的 MQTT 和 MQTT 等一整套特性的 OPC UA 很难进行比较。
其他回复已经包括对 MQTT 材料的引用。
以下是 OPC UA 材料的一些链接:
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
我还没有看到 OPC UA 与 MQTT 的比较。请记住,OPC-UA 最适合 SCADA 系统,MQTT 非常适合通过移动网络等不可靠网络发布/订阅消息。
如果低开销是您的关键,MQTT 可能比 OPC-UA 更适合。这当然在很大程度上取决于您的用例。
如果您对 MQTT 开销感兴趣,您可能会发现此链接很有用:http: //stephendnicholas.com/archives/1217
如果您对 MQTT 和安全性感兴趣,此系列博文可能对您有所帮助:http ://www.hivemq.com/introducing-the-mqtt-security-fundamentals/
如果您开始使用 MQTT,那么这个深入的博客文章系列可能对您很有价值: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 有效负载的语法来解决此限制。