0
M2M,IOT,DEVICEMANAGEMENT
COAPANDLIGHTWEIGHTM2M
TORULETHEMALL?
Eclipse Day Florence 2014
Julien Vermillard - Sierra Wireless
WHOAMI?
Software Engineer at Sierra Wireless,
implementing various protocols for AirVantage
cloud service
Apache Software ...
AGENDA
M2M/IoT Protocols:
MQTT, CoAP, XMPP
Device management:
TR-069, OMA-DM, LWM2M
Impact on IoT architectures
M2M/IOTAPPLICATIONS
My definition:
Large fleet of cloud connected devices solving a business
problem
(Ex: oil pump monitor...
VERSATILEPROTOCOLS
Usual suspects:
XMPP
MQTT
COAP
XMPP
CHATPROTOCOLBASEDONXML
RECYCLEDFORIOT
MQTELEMETRYTRANSPORT
Very simple and light protocol on top of TCP
Good fit for wireless applications
Publish/Subscribe par...
MQTT@ECLIPSEIOT
Paho: for clients (Java, C/C++, Python, Js, Go, Lua)
Mosquitto: light and full feature broker
Moquette: Ja...
MQTT@ECLIPSEIOT
Ponte: Node.js server bridging MQTT, HTTP, CoAP
Kura: M2M application framework with MQTT as default
trans...
COAP:
Constrained Application Protocol
Internet Eng. Task Force standard for Internet of things
Started in 2010!
Draft-18 ...
CO:CONSTRAINED
Simple to encode/decode: targets 8bit MCU
UDP based, targets low power IP networks:
6LowPAN
Two level of Qo...
COAP:RESTFULTHINGS!
REST paradigm for things:
coap://myhouse.local/lamps/7/status
HTTP like verbs: GET, POST, PUT, DELETE
...
CO:CONSTRAINED
.0 1 2 3
.01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
COAP:DISCOVERABILITY
GETcoap://hostname/.well-know/core
Provides a list of all supported resources
</config/groups>;rt="co...
COAP:BONUS
Observe for streaming changing values
Local group communication (multicast)
HTTP <=> CoAP proxy
Web like Cachin...
COAP:SECURITY
DTLS: TLS on Datagram
Works with PSK (pre-share-key) or full PKI
Here be dragons!
The real implementation co...
COAP@ECLIPSEIOT
Californium: Java Coap server and client (with
DTLS)
Ponte: again :) since it's bridging everything
DEVICEMANAGEMENT
Definition:
Secure, monitor, manage large fleet of
deployed devices
DEVICEMANAGEMENT
Configure the device
Update the firmware (and maybe the app)
Monitor and gather connectivity statistics
INTEROPERABILITYISTHEKEY
you don't know yet what hardware will power your IoT
projects on the field,
but you MUST be able ...
D.M.PROTOCOLS
Usual suspects:
TR-069
OMA-DM
Lightweight M2M
TRS-069
SOAP api for broadband modems
Yes SOAP!
OMA-DM
An Open Mobile Alliance standard for Device Management
Targets mobile phone terminals but can be used for M2M
Mean ...
OMA-DMFEATURES
Read, write configuration or monitoring nodes.
Trigger remote commands (Exec)
FUMO:
Firmware Update Managem...
OMA-DM
HTTP/XML based, with a binary XML (WBXML) encoding.
Weird phone features gets in the way: every
communication the d...
OMA-DMSECURITY
HMAC MD5: HTTP Header signing the payload
Use HTTPS if you need confidentiality
OMALIGHTWEIGHTM2M
A new Open Mobile Alliance standard
An OMA-DM successor for M2M targets
LWM2M:COAP
Built on top of CoAP:
Really lighter than OMA-DM and TRS-069.
LWM2MFEATURES
Firmware upgrades (in band or thru http)
Device monitoring and configuration
Server provisioning (bootstrapi...
LWM2MSMS
SMS can be used for waking-up the device.
Or any GET/POST/PUT/DELETE.
The device can reply by SMS or UDP (return-...
LWM2M:STANDARDSOBJECTS
Device
Server
Connectivity monitoring
Connectivity statistics
Location
Firmware
The objects have a ...
LWM2MTHEURLS
/{object}/{instance}/{resource}
Examples:
"/6/0" the whole position object (binary record).
"/6/0/2" only the...
LWM2M@ECLIPSEIOT
Wakaama (ex liblwm2m)
A C library for implementing LWM2M in your devices.
Embedded friendly.
MORELWM2MOPENSOURCE
A Java based LWM2M server and library.
Based on Californium (Eclipse).
http://github.com/jvermillard/l...
DM/APPSHOWEVERYTHINGFALL
INTOPLACE?
ARCHITECTUREOFYOUR
APPLICATION
AMOREREALISTIC
ARCHITECTURE
BUTINFACT...
PROTOCOLHELL
Device management is not an option:
Every processor and every application
need to be configured, upgraded and...
PROTOCOLHELL
Each protocol must be secured.
And synchronized:
You can’t trigger an update with a protocol, while you are
r...
PROTOCOL CONVERGENCE
M2M/IoT is not a simple problem.
Security and provisioning are really the
hardest ones.
Try hard to r...
ONEPROTOCOL?
THEREISNOPROTOCOLTO
RULETHEMALL?
Every protocol is nice and specialized?
ONEPROTOCOL?
CoAP with LWM2M provides efficient device management and
application protocol.
It can be the only protocol of...
THANKS!
Questions ?
More Questions?
@vrmvrm
jvermillard@sierrawireless.com
Upcoming SlideShare
Loading in...5
×

M2M, IOT, Device Managment: COAP/LWM2M to rule them all?

13,227

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’ll present common M2M use cases and why they usually require more than just one protocol ; we will also see whether CoAP associated with Lightweight M2M allows to forge “one protocol to rule them all”.

Published in: Technology, Education
2 Comments
87 Likes
Statistics
Notes
No Downloads
Views
Total Views
13,227
On Slideshare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
543
Comments
2
Likes
87
Embeds 0
No embeds

No notes for slide

Transcript of "M2M, IOT, Device Managment: COAP/LWM2M to rule them all?"

  1. 1. M2M,IOT,DEVICEMANAGEMENT COAPANDLIGHTWEIGHTM2M TORULETHEMALL? Eclipse Day Florence 2014 Julien Vermillard - Sierra Wireless
  2. 2. WHOAMI? Software Engineer at Sierra Wireless, implementing various protocols for AirVantage cloud service Apache Software Foundation member Eclipse committer on Californium and Wakaama
  3. 3. AGENDA M2M/IoT Protocols: MQTT, CoAP, XMPP Device management: TR-069, OMA-DM, LWM2M Impact on IoT architectures
  4. 4. M2M/IOTAPPLICATIONS My definition: Large fleet of cloud connected devices solving a business problem (Ex: oil pump monitoring, truck fleet tracking)
  5. 5. VERSATILEPROTOCOLS Usual suspects: XMPP MQTT COAP
  6. 6. XMPP CHATPROTOCOLBASEDONXML RECYCLEDFORIOT
  7. 7. MQTELEMETRYTRANSPORT Very simple and light protocol on top of TCP Good fit for wireless applications Publish/Subscribe paradigm Websocket support Centralized, content agnostic
  8. 8. MQTT@ECLIPSEIOT Paho: for clients (Java, C/C++, Python, Js, Go, Lua) Mosquitto: light and full feature broker Moquette: Java broker with websockets
  9. 9. MQTT@ECLIPSEIOT Ponte: Node.js server bridging MQTT, HTTP, CoAP Kura: M2M application framework with MQTT as default transport
  10. 10. COAP: Constrained Application Protocol Internet Eng. Task Force standard for Internet of things Started in 2010! Draft-18 is the final one
  11. 11. CO:CONSTRAINED Simple to encode/decode: targets 8bit MCU UDP based, targets low power IP networks: 6LowPAN Two level of QoS: confirmable messages or not
  12. 12. COAP:RESTFULTHINGS! REST paradigm for things: coap://myhouse.local/lamps/7/status HTTP like verbs: GET, POST, PUT, DELETE Content negotiation Web goodies: but in a compact binary format!
  13. 13. CO:CONSTRAINED .0 1 2 3 .01234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver|T| TKL | Code | MessageID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Token(ifany,TKLbytes)... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options(ifany)... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |11111111| Payload(ifany)... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  14. 14. COAP:DISCOVERABILITY GETcoap://hostname/.well-know/core Provides a list of all supported resources </config/groups>;rt="core.gp";ct=39, rt="ucum.Cel";ct="04150";obs, rt="block";sz=1280;title="Largeresource" </sensors/temperature>; </large>;
  15. 15. COAP:BONUS Observe for streaming changing values Local group communication (multicast) HTTP <=> CoAP proxy Web like Caching Resource directory All the Web model for IoT!
  16. 16. COAP:SECURITY DTLS: TLS on Datagram Works with PSK (pre-share-key) or full PKI Here be dragons! The real implementation complexity
  17. 17. COAP@ECLIPSEIOT Californium: Java Coap server and client (with DTLS) Ponte: again :) since it's bridging everything
  18. 18. DEVICEMANAGEMENT Definition: Secure, monitor, manage large fleet of deployed devices
  19. 19. DEVICEMANAGEMENT Configure the device Update the firmware (and maybe the app) Monitor and gather connectivity statistics
  20. 20. INTEROPERABILITYISTHEKEY you don't know yet what hardware will power your IoT projects on the field, but you MUST be able to do device management in a consistent way
  21. 21. D.M.PROTOCOLS Usual suspects: TR-069 OMA-DM Lightweight M2M
  22. 22. TRS-069 SOAP api for broadband modems Yes SOAP!
  23. 23. OMA-DM An Open Mobile Alliance standard for Device Management Targets mobile phone terminals but can be used for M2M Mean to be used by mobile network operators.
  24. 24. OMA-DMFEATURES Read, write configuration or monitoring nodes. Trigger remote commands (Exec) FUMO: Firmware Update Management Object SCOMO: Software Component Management Object
  25. 25. OMA-DM 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. OMA-DMSECURITY HMAC MD5: HTTP Header signing the payload Use HTTPS if you need confidentiality
  27. 27. OMALIGHTWEIGHTM2M A new Open Mobile Alliance standard An OMA-DM successor for M2M targets
  28. 28. LWM2M:COAP Built on top of CoAP: Really lighter than OMA-DM and TRS-069.
  29. 29. LWM2MFEATURES Firmware upgrades (in band or thru http) Device monitoring and configuration Server provisioning (bootstraping)
  30. 30. LWM2MSMS SMS can be used for waking-up the device. Or any GET/POST/PUT/DELETE. The device can reply by SMS or UDP (return-path).
  31. 31. LWM2M:STANDARDSOBJECTS Device Server Connectivity monitoring Connectivity statistics Location Firmware The objects have a numerical identifier.
  32. 32. LWM2MTHEURLS /{object}/{instance}/{resource} Examples: "/6/0" the whole position object (binary record). "/6/0/2" only the altitude.
  33. 33. LWM2M@ECLIPSEIOT Wakaama (ex liblwm2m) A C library for implementing LWM2M in your devices. Embedded friendly.
  34. 34. MORELWM2MOPENSOURCE A Java based LWM2M server and library. Based on Californium (Eclipse). http://github.com/jvermillard/leshan
  35. 35. DM/APPSHOWEVERYTHINGFALL INTOPLACE?
  36. 36. ARCHITECTUREOFYOUR APPLICATION
  37. 37. AMOREREALISTIC ARCHITECTURE
  38. 38. BUTINFACT...
  39. 39. PROTOCOLHELL Device management is not an option: Every processor and every application need to be configured, upgraded and monitored.
  40. 40. PROTOCOLHELL 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. PROTOCOL CONVERGENCE 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. ONEPROTOCOL?
  43. 43. THEREISNOPROTOCOLTO RULETHEMALL? Every protocol is nice and specialized?
  44. 44. ONEPROTOCOL? CoAP with LWM2M provides efficient device management and application protocol. It can be the only protocol of your device to rule them all!
  45. 45. THANKS! Questions ? More Questions? @vrmvrm jvermillard@sierrawireless.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×