31
IoTivity Big Picture MyeongGi Jeong 2016.11.17 Software R&D Center

IoTivity Big Picture - soscon.net · - IoTivity supports UDP unicast discovery also, ... - Tizen Wi-Fi, BLE and BT ... - Credential(Key)/ACL Provisioning Resource Access over DTLS

  • Upload
    hadan

  • View
    230

  • Download
    3

Embed Size (px)

Citation preview

IoTivity Big Picture

MyeongGi Jeong

2016.11.17

Software R&D Center

Copyright ⓒ 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED

Contents

• Overview

• Features

– Messaging

– Security

– Service

• Q&A

Copyright ⓒ 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED

Overview

• IoTivity ? OCF ?

• Conceptual Framework

• Protocols

• Resources and Structures

Overview | IoTivity ?? OCF ??

Governance Structure

OCF

Board Of Directors

Core Technology WG

Open Source WG

Data Model Review Board

Certification

Security WG

Strategy

.

.

IoTivity Open Source Project

Steering Group

Projects

Functions

Sponsored by OCF

Develops reference implementation of OCF standard

Coordination

Overview | Conceptual Framework

Overview | Protocols

Get

What’s your Status?

I’m Off.

Set

Set your Status to On

OK.

Subscribe

Tell me when your Status changes

My Status is now On

Overview | Resources and Structures

Overview | Resources and Structures examples (1)

Light

Overview | Resources and Structures examples (2)

Garage

Copyright ⓒ 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED

Features

• Discovery

• Messaging

• Security

• Cloud Interface

• Resource Encapsulation

• Resource Container

• Notification

• Device Management

• Proxy

• Tools

Features | Components (1/2)

