MQTT and Sparkplug: Delivering Plug-and-Play Interoperability for IIoT | SPONSORED
The manufacturing industry is rapidly changing as leading companies invest in new technologies to modernize their manufacturing infrastructures, improve overall efficiencies, and develop more flexible manufacturing processes. The introduction of IIoT technologies, combined with machine learning, artificial intelligence, and cloud computing, create significant opportunities for all manufacturing companies.
A key protocol in the success of IIoT applications has been the MQTT protocol, which has become one of the de-facto standards for connecting IoT devices. Its simple, lightweight publish/subscribe model of communication and its efficient bi-directional connectivity between clients and brokers has empowered several companies across a spectrum of verticals to innovate and provide services that were unimaginable a decade ago. However, MQTT alone cannot bring plug-and-play interoperability for IIoT, which is one pressing need for Industry 4.0.
Filling the Gaps of Data Interoperability with MQTT Sparkplug
Many existing infrastructures in the manufacturing industry are costly to maintain. They create barriers to the sharing of data and make the convergence of Operational Technology (OT) and Information Technology (IT) very challenging.
A successful digitization project in manufacturing needs to include experts from both OT and IT. Often, these two groups have different perspectives and priorities when it comes to introducing new technologies. The primary concerns of OT staff are usually the continuous operation of the factory and the security of the equipment. On the other hand, the IT staff may be interested in the use of new cloud technologies and agile development methodologies to respond as quickly as possible to customer requirements.
To add to the challenges of OT/IT convergence, many existing systems have infrastructure from a wide variety of vendors featuring their own proprietary data format that locks the data into the vendor’s software solutions. This creates data silos blocking the manufacturing companies to leverage the advantages of digitization initiatives.
The MQTT protocol, which is designed for reliable communication over unreliable networks, integrates easily into the existing IT infrastructure. However, MQTT does not have all the features essential to address the data interoperability in the manufacturing industry’s, such as consistent payload definitions and unified messaging behavior across machines and vendors. The Sparkplug specification fills in these gaps.
Here’s how: The Sparkplug specification is designed to allow for plug-and-play data interoperability between different vendor solutions. It breaks down the data silos and provides a single source of truth that enables new IIoT applications.
Overview of Sparkplug
Sparkplug is an open-source specification that provides MQTT clients the framework to seamlessly integrate data from their applications, sensors, devices, and gateways within the MQTT infrastructure in a bi-directional and interoperable way.
The Sparkplug specification adds to MQTT with the following:
- A consistent topic namespace that allows different devices and applications to communicate.
- A consistent payload format to define the data format that is shared between the devices and the applications.
- A lifecycle that specifies how devices can join and leave a system.
When you adopt Sparkplug specification, you bring in a common language to establish communication between MQTT supporting devices, non-MQTT devices that support protocols like OPC-UA or Modbus, and the software. This brings plug-and-play interoperability to IIoT.
Essentially, Sparkplug allows for IIoT deployments to decouple the data between the hardware and software data sources. New data sources can become immediately discoverable to other system components and these data sources can become a single source of truth.
The diagram below provides an overview of what a Sparkplug architecture looks like:
Here are some of the key features of the MQTT Sparkplug specification:
- Uses Pub / Sub
- Supports Report by Exception
- Provides Continuous Session Awareness
- Provides Death and Birth Certificates
- Takes care of persistent connections
- No Data Lost
- Enables auto discovery
- Provides a standardized payload definition
- Provides a standardized Topic Namespace
Read the detailed blog series from HiveMQ to learn the nitty-gritty of the MQTT Sparkplug specification.
About the Author
Dominik Obermaier is CTO and co-founder at HiveMQ. He is a member of the OASIS Technical Committee and is part of the standardization committee for MQTT 3.1.1 and MQTT 5. He is also the co-author of the book “The Technical Foundations of IoT” and a frequent speaker on IoT, MQTT, and messaging.