developing iot endpoints with mbed client

29
© ARM 2016 Developing IoT endpoints with mbed Client Eric Yang / Staff Engineer / ARM ARM mbed Connect / Shenzhen, China December 5, 2016

Upload: nguyenkhanh

Post on 14-Feb-2017

228 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Developing IoT endpoints with mbed Client

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

Page 2: Developing IoT endpoints with mbed Client

© 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

Page 3: Developing IoT endpoints with mbed Client

© ARM 2016 3

Text 54pt sentence case mbed Client introduction

Page 4: Developing IoT endpoints with mbed Client

© 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

Page 5: Developing IoT endpoints with mbed Client

© 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

Page 6: Developing IoT endpoints with mbed Client

© ARM 2016 6

Text 54pt sentence case Connecting endpoints with mbed Client

Page 7: Developing IoT 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

Page 8: Developing IoT endpoints with mbed Client

© 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

Page 9: Developing IoT endpoints with mbed Client

© 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

Page 10: Developing IoT endpoints with mbed Client

© ARM 2016 10

Text 54pt sentence case Managing endpoints with mbed Client

Page 11: Developing IoT 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

Page 12: Developing IoT endpoints with mbed Client

© 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

Page 13: Developing IoT endpoints with mbed Client

© ARM 2016 14

Text 54pt sentence case Maintaining energy efficiency

Page 14: Developing IoT endpoints with mbed Client

© 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

Page 15: Developing IoT endpoints with mbed Client

© 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

Page 16: Developing IoT endpoints with mbed Client

© 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

Page 17: Developing IoT endpoints with mbed Client

© ARM 2016 20

Text 54pt sentence case End-to-end security with mbed Client

Page 18: Developing IoT endpoints 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

Page 19: Developing IoT endpoints with mbed Client

© 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

Page 20: Developing IoT endpoints with mbed Client

© ARM 2016 23

Text 54pt sentence case Porting mbed Client to endpoints

Page 21: Developing IoT endpoints with mbed Client

© 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

Page 22: Developing IoT endpoints with mbed Client

© ARM 2016 25

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Platform Abstraction Layer

mbed Client

mbed OS RTOS

Page 23: Developing IoT endpoints with mbed Client

© ARM 2016 26

Title 40pt sentence case

Bullets 24pt sentence case

Sub-bullets 20pt sentence case

Platform Abstraction Layer

New release

mbed OS RTOS

Page 24: Developing IoT endpoints with mbed Client

© 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

Page 25: Developing IoT endpoints with mbed Client

© 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

Page 26: Developing IoT endpoints with mbed Client

© ARM 2016 29

Text 54pt sentence case Summary

Page 27: Developing IoT endpoints with mbed Client

© 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

Page 28: Developing IoT endpoints with mbed Client

© 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

Page 29: Developing IoT endpoints with mbed Client

Thank You!