Have you heard about MQTT?
MQTT, which stands for Message Queue Telemetry Transport, is a publish or subscribe, lightweight messaging protocol designed for low-bandwidth communications with high latency. It is intended to be primarily used by machine to machine (M2M) or the Internet of Things (IoT) and telemetry data communications.
The protocol was invented by Dr. Andy Stanford-Clark, an IBM Distinguished Engineer and Master Inventor, and Arlen Nipper of Arcom (now Eurotech) in 1999. You can see them talking about the protocol here.
Although the protocol is considered simple and lightweight, it can ensure reliability and some degree of assurance of delivery. You can find the MQ Telemetry Transport V3.1 Protocol Specification at the IBM developerWorks site.
For more information, there is an interesting IBM Redbooks publication Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry.
The MQTT FAQ is also a good resource for beginners.
Mobile applications and MQTT
With all these features, MQTT is becoming the de facto standard and the ideal protocol for all M2M and IoT applications, where we have many devices and sensors sending high volumes of messages continuously. However, MQTT is also being used by a growing number of mobile applications nowadays, mainly because MQTT seems to be a very smart choice for a protocol, as it demands fewer resources compared to many other protocols currently available for mobile application development.
One big example of a well-known application that uses MQTT is the Facebook Messenger client, and you can find out about its usage of the MQTT protocol here.
MQTT and Eclipse tools
The website eclipse.org also supports MQTT, and it hosts and supports the Paho project.
The Eclipse Paho open source messaging project was proposed in late 2011 and is currently an incubator Eclipse project.
Other messaging protocols
While there are other messaging protocols, and while MQTT has been around for years now, it seems it is gaining traction as the de facto standard for M2M and IoT, as a recently created OASIS MQTT Technical Committee is now working on a common, standardized version of MQTT supported not only by IBM and Eurotech but also by Red Hat, Cisco and other companies.
So as it seems that MQTT is really becoming the definitive protocol for a Smarter Planet, would you use MQTT on your next mobile application? Do you see any advantages of using MQTT in more common mobile applications beyond M2M and IoT ones?Tweet