IBM Open Sources Messaging Client for Embedded Devices
In a move to bring network connectivity to a wider range of devices, sensors and appliances, IBM has donated the source code of its machine-to-machine messaging software to the Eclipse Foundation, the company announced Thursday.
The messaging client, called Paho, runs the Message Queuing Telemetry Transport (MQTT), a protocol developed by IBM and Eurotech in 1999. The protocol was originally designed for sensor devices that monitor pipelines, and has subsequently been used in many other embedded devices and smartphones. Recently, Facebook used the protocol for its mobile messaging platform.
"We hope that MQTT will become a core protocol in building the Internet-of-Things, and it fits nicely with the work we've been doing with Eclipse," said Andy Piper, an IBM distinguished engineer.
The company submitted the code to the Eclipse Foundation now in order to dovetail with the 10th anniversary of IBM's open sourcing of its Eclipse IDE (Integrated Developer Environment). IBM, along with Eurotech and Sierra Wireless, also started a new Eclipse Foundation working group that will focus on developing more standards and tools for machine-to-machine messaging.
The protocol could be an essential component in what is increasingly called "The Internet of Things," or low-powered networked sensors and other devices that could communicate operational and sensor data to servers, such as bridge sensors, automobile components and monitors for household appliances.
IBM plans to be deploying a lot of machine-to-machine systems in the years to come, as part of its Smarter Planet initiative to instrument more mechanical systems and analyze the resulting data to improve efficiencies.
IBM is hoping developers use Paho as a reference implementation and reuse the program's code, which was written in both Java and C, Piper said. A number of open-source MQTT servers, or brokers, have already been developed, and could communicate with Paho clients.
MQTT offers a few specific advantages over HTTP, the currently favored protocol for relaying Web data across the Internet, Piper argued.
Like HTTP, MQTT runs on top of TCP/IP. HTTP, however, is a point-to-point protocol, one designed for moving documents from one machine to another. In contrast, MQTT follows the publish/subscribe messaging model, which doesn't assume that both parties in a data exchange will always be online at the same time. "That model is a natural fit for sensors, or for chat clients," Piper said.
Because MQTT messages have small headers, they use bandwidth more efficiently than HTTP. As such, MQTT could be useful for remote sensors that may log onto a network only once a day through a satellite link, or some other conduit with limited bandwidth. It could also be useful for smartphone applications, where it could keep bandwidth and battery-powered processor usage to a minimum, Piper said.
"HTTP doesn't deal very well with unreliable networks. You get a time-out or broken connection error, and you have to handle" the errors with additional coding, Piper said.
The protocol itself is in the public domain, and IBM and Eurotech are looking for a standards body to manage further development--and encourage wider use--of the protocol.
IBM announced Paho at EclipseCon Europe, being held this week in Ludwigsburg, Germany. Ten years ago this week, IBM open sourced Eclipse, in a move to keep at bay the growing dominance of Microsoft's Visual Studio IDE. Since then, Eclipse has grown into a powerhouse in the development community. The Eclipse Foundation now oversees 273 Eclipse-related projects.
By open sourcing the Eclipse code, IBM has been able to benefit from the input of thousands of additional contributors worldwide, said IBM program director John Kellerman. More than 1,000 developers have submitted code to Eclipse.org. IBM itself now has more than 800 products based on the Eclipse platform.
IDC has estimated that the size of the embedded market will double by 2015, to more than US$2 trillion in annual business, as more low-cost networked computational devices are deployed. Ericsson AB has estimated that by 2020, there will be more than 24 billion network-connected devices in the world, up from 9 billion today.
IBM is not alone in its efforts to create new technologies for this market. Microsoft is working on a machine-to-machine connection manager, code-named Pontecchio, that would offer fine-grained control over when devices connect to network services.