+
Device Management for OSGi IoT Gateways
Luca uca Dazi @ Eurotech Julien ien Vermi rmilla llard @ Sierra Wireless
+ 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
+
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 Demo Next Steps
+
Business Application
IoT Gateways
Revolution: Towards Real-time Actionable Data
MQTT Broker
+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+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
+Device Management
Which protocol?
Usual suspects TR-069 OMA-DM LwM2M Can we have a Device Management over the telemetry protocol?
Kura Case Study MQTT CoAP/LwM2M
+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
+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
+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]
+MQTT Request/Response
Responder (device1) Requester (manager1) Responder Subscribes on request topic: CTL/kura/device1/CONF-V1/GET/configurations
+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
+MQTT Request/Response
Responder (device1) Requester (manager1) Requester Sends MQTT request CTL/kura/device1/CONF-V1/GET/configurations
+MQTT Request/Response
Responder (device1) Requester (manager1) Responder Handles request and generates response using request specific parameters in the payload of the request
request payload
+MQTT Request/Response
Responder (device1) Requester (manager1) Responder Sends response to requesting client CTL/kura/manager1/CONF-V1/REPLY/1363603920892
+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
+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
+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
+
Open Mobile Alliance standard Device management on top of CoAP Object model: for D.M. or Applications
(IPSO)
OMA Lightweight M2M
+
Security Device Location Firmware Connectivity monitoring & management Lock & wipe
You can provide your own object to OMA
Standard Objects
+
/{object}/{instance}/{resource} Example: “/6/0” : get the whole GPS position instance “/6/0/2” : get only the altitude resource
URL Example
+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
+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, ......
+Demo
+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
Sign in: www.eclipsecon.org
Evaluate the sessions