+ Device Management for OSGi IoT Gateways Luca uca Dazi @ - - PowerPoint PPT Presentation

device management for osgi iot gateways luca uca dazi
SMART_READER_LITE
LIVE PREVIEW

+ Device Management for OSGi IoT Gateways Luca uca Dazi @ - - PowerPoint PPT Presentation

+ Device Management for OSGi IoT Gateways Luca uca Dazi @ Eurotech Julien ien Vermi rmilla llard @ Sierra Wireless +Agenda Introduction to IoT Gateways and Kura Device Management for OSGi Which Protocols? MQTT LwM2M/CoAP


slide-1
SLIDE 1

+

Device Management for OSGi IoT Gateways

Luca uca Dazi @ Eurotech Julien ien Vermi rmilla llard @ Sierra Wireless

slide-2
SLIDE 2

+Agenda

 Introduction to IoT Gateways and Kura  Device Management for OSGi  Which Protocols?  MQTT  LwM2M/CoAP  Demo  Next Steps

slide-3
SLIDE 3

+

Business Application

IoT Gateways

Revolution: Towards Real-time Actionable Data

MQTT Broker

slide-4
SLIDE 4

+Eclipse Open IoT Stack for Java

Eclipse Kura

Java va SE 7 / 8 (OpenJ enJDK) OSGi Applic icat atio ion Contai ainer r (Ecl clip ipse se Equin inox, Conci cierge) Device Abstraction javax.comm Basic Gateway Services DB Service Clock Service Device Profile Watchdog Network Configuration Field Protocols Connectivity and Delivery Data Services MQTT Paho Administration GUI Applications Your Application Remote Management Configuration Management javax.usb w/ udev access Cloud Services Your Application Firewall, Port Forwarding Link Monitors Cellular, Wi-Fi, Ethernet GPS Position GPIO / SPI / I2C jdk.dio Modbus CANBus Custom Protocols Updates Management Remote Access Java HID APIs javax.bluetooth / BLE

...

Your Application
slide-5
SLIDE 5

+Device Management

 Manage the OSGi application software

 Remote OSGi Bundle Updates  Remote OSGi Service Configuration  Remote OSGi Control

 Management of the Device

 Firmware Updates  Monitor and Diagnostics  Remote Access

slide-6
SLIDE 6

+Device Management

Which protocol?

 Usual suspects  TR-069  OMA-DM  LwM2M  Can we have a Device Management over the telemetry protocol?

  • Single protocol
  • Single security
  • Simplified deployment
  • Simplified management

 Kura Case Study  MQTT  CoAP/LwM2M

slide-7
SLIDE 7

+M2M Integration Technologies

Message Queue Telemetry Transport (MQTT)

 M2M Messaging Protocol  Low Bandwidth / Low Power  2-way Communication  Publish and Subscribe  Hierarchical Topic Namespaces  Data Payload Agnostic  Device Initiated Connection  Firewall-friendly  SSL and Authenticated  Large ecosystem

slide-8
SLIDE 8

+Kura MQTT Topic Namespace

Introduction

 Data Topics

 Used for push of sensor data, metrics, or other data  Example: [account_id]/[client_id]/...

 Control Topics

 Used for dynamic request/response interactions between clients  Example: CTL/[account_id]/[client_id]/[app_id]/…

 Separate data from control topics

 Provides increased granularity on ACLs  Allows for segregation of persistent and transient data

slide-9
SLIDE 9

+Kura MQTT Resource Management

REST like

 Request

 CTL/[account_id]/[client_id]/[app_id]/GET/[resource_id]  CTL/[account_id]/[client_id]/[app_id]/POST/[resource_id]  CTL/[account_id]/[client_id]/[app_id]/PUT/[resource_id]  CTL/[account_id]/[client_id]/[app_id]/DEL

EL/[resource_id]

 CTL/[account_id]/[client_id]/[app_id]/EXEC

EC/[resource_id]

 Response

 CTL/[account_id]/[requester_client_id]/[app_id]/REPL

EPLY/ Y/[req_id]

slide-10
SLIDE 10

+MQTT Request/Response

Responder (device1) Requester (manager1) Responder Subscribes on request topic: CTL/kura/device1/CONF-V1/GET/configurations

slide-11
SLIDE 11

