IoTivity: The Open Connectivity Foundation And The IoT .

1m ago
1.33 MB
22 Pages
Last View : 3d ago
Last Download : 4d ago
Upload by : Olive Grimm

IoTivity: The Open Connectivity Foundationand the IoT ChallengeThiago MacieiraEmbedded Linux Conference / Open IoT Summit – Berlin, October 2016

Who am I?2


About the Open Connectivity Foundation4


OCF Current membersDiamondPlatinumLiaisonsFor Gold, Basic and non-profit members, see

Where the stack sitsApplications & ServicesData & Control PointsTranslation Layers802.15.4ZigBee*Z-Wave*Bluetooth LowEnergy (BLE)ExtensibleZigBee*Z-Wave*802.15.4Bluetooth* LowEnergy (BLE)IPIPIP over BLEWi-Fi*IPThread*OCF Comms Framework(Single Resource & Data Model)802.15.47

OCF Protocol StackApplication LayerOCF clientOCFintermediary Based on standard technologiesOCF serverApplication-specific resourcesResource LayerSecurity Resource Manager (SRM)Security ResourcesConnectivity LayerSession management (CoAP, DDS, XMPP, MQTT, etc)– Does not require TCP (only UDP) Security built in from the start– “Security 2.0” will be end-to-end Hardening left as an exercise forthe manufacturerSession protection (e.g., DTLS)UDP, TCP, Bluetooth* profileIP over Wi-Fi*, IP over 802.15.4, Bluetooth, Security Enforcement8

Core Protocol OCF adopted RESTful APIs Core framework defines 2 logical roles that devices can take:– OCF Server : A logical entity that exposes hosted resources– OCF Client : A logical entity that accesses resources on an OIC Server OCF ClientOCFClient OCF ServerOCFServerR1) Initiate an transaction (send a request)1) host a Resource2) access an OCF Server to get a service2) send a response3) provide a service9

Organisation of an OCF deviceDevice concept:/oic/pResource URI: /oic/prt: oic.wk.pif: oic.if.rn: homePlatform/oic/res/oic/d/oic/mntOCF Device 1/oic/respolicy: bm:11pi: at1908/oic/d/oic/prsOCF Device 2Physical Device e.g., lightbulbmnmn: Samsung*MandatoryOptional10

Device Example: Light Device (oic.d.light) Example overview– Smart light device with i) binary switch & ii) brightness resource Device type: Light device (oic.d.light) Associated ciated Resource TypeMandatory/oic/res (oic.wk.core)Yes/oic/d (oic.d.light)YesBinary switch (oic.r.switch.binary)YesBrightness (oic.r.light.brightness)No11

Ownership transfer and bootstrappingDeviceGets ontheNetworkOBTDiscoversthe DeviceDevice isUn-ownedOwnershipTransferBootstrapping /Provisioning(ACLs, certs)12

OCF Data Models Starts with definition of individual elementsThermostat– Built on generic description strategy (e.g., RAML, JSONschemas)– Starts with physical properties (e.g., temperature, mass,color )ThermometerSwitchTemperature Devices are comprised of collections ofelements / properties– Including previously defined devicesTemperature Abstract devices can also be defined– (e.g., Joe’s house, upstairs bedrooms )13 A crowd-sourced IntegratedDevelopment Environment (IDE)– RAML & JSON validated and syntaxaware editors with shared editing Automatic support for derivedmodels and multipleorganizations Submission and approvalprocess per organization14

IoTivity Project OverviewSteeringGroup An Open Source Project, hostedby the Linux* Foundation– License: Apache Version 2.0AdvisoryCommittee Goal: implement the referenceimplementation of OCFspecification Meritocratic, fair and opendevelopment processProjectsFunctions15

IoTivity Main reference implementation An open source softwareframework implementing OCFStandards Available on Android*, Linux*,Tizen* and Windows* Notable features:OCF Client OCF ServerP2P DirectOCF ClientTunnelOCF Intermediary– Cloud integrationCloudCoAP over TCPGatewayGatewayOCF ServersOCF Servers– CoAP over TCP and over Bluetooth* LE– Bridge plugins to other ecosystemsOCF ClientRemoteAccessCloud-basedIntelligentServices16

Other IoTivity reference implementationsIoTivity for constrained devices Designed from scratch for smalldevices (e.g., Intel Quark family)– Static memory allocation Fully compatible with OIC 1.1specification and main IoTivity Support for Linux* and ZephyrIoTivity for Node.js* API in JavaScript*, provided as annpm package “Feels” native for Node.jsdevelopers Easy to integrate with otherNode.js packages for richerexperienceSee session on IoTivity Constrained17

IoTivity for Node.js* API SampleClientPromise findResources();Promise retrieve(id);Promise update(resource);Promise observe(id);Events:resourcefoundServerPromise resource observerequestResourceEvents:updatedelete18

IoTivity for Node.js* Example Codevar device require("iotivity-node")();device.configure({role: "client"});device.on("resourcefound", function(event) {console.log("client: resource found %s",;if ( "/a/light") unction(resource) { !; // n() {console.log("client: update s();19

Other IoTivity Projects Bridge to UPnP Bridge to AllJoyn* Testing tool, with network simulation20

Get Involved! Participate in developing the reference implementationIoTivity ( Participate in creating the specification & certification programOCF ( Participate in developing the OCF data modelsoneIoTa tool (

Thiago / ThiagoMacieira22

Group Projects Functions Advisory Committee. 16 IoTivity Main reference implementation . Support for Linux* and Zephyr See session on IoTivity Constrained IoTivity for Node.js* . Testing tool, with network simulation