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
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.
Powered by image courtesy of Andy Piper