2014-06-21

Competing protocols in IoT & M2M



The Internet of Things is becoming the main driver of innovation for the economy, society and culture. Intelligent, networked devices will soon become a part of everyday and business life: smart homes, connected cars or Industry 4.0 but are merely the tip of the iceberg for the IoT!


The term "Internet Things" represents a colourful spectrum of technologies, including HTTP, CoAP, lightweight M2M and OMA-DM. In his session, "M2M, IoT, device management: one protocol to rule them all," due to be presented at the Internet of Things Conference in September, Julien is Vermillard will present a series of pathways for navigating the protocol jungle. Here, he gives us a small taste of what to expect.


JAX: How did you become interested in IoT technology?
Vermillard: In a previous life I was developing accounting software. Boredom and curiosity drove me to start learning electronics and embedded software, so I switched to the industrial world - first SCADA, real-time audio streaming and then IoT/M2M for Sierra Wireless.
You're software engineer at Sierra Wireless. What are your main responsibilities there?
My day to day job is to implement various M2M/IoT protocols in the AirVantage M2M Cloud server https://airvantage.net : OMA-DM, LWM2M/CoAP, MQTT and a couple of proprietary ones are supported.
I have one hand in producing the server software, and another in the aforementioned activities. I code on a daily basis in Java, C and Go.
At IoTCon you will give an overview of different IoT protocols. Do you have something like a "favorite" protocol or one you are most familiar with?
I think my pet protocol is HTTP - it's very simple on the surface but is very complex in the details: how to compose your user-agent, get by-range, pipelining, websockets, HTTPS based security. For example, parsing it correctly can become a nightmare:  www.and.org/texts/server-http
Some find this protocol diversity pretty confusing. Does it require some kind of superpower to create a be-all-and-end-all protocol for a great range of use cases (as you call it, "one protocol to rule them all") or do you think eventually be some sort of unification?
There is a famous XKCD strip about standards: http://xkcd.com/927/ I think it summerizes the situation quite well.
One day, one of the competing standards will be dominating IoT space as HTTP dominate the web space (and HTTP is far from perfect), but for now M2M/IoT is more crippled by proprietary protocols than by too many open standards.
Ad-hoc proprietary protocols which are quite commons in the industrial space. If we want an open IoT we need to educate embedded software developers: maybe MQTT or CoAP is not the perfect technical solution for your application, but using open protocols is the only way to create the Internet of things. Only open standards will break the cloud silos.
MQTT now has a pretty big and active community around it. Why is this not the case with CoAP?
First CoAP is really young compared to MQTT. The industrial space tends to need years for accepting new protocols and specially the ones like CoAP proposing a paradigm shift.
It has a pretty active community but it's maybe not as visible as the MQTT one: the IETF CoRE group, the Open Mobile Alliance, ETSI/IPSO, the Contiki OS and everybody around 6LowPAN.
There was a heated blog debate about MQTT last week, started by Clemens Vasters who implemented it for the first time (vasters.com/clemensv/2014/06/02/MQTT+An+Implementers+Perspective.aspx). I'm interested in your take on this – is there some truth in what he says, or not?
There are some real concerns, but he misses the main point of the MQTT protocol: it's very simple to implement on the client side with a perfect retro-compatibility. Yes it's not easy to implement on the server side, but the reward is that it's a trivial matter to connect your device.
If you ask to IBM, 2lemetry or HiveMQ guys they will also prove you scalable MQTT brokers are a reality.
Probably less known is Lightweight M2M. You are currently working on an open source implementation. Can you briefly explain what use cases this protocol is best suited for?
It's very simple, it's a protocol for uniformly managing your fleet of things: configuring (ex you IP address, your security keys), upgrading (firmware, software) and monitoring (connectivity statistics,i board temperature).
Everything for you need to safely operate your next IoT application!
This story was originally published by JAXenter.

No comments:

Post a Comment