Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.
Most IoT (Internet of Things) developers these days are building their solutions with an approach where the Internet connectivity is taken as granted. That is, they focus very much on the application level without taking into consideration the network infrastructure. In the context of the Internet of Things, we’re talking about very constrained computing devices, that very often do not offer any sort of human-machine interface for operating purposes besides the fact that they are – hopefully – connected to the Internet. In order to manage and operate large fleets of such devices, and be able to track their overall “health” (battery level, quality of the cellular signal, etc) or upgrade them over the air, specific protocols as well as server-side infrastructure must be deployed.
The Open Mobile Alliance (OMA) is a standards body which develops open standards for the mobile phone industry like Multimedia Messaging Service (MMS), OMA Data Synchronization (OMA-DS) and OMA Device Management (OMA-DM).
OMA Lightweight M2M is a protocol for device and service management. The main purpose of this technology is to address service and management needs for constrained IoT devices, over a number of transports and bearers.
A device which is LWM2M-ready can be managed remotely from a LWM2M server, and therefore be e.g. rebooted, upgraded, etc.
The Eclipse Leshan project provides a complete infrastructure for building IoT solutions using OMA LWM2M and the Java programming language:
A device management server library.
A device management client library.
A device management server with a web user interface.
- A bootstrapping server (server in charge of the initial security configuration (keying) of the devices).
Leshan is an OMA Lightweight M2M (LWM2M) implementation in Java.
Eclipse Leshan relies on the Eclipse IoT Californium project for the CoAP and DTLS implementation. It is tested against the LWM2M C cliented provided by the Eclipse IoT Wakaama project.
Eclipse Leshan is a natural fit for the Eclipse IoT ecosystem since it builds on top of existing standard IoT protocols and implementations that already live at Eclipse. Moreover, in order to facilitate the adoption of open standards like LWM2M, it is important to leverage the IP policies of the Eclipse Foundation to provide open source implementations that have clean IP and can safely be used in commercial products.
The initial code contribution consists of several Java-based components built using Apache Maven:
leshan-core is a Java library implementing a Lightweight M2M server. It uses Eclipse Californium for implementing the CoAP device API and the DTLS security layer.
leshan-standalone is a standalone Java server that uses “leshan-core” for running a Lightweight M2M server, with a web user interface.
The Web UI is built using Angular JS and Twitter Bootstrap. A REST API is exposed, using Eclipse Jetty and Google GSon, and used by the web UI for communicating with the server.
A Dockerfile is also provided in order to facilitate the deployment of Leshan in Docker containers.
Whole code is under a BSD 2 clause license.
The main dependencies are:
Compile and runtime
Web user interface
Angular JS 1.2.1
The plan is to implement the whole OMA Lightweight M2M specification incrementally.
The main addition to the features already available on GitHub would be the implementation of the device-initiated bootstrap specification.
First 0.2 release expected in Q4 of 2014.