Benjamin Cabé, Internet of Things enthusiast and evangelist at the Eclipse Foundation, has years of experience in connecting things, big and small, together. He is the co-founder of the Eclipse IoT Working Group and speaker at many conferences around the world. He is @kartben on Twitter.
EclipseCon North America is the annual conference for the Eclipse community. It is an opportunity for developers who use Eclipse technology to learn, explore, share and collaborate on the latest ideas and information about Eclipse technology and software development.
Yes, hi Alex, we’ve been doing this for couple of years now, trying to have as part of the conference a dedicated day for IoT and yes, this year we have a lot of talks about the topics that are basically important for IoT in the industry. We’ve been talking about IoT for years and many people are still doing IoT in their garage and blinking LEDs and stuff, but when you start being serious about IoT; how do you do Device Management, how do you basically manage a fleet of devices and how do you upgrade them, etc, how do you secure them so that’s really the kind of talks that we will have tomorrow, which because it’s actually tomorrow, and several talks also about Java, how to use Java for IoT, turns out that we have at Eclipse IoT interesting technologies for doing IoT using Java.
So the Eclipse Foundation is an Open Source community, so historically yes, it’s the Java IDE or Everything IDE, but it turns out we have several other initiatives going on around Geospatial Technology, we have a Science Working Group and we have an IoT Working Group where basically we try to provide the framework for companies and for individuals to collaborate on the very building blocks of IoT — because when you think about it, just like the Internet, the IoT will need to be based on open source to be successful. In order to provide and to achieve interoperability, you need not only open standards but also open implementations — open source implementations — so at the Eclipse Foundation we provide all the framework for Open Source projects to collaborate and for IoT that will be for collaborating on the protocols that are essential for IoT, on all the frameworks for building gateways or for building servers, all the infrastructure for doing Device Management, again for securing the solutions.
Alex: So tell us about some of the projects under the IoT umbrella at Eclipse.
Well I think we have close to 20 now, so it goes all the way from what you need on your embedded devices, your sensors, your thermostats, whatever, all the way to the server, so basically we have as I said, it is important to build the IoT on open standards, so we have open source implementations of open standards and open protocols like MQTT for example (it’s been around for more than a decade actually, MQTT) and at Eclipse we have the client implementations; so Eclipse Paho would be where you go if you are interested in connecting an MQTT client to the Internet.
So MQTT is basically publish/subscribe, so you connect to a server and it turns out the server is open source as well, so at Eclipse this would be Mosquitto. If you want to have a C implementation of an MQTT Server, or we have Moquette as well, so that’s for MQTT. Then another very popular protocol is CoAP, Constrained Application Protocol, that’s basically REST, as in HTTP REST, but for constrained networks for wireless sensor networks so we are not talking HTTP and TCP, we are talking UDP, so we are saving a lot of bandwidth and we have a protocol very efficient, so the implementation of CoAP at Eclipse would be Californium, so it’s in Java, it also provides the security layer with DTLS and stuff like that. And then for Device Management, again still talking about the protocols, there is a standard protocol called Lightweight-M2M that basically allows you to manage devices remotely, perform software upgrades, manage the health basically of the device, so Lightweight-M2M is based on CoAP and at Eclipse we have the embedded implementations for C, constrained environments, that would be Wakaama and for building Device Management servers, Device Management infrastructure on the backend that would be Leshan.
So that’s for the protocols and then I said 20, but well basically that would be it for the open standards implementations and then the other big part of our project portfolio would be what we call the frameworks, so if you are interested in building a gateway, that’s going to bridge your sensors to the Internet, we have a very nice technology called Kura — it's based on Java and OSGi and it’s basically an application container for IoT applications. We have also OM2M which is an implementation of a telco standard called OneM2M, so basically it’s also an horizontal framework for building IoT solutions. And then we have what we call Vertical Solutions like for home automation, we have Eclipse SmartHome, for industry automation we have Eclipse SCADA, as the name states it's for basically system control automation. And yes, that’s basically the kind of projects we have and we keep getting more coming around security, etc, etc.
Yes, that’s actually a good question, we are talking Internet of Things, so at some point you are connecting things and constrained devices, but how do you build the UIs, how do you actually access the data, it turns out that both CoAP and MQTT provide nice ways to bridge to the world of HTTP, so with MQTT for example you can do MQTT over Websockets, so if you use Mosquitto as a broker in the recently released version of Mosquitto, there is support for Websockets that means that you can basically build as you said an HTML5 application, no backend whatsoever, you directly talk to your MQTT server over Websockets and you get instant push notifications whenever data is coming from the field and same for CoAP. CoAP at the edge of the network, on the sensors, on your temperature sensors, etc, it’s going to be UDP, very constrained, but at some point you will have a gateway bridging CoAP and UDP to regular HTTP and there again it’s easy to build a Web UI or to fit the data into other systems, because I mean HTTP everybody knows how to handle HTTP.
4. IoT at Eclipse has grown a lot over the last few years; a few years ago was just a proposal and now suddenly is really a big thing. What are the kind of companies are being involved with the Eclipse Foundation to bring this forward?
I think last time we spoke was 2 years ago I think and we had as you said was just a beginning. Now not only do we have many projects as I said but most of those projects are not one-man shows. Basically for Device Management that would be companies like Sierra Wireless, Zebra, Bosch Software Innovations, Intel, who work together to implement the embedded stack and the server side stack for doing Device Management, so some companies might be more interested in moving forward with Java implementations, while others are interested in the embedded stack but in the end it ends up being contributed to the same projects. Bosch is also very active in a project called Vorto where essentially the idea is to work on a common semantic, a common model to describe sensors' metadata, basically and out of this information provide all the tooling, all the code generators and stuff like that to allow people to build more easily interoperable solutions, so yes, that would be the kind of companies that are involved. Of course IBM is very active around MQTT; Kura is Eurotech plus now many other companies who are also adopting Kura because basically for building IoT gateways, it’s a great fit.
Alex: I think Bosch was also involved with Prosyst as well for an OSGi runtime.
Yes, so they recently acquired Prosyst, so it tells something about how relevant Java and OSGi are going to be for building gateways. I don’t advocate using Java all over the place; there might be places where it’s not relevant or at least where there might be other alternatives and viable alternatives, but for building gateways you have to admit that, I mean the OSGi component model — historically that’s why it was invented, OSGi was a component model for building gateways.
Alex: That's what the G used to stand for originally
Absolutely, now it doesn’t mean that though!
6. If people want to get involved with IoT, they want to stop playing around and getting their hands dirty or wires connected, what kind of devices and boards and wireless sensors and wireless networks could people look at, or do you have any advice to people who might want to play with them?
Well I guess that will be the usual suspects right, Arduino for everything like prototyping with your actual sensors and basically doing microcontroller sort of code. In order to prototype your gateway, the Raspberry Pi is also a very nice candidate, it’s really easy to put a Linux distro in there and install for example Kura and basically out of the box you will turn your Raspberry Pi into a smart IoT gateway and you will have all the web interface and stuff to manage your device, install new applications, IoT applications, etc. And then if you want to go a step further and play with wireless technologies, one of the interesting technologies to start looking at, is 6LoWPAN; basically it’s IPv6 for radio networks and so playing with things like Contiki or RIOT OS which are basically embedded OSs for wireless networks, it’s also easy to find, I mean you just Google it and find tons of prototyping platforms that you can buy for say 40 euros or so that's also something that I really encourage people to check out and of course you can play with CoAP and MQTT with those kind of platforms as well.
Yes, that as well, especially I mean now that the Raspberry Pi 2 is out with much more processing power, you can pack lots of stuff inside your Raspberry Pi and I mean Smart Home is running, I’m pretty sure most of the people are running Smart Home on Raspberry Pi.
Alex: It's an exciting time for IoT at Eclipse.
Yes, it is.
Alex: Benjamin Cabe, thank you very much!