MQTT is becoming a popular protocol for Industrial IoT (Internet of Things) data. Developed to connect remote devices to a central server, it is lightweight, efficient and secure. However, IoT implementations are becoming larger and more complex and the demand for OT / IT connectivity is increasing. MQTT is now called upon to aggregate and send different collections of data values on increasingly complex network topologies.
To address these challenges MQTT must become smarter. As a transport protocol, MQTT specifies that messages are simply transported, unread, like a letter in the mail. But it doesn’t have to be that way. What would happen if the courier could read the mail? In other words, what if we gave an MQTT broker the ability to parse the messages it carries? It would be able to handle messages more intelligently and include some information about the status of the data source or the quality of the connection.
A smart broker should be able to intelligently collect data. For example, on large systems, data can come from a wide variety of MQTT devices, each with their own message format. A broker that parses messages could convert them to a common message representation and make it available to all clients. Other data sources could include non-MQTT protocols such as OPC UA, Modbus, DDE and others. An intelligent broker with protocol translation capabilities could act as a gateway for this data to any MQTT client or cloud service.
In real-time industrial systems, consistency of data from source to consumer is critical. Data that is out of date or out of the correct timeline can lead to wrong decisions. Any disconnections or irregularities in the network must be known.
Data can become inconsistent in a number of ways. If messages arrive at an MQTT broker faster than they can be delivered, some may be dropped. Or, data from multiple message streams can be sent to a client out of sequence. Also, if a data source goes offline, the client might not know if an unchanged value is current or out of date.
A smart broker can ensure data consistency by intelligently queuing incoming data, broadcasting only the most recent values. It can also parse timestamps on messages from different data streams to sequence them correctly, as well as transmit data and connection quality information with each value update.
Security is key when accessing data from a production system. The MQTT push architecture that connects outbound through firewalls is quite secure, but many corporate security policies require isolation of OT systems using a DMZ. This is problematic for MQTT as messages must be passed through two or more servers, while the MQTT quality of service guarantees are only valid for a single sender-to-recipient hop. As a result, data at the end of a multi-hop daisy chain can become unreliable.
An intelligent broker that parses messages and converts protocols can solve this problem by using a tunnel. The device producing the MQTT data would connect to an instance of the smart broker. The message data, along with quality and timestamp information, is transferred via a secure TCP-enabled protocol to a second instance of the smart broker. Such an instance would reconvert the data into MQTT, with values, timestamps, and quality codes intact.