One of the reasons why IoT/M2M development can prove to be difficult is the large number of communication protocols used in today's industries. From the industrial protocol used to collect temperature data on a sensor, to the communication protocol used to send this data to a server in the Cloud, to the device management protocol that allows remote firmware upgrade of a system, there are just too many protocols to master for building an end-to-end IoT/M2M solution.
We propose Open Source implementations for protocols already
well-adopted in M2M fields (such as MQTT, CoAP and OMA-DM).
We believe it is a way to encourage their adoption, as well as to improve the quality of these implementations.
We also have a project proposal to implement the CoAP, Lightweight M2M and the ETSI M2M standard.
Message Queuing Telemetry Transport (MQTT) is a protocol designed to connect the physical world devices and networks, with applications and middleware used in IT and Web development, making it an ideal connectivity protocol for IoT and M2M.
It is a lightweight publish-subscribe protocol that runs on embedded devices and mobile platforms, while connecting to highly scalable enterprise and web servers over wired and wireless networks. It is useful for connections with remote embedded systems where a small code footprint is required and/or network bandwidth is at a premium or connectivity unpredictable, and, for mobile applications that require small size, low power usage, minimised data packets, and efficient distribution of information to one or many receivers.
With loose coupling and quality-of-service, MQTT is optimized for dynamic system environments where high volumes of physical world messages and events need to be made available to Web and enterprise servers, and other consumers. MQTT has been well positioned for even the unanticipated requirements of M2M and IoT applications.
Source code for our MQTT client libraries is available in multiple languages at the Paho project page.
Source code for our MQTT server library will be available soon from the Mosquitto project
The Paho project is based around MQTT client runtimes that implement the MQTT messaging protocol. The client runtimes can be configured to run against a broker running on your server, or the sandbox MQTT server described below. There are Quick Start Guides available to get started. This article Practical MQTT with Eclipse Paho is also a good introduction to MQTT.
We provide a sandbox server so that you can test your MQTT-based applications against an actual MQTT broker.
OMA-DM is a standard communication protocol widely used in the telecommunications industry to monitor and synchronize the state of communications devices such as mobile phones or the kind of radio modules that can be found in M2M solutions.
There is a nice introduction to OMA-DM on the developerWorks website.
Koneki delivers an OMA-DM simulator that provides you with a visual dashboard from where you can see the current state of your local device management tree