<!-- 
  This document is provided as a template along with some guidance for creating
	your project proposal. This is just a template. Feel free to change it as
	you see fit (add sections, remove section). We feel, however, that the
	suggestions represented in this document represent the reasonable minimum
	amount of information to move forward.
	
	Please keep the formatting in this document simple. Please do not edit 
	this document in Microsoft Word as it adds huge piles of markup that make
	it difficult to restyle.
	
	More information is available here:
	
	http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
	
	Direct any questions about this template to emo@eclipse.org
 -->

<html>
<head>

<!-- 
	Include the title here. We will parse it out of here and include it on the
	rendered webpage. Do not duplicate the title within the text of your page.
 -->

<title>Ponte - M2M Bridge Framework for REST developers</title>
</head>

<!-- 
	We make use of the 'classic' HTML Definition List (dl) tag to specify
	committers. I know... you haven't seen this tag in a long while...
 -->
 
<style>
dt {
display: list-item;
list-style-position:outside;
list-style-image:url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
margin-left:16px;
}
dd {
margin-left:25px;
margin-bottom:5px;
}
</style>

<body>
<p>The Ponte project is a proposed open source project under the <a

	href="http://www.eclipse.org/technology/">
Eclipse Technology Project</a>.</p>

<!-- 
	The communication channel must be specified. Typically, this is the
	"Proposals" forum. In general, you don't need to change this.
 -->
<p>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 
<a href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse Proposals</a>
Forum.</p>

<h2>Background</h2>

<p>
The advent of the World Wide Web revolutionized the way we work, communicate, socialize,
and how business is done: the Internet has become one the most pervasive technology.
Recently, smartphones and mobile broadband enabled us to carry the Internet in our pocket,
seamlessy integrating it in our lives.
However, everyday objects remain disconnected from the virtual world, while the "Internet of Things" (IoT)
movement is exploring how to interconnect them. 
This technology shift is supposed to be greater than the advent of mobile phones, and a 2020 scenario
where non-phone interconnected devices will be 10 times the phone devices (50 vs 5 billions) is foreseen.
</p>

<p>
Billions of interconnected devices is a challenge for the whole Internet and for the objects themselves,
and in order to operate at that scale several major issues should be resolved.
Billions of interconnected devices is a challenge for software developers: every device must be able to
communicate to every other possible device. However, there is no lingua franca between all these devices.
The devices, often called Machines, can be divided into sensors and actuators.
Sensors reacts to events from the real world, while actuators reacts to events from the virtual one.
Thus, event processing is a core feature of every IoT project. Most event processing systems are built
around the popular publish/subscribe pattern. As of today, there exist several protocols for interconnecting machines,
and they all fall under the label Machine-To-Machine (M2M).
The requirements of machines and people are distinctly different, and it may be hard to define a protocol
and the associated best practices to statisfy both of them. However, we can address these compelling requirements
by bridging these protocols, and let developers access the M2M world from within their comfort zone.
</p>

<p>
See also: <a href="http://scholar.google.com/scholar?oi=bibs&hl=it&cluster=3449236268741788404&btnI=Lucky">Introducing the QEST broker: Scaling the IoT by bridging MQTT and REST</a>
M Collina, GE Corazza, A Vanelli-Coralli - Personal Indoor and Mobile Radio Communications, 2012.
</p>

<p>Matteo Collina's Presentation at EclipseCon France 2013: "Exposing M2M to the REST of us"</p>
<iframe src="http://www.slideshare.net/slideshow/embed_code/22537154" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="http://www.slideshare.net/matteocollina/exposing-m2m-to-the-rest-of-us" title="Exposing M2M to the REST of us" target="_blank">Exposing M2M to the REST of us</a> </strong> from <strong><a href="http://www.slideshare.net/matteocollina" target="_blank">Matteo Collina</a></strong> </div>

<h2>Scope</h2>

<p>
The scope of the Ponte project is threefold:
</p>
<ol>
  <li>Define a simple REST API to expose the machines needs through REST, exposing multiple protocols (MQTT, CoAP) through the same API.</li>
  <li>Embrace multiple data formats, such as JSON, XML, Msgpack, Bysant and provide ways to automatically convert between them;
  eventually, common representation of sensors and actuators data will be defined (or adopted from Paho).</li>
  <li>Define and build a user-driven security solution to support the communication between all these devices.</li>
