developing iot endpoints with mbed client
TRANSCRIPT
Title 44pt sentence case
Affiliations 24pt sentence case
20pt sentence case
© ARM 2016
Developing IoT endpoints with mbed Client
Eric Yang / Staff Engineer / ARM
ARM mbed Connect / Shenzhen, China
December 5, 2016
© ARM 2016 2
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Agenda
ARM mbed Client introduction
Connecting endpoints with mbed Client
Managing endpoints with mbed Client
Maintaining energy efficiency
End-to-end security with mbed Client
Porting mbed Client to endpoints
Summary
© ARM 2016 3
Text 54pt sentence case mbed Client introduction
© ARM 2016 4
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed Client & mbed Connector
mbed Client is an implementation of the LWM2M client, and the mbed
Connector implements the LWM2M server
mbed Client communicates with mbed Connector via CoAP messages
mbed Connector interacts with Web services and apps using a REST API
© ARM 2016 5
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed Client scope
mbed Client is a portable embedded software library that links IoT devices with
mbed Device Connector, providing the infrastructure to connect endpoints
with cloud apps
mbed Client is provided free for IoT device manufacturers
A complete set of libraries
High level C++ API
Porting guidelines and examples
Apache 2.0 license
© ARM 2016 6
Text 54pt sentence case Connecting endpoints with mbed Client
© ARM 2016 7
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed Device Connector: Making IoT scale
mbed Device Connector eases development, management and scaling of IoT
Available at connector.mbed.com – easy transition to commercial service
providers
Build IoT Device Connect your devices Build application
with example code
© ARM 2016 8
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Bootstrapping IoT devices
Factory bootstrap according to OMA LWM2M standard
Create the keys in the webpage
Copy-and-paste them into the relevant file
Bootstrapping of devices enables to configure a secure channel between device
and mbed Device Connector
© ARM 2016 9
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
LWM2M data traffic
Turn any device into an endpoint
to use with mbed Device
Connector
Device initiated
IoT devices provide sensor readings
and configuration information, to a
cloud-based platform
Service initiated
Actuators receive instructions from
users routed via the cloud
infrastructure
© ARM 2016 10
Text 54pt sentence case Managing endpoints with mbed Client
© ARM 2016 11
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed Client interfaces for device management
mbed Client allows full control and monitor of endpoint and applications
Registration and deregistration
Register the Client and its Objects
Device management and service enablement
Server access to Object or Resource
Information reporting
Observe and get notifications of new Resource values
© ARM 2016 12
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Object and Resource model
Object & Resources can each can have
Instances
An Object is a collection of Resources
A Resource is an atomic piece of
information that can be read, written or
executed
Access control list (ACL) control access to
objects accessed by LWM2M Servers
©Sensinode 2013
© ARM 2016 14
Text 54pt sentence case Maintaining energy efficiency
© ARM 2016 15
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
IoT energy constraints
Power consumption is one of the key constraints for the IoT devices
Use battery or energy harvesting source for power which further constraints
hardware, software and the communication protocol usage
Important to keep the device in sleep mode when not sensing or
communicating data
© ARM 2016 17
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
From Web Applications to IoT Nodes
Web application
1000s of bytes
HTTP
IP
TLS / TCP
DTLS / UDP
Binary web object CoAP
IP
100s bytes 10s of bytes
IoT backhaul IoT node network
Proxy Router
Web object
DTLS / UDP
Binary web object CoAP
6LoWPAN
© ARM 2016 19
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Sleeping nodes & energy efficiency
Easy to interact with devices that are always connected
To save energy client registers to server in Queue Mode and goes offline
Server queues operations when client is asleep
Client uses the registration update message to inform server that it is awake
and ready to receive messages
Server conveys queued messages to client within a given time window
© ARM 2016 20
Text 54pt sentence case End-to-end security with mbed Client
© ARM 2016 21
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed Client security
LWM2M defines a strong security solution for authentication of the end points
and data channel protection
DTLS v1.2 security for all CoAP communication
mbed Client uses X.509 certificates to authenticate DTLS keys
Per Server and Object instance access control using ACL objects
Bootstrapping for complete provisioning and key management
© ARM 2016 22
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed TLS for mbed Client
mbed TLS makes it easy for developers to include cryptographic and TLS/DTLS
capabilities in their embedded products, with a minimal code footprint
mbed Client provides an API to set up entropy and RNG functions for the
underlying TLS to enhance robustness and security
Full API documentation available
Open Source under Apache 2.0 license at https://tls.mbed.org/
Suitable for use on Cortex-M and Cortex-A targets
© ARM 2016 23
Text 54pt sentence case Porting mbed Client to endpoints
© ARM 2016 24
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed Client scalability objectives
Enable management of all connected devices within a single management system
Support mbed Client porting across a wide spectrum of hardware platforms
and embedded operating systems of a very fragmented IoT market
Enable smooth and swift porting of mbed Client capabilities for ARM partners
© ARM 2016 25
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Platform Abstraction Layer
mbed Client
mbed OS RTOS
© ARM 2016 26
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Platform Abstraction Layer
New release
mbed OS RTOS
© ARM 2016 27
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Platform Abstraction Layer
Contain porting effort within a
single layer of platform
dependent interfaces, which
can be implemented by
partners
Platform
Abstraction
Layer
mbed OS RTOS
© ARM 2016 28
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed Client library
PAL interfaces include:
Threads
Synchronization objects
Kernel ticks, timers
Memory-pool
Message-queue
IP networking
Application and service integration
Custom Embedded Platform
(Metal/RTOS/Linux, Networking)
mbed Services Client Library mbed Client C++ API
Device Connector support
LWM2M
mbed TLS
PAL implementation
Custom Embedded Platform
(Metal/RTOS/Linux, Networking)
PAL implementation
Custom embedded platform
(mbed OS / RTOS / Linux)
PAL implementation
Platform Abstraction Layer
CoAP
© ARM 2016 29
Text 54pt sentence case Summary
© ARM 2016 30
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed Client
Connect Addressing the complexity of
reliably connecting high volumes
of diverse devices across
different networks
Management
Enabling scalability through
interoperability across the
supply chain
Productivity
Portable to any device
allowing management of all
connected devices on a single
system and fast time to market
Efficiency
Optimized for constrained
environments and sleepy
nodes
Security Trust through end-to-end
security, by providing
confidentiality, integrity and
authentication
© ARM 2016 31
Title 40pt sentence case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Useful links
mbed Client libraries, example code, and documentation
https://docs.mbed.com/docs/mbed-client-guide/en/latest/
mbed Client source code
https://github.com/ARMmbed/mbed-client/tree/master/source
mbed Client example:
https://github.com/ARMmbed/mbed-client-quickstart
ARM mbed developer site:
https://developer.mbed.org/
OMA LWM2M object & resource registry
http://technical.openmobilealliance.org/Technical/technical-information/omna/lightweight-
m2m-lwm2m-object-registry
Thank You!