The Eclipse M2M universe

With the number of Eclipse M2M projects continuing to grow, here’s an infographic from March’s JAX Magazine showing how they all interlink

With the number of Eclipse M2M
projects continuing to grow (with the proposal of
Eclipse Kura just yesterday), here’s an infographic from
March’s JAX
Magazine showing how they all interlink.

Behind the terms “Internet of Things” and “Machine to
Machine” is the idea that virtually every conceivable object is
connected to the internet – vending machines, medical sensors,
domestic appliances and so on – allowing devices (or just “things”)
to share data and be remotely operated. While perhaps in the realms
of science fiction a decade ago, this idea is rapidly becoming a
reality thanks to rapid advances in networking and the availability
of cheap yet powerful devices such as the Raspberry Pi and
Arduino.

In November 2011, some members of the M2M ecosystem
formed an Industry Working Group (IWG) with backing from the
Eclipse Foundation. They pledged to address one of the biggest
challenges in the current M2M universe: the lack of
interoperability between embedded solutions, which are mostly
proprietary. So far this group has developed a suite of M2M
solutions, including communication libraries, application
frameworks and development tools.

A year after the founding of the M2M IWG – a “Big
Bang”, if you will – the Eclipse Foundation have already begun
working on three projects: Koneki, Paho and Mihini.

Koneki: This project provides tools
which can be seamlessly integrated into the Eclipse environment and
facilitate the development and testing of M2M applications. The
largest component of Koneki is a Lua IDE, also known as Lua
Development Tools (LDT). Invented in 1993, Lua is an easy-to-learn
high-level scripting language to enable rapid entry into the M2M
development. The most recent release was version 1.0 on June 11,
bringing a suite of new features including support
of non-standard interpreters, support of Lua 5.2 and globals
detection.

Paho: The aim of this project is to
produce open-source implementations of lightweight protocols
suitable for IoT applications. The initial contribution to this
project was from IBM and Eurotech in the form of C and Java client
libraries for the MQTT protocol.

MQTT (Message Queue Telemetry Transport) is a TCP /
IP messaging protocol, developed in 1999 by Andy Stanford-Clark and
Arlen Nipper, that allows for lightweight communication of short
messages. It is based on the publish-subscribe pattern, whereby
client devices communicate through a central distributor called a
broker.

Mihini: The latest Eclipse M2M
project, Mihini is a framework designed to abstract away the
complexity of the hardware, providing low-level connectivity
management and enabling “smart business data transmission” between
devices and servers. An initial code contribution arrived at “the
end of February”, while version 1.0 was included as part of Kepler
in June, along with a version of LDT with Mihini support and tools
for debugging OMA-DM and MQTT communications.

Thanks to Benjamin Cabé for the advice
in the preparation of this graphic. The text has been altered to
reflect recent project versions.

Nb: The size of the planet does not provide
information about the importance and maturity of the respective
components.