Instrumented Interconnecteds Intelligent

MQTT Messaging

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.

Also, there are many Android applications and Arduino applications starting to use MQTT as the main protocol.

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.

The initial contributions came from IBM as well as Eurotech in the form of Java and C clients. A Lua MQTT client was also contributed shortly after the project went live, and an MQTT JavaScript client is coming soon.

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?

Let me know your opinion. Please provide feedback in the comments section or connect with me on Twitter.

Bookmark and Share

Previous post

Next post

Post a Comment