Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Julien Vermillard, Sierra Wireless
M2M, IoT, DEVICE MANAGEMENT:
ONE PROTOCOL TO RULE THEM
ALL?
Software Engineer at Sierra Wireless,
implementing various protocols for AirVantage
cloud service.
Apache Software Foundat...
M2M/IoT protocols:
MQTT and CoAP
Device management:
TR-069, OMA-DM, LWM2M
Application + DM => Protocol hell.
My definition:
Large fleet of cloud connected devices solving
a business problem.
(Ex: oil pump monitoring, truck fleet tr...
Usual suspects:
MQTT
CoAP
XMPP
Very simple and light protocol on top of TCP.
Good fit for wireless applications.
Publish/Subscribe paradigm.
Websocket su...
On the wire messages:
- connect (with or without authentication)
- publish/puback
- subscribe/suback
- ping/pingack for ke...
0 = fire and forget
1 = at least once
2 = exactly one time delivery
- a sensor pushes telemetry values on some
topics
greenhouse/42/temperature
greenhouse/42/humidity
greenhouse/42/luminosit...
Uses SSL/TLS on top of the TCP stream.
Pre-shared key encryption is supported.
MQTT for Sensor Networks
A lighter MQTT for low bandwidth, high failure
networks (Can use UDP/IP or plain Zigbee)
Security...
Paho for clients Java, C/C++, Python, Js, Go, Lua ...
Mosquitto feature full broker.
Ponte: Node.js server bridging MQTT, ...
Internet Eng. Task Force standard
for Internet of Things.
Started in 2010!
Draft-18 is the final one.
Simple to encode: targets 8 bits MCU.
UDP based, targets low power IP networks.
Two level of QoS: confirmable message or n...
REST paradigm for things:
URI: coap://hostname/lamps/12/status
HTTP like verbs:
- GET for reads
- POST, PUT, DELETE for mu...
.0 1 2 3
.0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
GET coap://hostname/.well-known/core
Provides a list of all supported resources!
DTLS (TLS on UDP Datagrams)
Pre-shared key or not
DTLS is not really light :(
Californium: Java CoAP server and client
Ponte
Definition:
Secure, monitor, manage fleet of deployed devices.
Configure the device.
Update the firmware (and maybe the app)
Monitor and gather connectivity statistics.
Usual suspects:
TR-069
OMA-DM
Lightweight M2M
Goals: provide an application agnostic way to
manage fleets of devices.
An Open Mobile Alliance standard for Device
Management.
Targets mobile phone terminals but can be used
for M2M devices.
Me...
Read, write configuration or monitoring nodes.
Trigger remote commands (Exec)
FUMO:
Firmware Update Management Object
SCOM...
HTTP/XML based, with a binary XML (WBXML)
encoding.
Weird phone features gets in the way: every
communication the device g...
HMAC MD5: HTTP Header signing the payload
Use HTTPS if you need confidentiality
A new Open Mobile Alliance standard
An OMA-DM successor for M2M targets
Built on top of CoAP:
Really lighter than OMA-DM or TRS-069.
Firmware upgrades (in band or thru http)
Device monitoring and configuration
Server provisioning (bootstraping)
SMS can be used for waking-up the device.
Or for any GET/POST/PUT!
Device
Server
Connectivity monitoring
Connectivity statistics
Location
Firmware
The objects have a numerical identifier.
URLs:
/{object}/{instance}/{resource}
Ex:
/6/0 = whole position object (binary TLV)
/6/0/2 = only the altitude value
Wakaama (ex liblwm2m):
A C library for implementing LWM2M in your
devices.
Leshan:
A Java based LWM2M server.
Based on Californium (Eclipse).
http://github.com/jvermillard/leshan
Cloud serversEmbedded
Application
Cloud serversEmbedded
Application
MQTT or CoAP
for fun and profits!
Cloud servers
MQTT or
CoAP
OMA-DM
Application
Supervisor
O/S
Cloud servers
Radio module
2G/3G/LTE
ZigBee/6LowPan
WiFi, etc..
App1
App2
App3
Supervisor
Low power
App
OMA-DM
MQTT/CoAP
O...
Every processor and every application need to be
configured, upgraded and monitored.
Device management is not an option!
Each protocol must be secured.
And synchronized:
You can’t trigger an update with a protocol, while
you are rebooting the ...
M2M/IoT is not a simple problem.
Security and provisioning are really the hardest
ones.
Try hard to reduce the number of p...
CoAP with LWM2M can provide a light device
management and application protocol to rule
them all!
But CoAP is still a newco...
Creative Commons – Attribution (CC BY 3.0)
Microchip designed by Nicolò Bertoncin from the Noun Project
Cloud designed by ...
M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014
Upcoming SlideShare
Loading in …5
×

M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014

22,067 views

Published on

M2M is rapidly growing and since its early days different "standard" protocols have emerged (e.g. OMA-DM, TR-069, MQTT, ...) or are emerging (e.g. CoAP or Lightweight M2M).
Understanding which protocol to use for which application can be intimidating, therefore we propose to give an overview of these protocols to help you understand their goals and characteristics. We will give a status of the availaible open source implementations in the Eclipse M2M ecosystem, with projects such as Paho, Mihini and Ponte.

We'll present common M2M use cases and why they usually require more than just one protocol, and discuss whether the current portfolio of available M2M protocols possibly allows to forge "one protocol to rule them all".

Published in: Technology
  • Thanks a lot Julien! Excellent slide deck.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • fantastic slide.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

M2M, IoT, Device management: one protocol to rule them all? - EclipseCon 2014

  1. 1. Julien Vermillard, Sierra Wireless M2M, IoT, DEVICE MANAGEMENT: ONE PROTOCOL TO RULE THEM ALL?
  2. 2. Software Engineer at Sierra Wireless, implementing various protocols for AirVantage cloud service. Apache Software Foundation member. Initial Eclipse committer on Californium and Wakaama. Disclaimer: opinions expressed are mine :o)
  3. 3. M2M/IoT protocols: MQTT and CoAP Device management: TR-069, OMA-DM, LWM2M Application + DM => Protocol hell.
  4. 4. My definition: Large fleet of cloud connected devices solving a business problem. (Ex: oil pump monitoring, truck fleet tracking)
  5. 5. Usual suspects: MQTT CoAP XMPP
  6. 6. Very simple and light protocol on top of TCP. Good fit for wireless applications. Publish/Subscribe paradigm. Websocket support.
  7. 7. On the wire messages: - connect (with or without authentication) - publish/puback - subscribe/suback - ping/pingack for keepalive - disconnect And voilà!
  8. 8. 0 = fire and forget 1 = at least once 2 = exactly one time delivery
  9. 9. - a sensor pushes telemetry values on some topics greenhouse/42/temperature greenhouse/42/humidity greenhouse/42/luminosity - actions are on another topic greenhouse/42/open-the-roof - payload format is free (json,binary,whatever..)
  10. 10. Uses SSL/TLS on top of the TCP stream. Pre-shared key encryption is supported.
  11. 11. MQTT for Sensor Networks A lighter MQTT for low bandwidth, high failure networks (Can use UDP/IP or plain Zigbee) Security should be provided by the network (forget plain Internet!)
  12. 12. Paho for clients Java, C/C++, Python, Js, Go, Lua ... Mosquitto feature full broker. Ponte: Node.js server bridging MQTT, HTTP and CoAP. Kura: M2M application framework with MQTT as default transport
  13. 13. Internet Eng. Task Force standard for Internet of Things. Started in 2010! Draft-18 is the final one.
  14. 14. Simple to encode: targets 8 bits MCU. UDP based, targets low power IP networks. Two level of QoS: confirmable message or not. Simple observation mechanism.
  15. 15. REST paradigm for things: URI: coap://hostname/lamps/12/status HTTP like verbs: - GET for reads - POST, PUT, DELETE for mutation But in a compact binary datagram.
  16. 16. .0 1 2 3 .0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver| T | TKL | Code | Message ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Token (if any, TKL bytes) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options (if any) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1 1 1 1 1 1 1 1| Payload (if any) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  17. 17. GET coap://hostname/.well-known/core Provides a list of all supported resources!
  18. 18. DTLS (TLS on UDP Datagrams) Pre-shared key or not DTLS is not really light :(
  19. 19. Californium: Java CoAP server and client Ponte
  20. 20. Definition: Secure, monitor, manage fleet of deployed devices.
  21. 21. Configure the device. Update the firmware (and maybe the app) Monitor and gather connectivity statistics.
  22. 22. Usual suspects: TR-069 OMA-DM Lightweight M2M Goals: provide an application agnostic way to manage fleets of devices.
  23. 23. An Open Mobile Alliance standard for Device Management. Targets mobile phone terminals but can be used for M2M devices. Mean to be used by mobile network operators.
  24. 24. Read, write configuration or monitoring nodes. Trigger remote commands (Exec) FUMO: Firmware Update Management Object SCOMO: Software Component Management Object
  25. 25. HTTP/XML based, with a binary XML (WBXML) encoding. Weird phone features gets in the way: every communication the device gives its language (ex: EN_en) Binary SMS for wakeup and bootstraping.
  26. 26. HMAC MD5: HTTP Header signing the payload Use HTTPS if you need confidentiality
  27. 27. A new Open Mobile Alliance standard An OMA-DM successor for M2M targets
  28. 28. Built on top of CoAP: Really lighter than OMA-DM or TRS-069.
  29. 29. Firmware upgrades (in band or thru http) Device monitoring and configuration Server provisioning (bootstraping)
  30. 30. SMS can be used for waking-up the device. Or for any GET/POST/PUT!
  31. 31. Device Server Connectivity monitoring Connectivity statistics Location Firmware The objects have a numerical identifier.
  32. 32. URLs: /{object}/{instance}/{resource} Ex: /6/0 = whole position object (binary TLV) /6/0/2 = only the altitude value
  33. 33. Wakaama (ex liblwm2m): A C library for implementing LWM2M in your devices.
  34. 34. Leshan: A Java based LWM2M server. Based on Californium (Eclipse). http://github.com/jvermillard/leshan
  35. 35. Cloud serversEmbedded Application
  36. 36. Cloud serversEmbedded Application MQTT or CoAP for fun and profits!
  37. 37. Cloud servers MQTT or CoAP OMA-DM Application Supervisor O/S
  38. 38. Cloud servers Radio module 2G/3G/LTE ZigBee/6LowPan WiFi, etc.. App1 App2 App3 Supervisor Low power App OMA-DM MQTT/CoAP OMA-DM Ad-hoc Linux O/S OMA-DM Network Operator
  39. 39. Every processor and every application need to be configured, upgraded and monitored. Device management is not an option!
  40. 40. Each protocol must be secured. And synchronized: You can’t trigger an update with a protocol, while you are rebooting the device using another.
  41. 41. M2M/IoT is not a simple problem. Security and provisioning are really the hardest ones. Try hard to reduce the number of protocols to make your life easier!
  42. 42. CoAP with LWM2M can provide a light device management and application protocol to rule them all! But CoAP is still a newcomer in the field and not a one size fits all solution. Let’s specify device management on top of MQTT!
  43. 43. Creative Commons – Attribution (CC BY 3.0) Microchip designed by Nicolò Bertoncin from the Noun Project Cloud designed by James Fenton from the Noun Project Secure by Charlene Chen from The Noun Project Chat by Icomatic from The Noun Project Microchip designed by Mario Verduzco from the Noun Project Certificate designed by Charlene Chen from the Noun Project Twitter: @vrmvrm E-mail: jvermillard@sierrawireless.com

×