OPC UA protocol vs MQTT protocol

2020-05-19 02:24发布

问题:

I would like to compare OPC UA vs MQTT on basis of the general characteristics of both the protocols such as Overhead (Packets), Security, Information modeling and Reliability. Where can I find some sample data for Overhead, and other characteristics, for each protocol so that I compare them. I need your suggestions. You can suggest any tool to compare these protocols.

回答1:

I have not seen a OPC UA vs MQTT comparison yet. Bear in mind, that OPC-UA shines most for SCADA systems, MQTT is very good for Publish/Subscribe messaging over unreliable networks like mobile networks.

If low overhead is key for you, MQTT may be a much better fit than OPC-UA. This of course heavily depends on your use case.

You may find this link useful if you're interested in the MQTT overhead: http://stephendnicholas.com/archives/1217

If you're interested in MQTT and security, this blog post series may be helpful to you: http://www.hivemq.com/introducing-the-mqtt-security-fundamentals/

If you're getting started with MQTT, this in-depth blog post series may be valuable for you: http://www.hivemq.com/mqtt-essentials-wrap-up/



回答2:

MQTT is a broker based messaging protocol where the payload encoding and content is completely application specific. Therefore it would be useful if you want to send messages between two applications developed by you.

OPC UA is an architecture (OPC Unified Architecture) where a communication protocol is only a part of the topics addressed. An OPC UA application is able to expose a full meshed network of Objects, Variables, Methods and data structures in an object oriented way. The communication today is based on a client/server model where the server exposes a set of standard services to navigate through the available object, read and write data, call methods or subscribe for data changes or events.

The main goal is to provide interoperability between applications from different vendors by defining the meta meta model on how to make information available, by defining standard services for access to the information and by defining different transport protocols and data encodings for the service invocation. Protocols include an optimized OPC UA binary protocol providing end to end security but also web services or HTTPS based protocols.

The OPC UA working is currently working on a second Publish Subscribe based communication model that allows a messaging between OPC UA applications. Besides a UDP based peer-to-peer protocol, this PubSub extension will also use broker based messaging protocols like AMQP and MQTT.

Therefore it is difficult to compare OPC UA which is a complete set of features including protocols like MQTT and MQTT as stand-alone protocol.

Other responses already include references to MQTT material.

Here are some links to OPC UA material:

Brochure with some high level introduction to OPC UA: https://opcfoundation.org/resources/brochures/

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

Free evaluation and test tools:

Test / demo client: https://www.unified-automation.com/downloads/opc-ua-clients.html

Test / demo servers: https://www.unified-automation.com/downloads/opc-ua-servers.html

Development tools for different programming languages: https://www.unified-automation.com/downloads/opc-ua-development.html



回答3:

OPC UA and MQTT are orthogonal because they try to solve different problems.

The OPC UA WG is currently developing a PubSub extension OPC UA that specifies how OPC UA payloads can be sent over MQTT, AMQP or XMPP.

One of the biggest problems with MQTT is the format of the payload is left to the application which means you have no real inter-operability between applications that have not been specifically coded to work with each other. The OPC UA PubSub extension addresses this limitation by defining a syntax for OPC UA payloads.