我想根据两种协议的一般特征比较OPC UA和MQTT,例如Overhead(数据包),安全性,信息建模和可靠性。我在哪里可以找到每个协议的Overhead和其他特征的一些示例数据,以便我对它们进行比较。我需要你的建议。您可以建议任何工具来比较这些协议。
答案 0 :(得分:15)
MQTT是基于代理的消息传递协议,其中有效负载编码和内容完全是特定于应用程序的。因此,如果您想在由您开发的两个应用程序之间发送消息,那将非常有用。
OPC UA是一种架构(OPC统一架构),其中通信协议只是所讨论主题的一部分。 OPC UA应用程序能够以面向对象的方式公开对象,变量,方法和数据结构的全网状网络。今天的通信基于客户端/服务器模型,其中服务器公开一组标准服务以浏览可用对象,读取和写入数据,调用方法或订阅数据更改或事件。
主要目标是通过定义关于如何提供信息的元元模型,通过定义用于访问信息的标准服务以及通过定义服务调用的不同传输协议和数据编码来提供来自不同供应商的应用程序之间的互操作性。协议包括优化的OPC UA二进制协议,提供端到端安全性以及Web服务或基于HTTPS的协议。
OPC UA工作目前正在开发第二种基于发布订阅的通信模型,该模型允许在OPC UA应用程序之间进行消息传递。除了基于UDP的对等协议之外,此PubSub扩展还将使用基于代理的消息传递协议,如AMQP和MQTT。
因此很难将OPC UA(包括MQTT和MQTT等协议)作为独立协议进行比较。
其他回复已包含对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
答案 1 :(得分:6)
我还没有看到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/
答案 2 :(得分:0)
对于MQTT,我将从这里开始:http://mqtt.org/
从那里你应该找到规范的链接,它可以帮助你获得你想要的大部分内容。
答案 3 :(得分:0)
OPC UA和MQTT是正交的,因为它们试图解决不同的问题。
OPC UA WG目前正在开发PubSub扩展OPC UA,它指定如何通过MQTT,AMQP或XMPP发送OPC UA有效载荷。
MQTT的一个最大问题是有效负载的格式留给了应用程序,这意味着在没有专门编码的应用程序之间没有真正的互操作性。 OPC UA PubSub扩展通过定义OPC UA有效负载的语法来解决此限制。