MQTT was invented in 1999 by IBM's Dr Andy Stanford-Clark and Eurotech's Arlen Nipper. It was borne out of a need to monitor specific industrial problems through a resilient but low-power protocol, such as the monitoring of pipeline pressure or flood levels. At the time, when GPRS was our best bet for remote data transmission back to expensive base hardware, the development of MQTT was well aware of the issues that shifting even small packets of data might entail. It's laborious, constrained, and has often resulted in someone going out to monitor at the source. MQTT, therefore, plays a part in automated, remote monitoring, and is a protocol that has adapted itself over its lifetime to many other applications, and works well with disruption. The API has 5 method based on a publish-and-subscribe messaging model, rather like email newsletters, and the protocol can scale to around 100,000 connections with a messaging broker. At the forefront of building a diverse community to foster and develop MQTT at IBM is Andy Piper.
Piper works closely with the IBM MQ series and Websphere MQ messaging teams. He used to be a de facto consultant, helping businesses to work with Websphere MQ, moving into IBM's Hursley Lab to work on the company's messaging strategy: "My role is helping to tell the story, and to make this stuff understandable... consumable to both IBM customers and to regular people."
Rather conveniently, MQTT also lends itself to the context in which it now sits: IBM's Smarter Planet agenda, offering scenarios where, for example, traffic lights can adjust according to traffic volumes. Stanford-Clark's own, most notable, demonstration of the protocol is in transport; his Twittering ferries project connected the Isle of Wight Ferry to automated Twitter alerts - a project eventually taken on by the ferry operator itself. Neither the ferries or Twitter have MQTT, but there is a layer in-between which enables quick development of such a system.
But, its low power use means that it's also very handy for mobile applications, as its resilience in network variance means that it happily works practically anywhere – including on Facebook, which uses MQTT for Facebook Messaging.
An example from the US is an unnamed energy customer of IBM that built a home instrumentation and automation service using MQTT. The company adds sensors to its customers' home energy meters, which are in turn connected to a 3G mobile network. The result is that devices and heating can be switched on and off according to demand. They get to smooth out spikes in demand, while the customer saves money. So, this little protocol gets to save a bit of cash as well. Another customer, a healthcare provider, provides at-home telemetry for pacemakers: patients can send their data from the home to the clinic, rather than have to go out for a check-up.
IBM's recent announcements have opened up fresh possibilities of where MQTT will go. The company will take MQTT to appropriate standards bodies, as well as open up the client code to the Eclipse Foundation. This is an organisation that was set up in 2003 by IBM, Nokia, SAP, Oracle and others to foster an open-source ecosystem based around a set of tools. IBM's relationship to Eclipse has broadened further; it has joined industry working groups alongside Sierra Wireless to develop machine-to-machine (M2M) messaging. This will result in developments around the Internet of Things, including with Android, and sits under the Eclipse Foundation's new M2M project Paho.
Where MQTT will find more widespread adoption is in the small-scale project: with Arduino developers, and with the Homecamp community of home automation hackers, to which the protocol has already gained traction. "For home automation enthusiasts that have weather sensors around the home, for example – MQTT allows them to publish all that data into a pool and for it to be consumed on a local or wider basis." This happens at IBM's Hursley lab itself, where a group of people publish their energy usage data to a central broker, allowing all members to compare energy usage with that of others. However, Piper is careful as to how MQTT is positioned.
"You can look at different topologies. Some people have been positioning this as millions of devices all talking to one another, but you're not always going to have that scale of connectivity. You're more likely to have WAN scenarios with smaller numbers. That medium-scale sense of connection. It's all about getting useful data to useful places and doing interesting things with it."
"We're not trying to build a 'separate Internet'. We're helping to connect that class of device, that class of app with limited functional requirements, into the broader Internet."
Getting started with MQTT usually involves a broker service. Really Small Message Broker is IBM's offered service, although there are many others. There are client implementations of the protocol in a wide variety of languages, making it easier to work with. Arduino is a popular recipient of MQTT attention, as its efficiency gains over HTTP gives the board more room to run bigger programs. A colleague of Piper has built a Christmas lights application using MQTT and Arduino, with the lights changing colour according to energy use in the house.
Piper is keen to see the MQTT community flourish as a result of his employer's efforts, and his own work with hardware and software developers and hackers.
"We have an excited group of folks that already have contributed implementations. It's fantastic that people have connected with it in that way, although we are aware that the M2M space is awash with competing protocols. The goal here is not to supplant any of those; it is to provide a reliable transport that can go across the top of them and get your data into a single, reliable standard of transport into other applications."
"I personally think that people will connect with [MQTT] as more code gets out there. It's doing what it has been doing in production for 12 years already. So that's another nice thing in terms of other protocols, not all have had this long life. MQTT has been built on simple principles that continue to apply."
Further information on MQTT is available on the MQTT website.