</ol>

<h2>Description</h2>

The following are the plan items for the Ponte project:
<ol>
  <li>
    Build a reusable solution for bridging several M2M protocols to REST:
    <ol type="a">
      <li>Formalize a REST API for reading, writing and accessing the history of sensors and actuators.</li>
      <li>Expose the MQ Telemetry Transport, also hosted within Eclipse, through the REST API.</li>
      <li>Expose the Constrained Application Protocol (CoAP), which is being standardized by the IETF, through the REST API.</li>
      <li>Define an internal API for adding new protocols easily, through plugins.</li>
    </ol>
  </li>
  <li>
    Define a a JSON-based support for message formats, and add converters between them. 
    The converters API should be exposed to Ponte through plugins.
  </li>
  <li>
    Study an OAuth 2 solution that can be embedded inside the machines,
    to allow the end user, and eventually the owner, to authorize or deny every access.
  </li>
</ol>
 
<h2>Why Eclipse?</h2> 

<p>In recent years, Eclipse has attracted several machine-to-machine projects, such as Paho, Koneki and Mihini. Thanks to all these contributions, the Eclipse Software Foundation has built an thriving community of M2M developers.
The initial contribution of Ponte is based upon QEST, which is developed as part of Matteo Collina's Ph.D. This project has the aim to build a platform to make the developing of new, M2M solution easy for web developers.</p>

<h2>Initial Contribution</h2>

<p>All the source code of QEST, an initial implementation for bridging REST and MQTT world, which is available at GitHub: <a href="http://github.com/mcollina/qest">http://github.com/mcollina/qest</a>.
QEST is written in CoffeeScript, but it is in the process of migrating to plain Javascript.</p>

<h2>Legal Issues</h2>

<p>As QEST is built on top of Node.js, the framework dependency needs to be approved. Moreover, the permission of moving QEST to Eclipse will be needed by the University of Bologna.</p>

<h2>Committers</h2>

<p>The following individuals are proposed as initial committers to the project:</p>

<dl>
	<dt>Matteo Collina, University of Bologna</dt>
</dl>

<p>We welcome additional committers and contributions.</p>

<h2>Mentors</h2>

<p>The following Architecture Council members will mentor this
project:</p>

<ul>
	<li>Benjamin Cab&eacute;, Sierra Wireless</li>
	<li>Ian Bull, EclipseSource</li>
</ul>

<h2>Interested Parties</h2>

<p>The following individuals, organisations, companies and projects have 
expressed interest in this project:</p>

<ul>
	<li>University of Bologna</li>
	<li>Sierra Wireless</li>
	<li>Gregor Schiele, Digital Enterprise Research Institute</li>
	<li>Andy Piper, Eclipse Paho project co-lead</li>
	<li>Werner Keil, Eclipse UOMo Project lead</li>
	<li>Toby Jaffey</li>
	<li>Rupen Patel, Mercurium</li>
	<li>Mavigex</li>
	<li>Niranjan Shukla, Accenture</li>
</ul>

<h2>Project Scheduling</h2>

<!-- 
	Describe, in rough terms, what the basic scheduling of the project will
	be. You might, for example, include an indication of when an initial contribution
	should be expected, when your first build will be ready, etc. Exact
	dates are not required.
 -->

<h2>Changes to this Document</h2>

<!-- 
	List any changes that have occurred in the document here.
	You only need to document changes that have occurred after the document
	has been posted live for the community to view and comment.
 -->

<table>	
	<tr>
		<td>03-Jul-2013</td>
		<td>One more interested party</td>
	</tr>
	<tr>
		<td>12-Jun-2013</td>
		<td>One more interested party</td>
	</tr>
	<tr>
		<td>06-Jun-2013</td>
		<td>Added "Exposing M2M to the REST of us" presentation done at EclipseCon France 2013</td>
	</tr>
	<tr>
		<td>27-May-2013</td>
		<td>Added new mentor and interested parties</td>
	</tr>
	<tr>
		<td>24-May-2013</td>
		<td>Added interested parties</td>
	</tr>
	<tr>
		<td>09-May-2013</td>
		<td>Document created</td>
	</tr>
</table>
</body>
</html>