An Easy Route to Interoperability - Interview with Andy Piper on Eclipse Paho
Can you summarize in one sentence what the Paho project is?
Andy Piper: Paho is a project to provide scalable Open Source implementations of lightweight protocols for existing and emerging applications for Machine-to-Machine (M2M) and Internet of Things (IoT) solutions.
M2M is a rapidly growing field: In your project proposal it says that by 2020, the number of connected physical world devices is expected to be in the range of 50 billion. Why is it so important to provide open source solutions for M2M communication?
AP: Well, we've been here before. Over the past thirty years or so we've had a range of incompatible protocols and solutions emerge, usually with a single commercial entity behind them with an interest in creating a closed ecosystem. The data within those "closed loop" systems is useful more broadly and therefore we've ended up having to scrape it, or otherwise break it out of the loop... but with a set of standard and interoperable open protocols, the chances of the M2M space being successful are far greater. With the numbers of devices we are talking about, the problem of fragmentation is so much greater, so a set of protocols that are open and easy to adopt between devices and vendors provides more of an opportunity for interoperability. Publish/subscribe lightweight messaging has proven itself to be an easy-to-understand and reusable model for these kinds of applications.
Paho was founded under the umbrella of the M2M Working Group, whose goal is to provide open-source solutions so as to overcome market inhibitors in M2M systems. What are some of the market inhibitors that Paho tries to address?
AP: The M2M Industry Working Group is trying to address several "layers" within the Internet of Things solution space. The umbrella IWG is discussing a number of issues such as the overall solution architectures and use cases, and data formats. The Koneki project is targeting runtimes and tooling solutions. Paho is specifically aimed at the protocol space, with the initial step being an implementation of MQ Telemetry Transport (MQTT) clients. By making use of this existing production-strength protocol originated by IBM and Eurotech – one which has been in use for over a decade – and providing solid and open reference implementations that remain true to the original design goal of simplicity, Paho can offer device and application vendors an easy route to interoperability.
What would be a typical use case for components/applications developed by the Paho project?
AP: MQTT has been used for a number of years for device and application interoperability in a number of fields, from oil field instrumentation and river water level monitoring, to smart transportation systems (for example, real-time awareness of train locations), smart energy metering, home automation, mobile messaging, and healthcare systems. One of the neat things is that because the protocol is simple and lightweight, it is useful in a broad range of situations. It scales down to small sensor-type devices, through mobile solutions where battery power and bandwidth are at a premium, up to simple messaging applications.
How does Paho benefit from Eclipse technology and the Eclipse ecosystem?
AP: The Eclipse Foundation has proven itself to be an excellent curator of a variety of Open Source solutions over the past decade. Commercial organisations like the Eclipse Public License as it delivers the ability to reuse solid code which has been subject to strong IP scrutiny. M2M actually fits in really nicely at Eclipse, since Eclipse technology has been used for developing embedded solutions for some time. An open and reusable protocol which is applicable across a range of industries is something that fits well with the Eclipse philosophy. There are also opportunities to build tools to test and interact with MQTT-based applications within the IDE too, of course.
What connections does the project have so far with other projects in the M2M WG and other Eclipse projects?
AP: Paho has a particularly strong affinity with the Koneki project, which is also under the M2M umbrella at Eclipse. Koneki is building tooling for embedded devices using languages such as Lua (which is naturally suited to being embedded within different language runtimes).
The initial code contributions were made by IBM last March. What other companies are actively involved, and how have you tried to get more companies and committers interested in the project?
AP: A range of organisations are involved in the Eclipse M2M IWG ecosystem - IBM, Sierra Wireless, Eurotech and Band XI. Within days of the IBM contribution, Andy Gelme had offered his Lua client implementation to the project, and the Paho team is working with him to bring the contribution into Eclipse. The MQTT community has existed for some time, and the Paho team is in the process of promoting the new home of the reference implementations and bringing more contributors in.
What will be the next steps in the project?
AP: We've presented on the next steps at the last two major Eclipse events – EclipseCon in Reston, Virginia and the recent Eclipse Day in Toulouse. Primarily Paho needs to move towards a solid release, bring new client contributions into the Eclipse fold, and work on requirements for a "broker" within Eclipse.
Just of curiosity: What does the word “Paho” stand for?
AP: That's a very common question! We've actually documented the answer on the wiki page. Both Paho and Koneki are Maori words. Paho is a verb meaning "to broadcast, make widely known, announce, disseminate, transmit" – ideal for a publish/subscribe messaging system!
Andy Piper is an Eclipse M2M IWG Community Member and has been involved with the Paho project since it started, particularly through his former role advocating the use of MQTT at IBM, and helping to run the mqtt.org community website. Andy has a passionate interest in small and mobile devices, cloud, the Internet of Things, and Arduino and related technologies. He works at VMware, writes at http://andypiper.co.uk and tweets at @andypiper.