MQTT and the internet of things.
MQ Telemetry Transport, invented in 1999 by Andy Stanford-Clark of IBM and Arlen Nipper of Eurotech, is an open standard messaging protocol created for constrained devices and low-bandwidth, high-latency or unreliable networks. Its design principles are to minimize network bandwidth and device resource requirements, while attempting to ensure reliability and some degree of assurance of delivery.
The protocol is designed to be lightweight enough that it can be supported by some of the smallest measuring and monitoring devices, and can transmit data over far reaching, sometimes intermittent networks, making it well-suited for “internet of things” applications. In fact, MQTT.org refers to it as a “machine-to-machine/’internet of things’ connectivity protocol.”
MQTT is designed to overcome the challenges of connecting the expanding physical world of sensors, actuators and phones with a software processing technologies. In the mobile environment, response times, throughput, lower battery use and lower bandwidth are key design criteria. According to IBM, compared with HTTP, MQTT features faster response and throughput, and lower battery and bandwidth usage, making it well suited to use cases where connectivity is intermittent, bandwidth is at a premium, an enterprise application needs to interact with one or more phone apps and phone or tablet apps need to send data reliably without requiring code retry logic.
MQTT has long been and still is used for monitoring oil and gas pipeline operations, according to Verne MQ. Because pipelines don’t always run through areas with good connectivity, communication protocols are required. Sensor nodes are often quite constrained in terms of resources and abilities, running on battery power and forced to limit energy consumption. They might also rely on satellite communication links with limited bandwidth and performance.
The basics on how it works
MQTT is a publish/subscribe protocol that uses a client/server model, where every sensor is a client and connects to a server, known as a broker, over a transmission control protocol.
MQTT is message oriented with every message working as a discrete chunk of data, opaque to the broker. Every message is asynchronously published to an address, known as a topic. Clients may subscribe to multiple topics and all clients subscribed to a topic receive every message published to the topic.
Each control packet has a specific purpose and every bit in the packet is crafted to reduce the data transmitted over the network, allowing for a smaller footprint and longer battery life.
How MQTT handles security
You can pass a username and password with an MQTT packet in the protocol. Encryption across the network can be handled with secure sockets layer, independently of the MQTT protocol itself. Additional security can be added by an application encrypting data that it sends and receives.
What are the advantages of MQTT?
The MQTT protocol allows a supervisory control and data acquisition system to access industrial IoT data. According to Inductive Automation, MQTT brings several benefits, including more efficient information distribution; increased scalability; a reduction in network bandwidth consumption dramatically; reduces update rates to seconds; is well suited for remote sensing and control; maximizes available bandwidth; lightweight overhead; uses permission-based security; has a robust ecosystem and is used by the oil-and-gas industry, Amazon.com and Facebook; can save development time; and the publish/subscribe protocol collects more data with less bandwidth compared to polling protocols.
Some clarification
According to MQTT.org, the SCADA protocol and the MQ Integrator SCADA Device Protocol are both old names for what is now known as the MQ Telemetry Transport. The protocol has also been known as WebSphere MQTT, though that name is also no longer used, and Websphere MQ Telemerty is a product from IBM, which implements the MQTT protocol and interoperates directly with WebSphere MQ products.