julien vermillard - sierra wireless eclipsecon france … engineer at sierra wireless, ... oil pump...

47
Eclipsecon France 2014 Julien Vermillard - Sierra Wireless

Upload: buitram

Post on 30-Apr-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

EclipseconFrance2014

JulienVermillard-SierraWireless

SoftwareEngineeratSierraWireless,implementingvariousprotocolsforAirVantagecloudservice

ApacheSoftwareFoundationmemberEclipsecommitteronCaliforniumandWakaama

M2M/IoTProtocols:MQTT,CoAP,XMPP

Devicemanagement:TR-069,OMA-DM,LWM2M

ImpactonIoTarchitectures

Mydefinition:

Largefleetofcloudconnecteddevicessolvingabusinessproblem

(Ex:oilpumpmonitoring,truckfleettracking)

Usualsuspects:

VerysimpleandlightprotocolontopofTCP

Goodfitforwirelessapplications

Publish/Subscribeparadigm

Websocketsupport

Centralized

Asensorpushestelemetryvaluesonsometopics:greenhouse/42/temperaturegreenhouse/42/humiditygreenhouse/42/luminosity

Actionsareonanothertopic:greenhouse/42/open-the-roof

Payloadformatisfree(json,binary,whatever..)

forclients(Java,C/C++,Python,Js,Go,Lua)

lightandfullfeaturebroker

Javabrokerwithwebsockets

Node.jsserverbridgingMQTT,HTTP,CoAP

M2MapplicationframeworkwithMQTTasdefaulttransport

Weallknowitornot...

Uselesstextheaders

Verbose

Polling

ConstrainedApplicationProtocol

InternetEng.TaskForcestandardforInternetofthings

Startedin2010!

RFC7252

Simpletoencode/decode:targets8bitMCU

UDPbased,targetslowpowerIPnetworks:6LowPAN

TwolevelofQoS:confirmablemessagesornot

RESTparadigmforthings:

coap://myhouse.local/lamps/7/status

HTTPlikeverbs: , , ,

Contentnegotiation

Webgoodies:butinacompactbinaryformat!

.0123

.01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver|T|TKL|Code|MessageID|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Token(ifany,TKLbytes)...

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Options(ifany)...

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|11111111|Payload(ifany)...

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

GETcoap://hostname/.well-know/core

Providesalistofallsupportedresources

</config/groups>;rt="core.gp";ct=39,rt="ucum.Cel";ct="04150";obs,

rt="block";sz=1280;title="Largeresource"

Observeforstreamingchangingvalues

Localgroupcommunication(multicast)

HTTP<=>CoAPproxy

WeblikeCaching

Resourcedirectory

AlltheWebmodelforIoT:WebofThings

:TLSonDatagram

WorkswithPSK(pre-share-key)orcertificatechains

Therealimplementationcomplexity

JavaCoapserverandclient(withDTLS)

again:)sinceit'sbridgingeverything

Definition:

Secure,monitor,managelargefleetof

deployeddevices

Configurethedevice

Updatethefirmware(andmaybetheapp)

Monitorandgatherconnectivitystatistics

youdon'tknowyetwhathardwarewillpoweryourIoTprojectsonthefield,

butyouMUSTbeabletododevicemanagementinaconsistentway

Usualsuspects:

TR-069

OMA-DM

LightweightM2M

SOAPAPIforbroadbandmodems

Yes

AnOpenMobileAlliancestandardforDeviceManagement

TargetsmobilephoneterminalsbutcanbeusedforM2M

Meanttobeusedbymobilenetworkoperators

Read,writeconfigurationormonitoringnodes

Triggerremotecommands(Exec)

FUMO:FirmwareUpdateManagementObject

SCOMO:SoftwareComponentManagementObject

HTTP/XMLbased,withabinaryXML(WBXML)encoding

Weirdphonefeaturesgetsintheway:everycommunicationthedevicegivesitslanguage(ex:EN_en)

BinarySMSforwakeupandbootstraping

HMACMD5:HTTPHeadersigningthepayload

UseHTTPSifyouneedconfidentiality

AnewOpenMobileAlliancestandard

AnOMA-DMsuccessorforM2Mtargets

BuiltontopofCoAP:

ReallylighterthanOMA-DMandTRS-069

Firmwareupgrades(inbandorthruhttp)

Devicemonitoringandconfiguration

Serverprovisioning(bootstraping)

SMScanbeusedforwaking-upthedevice.

OranyGET/POST/PUT/DELETE.

ThedevicecanreplybySMSorUDP(return-path).

DeviceServer

ConnectivitymonitoringConnectivitystatistics

LocationFirmware

Theobjectshaveanumericalidentifier.

/{object}/{instance}/{resource}

Examples:

"/6/0"thewholepositionobject(binaryrecord).

"/6/0/2"onlythealtitude.

Wakaama(exliblwm2m)

AClibraryforimplementingLWM2Minyourdevices.

Embeddedfriendly.

AJavabasedLWM2Mserverandlibrary.

BasedonCalifornium(Eclipse).

http://github.com/jvermillard/leshan

Devicemanagementisnotanoption:Everyprocessorandeveryapplicationneedtobeconfigured,upgradedand

monitored.

Eachprotocolmustbesecured.

Andsynchronized:Youcan’ttriggeranupdatewithaprotocol,whileyouare

rebootingthedeviceusinganother.

M2M/IoTisnotasimpleproblem.

Securityandprovisioningarereallythehardestones.

Tryhardtoreducethenumberofprotocolstomakeyourlifeeasier!

Timetochoose:o)

Everyprotocolisniceandspecialized?

CoAPwithLWM2Mprovidesefficientdevicemanagementandapplicationprotocol.

Itcanbetheonlyprotocolofyourdevice torulethemall!

Questions?

MoreQuestions?@vrmvrm

[email protected]