Presentation is loading. Please wait.

Presentation is loading. Please wait.

Open Connectivity for IoT

Similar presentations


Presentation on theme: "Open Connectivity for IoT"— Presentation transcript:

1 Open Connectivity for IoT
March 2018 By Rami Alshafi

2 Growth in the Internet of Things
Cost of connectivity is going down Increasing smart connected devices improves productivity, efficiency and visibility. 50 billion connected devices in 2020 Cisco white paper April 2011 Great economic opportunity: $11.1 trillion in 2025 McKinsey IoT report June 2015 Network effect: Metcalfe’s law C = n(n-1)/2 V=C2 March 2018 OpenConnectivity.org OCF Public Information – Non NDA

3 OpenConnectivity.org OCF Public Information – Non NDA
Challenges facing IoT IoT adoption is Slower than expected Interoperability is the primary challenge facing IoT Nearly %47 ($5.2 trillion) of the economic potential is locked by interoperability. March 2018 OpenConnectivity.org OCF Public Information – Non NDA

4 OpenConnectivity.org OCF Public Information – Non NDA
Smart home example Smart home is a heterogeneous environment Many different devices, applications, platforms, operating systems, service providers and ecosystems. They are not designed to wok with each other. They need to be maintained, updated and synched Customers locked into the chosen platform which reduces vendor competition. Separate client applications controlling separate smart home solutions. Proprietary knowledge lost in isolated development and could be unsupported in the future. March 2018 OpenConnectivity.org OCF Public Information – Non NDA

5 Solution – industry wide collaboration
Common standards and technology stack Common discovery and addressing scheme Common data modeling scheme Common interaction model End-to-end security Data protection and privacy Protocol independent Transport agnostic Work across all physical layers Elastically scalable from constrained to capable devices March 2018 OpenConnectivity.org OCF Public Information – Non NDA

6 IoT standards - complicated and fragmented
"The great thing about standards is there are so many to pick from“ - Andrew Tannenbaum Weave other names and brands may be claimed as the property of others. March 2018 OpenConnectivity.org OCF Public Information – Non NDA

7 OCF – Driving Consolidation
2014 2015 2016 2017 March 2018 OpenConnectivity.org OCF Public Information – Non NDA

8 OpenConnectivity.org OCF Public Information – Non NDA
Member Companies Surpassed 400 members Diamond Platinum Liaison March 2018 OpenConnectivity.org OCF Public Information – Non NDA

9 OpenConnectivity.org OCF Public Information – Non NDA
March 2018 OpenConnectivity.org OCF Public Information – Non NDA

10 OpenConnectivity.org OCF Public Information – Non NDA
OCF Pillars March 2018 OpenConnectivity.org OCF Public Information – Non NDA

11 Standards and implementation alignment
March 2018 OpenConnectivity.org OCF Public Information – Non NDA

12 OCF Framework and Architecture
Core Framework Layer Discovery Data Management Device Management Data Transmission Security, Identity & Permissions Interaction Model Resource Model Transport Abstraction Layer Local IP Protocol Mapping Application Abstraction Layer Consumer Enterprise Industrial Auto HealthCare API Language Mapping OCF leverages proven technology (e.g. IETF) RESTful architecture for native compatibility with cloud technologies 3 layers for over all Separation of concern Application abstraction layer providing a growing library of API language mapping Transport abstraction layer providing a growing library of transport protocol mappings Modular core framework. March 2018 OpenConnectivity.org OCF Public Information – Non NDA

13 Core Framework – Resource Model
Platform The platform to which the entities belong. Entity Primary artefact that needs to be manipulated or made visible across the network. Must belong to a platform and could have multiple logical devices. Logical Device parent abstract class with a list of minimum resources depending on device types. Resource Entity abstraction that encapsulates the entity and represents its state. Platform Entity Device #1 Device #2 Resource#1 Resource#2 Resource#3 March 2018 OpenConnectivity.org OCF Public Information – Non NDA

14 Resource – Resource Properties
Key=value pairs whose combination represent the state of the resource. There are common properties across all resources and there are resource specific properties Representation A snapshot of the state of the resource at a particular time and it is used to retrieve or update the state of the resource. Resource Resource URI Resource Type Resource Interface Resource Name Common Properties Resource Specific Properties March 2018 OpenConnectivity.org OCF Public Information – Non NDA

15 Resource - Identification and addressing
The OCF Unique Resource Identifier (URI) is based on IETF RFC3986 as follows <scheme>://<authority>/<path>?<query> ocf://<device id>/my/resource/example/?name=light&value=0 Transport binding in the Transport layer is responsible for the conversion from and to OCF URI and the specific transport protocol URI The “/oic/” is reserved URI prefix for the <path> Resource Resource URI Resource Type Resource Interface Resource Name Common Properties Resource Specific Properties March 2018 OpenConnectivity.org OCF Public Information – Non NDA

16 Resource – Resource Type
Parent class of the resource A resource can be instantiated from multiple types There are predefined resource types and they could be custom defined by the vendor. Predefined resource types examples oic.r.switch.binary oic.r.sensor.acceleration oic.r.energy.battery oic.r.light.brightness Resource Resource URI Resource Type Resource Interface Resource Name Common Properties Resource Specific Properties March 2018 OpenConnectivity.org OCF Public Information – Non NDA

17 Resource – Resource Interface
Defines the requests and responses for the resources Provide a view into a resource that defines context for the requests and responses on the resource. A resource could have multiple interfaces. Same request, same resource, different response depending on interface. There are predefined resource types and they could be custom defined by the vendor. Resource interface examples Resource Resource URI Resource Type Resource Interface Resource Name Common Properties Resource Specific Properties Interface Name Applicable Methods Baseline “oic.if.baseline” RETRIEVE,UPDATE Linked list “oic.if.ll” RETRIEVE Actuator “oic.if.a” CREATE,RETRIEVE, UPDATE Sensor “oic.if.s” March 2018 OpenConnectivity.org OCF Public Information – Non NDA

18 Resource – Resource name and links
Resource name is a human readable name It is an optional common property that could be useful for client interaction. Resource Resource URI Resource Type Resource Interface Resource Name Common Properties Resource Specific Properties March 2018 OpenConnectivity.org OCF Public Information – Non NDA

19 Light resource model example
Example overview Smart light device with i)binary switch and ii) brightness resource Associated resources Mandatory Core resources: oic/res, oic/p, oic/d Mandatory Security Resources (not shown in the diagram) Device specific resources: Binary switch (oic.r.switch.binary), Other optional resources can be exposed, in this example Brightness resource (oic.r.light.brightness) Platform: myCompany light Device #1 URI:”/oic/res” Rt:[”oic.wk.res”] If: [“oic.if.ll”, “oic.if.baseline”] URI:”/oic/p” Rt:[“oic.wk.p”] If:[“oic.if.r”, “oic.if.baseline”] mnmn: “myCompany” Pi: at1908 URI:”/oic/d” Rt:[“oic.wk.d”, “oic.d.llight”] If:[“oic.if.baseline”, “oic.if.r”] URI:”/a/light” Rt:[“oic.r.switch.binary”,”oic.r.light.brightness”] If:[“oic.if.baseline”, “oic.if.a”] Value: False Dim: 0 Device Title Device Type Associated resource Type M/O light oic.d.light oic/res (oic.wk.res) M oic/p (oic.wk.p) oic/d (oic.d.light) Binary switch (oic.r.switch.binary) Brightness (oic.r.light.brightness) O March 2018 OpenConnectivity.org OCF Public Information – Non NDA

20 Core Framework – Interaction model
OCF Roles Server : a logical entity that exposes hosted resources Client: a logical entity that accesses resources hosted on OCF servers Intermediary: a logical entity that acts as both server and client to route network traffic. Operations CREATE: Create a new Resource on the Server RETRIEVE: Get the current State or representation of a Resource from a Server UPDATE: Request a partial or complete update to the information stored in a Resource DELETE: Remove a Resource from the Server NOTIFY: Request asynchronous notification of state changes in a Resource Special-cased to support OBSERVE for publish/subscribe support March 2018 OpenConnectivity.org OCF Public Information – Non NDA

