 Good morning, my name is Jason with the Red Hat Developers Program. This morning I'd like to introduce Benjamin Cabay from the Eclipse IoT Foundation, and he's going to be giving a speech on building the Internet of Things with open source. To be here and kick off Red Hat Summit with some cool Eclipse IoT content. So in case you're not familiar and just to make sure that we're all on the same page, I want to briefly present what's the kind of typical architecture for IoT. It's nothing super Super exceptional, I guess. You get, when you do IoT, you want to connect. I still get lots of, like, it's... Let's see, let's see. Better, better, it's better. All right, thanks Jason for the introduction. I'm very happy to be here. Let's hear it. Doing it again. Is this... Okay, let's see. I'm gonna speak just for a little while just to make sure it's fixed. Looks like it is. All right, third take. All right, thanks Jason. Thanks very much for the introduction. I'm really happy to be here and talk about Eclipse IoT. Before jumping into actual IoT meet, I would just like to make sure that we're all on the same page regarding what what a typical IoT architecture is, the way we see it, and I don't think this is new. You have the devices on the field, right? The billions of devices of the IoT, that's where they are, the sensors that you're going to use to monitor temperature, humidity, whatever. So this is typically a very constrained devices that probably don't have internet connectivity actually. So you will use some kind of gateway to take the data from those sensors to the good old internet and what's in the internet, what's in the cloud. Well, it's typically the good old cloud, except that maybe you will require some specific services that are specific to IoT. So again, the way we see it is that you really need three different IoT, three software stacks for IoT on the constrained devices. It's all going to be about providing some kind of remote management capabilities so as you can upgrade your microcontours when you need to, like especially if we're talking billion devices. It's actually important to be able to upgrade the devices. Security also is an important aspect. The communication layer, how are you going to be able to make your devices talk to the gateways? That's what the constraint device stack is about. At the gateway level, it's all about turning the raw information into actual meaningful messages. So on an IoT gateway, think essentially a router on steroids. So you need network management, but ideally you need more. You need the ability to do storing forward kind of mechanism, right? You get data from the sensors. You want to route this data to the internet. What happens if the cellular network is down or if your Wi-Fi stack is down? So that's the role of the gateway and then comes the cloud. So like I said, good old cloud, like the foundation, the paths. Here we're talking open shape, we're talking Kubernetes, Docker, whatever, but then the kind of services that you require are some of them are actually IoT specific. How do you manage your fleet of device? Like you need some kind of device registry. How do you manage the huge data store? A data store that ideally needs to cope with the fact that maybe your solution will need to manage home automation related data and in terms of structure in terms of volume of data, it might be very very different from data coming from an industrial automation scenario, right? So those are the kind of services for the cloud stack and of course there are some cross-layer concerns, I think like security, modeling, data semantics, everything, tools and IDE are of course also very important. And just like in thinking in terms of stack, the idea is really to make sure that your IoT architecture is going to be modular, like each stack, like the device, the gateway, the cloud, ideally, they're not dependent on one another, right? I want to be able to use a gateway from manufacturer A with AWS IoT, just the same that I would use it with Azure IoT. I don't want to have like a strong coupling there, modularity within the stack as well. I want to replace the communication layer of my gateway from MQTT to, say, HTTP2, right? There needs to be some modularity in there as well. And long story short, we believe that open source can help there. It's like the past has shown that it works well for the good old internet to have open source and modularity to enable those characteristics, basically. So that's what we do at Eclipse. That's what we do at Eclipse IoT. We've been doing it for five years now. So Eclipse IoT is an initiative within the Eclipse Foundation. And yet today it's 30 plus member companies, 30 different open source projects. And I'm going to spend the next few minutes basically doing some name dropping, if you will, just like you guys are familiar with what's out there, what's available for doing device stuff, gateway stuff, cloud stuff. Lots of code is being developed. The community is very, very active. Lots of developers like either working for large companies or hobbyists as well. We have a nice mix of both, actually. And so, yeah, going into the name dropping, like I said, on the devices, like on the super constrained devices, think Arduino, if you will, like constrained microcontroller. Some of the relevant initiatives there at Eclipse would be a project like Eclipse Wakaama. It's a stack for doing Lightweight M2M. Lightweight M2M being a standard for device management. What does it mean? Well, things like over the year firmware grade, things like being able to manage over the year, the health of your devices, what's the battery level, what's the available memory, things like that. A standard is out there and the reference implementation is at Eclipse. As part of Eclipse Wakaama, everything MQTT, you want to do PubSub in a scalable, reliable way. MQTT is probably a protocol you will want to look at. Eclipse Paro provides a very nice, very efficient, embedded implementation of the protocol. Edge, and I guess I should have started bottom up, at the hardware abstraction level, if you look at Eclipse Edge, you'll actually find something very cool to have Android for IoT, if you will. I should stop saying that now that Android things is a thing, actually. But Edge is essentially a bunch of Java APIs for your microcontroller. It's a very, very nice project and you run some very constrained devices. Jumping into gateways, Eclipse Cura, if you haven't heard about Eclipse Cura already, you should check it out. You can run Cura on, say, an Intel Edison, Raspberry Pi and what it essentially does. But to my point earlier, it brings you a gateway on a router on steroids. So it does all the good things that a router should do in terms of managing the firewall, establishing VPNs and whatnot. But on top of that, it provides an application container for IoT, which means you have a way to extend Cura and leverage the built-in support for protocols such as Bluetooth Low Energy, Modbus, OPC UA, you name it, to build your own applications that will take data from devices and route the data to the cloud without having to deal with the complexity of what happens, if the network is unreliable, how do I store the data locally and stuff like that. This comes right with Cura. Another kind of stack you might want to look at regarding for devices, for gateways, sorry, is Eclipse Smart Home. So for everything, home automation, you can get a stack out of Eclipse Smart Home where you will have built-in support for the protocols that are relevant for home automation, Philips Hue, LeafX, whatever, and ZigBee, Z-Wave, etc. And all the mechanisms for the rules that you might want to have within your house, right? If temperature in the bathroom is above 17 Fahrenheit, I want to turn on the heating, stuff like that. So a very mature project, and one thing that I should mention is that it's actually also shipping into production, just like Cura is. Deutsche Telecom, for example, they are shipping Eclipse Smart Home in their own home automation boxes and they are selling commercial solutions on top of Smart Home. Moving to the cloud, Eclipse Capua. Eclipse Capua is microservices for IoT Cloud, so the foundation for what is an IoT data store in the first place? What is an IoT device registry? So all those APIs are defined by Capua and implementations of those services are provided as well. So for the data store, for example, you can get an implementation that relies on elastic search for storing the data. For the device registry, you may want to be used Eclipse projects such as Eclipse Hopbit. Device management might want to try and hook up Eclipse Capua to Eclipse Lesion, which provides the lightweight M2M stack for servers. So that's Capua and the nice thing is, as you can see at the bottom of the chart is it runs on lots of paths. So you can run Eclipse Capua straight on Docker, you can run it on OpenShift, you can run it on Cloud Foundry, and so that's really nice, especially when you're thinking microservices, right? So how do you scale your data store if you really need way more nodes to cope with the volume of data that you need to store? So lots of name-dropping and I'm barely halfway through. There's 30 different projects, so I've tried to map some of the Eclipse IoT projects to the different functional components, the functional layers of each stack. So many other projects that I didn't mention, like like California for doing co-op, like TinyDTLS or KD for everything security, lots of stuff going on, but we actually go beyond just providing open source code. Like many foundations do that, many open source communities do. You can get lots of stuff straight from GitHub as well I guess, but we do more in terms of community building and ecosystem building. One thing is, in no particular order, is we ran contests, hack challenges if you will. We actually did the third edition of our Open IoT challenge just a few weeks ago. You can actually look at the results on our website, but in a nutshell, people are building great things for IoT and using open source software. The winner actually uses Kura Eclipse Vertex as well as other projects to help track sleep patterns for people who have bipolar disorder, who have basically mental illness and they figured out a way to actually help detect when someone is going to be in a bad mood and I think that's really exciting to see what people are building thanks to open source software. Another activity that's going on is the Virtual IoT Meetup. You might be familiar with the Virtual Jag. We just stole the idea from Simon Maple with the inventor of Virtual Jag, so basically every other week we would run a webinar with an IoT thought leader. You can look at the website and all the history of all the videos we've produced. This is really a great resource for people interested in learning about IoT. Last but not least, something that started very recently actually an initiative called the Open IoT Testbeds. Here actually at Summit this week we are showing the first IoT testbed around asset tracking management. The idea is that, and you've seen a very concrete example, there's lots of projects, lots of different open source components. How do you effectively use them to build something concrete, something real? How are you supposed to combine Quora with Capua with maybe other commercial projects and vendor solutions, commercial hardware? How do you do that? That's what we're showing this week and you can certainly learn more on our website as well. For asset tracking in a nutshell the idea is that you are very valuable cargo, valuable parcels that you need to be able to track. Say you're shipping organs, you don't want the kidney to be in a super warm environment, you need to be able to track that. That's what we are enabling by means of Bluetooth low energy sensors, Quora-based gateways and we use the Samsung Arctic as the actual device. Azure is the JVM that runs underneath and then we take the data all the way to a Capua-based cloud environment running on top of OpenShift and that's really showing an end-to-end scenario all the way from the devices to the cloud and what's more show something like really solving a real problem. So that's the international architecture of the solution. If you want to learn more and if you're at Summit this week please join us at the booth at the IoT Pavilion and that's what I had for you today. For as a conclusion I wanted to do a shameless plug for the cold starter tonight from 629 in room 205A where we're actually going to hack the testbed. So if you want to learn more about Quora, want to learn more about Capua, how to use the Capua's API, this is for you, this is going to be very very interactive and you should be learning a lot. So that's what I had, thanks a lot. I missed my last slide which would be thank you all. You can follow me on Twitter and please make sure to stop by the booth to learn more about the testbed and more. Thanks. Questions? Unless we're over time, kind of. Any questions? No.