WHAT IS MQTT?
MQTT (Message Queuing Telemetry Transport) is a simple messaging protocol perfect for the Industrial Internet of Things, as it is extremely light and ideal for connecting devices with a small code footprint and minimal network bandwidth: ideal for M2M (Machine to Machine) communication.
MQTT communication is based in a publish and subscribe system, where, in one side, devices publish messages on a specific topic, and at the other, devices that are subscribed to that topic receive the message.
Although MQTT started as a proprietary protocol used to communicate with supervisory control and data acquisition (SCADA) systems in the oil and gas industry, it has since expanded its use and become popular for connecting internet of things (IoT) and industrial IoT (IIoT) devices, and it’s used in a wide variety of industries, such as automotive, manufacturing, telecommunications, oil and gas, etc.
HOW DOES IT WORK?
With the MQTT protocol, publishers and subscribers don’t contact each other directly. It is a third party – the MQTT Broker – that takes care of the connections between them. If MQTT was a letter, the broker is the post office: all messages go through them and are delivered to the right subscribers.
The MQTT broker is a piece of software running on a computer (running on-premises or in the cloud): at Tatsoft, we have both a simulator, for testing and small applications, as well as a partnership with HiveMQ, for those looking for enterprise-class solutions.
This broker communicates with all the clients, which can be publishers and subscribers at the same time (MQTT is a bi-directional communication protocol). Under the pub/sub model, multiple clients can connect to a broker and subscribe to topics in which they are interested.
The broker is an important figure to help prevent data loss: if the connection from a subscribing client to a broker is broken, the broker will buffer messages and push them out to the subscriber when it is back online. Many solutions, including FrameworX, also have a store and forward feature, to buffer data to disk on communications failure to MQTT brokers.
With MQTT broker architecture, the clients are kept unaware of each other’s information, and, for extra security, MQTT uses TLS encryption with username and password protected connections. Optionally, the connection may require certification, in the form of a certificate file that a client provides and must match with the server’s copy.
The broker can support both standard MQTT and MQTT for compliant specifications such as Sparkplug.This can be done with same server, at the same time and with the same levels of security.
What are the benefits of using MQTT?
MQTT was specially developed for maximum efficiency and to allow data transfer with low bandwidth, reducing the load on the CPU and RAM. Some of the benefits worth highlighting are:
- More efficient data transmission and distribution;
- Quick to implement, saves development time;
- Low network usage;
- Increases scalability (can connect to millions of IoT devices) and reduces update rates;
- Ideal for remote sensing and control;
- Secure, with permission-based security.
- Uses small amounts of power, which is good for the connected devices;
- Optimizes network bandwidth.
To find out more about how MQTT works go to: mqtt.org
WHAT CAN I BUILD WITH MQTT?
We recently presented a webinar where we highlighted some of the more technical aspects of MQTT, showcasing examples of applications you can build, from more simple ones to advanced configuration. Watch the entire livestream here: