IoTivity Big Picture MyeongGi Jeong 2016.11.17 Software R&D Center
Contents Overview Features Messaging Security Service Q&A Copyright c 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED
Overview IoTivity? OCF? Conceptual Framework Protocols Resources and Structures Copyright c 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED
Overview IoTivity?? OCF?? Governance Structure OCF Board Of Directors Core Technology WG Open Source WG Security WG Certification Strategy Data Model Review Board.. Coordination IoTivity Open Source Project Steering Group Projects Functions Sponsored by OCF Develops reference implementation of OCF standard
Overview Conceptual Framework
Overview Protocols What s your Status? Get I m Off. Set Set your Status to On OK. Tell me when your Status changes Subscribe My Status is now On
Overview Resources and Structures
Overview Resources and Structures examples (1) Light
Overview Resources and Structures examples (2) Garage
Features Discovery Messaging Security Cloud Interface Resource Encapsulation Resource Container Notification Device Management Proxy Tools Copyright c 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED
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 Directory Resource type/property management DNS service for Resource Messaging CoAP Messaging Transmit messages between devices Block-wise Transfer Connectivity Abstraction Cloud Interface Message switching Connection management Block data transfer (more than 1KB data) Wi-Fi, BLE, BT abstraction with CoAP CoAP/TCP, OAuth, Account, Pub/Sub Routing thru hetero-connectivity devices Automatic connection management (BLE) Security DTLS/TLS Secure data channel with encryption Security Resource Manager Security Provisioning Manager Access control(crud), Key Management 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 ) Proxy Notification Synchronizing CoAP-HTTP proxing Noti. message status synchronization Allows to access webserver resource information for constrained devices Tool Simulator Virtual resource server/client Simulator (Tool)
Features Architecture IoTivity v1.2 Service Layer Cloud Interface Device Management Notification Proxy Tool Discovery Easy Setup Scene Manager Provider Consumer CoAP-HTTP Simulator Resource Directory Device Presence Active Discovery Resource Encapsulation Resource Broker Resource Cache Resource Builder Resource Container Bundle Loader Configure Messaging CoAP TCP/TLS Base Layer Broker ( Pub/Sub ) Discovery Resource Introspection Multicast Discovery Resource Directory CoAP Messaging Cloud Interface Messaging Connectivity Abstraction Resource Presence Blockwise Transfer Message Switching Security Provisioning Manager DTLS/TLS SRM Security Account Group Access Control
Features Discovery OCF Server [ Figure 1 ] Multicast announce over Wi-Fi / Ethernet OCF Server OCF Server advertise resource /oic/ad [ port 5683 ] multicast listen unicast response /a/light advertise OCF service response /a/heartbeat [ port 5683 ] multicast listen find resource /oic/res scan OCF service find resource /oic/res [ Figure 3 ] Advertise/Scan over BLE/BT OCF Client OCF Client [ Figure 2 ] Multicast/Unicast over WiFi / Ethernet OCF Client 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 Concept [ Device 1 ] 2 Device 2 hosts RD and responds on behalf of device 1 & 4. 4 Unicast response by device 2 with resources of 1, 2 and 4. 1 Publishes resources to Resource Directory [ Device 2 ] 3 Multicast query request [ Device 4 ] [ Device 3 ]
Features Cloud Interface Messaging Discovery Authentication Pub/Sub CoAP over TCP and TLS Resource Directory OAuth over CoAP CoAP PUB-SUB
Features Message Switching
Features Security overview Security Provisioning Manager (Admin Device) - OIC device initial registration, management of secure information (Credential, Access Control Policy) Provisioning Manager (Admin Device) Secure Resource Manager - Access Control, Secure Resource Management - Ownership Transfer - Credential(Key) Provisioning - Ownership Transfer - Credential(Key)/ACL Provisioning Client (Provisioned) Resource Access over DTLS Resource Server (Provisioned) X Access Denied Client (Un-Provisioned)
Features Security Provisioning Manager Architecture Functions Resource Introspection (RI) layer Secure Resource Manager (SRM) layer DTLS DTLS modules, modules, etc. etc. DTLS modules, etc. Provisioning Manager (PM) Ownership Transfer Manager (OTM) Connectivity Abstraction (CA) layer PM C API Provisioning Database Manager Secure Resource Provider (SRP) Provisioning Database The red dashed line outlines the subjects of this Design specification 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
Features Secure Resource Manager Architecture Secure Virtual Database The red dashed line outlines the subjects of this Design specification Resource Introspection (RI) layer Secure Resource Manager (SRM) Resource Manager (RM) Connectivity Abstraction (CA) layer DTLS DTLS modules, DTLS modules, etc. modules, etc. etc. Persistent Storage Interface (PSI) Policy Engine (PE) 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 Discovery Manager Resource Client Wrapper Resource Broker Resource Cache IoTivity Base Layer API (C/C++) Resource encapsulation API Resource Server Builder 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
Technology Adapter IoTivity Bridge ResourceContainer API config.xml Features Resource Container Architecture 1. startcontainer (config.xml) Resource Container Resource instance1 Resource instance2 Resource instance3 PrimResServer 6. create resource servers ResourceContainerBundleAPI 2. load with dlopen() 3. activate bundle 4. retrieve resource configuration 5. register bundle resources ProtocolBridgeBundle.jar Bundle Activator ProtocolBridge Connector ProtocolBridgeBundle.so Bundle Activator ProtocolBridge Connector SoftSensorBundle.jar Bundle Activator ProtocolBridge Resource 1 ProtocolBridge Resource 2 ProtocolBridge Resource n ProtocolBridge Resource 1 ProtocolBridge Resource 2 ProtocolBridge Resource n SoftSensor Resource 1 SoftSensor Resource 2 SoftSensor Resource n
Features Scene Manager
Features Notification Service
Service CoAP-HTTP Proxy Use-case Architecture CoAP-HTTP Proxy CoAP HTTP Mapping HTTP Parser CoAP Request - HTTP Response Handler libcurl IoTivity Base API Base Layer Resource Introspection Messaging Discovery Security Connectivity Abstraction Way to interact with resource on HTTP Servers Implemented as primitive services in IoTivity. Compliance to OCF resource model with ability to support both OCF and Vendor Specific resources exposed by HTTP servers. Use LibCurl open source library for HTTP/HTTPS between proxy and webservers Use CoAP specifations proxy header options to compliance with standards
Features Simulator
How can I become the IoTivitier? Reference sites : http://www.iotivity.org http://wiki.iotivity.org http://gerrit.iotivity.org http://jira.iotivity.org http://openconnectivity.org Developer mailing list : iotivity-dev@lists.iotivity.org
Q & A Copyright c 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED