Paho
The Paho project is a proposed open source project under the Eclipse Technology Project.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the Eclipse Proposals Forum.
Background
We now have the ability to measure, sense and monitor nearly anything in the physical world. Rapid advances in embedded platforms and wireless connectivity are driving growth of M2M (Machine-to-Machine) technology and the many industries it serves. By 2020, the number of connected physical world devices is expected to be in the range of 50 billion, fueled by a 1000x increase in wireless broadband traffic. These factors are forming a significant industry shift that will not be limited to device connectivity.
Machine-to-Machine (M2M) solutions such as industrial control, smart buildings, asset tracking, traffic control and healthcare monitoring, are an essential and integral part of nearly all industry, enterprise and daily life. Inherent to M2M is the need to connect objects in the physical world, via sensors, actuators and other devices, into monitoring, control, business, and consumer software systems, often over constrained wireless networks. Advances in wireless, embedded, internet and mobile technologies are now creating all manner of new objects that can sense, control and connect. Such smart objects not only create new M2M opportunities, but also expand the availability of device connectivity to Web and Enterprise IT developers. Whether looked at as an Internet of Things or a Smarter Planet, people, systems and objects will increasingly need to communicate and interact with each other in ways that today, cannot yet be entirely anticipated.
While smart objects and physical world systems are often integrated with Enterprise and Web middleware today, it is often done using proprietary integration models and combinations of a prolific number of custom protocols and industry standards.
In most established M2M implementations of connected devices, the data producers and data consumers are programmed to interact in strict and well defined ways. For example, in a smart city, sensor-based systems can alert operators of a broken water main and report the extent of flooding in streets and subways. Well designed open messaging technology would enable solutions well beyond this, allowing public and private transit systems for example, to monitor these critical alerts, adjusting their routes and even notifying commuters and customers of alternative routes, transportation, lodging and meals. Social networks could subscribe, allowing residents and commuters to interact, adapt and even provide feedback and status to the city.
In an example like this, the M2M system monitoring the water main would not, in its original design, have been able to communicate or interact with the traffic systems or residents. The next generation of messaging technology will support an architecture that enables a more spontaneous reuse and rerouting of data with minimal programming or reconfiguration of legacy monitoring systems.
Open source messaging components are needed that can cater to the
serendipitous nature of data and events from the physical world around us,
accelerating and opening new markets. These components will of course have to support
the open messaging models prevalent on the Web. They will have to meet high
volume, low latency transaction requirements expected by Enterprise IT. At
the same time, they will have to work equally well across the constrained
networks and embedded platforms that are inherent to physical world of machine-to-machine
systems. This will enable a paradigm shift from legacy point-to-point
protocols and the limitations of protocols like SOAP or HTTP into more loosely
coupled yet determinable models. It will bridge the SOA, REST, Pub/Sub and
other middleware architectures already well understood by Web 2.0 and
Enterprise IT shops today, with the embedded and wireless device architectures
inherent to M2M.
Scope
The scope of the Paho project is to provide open source implementations of open and standard messaging protocols that support current and emerging requirements of M2M integration with Web and Enterprise middleware and applications. It will include client implementations for use on embedded platforms along with corresponding server support as determined by the community.
In order for M2M device and client developers to integrate, develop and test messaging components end-to-end, Paho will address the development of frameworks and sample code needed to support testing and development of end-to-end device connectivity with a server. The project will make these available in an Eclipse M2M sever “sandbox”, as recommended by the Eclipse M2M Industry Working Group.
The Paho project scope includes the development of tooling that will support effective use, integration and testing of the messaging components.
Description
Architectural requirements for network, client and server support will be developed with the Eclipse Machine-to-Machine Industry Working Group and will include, but are not necessarily limited to:
- Bi-directional messaging that can handle both signals and commands from devices, as well as supporting the provisioning and configuration of physical world systems. Bi-directional messaging also enables an important characteristic of the next generation of M2M solutions: the ability to configure or move processing closer to the physical world systems as needed, in support of changing business requirements and the constant reshaping of the Web.
- Determinable delivery of messages to and from sensors, actuators, and other resource constrained devices connected by intermittent or constrained networks.
- Provide loose coupling in highly dynamic system environments where large volumes of physical word events and messages that need to be made available to the Enterprise, Web, and other consumers in ways that may not always be anticipated. This should include time, space and synchronization decoupling that will avoid unnecessarily tight binding between systems.
- Constrained platforms: Instrumentation of the physical world must be supported in an extremely fragmented space where technologies, platforms and network choices are driven by very diverse equations of cost, technology and physical constraints.
![](images/image004.gif)
Why Eclipse?
Eclipse has long had a focus on open tooling, runtimes, frameworks, standards and software architecture. The Eclipse Foundation has initiated an M2M Industry Working Group, recognizing the importance of growing and scaling device connectivity solutions needed to realize new business opportunities and keep markets open. Eclipse has a large and diverse membership, an established industry presence, and a proven track record on technology projects. The industry working group will provide a forum for discussing the broad topics of machine-to-machine communications while the Paho open source project will make implementations of advanced messaging technology readily available to M2M, Web and Enterprise customers, working to improve adoption.
The Paho project will have relationships with Equinox and other Eclipse projects, including the Koneki project and other tooling projects used by embedded, enterprise and Web developers.
Initial Contribution
The initial code contribution to Paho will include Java and C client-side implementations the MQTT protocol, contributed by IBM. MQTT is a lightweight publish/subscribe protocol designed for mobile and remote devices, wireless connectivity, and dealing with lossy, constrained and/or intermittent network characteristics.
Eurotech will contribute the implementation of a framework and sample applications which device and client developers can use when integrating and testing Paho messaging components. This will require the setup of an appropriate M2M test server which will be worked out with the Eclipse Foundation. The architecture for this sandbox will be coordinated with the M2M Industry Working Group.
Legal Issues
No known legal issues. Work will be done under EPL.
Committers
The following individuals are proposed as initial committers to the project:
- Project Leader: Scott de Deugd (IBM)
- Committer: Ian Craggs (IBM)
- Committer: Chad Kienle (Eurotech)
- Committer: Dave Locke (IBM)
All listed committers authored the initial contribution.
We welcome additional committers and contributions.
Mentors
The following Architecture Council members will mentor this project:
- David Williams
- John Duimovich
Interested Parties
The following individuals, organisations, companies and projects have expressed interest in this project:
- Simon Archer, IBM, Eclipse Equinox
- James Branigan, BXI
- Randy Carroll, Wintergreen Technology Group
- Hendrik_Hoefer, MicroDoc
- Benjamin Cabé, Sierra Wireless
- Werner Keil, Eclipse UOMo
Project Scheduling
November 28, 2011: Initial submission to Eclipse of MQTT Java and C client code. December 16, 2011: Stable release 1 of MQTT Java and C client code
Changes to this Document
Date | Change |
---|---|
14-Dec-2011 | Added project mentors. |
14-Nov-2011 | Added Werner Keil, Eclipse UOMo to the interested parties. |