The Message Queuing Telemetry Transport (MQTT) was introduced in 1999 by IBM and is a proposed OASIS standard. MQTT is a simple and lightweight messaging protocol for M2M communications that enables the transfer of telemetry-style data in the form of messages from pervasive devices, along high latency or constrained networks, to a server or small message broker.
MQTT is a wire protocol focused on the interoperable exchange of messages and was designed to be open, simple, lightweight and easy to implement. These characteristics make it ideal for use in constrained environments e.g. where the network is expensive, has low bandwidth, is unreliable or when run on an embedded device with limited processor or memory resources.
MQTT is a messaging transport that is agnostic to the content of the payload. It does not specify the layout or how data is represented in a message. Although publishers and subscribers can exchange messages, applications must agree on serialization schemes otherwise the messages cannot be understood. In large scale distributed systems this can be difficult and costly to implement.
MQTT provides a simple and lightweight device data collection solution, although only partial interoperability between MQTT publishers and subscribers can be guaranteed. Messages can be exchanged between different MQTT implementations but unless the format of the message body is agreed between peers, the message cannot be un-marshalled.
The Object Management Group's (OMG) Data Distribution Service for Real-Time Systems (DDS) is an open middleware standard that enables scalable, real-time, dependable, high performance and interoperable data exchanges between publishers and subscribers. It is based on a proven data-centric paradigm that emerged from Defense and Aerospace but which is now being rapidly adopted in sectors as diverse as Power Generation, large scale SCADA, Air Traffic Control and Management, Smart Cities, Smart Grids, Vehicles, Medical Devices, Modeling and Simulation, and Financial Trading.
DDS makes data a first class citizen in the system thanks to its extensive support for keys, lifecycle management etc. DDS is brokerless and provides the abstraction of a virtual Global Data Space, a ubiquitous, universal and fully distributed data cache. DDS also provides a standard API as well as an interoperable wire protocol.
A key component of PrismTech's Vortex product suite is Vortex OpenSplice, the leading (open source and commercial) implementation of the DDS standard.
DDS and MQTT share some common principles, such as parsimony and efficiency, temporal decoupling and anonymity, yet each technology has some unique features that make it most applicable for certain use cases.
For instance, MQTT is most suitable for sporadic messages and highly resource constrained devices whilst DDS is most suitable for those applications that require real-time data exchange – meaning applications in which data has an inherent temporal validity and in which stale data should never delay fresh data – and tight control over the Quality of Service. In addition DDS supports peer-to-peer (infrastructure-less) communication, a feature that comes in handy for device-to-device communications.
In summary, DDS and MQTT are two very good technologies for data sharing. The choice of the most appropriate solution should be based on an understanding of both the architecture and the message / data sharing requirements for each target system. DDS provides support for both Device-to-Cloud (Device-to-Data Center) communication as well as Device-to-Device. MQTT provides very good support for Device-to-Data Center communication.