SlideShare une entreprise Scribd logo
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 Foundation member
Eclipse committer on Californium and Wakaama
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 monitoring, truck fleet tracking)
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 paradigm
Websocket support
Centralized, content agnostic
MQTT@ECLIPSEIOT
Paho: for clients (Java, C/C++, Python, Js, Go, Lua)
Mosquitto: light and full feature broker
Moquette: Java broker with websockets
MQTT@ECLIPSEIOT
Ponte: Node.js server bridging MQTT, HTTP, CoAP
Kura: M2M application framework with MQTT as default
transport
COAP:
Constrained Application Protocol
Internet Eng. Task Force standard for Internet of things
Started in 2010!
Draft-18 is the final one
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
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!
CO:CONSTRAINED
.0 1 2 3
.01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver|T| TKL | Code | MessageID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Token(ifany,TKLbytes)...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options(ifany)...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|11111111| Payload(ifany)...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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>;
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!
COAP:SECURITY
DTLS: TLS on Datagram
Works with PSK (pre-share-key) or full PKI
Here be dragons!
The real implementation complexity
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 to do device management in a
consistent way
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 to be used by mobile network operators.
OMA-DMFEATURES
Read, write configuration or monitoring nodes.
Trigger remote commands (Exec)
FUMO:
Firmware Update Management Object
SCOMO:
Software Component Management Object
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.
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 (bootstraping)
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).
LWM2M:STANDARDSOBJECTS
Device
Server
Connectivity monitoring
Connectivity statistics
Location
Firmware
The objects have a numerical identifier.
LWM2MTHEURLS
/{object}/{instance}/{resource}
Examples:
"/6/0" the whole position object (binary record).
"/6/0/2" only the altitude.
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/leshan
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
monitored.
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.
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!
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 your device to rule them all!
THANKS!
Questions ?
More Questions?
@vrmvrm
jvermillard@sierrawireless.com

Contenu connexe

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