21 Core Framework – Data management
Structure Links A list of link in a resource. A link extends the typed web links according to IETF RF5988 Collections Resources with links Scenes A set of defined resource property values for a collection of resources. Resources could span across multiple OCF servers Scenes can be used by OCF Clients to recall a setup (e.g. movie night, bed time, etc) Scenes can be groups and a group of scenes is a scene Data models Pre-defined resource model concepts to streamline the development of IoT. March 2018 OpenConnectivity.org OCF Public Information – Non NDA

22 Data Modelling – oneIoTa (http://oneIOTa.org)
Online tool for designing interoperable device data models for the Internet of Things Outputs RAML, Swagger2.0 and JSON files that are instantly compatible with the OCF RESTful architecture Enables crowd-sourcing of data models Device data models can be used to generate documentation, code stubs and user interfaces March 2018 OpenConnectivity.org OCF Public Information – Non NDA

23 Resource Model – collection example
March 2018 OpenConnectivity.org OCF Public Information – Non NDA

24 Core Framework - Device management
Diagnostics and maintenance Currently, device management is limited to basic features but new features will be added in the near future. Factory reset Reboot The core resource “/oic/mnt” must be supported March 2018 OpenConnectivity.org OCF Public Information – Non NDA

25 Core Framework – Discovery
Types of discovery Direct discovery: where resources are published locally to the OCF server and can be discovered by OCF client inquiry Indirect discovery: Where OCF server publishes the discovery information about its resources to a resource directory and the OCF client inquiry the resource directory for discovery and not OCF server directly. This method is advices for low power servers avoiding the need to respond to every discovery request. Required resources to enable discovery (“well-known” resources) /oic/res for discovery of resources /oic/p for discovery of platform information /oic/d for discover of device information March 2018 OpenConnectivity.org OCF Public Information – Non NDA

26 Resource discovery example
Multicast GET coap:// :5683/oic/res Direct [URI: /a/light; rt = [“oic.r.light”], if = [“oic.r.rw”], p=discoverable, observable] Publish a resource link POST /oic/rd Response Discover 3rd party resource via RD GET /oic/res Publishing Device Resource Directory Indirect March 2018 OpenConnectivity.org OCF Public Information – Non NDA

27 Core Framework – Data Transmission
Introspection Mechanism to announce the resources hosted on the device and their capabilities. Introspection Device Data (IDD) is described as a swagger2.0 in JSON format file contains the description of the resources and all implemented methods Defines schemas of payload for requests and responses Enables clients to Dynamic code generation for UI or translation to another eco-system Run-time data validation Speed up access right checking Test case generation User interaction Introspection is a required resource with the “/introspection” URI March 2018 OpenConnectivity.org OCF Public Information – Non NDA

28 Core Framework – Data Transmission
Bridging Translation framework between OCF devices and other ecosystems. Bridged servers appear to OCF clients as if they were native OCF servers and vice versa. It is a solution for current and legacy eco-systems with their non-standardized stack March 2018 OpenConnectivity.org OCF Public Information – Non NDA

29 Core framework- Security - Overview
OnBoarding Ownership Transfer Provisioning Security virtual resources Summarize the onboarding sequence and provisioning states Secure Resource Manager March 2018 OpenConnectivity.org OCF Public Information – Non NDA

30 Core framework- Security - OnBoarding
Entry point to OCF network Helps prevent cybersecurity attacks when new devices are added to the OCF network OnBoarding Tool (OBT) OBT asserts operational control and management of the device. Logical entity hosted by tools/servers. A physical device hosting the OBT will be subject to security hardening requirements to preserve the integrity and confidentiality of the stored credentials. March 2018 OpenConnectivity.org OCF Public Information – Non NDA

31 Core framework- Security – ownership transfer
Establishes ownership for the legitimate user who purchased the new device. Done via OBT Ownership Transfer Methods (OTM) Just-Works OTM Random Pin Based OTM Manufacture Certificate Based OTM Vendor Specific OTM March 2018 OpenConnectivity.org OCF Public Information – Non NDA

32 Core framework- Security - provisioning
Access control, credentials and other Secure Virtual Resources (SVR) are configured during the provisioning step Devices are self-aware of their provisioning state so they can be proactive in achieving their operational goals. Current types of supported credentials Pairwise symmetric keys, group symmetric keys, certificates, asymmetric keys and signed asymmetric keys. Keys may be provisioned by a Credential Management Service (CMS) or dynamically using the Diffie-Hellman key agreement protocol. March 2018 OpenConnectivity.org OCF Public Information – Non NDA

33 Security - Security Virtual Resource (SVR)
OCF defines SVRs (Security Virtual Resource) to perform OCF security related functionality Device Ownership Transfer Resource (/oic/sec/doxm) manage Device Ownership status Provisioning Resource (/oic/sec/pstat) manage Device Provisioning status Credential Resource (/oic/sec/cred) manages Device credentials Credential Resource is used for establishing secure communication Certificate Revocation List Resource(/oic/sec/crl) manage certificate revocation Roles Resource (/oic/sec/roles) manage credentials based on the Role Certificate Signing Request Resource (/oic/sec/csr) is used to signed certificate by DOXS Security hardening applies to /oic/sec/cred Resource Access Control List (/oic/sec/acl) manages the Access Control Entry for the Resource Server. Access Manager ACL (/oic/sec/amacl) Resource specified an AMS to enforce ACL Signed ACL (/oic/sec/sacl) Resource to sign ACL policies. September 21, 2018 Copyright © 2017 Open Connectivity Foundation, Inc. All Rights Reserved.

34 Core framework- Security - ACL
Access control The Access Control List (ACL) consists of Access Control Entry (ACEs) The server references ACL and checks for ACE that permits the requesting client to interact with the requested resource. Any request to the OCF Server is subject to ACL(Access Control List) policy check ACE specifies who has access to what and what access permissions they have and for how long they have access. Two type of access control mechanism are supported: Subject-based access control (SBAC) ACE specifies the identity of requestor Role-based Access Control (RBAC) ACE specifies the role to accept of the entity requesting access ACL could be hosted locally in the server or in an Access Management Service (AMS) Access control levels include group, device, resource and even a property for finer granularity March 2018 OpenConnectivity.org OCF Public Information – Non NDA

35 Core framework- Security - OnBoarding
Unowned Device boots Discovery OBT sends multicast to discover unowned devices Unowned devices reply, including list of supported OTMs Ownership Transfer OBT selects and configures this OTM to the new device OBT & unowned Device perform OTM, including TLS handshake OBT configures SVRs to authorize itself and delegates management services such as CMS and AMS Device is now owned! Provisioning: CMS provisions credentials, AMS provisions access policies Device is now provisioned and can commence normal operation Normal Operation! Credentials and/or access policies can be updated by returning to Provisioning September 21, 2018 Copyright © 2017 Open Connectivity Foundation, Inc. All Rights Reserved.

36 Device Provisioning States
During RFNOP, there are two services available to the device serving lifecycle management functions: 1: Secure Check for Software Update Availability 2: Trigger Secure Software Update Device can transition to RESET from any state (these transitions are not shown) September 21, 2018 Copyright © 2017 Open Connectivity Foundation, Inc. All Rights Reserved.

37 Security- Secure Resource Manager (SRM)
Resource Manager (RM) Loads SVRs using PSI Supply the PE with resources upon request Responds to requests for SVRs Policy Engine (PE) Consults ACL and exercises access control policies on the access requests of SVRs and response with “ACCESS_GRANTED” or “ACCESS_DENIED” Persistent Storage Interface (PSI) Provides the RM with APIs to manipulate files in its own memory and storage March 2018 OpenConnectivity.org OCF Public Information – Non NDA

38 Transport Layer – Protocol stack
Constrained Application Protocol (CoAP). It is inspired by HTTP but it is binary Internet Engineering Task Force (IETF). RFC Concise Binary Object Representation (CBOR). It is inspired by JSON but it is binary We have development tools to go back and forth between json and cbor formats IETF. RFC 7049 Current list of natively supported Transport Protocol Suites UDP TCP IPv6 DTLS TLS CoAP Transport Protocol Suites scheme Endpoint Locator "ep" Value example coap + udp + ip coap IP address + port number coap://[fe80::b1d6]:1111 coaps + udp + ip coaps coaps://[fe80::b1d6]:1122 coap + tcp + ip coap+tcp coap+tcp://[2001:db8:a::123]:2222 coaps + tcp + ip coaps+tcp coaps+tcp://[2001:db8:a::123]:2233 http + tcp + ip http https + tcp + ip https March 2018 OpenConnectivity.org OCF Public Information – Non NDA

39 Transport Layer - Messaging
Mapping CRUDN to CoAP Method for CRUDN Request Data Response Data GET for RETRIEVE - Method code: GET (0.01) - Request URI: an existing URI for the Resource to be retrieved - Response code: success (2.xx) or error (4.xx or 5.xx) - Payload: Resource representation of the target Resource (when successful) POST for CREATE - Method code: POST (0.02) - Request URI: an existing URI for the Resource responsible for the creation - Payload: Resource presentation of the Resource to be created - Payload: the URI of the newly created Resource (when successful). PUT for CREATE - Method code: PUT (0.03) - Request URI: a new URI for the Resource to be created. POST for UPDATE Method code: POST (0.02) - Request URI: an existing URI for the Resource to be updated. - Payload: representation of the Resource to be updated. - Response Code: success (2.xx) or error (4.xx or 5.xx) DELETE for DELETE - Method code: DELETE (0.04) - Request URI: an existing URI for the Resource to be deleted. March 2018 OpenConnectivity.org OCF Public Information – Non NDA

40 Application layer – API language mapping
API language mapping includes C C++ Java Javascript IoTivity for Node.JS “Feels” native for Node.JS developers and based on promises, futures and events. Provided as an npm packages and can be integrated easily with other node.js packages for richer experience. API documentations is kept up to date with doxygen March 2018 OpenConnectivity.org OCF Public Information – Non NDA

41 Join OCF - Membership Levels & Fees
● – Included / Guaranteed ○ – Eligible, but must be elected/appointed 1 – Requires ¾ affirmative vote by current Board members 2 – Based on number of employees <100: $5K : $10K ,999: $30K >5,000: $50K 3 – 2 x Platinum members appointees voted every 2 years 4 – Can only lead Projects (w/ Diamond/Plat sponsorship) 5 – Read-only access 6 – One-time fee (all others are annual) 7 – Requires ½ affirmative vote by current Board members Board OCF IoTivity Appoint Director Work Groups Task Groups Projects Lead: Vote Participate Certify Products (IPR ; Trademark) Access member Portal Use & Contribute to OS Project Diamond1 $350K Platinum $5K – $50K2 ○3 Gold $2K ○4 Basic Free ●5 Non-Profit Educational $1K6 Individual Member7 $0 Non-Member March 2018 OpenConnectivity.org OCF Public Information – Non NDA

42 OpenConnectivity.org OCF Public Information – Non NDA
Get involved – Join US! Join OCF ( New features and requirements being specified and we welcome the input of all stakeholders. Participate in creating the open specification & certification program. Join OneIoTa ( Participate in developing the OCF data models Join IoTivity ( Participate in developing the reference implementation Contact us Get started in developing OCF applications Visit our developer program page ( March 2018 OpenConnectivity.org OCF Public Information – Non NDA

43 Interaction among OCF devices
Core Framework Layer Discovery Data Management Device Management Data Transmission Security, Identity & Permissions Interaction Model Resource Model Transport Abstraction Layer Local IP Protocol Mapping Application Abstraction Layer Consumer Enterprise Industrial Auto HealthCare API Language Mapping Core Framework Layer Discovery Data Management Device Management Data Transmission Security, Identity & Permissions Interaction Model Resource Model Transport Abstraction Layer Local IP Protocol Mapping Application Abstraction Layer Consumer Enterprise Industrial Auto HealthCare API Language Mapping Entity Handler Resource OCF Client Sh a r e d T r a n s p o r t OCF Server March 2018 OpenConnectivity.org OCF Public Information – Non NDA

44 OpenConnectivity.org OCF Public Information – Non NDA
GET and PUT requests Unicast GET coap:// :5683/a/light Unicast response [URI: /a/light; value=0, dim=0] Unicast PUT coap:// :5683/a/light Payload: [value=1; dim=50] Unicast response [value=1; dim=50] Status = success March 2018 OpenConnectivity.org OCF Public Information – Non NDA


Download ppt "Open Connectivity for IoT"

Similar presentations


Ads by Google