IoTivity v1.2 Released ( 2016. 11. 1, http://www.iotivity.org )

Component ( Base Layer ) Feature 설명

Discovery Multicast Discovery, Device Presence Discover Resource, check device presence

Resource Introspection Resource type/property management

Resource Directory DNS service for Resource

Messaging CoAP Messaging Transmit messages between devices

Block-wise Transfer Block data transfer (more than 1KB data)

Connectivity Abstraction Wi-Fi, BLE, BT abstraction with CoAP

Cloud Interface CoAP/TCP, OAuth, Account, Pub/Sub

Message switching Routing thru hetero-connectivity devices

Connection management Automatic connection management (BLE)

Security DTLS/TLS Secure data channel with encryption

Security Resource Manager Access control(CRUD), Key Management

Security Provisioning Manager Transmit credential for authentication

Features | Components (2/2)

Component ( Service Layer ) Feature 설명

Resource Encapsulation Active Discovery, Broker Dynamic Resource discovery/monitoring

Cache, Server Builder Resource data Pre-fetch with Getter/Setter API

Resource Container Bundle Loader Dynamic loading of Resource server

Configuration file Lifecycle configuration of Resource server

Device Management Scene Manager Set the devices to specific attribute values

Multi-PHY Easy Setup Network setting with mobile device help

Notification Multi Platform Noti. Forwarding Status message transmission ( Provider Consumer )

Notification Synchronizing Noti. message status synchronization

Proxy CoAP-HTTP proxing

Allows to access webserver resource information for constrained devices

Tool Simulator Virtual resource server/client Simulator (Tool)

Features | Architecture

Base Layer

Service Layer Cloud Interface

Discovery

Resource Introspection

Multicast Discovery

Resource Directory

Messaging

Connectivity Abstraction

Resource Presence

Message Switching

Cloud Interface

CoAP Messaging

Blockwise Transfer

Security

Provisioning Manager

DTLS/TLS SRM

Resource Encapsulation

Resource Broker

Resource Cache

Active Discovery

Resource Builder

Resource Container

Configure Bundle Loader

Device Management

Scene Manager

Easy Setup

Notification

Consumer Provider

Tool

Simulator

Discovery

Resource Directory

Device Presence

Security

Group

Access Control

Account

Messaging

CoAP TCP/TLS

Broker ( Pub/Sub )

IoTivity v1.2

Proxy

CoAP-HTTP

Features | Discovery

[ Figure 3 ] Advertise/Scan over BLE/BT

OCF Server

OCF Client

advertise OCF service

scan OCF service

response “/a/heartbeat”

find resource “/oic/res”

[ Figure 1 ] Multicast announce over Wi-Fi / Ethernet

OCF Server

OCF Client

advertise resource “/oic/ad”

multicast listen

[ port 5683 ]

[ Figure 2 ] Multicast/Unicast over WiFi / Ethernet

OCF Server

OCF Client

multicast listen

find resource “/oic/res”

[ port 5683 ]

unicast response “/a/light”

Wi-Fi and Ethernet

- IoTivity supports UDP multicast discovery using the CoAP

dedicated port number.

• IANA reserved the port number 5683 for CoAP multicast.

( 5684 for DTLS-secured )

- IoTivity supports UDP unicast discovery also, using known

IP and port number of OIC server.

BLE and Bluetooth

- IoTivity supports BLE/Bluetooth discovery using OIC

specific service UUID.

- Physical connection should be required before

resource discovery.

CoAP IANA

Constrained Application Protocol Internet Assigned Numbers Authority

Features | CoAP Messaging

Constrained Application Protocol ( CoAP )

• IETF Standard, RFC 7252, The Constrained Application Protocol

• A specialized web transfer protocol for use with constrained nodes and constrained network.

• Designed for machine-to-machine application

• A ( piggyback style ) request/response interaction between application endpoint

Features | Block-wise Transfer

Blockwise transfer in CoAP

• Basic CoAP messages work well for the small payloads.

• However, applications will need to transfer larger payloads, for instance, for firmware updates.

• Although UDP supports larger payloads through IP fragmentation, it is limited to 64 KB and,

more importantly, doesn't really work well for constrained applications and networks.

• Instead of relying on IP fragmentation, this specification extends basic CoAP with a pair of

"Block" options, for transferring multiple blocks of information in multiple request-response pairs.

• Reference : https://tools.ietf.org/html/rfc7959

https://wiki.iotivity.org/block-wise_transfer

Features | Connectivity Abstraction

CA Control Component

- Target network selection and interface control and monitoring

- CoAP message serialization and parsing

- Block-wise messaging flow control

Transport Adapter Component

- Data transmission over UDP, TCP, BLE( GATT ), BT( SPP ) and NFC

- Secure data exchanging using DTLS

Platform Adapter Component

- Wi-Fi, Ethernet and BLE

- Android Wi-Fi, BLE and BT

- Tizen Wi-Fi, BLE and BT

- Arduino Wi-Fi, Ethernet and BLE

Features | Resource Directory

① Publishes resources to Resource Directory

[ Device 1 ]

[ Device 4 ]

[ Device 2 ]

② Device 2 hosts RD and responds on behalf of device 1 & 4.

③ Multicast query request

④ Unicast response by device 2 with resources of 1, 2 and 4.

[ Device 3 ]

Concept

Features | Cloud Interface

Messaging CoAP over TCP and TLS

Discovery Resource Directory

Authentication OAuth over CoAP

Pub/Sub CoAP PUB-SUB

Features | Message Switching

Features | Security overview

Resource Server

(Provisioned)

Client (Provisioned)

Provisioning Manager

(Admin Device)

- Ownership Transfer - Credential(Key)/ACL Provisioning

Resource Access over DTLS

- Ownership Transfer - Credential(Key) Provisioning

Client (Un-Provisioned)

Access Denied X

Security Provisioning Manager (Admin Device)

- OIC device initial registration, management of secure

information (Credential, Access Control Policy)

Secure Resource Manager

- Access Control, Secure Resource Management

Features | Security Provisioning Manager

Architecture Functions

• Ownership Transfer

OIC device initial registration.

Administrator authentication,

configuration of access control

• Security Management of Device

Setting the credential for mutual authentication

and access policy into resource server.

Issued credential management.

Status check of connected devices for mutual

authentication

DTLS modules, etc. DTLS modules, etc.

Connectivity Abstraction (CA) layer

Secure Resource Manager (SRM) layer

Resource Introspection (RI) layer

DTLS modules, etc.

Provisioning Manager (PM)

Ownership Transfer Manager (OTM)

Secure Resource Provider (SRP)

Provisioning Database Manager

Provisioning Database

The red dashed line outlines the subjects of this Design specification

PM C API

Features | Secure Resource Manager

Architecture

DTLS modules, etc.

DTLS modules, etc.

Connectivity Abstraction (CA) layer

Resource Introspection (RI) layer

DTLS modules, etc.

Secure Resource Manager (SRM)

Resource Manager (RM)

Policy Engine (PE)

Persistent Storage Interface (PSI)

Secure Virtual

Database

The red dashed line outlines the subjects of this Design specification

Functions

• Access Control

Accept or Deny the Request according to the

authority by check the permission for

GET/PUT/POST/DELETE request

• Secure Resource Management

Handling Credential and ACL received from

Provisioning Manager (Save and load in SVR DB)

Secure Resources Management for

Ownership Transfer

Features | Resource Encapsulation

Architecture Functions

• Resource Broker

. Remote Resource Presence check regardless of

remote server supporting presence feature.

. Provide consistent reachability management for

discovered resource of interest.

• Resource Cache

. Maintains last information of Remote Resource

regardless of Remote Server is observable

. Data Centric API

: Send/Recv Message Getter/Setter, Data Cache

• Server Builder

. Att. setter to provide easy way to

create resource.

. Monitors value of attributes so that

notify-back for observation

autonomously whenever attribute

has changed

IoTivity Base Layer API (C/C++)

Resource Client Wrapper

Discovery Manager

Resource Broker

Resource encapsulation API

Resource Server Builder Resource

Cache

Features | Resource Container

Architecture

Resource Container

ProtocolBridgeBundle.so

Bundle Activator

ProtocolBridge Resource 1

ProtocolBridge Resource 2

ProtocolBridge Connector

ProtocolBridge Resource n

ProtocolBridgeBundle.jar SoftSensorBundle.jar

Bundle Activator

SoftSensor Resource 1

SoftSensor Resource 2

SoftSensor Resource n

Resource instance1

Resource instance2

Bundle Activator

ProtocolBridge Resource 1

ProtocolBridge Resource 2

ProtocolBridge Connector

ProtocolBridge Resource n

ResourceContainerBundleAPI Reso

urc

eConta

iner

API Resource

instance3 PrimResServer

config.xm

l

1. startContainer (config.xml)

2. load with dlopen() 3. activate bundle

4. retrieve resource configuration

5. register bundle resources

6. create resource servers

Tech

nolo

gy

Adapte

r

IoTiv

ity

Bridge

Features | Scene Manager

Features | Notification Service

Service | CoAP-HTTP Proxy

Way to interact with resource on HTTP Servers

Compliance to OCF resource model with ability to support both OCF and Vendor Specific resources exposed by HTTP servers.

Base Layer

Resource Introspection

Messaging Discovery

Connectivity Abstraction

Security

IoTivity Base API

CoAP-HTTP Proxy

CoAP – HTTP Mapping libcurl HTTP Parser

CoAP Request - HTTP Response Handler

Implemented as primitive services in IoTivity.

Use LibCurl open source library for HTTP/HTTPS between proxy and webservers

Use CoAP specifations proxy header

options to compliance with standards

Use-case Architecture

Features | Simulator

Reference sites :

http://www.iotivity.org

http://wiki.iotivity.org

http://gerrit.iotivity.org

http://jira.iotivity.org

http://openconnectivity.org

Developer mailing list :

[email protected]

How can I become the IoTivitier ?

Copyright ⓒ 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED

Q & A