+MQTT Request/Response

Responder (device1) Requester (manager1) Requester Generates request metadata (for request payload): request_id: 1363603920892 request_client_id: manager1 Subscribes on reply topic: CTL/kura/manager1/CONF-V1/REPLY/1363603920892

slide-12
SLIDE 12

+MQTT Request/Response

Responder (device1) Requester (manager1) Requester Sends MQTT request CTL/kura/device1/CONF-V1/GET/configurations

slide-13
SLIDE 13

+MQTT Request/Response

Responder (device1) Requester (manager1) Responder Handles request and generates response using request specific parameters in the payload of the request

  • [request_id] and [request_client_id] included in

request payload

  • Manditory response code
  • Optional application specific parameters
  • Optional logs, exceptions, stacktraces, etc
slide-14
SLIDE 14

+MQTT Request/Response

Responder (device1) Requester (manager1) Responder Sends response to requesting client CTL/kura/manager1/CONF-V1/REPLY/1363603920892

slide-15
SLIDE 15

+MQTT Request / Response

Response Codes: HTTP Like

 response_code

 200 (RESPONSE_CODE_OK)  400 (RESPONSE_CODE_BAD_REQUEST)  404 (RESPONSE_CODE_NOTFOUND)  500 (RESPONSE_CODE_ERROR)

 response_exception_message

 Optional and contains error message if an error occurred

 response_stacktrace_message

 Optional and contains a stacktrace

slide-16
SLIDE 16

+Kura OSGi Management via MQTT

 Bundle management

 Retrieve Bundle information for installed bundles  Start/Stop currently installed bundles

 Deployment packages

 Install new deployment packages (collections of OSGi Bundles)  Update/Uninstall existing deployment packages

 Configuration Management

 Retrieve, review, update Service Configuration  Support OSGi MetaType service descriptors

 Remote Access

slide-17
SLIDE 17

+CoAP

 RESTful protocol designed from scratch IETF  Transparent mapping to HTTP:

 GET, POST, PUT, DELETE and URLs

 Features for M2M scenario (observe & sms)  Based on UDP, draft for using TCP

slide-18
SLIDE 18

+

Open Mobile Alliance standard Device management on top of CoAP Object model: for D.M. or Applications

(IPSO)

OMA Lightweight M2M

slide-19
SLIDE 19

+

Security Device Location Firmware Connectivity monitoring & management Lock & wipe

You can provide your own object to OMA

Standard Objects

slide-20
SLIDE 20

+

/{object}/{instance}/{resource} Example: “/6/0” : get the whole GPS position instance “/6/0/2” : get only the altitude resource

URL Example

slide-21
SLIDE 21

+LwM2M in Kura

Draft

Kura a Service vice LwM2M 2M Object ct System Service Device Position Service Location Kura Firmware Modem Monitor Connectivity Monitoring Cloud/Data/Transport Service (TBD) Connectivity Statistics Kura Deployment Package Software Management Kura Component Meta-Type Custom: Software Configuration Definition Kura Configurable Component Custom: Software Configuration Values

slide-22
SLIDE 22

+LwM2M Software Configuration

Kura Data Service Component LwM2M Objects

/90 – Custom Object for Kura Component /90/7 7 – LwM2M Object Instance /90/7/ 7/0 0 – String Resource (name) Data Servic vice /90/7/ 7/3 3 – Multiple String Resource (Value list) ‘false’,’60’,’10’, ... /91 – Custom Object for Kura Metatype Definitions

...

\ \ /91/20 20 – LwM2M Object Instance /91/20/ 20/0 0 – String Resource (id) disconnect. t.qui quiesce-ti time meout /91/18/ 18/2 2 – Integer Resource (type) 1 /90/7/ 7/4 4 – Multiple Integer Resource (AD list) 0x012, 012, 0x013, 013, 0x014, 014, ...

...

slide-23
SLIDE 23

+Demo

slide-24
SLIDE 24

+Next Steps

 https://github.com/eclipse/kura/tree/lwm2m  CoAP as alternative DataTransport in Kura  LwM2M over MQTT  Join the discussion:

 kura-dev mailing list  iot-dev mailing list

slide-25
SLIDE 25

+1 0 -1

Sign in: www.eclipsecon.org

Evaluate the sessions