Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OPC UA protocol vs MQTT protocol

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.

like image 623
Azaksai Avatar asked Apr 27 '15 13:04

Azaksai


People also ask

What is the difference between OPC UA and MQTT?

This means encryption is established between the OPC UA publisher and OPC UA subscriber so data remains encrypted regardless of how many hops there are between the publisher and subscriber. This is in contrast to MQTT-only security which relies on each broker along the route not being compromised.

What is MQTT and OPC?

While there's plenty of options to choose from, two of the most dominant ones are OPC UA (Open Platform Communications Unified Architecture) and MQTT (Message Queuing Telemetry Transport).

What protocol does OPC UA use?

OPC UA has become completely platform-independent through TCP/IP and web protocols for communication. An OPC server, which makes its data available in the network, can be addressed via these protocols.

Is OPC UA an IoT protocol?

To get your IoT project up and running, you need to access and communicate with data from all the different devices, sensors and machines in your IoT. And you need a standard form of communication across them all. That's where the OPC UA protocol comes in.


2 Answers

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.

like image 118
Randy Armstrong Avatar answered Oct 03 '22 02:10

Randy Armstrong


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

like image 27
Matthias Damm Avatar answered Oct 03 '22 01:10

Matthias Damm