A few years ago the M2M/IoT industry set its sights on a common objective. Standards were to make seamless data interchange between heterogeneous devices possible and thereby take the Internet of Things forward. A problem with existing Internet technologies was that they were not designed for communication between connected machines. For one, these devices have limited resources and need to operate energy-efficiently. For another, they feature special communication patterns such as periodic status reports. Several standards and protocols now exist that take these aspects into consideration:
The Message Queue Telemetry Transport (MQTT) protocol was originally developed by Dr. Andy Stanford Clark and Arlen Nipper in 1999. Its architecture is based on the publish/subscribe principle. Messages are characterized by subscribers being able to receive them without knowing in detail who their publisher is. MQTT is considered to be a simple, lightweight protocol and is specially designed for low-bandwidth data transfer in high-latency networks. TCP/IP Port 1883 is reserved for MQTT and Port 8883 for MQTT over SSL. Since October 29, 2014, MQTT has been an OASIS standard. You don’t need to be an M2M expert to have come into contact with the protocol. Facebook Messenger is based on MQTT.
The IETF Constrained RESTful Environments (CoRE) working group has been taking the Constrained Application Protocol (CoAP) forward since 2010. It is described as an Internet standard in RFC 7252. CoAP is designed mainly for use in sensor network nodes, be they switches, sensors, or valves. The protocol is based – like HTTP – on the REST (REpresentational State Transfer) style of architecture. REST models things as resources that have certain states and can be manipulated by a uniform interface. Its proximity to HTTP offers enormous advantages. Requesting the status update of a machine is no more difficult than requesting the value of a Web API. Furthermore, CoAP can simply be translated into HTML, thereby building an important bridge between the world of machines and the conventional Internet.
The Open Mobile Alliance developed the Light-Weight M2M protocol (OMA LWM2M) specially for device management of connected objects. It aims to provide essential M2M functionalities such as firmware updates, access controls and connectivity statistics. OMA 2012 was the first draft. Version 1.0 was published in 2013. OMA LWM2M falls back on the above-mentioned CoAP protocol and is thus ideally equipped for sensor networks. In addition to communication via UDP at the transport level the standard supports communication by SMS. The Eclipse project Wakaama provides a framework on which to create LWM2M clients or servers.
Of course this is only a short overview of some recent developed standards. There are many more. As the U.S. computer scientist Andrew S. Tanenbaum once said: “The good thing about standards is that there are so many to choose from.” While developers will have the task of finding the right one for each solution or use case, users will probably rest easier knowing that at least one problem with different standards is already served. Thanks to IoT platforms like the Deutsche Telekom “Cloud of Things,” interoperability of different standards is easily possible. If you want to learn more, you might find this blog post helpful. It explains how IoT platforms can help you to manage the growing number of connected objects.