Laying the foundations for the M2M information highway
Eclipse Ponte Project collaborator Matteo Collina talks about his work, his perspective on M2M systems, and MGTTs future in the IoT.
University of Bologna Ph.D student and Node.js, Ruby, Java and Objective-C coder Matteo Collina, who is currently working on an initiative related to the Internet of Things, tells Diana Kupfer about his work on the Eclipse Ponte Project, his perspective on M2M systems, and MQTT’s future in the IoT.
Do you remember what it was that first sparked your interest in M2M systems?
I have always been fascinated by the idea of “coding” the real world, much before the term Internet of Things existed. I started reading code very early: my father coded for the Commodore 64 with me on his lap when I was 4 years old. Being a kid into programming was hard, as I always wanted to show off physically what I was doing, failing to do so all the time. Thus, I have always been fascinated by how I can code the real world and change it with the easiness of fixing a bug.
What is your research about?
I am trying to solve the problem of building a 50 billion network of interconnected things. You might think this is about performance and scalability. However, I think the key is interoperability: there are already several competing standards for interconnecting things, and every vendor is pushing its own. Today, many things are connected to internet, but they cannot talk to each other.
As someone with an academic interest in the IoT, how does your perspective on M2M development differ from that of a developer working on a bespoke solution for a specific company?
I have been working part-time as a software engineer for most of my Ph.D. and I know very well the needs of such work. However, there are differences. The main reason is that I can work in search of a good solution and not be market-focused, so I can try out new ideas before they are market-ready. If you work for a specific company, you usually do not have such freedom.
Let’s talk about your Eclipse project, Ponte, which was proposed a few months ago. Can you explain to our readers what this project is aiming to ‘bridge’?
If we want to build an “internet of things”, we need to reach the mass market, which means we need physical/virtual products with the same polish of an Apple device. To do so, we need technologies that are designer-friendly, but the current state of M2M is very far from that. However, the web and mobile stacks fit perfectly. Ponte aims to allow web and mobile developer to build cool virtual interfaces for the Internet of Things.
Ponte is based on the QEST broker, which already helps traverse the language barrier between MQTT and HTTP/REST. What exactly is the relationship between Ponte and QEST?
QEST was my research prototype and a first iteration in this area, and as all first tries I made some mistakes. Starting from QEST I have built a full MQTT broker, Mosca, that will power Ponte. Moreover, Ponte aims to do much more than QEST: from the protocol side, it aims to also support CoAP. It will also support multiple data formats, as the interoperability issue is not just at the protocol level, and some security. You might want to try a very early release of Ponte at https://github.com/mcollina/ponte.
Obviously the assumption underlying both QEST and Ponte is that MQTT is of growing significance in the IoT – not least because an OASIS committee has recently started developing a standard version based on it. From your point of view, what is MQTT’s future in the IoT, particularly in relation to other protocols?
Actually, my core assumption is that open protocols will rule the Internet of Things, and MQTT fits as well as CoAP, for example. If you do not know CoAP, it is a REST (Representational State Transfer) protocol running on top of UDP. It is a “low-level HTTP” (which runs on top of TCP).The main problem with standard fragmentation is that everybody has different needs, and everybody builds their own solution. MQTT is a pub/sub protocol which is not REST friendly, and there are cases where a REST approach might suits better, e.g. if you want to communicate directly to a single device. On the other hand, in CoAP is harder to receive updates for the changing of state of our devices, i.e. you need to know the IP address of every of them.
How does Ponte aim to address security issues, which are also a growing concern in M2M development?
Most people do not care about security and privacy- they take it for granted. As an example, if they buy an internet-enabled lock for their front door, they assume nobody can open their door remotely if not authorized. However, they complain that the internet-enabled door is not working with the lights, triggering them on automatically. Ponte will allow you to selectively specify which things might access your things in a safe way.Naturally, Ponte will form part of the ensemble of M2M projects already present at Eclipse.
Are there any specific interactions or interconnections at the moment?
It is loosely related to Paho, as it is the home of most of the MQTT libraries out there and I got a lot of feedback from them.
Whose idea was it to join forces with the Eclipse community- did you approach Eclipse or vice versa?
Ian Skerret approached me after looking at one of my slide decks on Slideshare. They are great!
What have been your experiences with the Eclipse community so far?
It is a community of people that builds great tools, and as a tool-builder I loved their feedback. I have been to EclipseCon France which had a huge presence of M2M talks, and I made some extremely good connections there.
This interview will also be published in the next edition of Eclipse Magazin.