Introducing the Eclipse IoT Community: Open Wins
The Internet of Things (IoT) and Machine to Machine (M2M) are becoming important trends in the technology industry. The potential to connect sensors, actuators and a wide range of devices opens up an enormous opportunity for creating new types of solutions and applications in almost any industry. However, the current state of the IoT industry is characterised by closed proprietary solutions that limit interoperability between solutions and lock customers into a particular technology. If the Internet of Things is going to be successful it needs to be built on the principles that made the Internet successful – open standards and open source software.
At Eclipse we are creating an open source community that will provide the open source building blocks for creating an open and interoperable Internet of Things. The Eclipse IoT community provides open source projects that developers can use to build their IoT solutions. The focus is on providing 1) open source implementations of popular IoT standards, 2) frameworks and services required for building IoT solutions, and 3) tools required by IoT developers.
The first Eclipse IoT project started in November 2012. We now have 12 different open source projects targeting IoT and M2M. Here is a quick tour of these projects.
Standards and Protocols
- Mosquitto is the sister project of Paho, providing a server implementation of MQTT. We are hosting a test instance of Mosquitto at iot.eclipse.org so developers can easily test out their MQTT based applications.
- Californium is a Java implementation of Constrained Application Protocol. The project is just getting started at Eclipse but the code is available on GitHub.
- OM2M is an implementation of the OneM2M standard (previously called ETSi M2M standard). OM2M is a set of Java and OSGi services that implement the OneM2M standard.
- Wakaama is an implementation of the OMA Lightweight M2M protocol for device and service management. Wakaama is written in C and designed to be portable to POSIX compliant systems.
Services and Frameworks
- Kura is a set of Java and OSGi services that implement the common services required for an IoT gateway, such as 1) I/O connection with serial ports, USB, Bluetooth, GPS, Clock, etc., 2) Data Services, 3) Remote Management, and more. We have a more detailed introduction to Kura available.
- Eclipse SCADA (Supervisory Control and Data Acquisition) is a set of Java and OSGi services for creating industrial control systems that monitor and control industrial processes, such as factory floors or solar farms.
- Eclipse SmartHome is a Java and OSGi set of services for home automation integration. This project provides a uniform access point for the many different home automation devices and protocols.
- Ponte is a broker that will bridge different IoT standards (such as MQTT and CoAP) and provide a REST API to these standards.
- Concierge is an implementation of the OSGi standard that aims to have a very small runtime footprint so it is suited for small IoT devices. The target size for the Concierge OSGi runtime is 300-400KB.
- Krikkit is a project to define rules for the messages that pass through an edge device.
- Mihini is a Lua-based framework for creating applications running on IoT and M2M gateways. Koneki is a closely related project that implements a Lua IDE and makes it easy to deploy applications to Mihini.
IoT is an exciting new area for software developers. New hardware platforms like Arduino, BeagleBone and Raspberry Pi makes it easy for developers to experiment with new solutions. Now is a great time to experiment with our open source projects. Use them to build new IoT solutions, and perhaps start the next project. An open source IoT community is what will drive the innovation in the IoT industry. We invite you to join us.