OCF Overview
Including Summary of New Features in OCF 1.0 Candidate Draft
Michael McCool Intel Osaka, W3C Web of Things F2F, 16 May 2017
OCF Overview Including Summary of New Features in OCF 1.0 Candidate - - PowerPoint PPT Presentation
OCF Overview Including Summary of New Features in OCF 1.0 Candidate Draft Michael McCool Intel Osaka, W3C Web of Things F2F, 16 May 2017 Outline OCF History, Background, and Markets OCF Architecture and Principles CRUD-N
Michael McCool Intel Osaka, W3C Web of Things F2F, 16 May 2017
OCF History, Background, and Markets OCF Architecture and Principles
CRUD-N Interaction Mechanisms Resources Interfaces Links and collections Draft Entity-Relationship model (NEW! But not from OCF…)
Changes between OIC 1.1 and OCF 1.0 Draft Candidate (Summary)
Introspection (via Swagger/OpenAPI) Enhanced Security Model
2
2014 2015 2016 2017
APRIL 2017 OPEN CONNECTIVITY FOUNDATION PUBLIC INFORMATION – NON NDA 3
APRIL 2017 4 OPEN CONNECTIVITY FOUNDATION PUBLIC INFORMATION – NON NDA
Specification Open Source Coordination Business (Marketing, Strategy, Membership) Open Source Project
Reference Implementation of OCF (and Non-Spec Related Code)
Sponsored (funded) by OCF Separate Governance
Coordination APRIL 2017 OPEN CONNECTIVITY FOUNDATION PUBLIC INFORMATION – NON NDA 5
Certification Data Modelling
6 APRIL 2017
Core Framework Profiles
Consumer Enterprise Industrial Auto Education Health
Security, Identity & Permissions
Discovery Data Transmission Data
Management
Device Management
Transports
(Smart)
Remote Access
Cloud
Resource Model Interaction / Data Model
OPEN CONNECTIVITY FOUNDATION PUBLIC INFORMATION – NON NDA
7 APRIL 2017
Resource URI
rt: Resource Type if: Resource Interface prop: Policy n: Resource Name
… …
Common Properties Resource Specific
Identifies the type of resource List of interfaces associated with the resource Policy associated with resource: discoverable, observable, secure, etc Friendly name § The resource model, coupled with the common data model, provides the base interoperability of OCF § Any physical or software artifact on a device that needs to be manipulated or made visible across the network can be described via the resource model § A resource has a URI and a collection of Properties
links: Other Resource URI
Resources can include links to
OPEN CONNECTIVITY FOUNDATION PUBLIC INFORMATION – NON NDA
8 APRIL 2017
14
Resource URI :/a/light1 rt: oic.ex.light if: oic.if.rw prop: discoverable,
n: myHallWayLight State: 0 (OFF) Dim Level: 0 Resource URI :/a/fan1 rt: oic.ex.fan if: oic.if.rw prop: discoverable n: myKitchenFan State: 1 (ON) Speed: 10
OPEN CONNECTIVITY FOUNDATION PUBLIC INFORMATION – NON NDA
APRIL 2017 9 OPEN CONNECTIVITY FOUNDATION PUBLIC INFORMATION – NON NDA
10
Server - DevA
/dimming /oic/d /oic/res Main Living Room Light /switch /oic/d /oic/p
false 100 /switch true /dimming
/oic/p LED-Light-Co, 40W Equivalent Bulb
11
/oic/p mnml mnmn pi http://ledlight.com/gg3-40 Led-Light-Co GoGlow III - 40W mnmo GG3-40
12
JSON Schema*
Representation ReSTful API Modelling Language (RAML)*
*JSON Schema and RAML are normative and also can be used for code generation "oic.r.switch.binary": { "type": "object", "properties": { "value": { "type": "boolean", "description": "Status of the switch" } } } get: responses : 200: body: application/json: schema: | { }
Defined by: (see OIC_Resource_Type_Specification)
13
OCF Specification defines “oic.wk.p” Resource Type for platform and its list of Properties
14
And … Additional core resources CR: conditionally required (i.e. if capability is supported)
{ “href”: “/switch”, “rel”: “contains”, “anchor”: “/a/room”, “rt”: “oic.r.switch.binary”, “if”: “oic.if.a”, “bif”: “oic.if.baseline” }
15
/a/room /switch
Room contains a device with binary switch
Target Relation Context
Parameters
How to define the connection between two resources?
16
DevD
/room “name” “href”: “oic://<DevA>/oic/d”, “rel”: “contains”, “rt”: “oic.d.light” “href”: “oic://<DevB>/oic/d”, “rel”: “contains”, “rt”: “oic.d.light” “links” “Living Room”
17
{ “rt”: “acme.room”, “if”: [“oic.if.r”, “oic.if.rw”], “color”: “blue”, “dimension”: “15bx15wx10h”, “links”: [ {“href”:“/the/light/1”, “rel”:”contains”, “rt”:“acme.light”, “if”:[“oic.if.a”, “oic.if.baseline”]}, {“href”:”/the/light/2”, “rel”:”contains”, “rt”=“mycorp.light”, “if”:[“oic.if.s” , “oic.if.baseline”]}, {“href”:“/the/fan/1”, “rel”:”contains”, “rt”:“hiscorp.fan”, “if”:[“oic.if.baseline”]} ] } Common Properties Link Read-Write Property Read-only Property Link Parameters Link Target
“Room” collection – room has lights and fan
/my/room/1
18
“Room” collection – room has lights and fan Interface views
/my/room/1
{ “rt”: “acme.room”, “if”: [“oic.if.r”, “oic.if.rw”], “color”: “blue”, “dimension”: “15bx15wx10h”, “links”: [ {“href”:“/the/light/1”, “rt”:“acme.light”, “if”:[“oic.if.a”, “oic.if.baseline”]}, {“href”:“/the/light/2”, “rt”:“mycorp.light”, “if”:[“oic.if.s” , “oic.if.baseline”]}, {“href”:“/the/fan/1”, “rt”:“hiscorp.fan”, “if”:[“oic.if.baseline”]} ] }
19/37
Swagger/OpenAPI for
Data modeling Introspection (new) RAML is still used in main spec definition
20/37
Enhanced security
Alignment with IETF ACE model and
AllJoyn
Better specification of uses of certificates Better management of onboarding and
Mandatory access control System management (eg update)
Resource-Oriented Architecture
“Devices” based on sets of “Resources” accessed through set of abstract CRUD-N “Interaction Mechanisms” CRUD-N mechanisms are mapped down to specific operations on particular protocols (eg CoAP, HTTPS) Interface abstraction allows for “Views” into resources Collection and Link abstractions allow for aggregation of Devices, even if not co-located
IoTivity
Open-source implementation of OCF model
New features in OCF 1.0
Introspection Enhanced security 21/37