PC I Wi-Fi Wi-Fi ñS3/Wi-Fi TOUCH E ROTALIGN@TOUCH 0—5-34 Y ...
IoTivity Big Picture · 2019-08-08 · - Tizen Wi-Fi, BLE and BT - Arduino Wi-Fi, ... -...
Transcript of IoTivity Big Picture · 2019-08-08 · - Tizen Wi-Fi, BLE and BT - Arduino Wi-Fi, ... -...
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 :
How can I become the IoTivitier ?
Copyright ⓒ 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED
Q & A