iotivity core framework features opportunities
play

IoTivity Core Framework: Features & Opportunities Kishen Maloor - PowerPoint PPT Presentation

IoTivity Core Framework: Features & Opportunities Kishen Maloor Intel Open Source Technology Center iCDG - Intel Communication and Devices Group Outline What is IoTivity and why is it useful? IoTivity stack architecture IoTivity


  1. IoTivity Core Framework: Features & Opportunities Kishen Maloor Intel Open Source Technology Center iCDG - Intel Communication and Devices Group

  2. Outline • What is IoTivity and why is it useful? • IoTivity stack architecture • IoTivity resource model and request-response flow • Role in the IoT ecosystem • Cross-platform support iCDG - Intel Communication and Devices Group

  3. What is IoTivity? • Open source framework and SDK for building IoT applications • Independently governed iCDG - Intel Communication and Devices Group

  4. Why is it useful? Light bulbs with BLE radios Turn Lights ON Smartphone Notify Current Setting 75F 75F Digital Smart TV Thermostat Regulate Temperature Tablet iCDG - Intel Communication and Devices Group

  5. Why is it useful? • Cross-platform support • Uniform and easy-to-use APIs • Based on open standards • Support for multiple connectivity types • Extensible to support proprietary protocols iCDG - Intel Communication and Devices Group

  6. IoTivity stack architecture Smart Home Enterprise Health … .. Automotive Industrial Services Layer Resource Model JNI Glue Layer (Java API) Object Model (C++ API) Base Functionality (C API) Secure Resource Manager Connectivity Abstraction iCDG - Intel Communication and Devices Group

  7. OIC protocol & connectivity types • Messaging protocol • Currently based on CoAP (RFC 7252) • OIC payloads encoded using CBOR (RFC 7049) • Adapter abstraction • Handle multiple connectivity types • Dual-stack IPv4 / IPv6 • Bluetooth Low Energy using GATT • Bluetooth EDR using RFCOMM iCDG - Intel Communication and Devices Group

  8. IoTivity resource model • RESTful design -> Things modeled as resources • Server role: Exposes hosted resources • Client role: Accesses resources on a server • Intermediary role: Bridges messaging between client and server OIC OIC OIC OIC OIC Client Client Intermediary Server Server Model 2 Model 1 iCDG - Intel Communication and Devices Group

  9. Resource URI Identifies the type of resource rt: Resource Type Properties Common List of interfaces associated with the resource if: Resource Interface Policy associated with resource: discoverable, prop: Policy observable, secure, etc n: Resource Name Friendly name Resource Specific … … Resource URI :/a/light1 Resource URI :/a/fan1 rt: oic.ex.light rt: oic.ex.fan if: oic.if.rw if: oic.if.rw prop: discoverable, prop: discoverable observable n: myKitchenFan n: myHallWayLight State: 1 (ON) State: 0 (OFF) Speed: 10 Dim Level: 0 iCDG - Intel Communication and Devices Group

  10. “Well-Known” resources Functionality Fixed URI Discovery /oic/res /oic/p Device /oic/d /oic/res /oic/res /oic/d /oic/d Platform /oic/p /oic/ad /oic/ad OIC Device 2 OIC Device 1 Presence /oic/ad Examples of OIC devices are thermostats or AC Security … • Resources are associated with “Entity Handlers” • Execute OIC methods on resources iCDG - Intel Communication and Devices Group

  11. Resource collections • Links to other resources (RFC 5988) • Express hierarchy, groups, indexes Collection URI rt: Resource Type Room /a/room if: Resource Interface prop: Resource Properties n: Resource Name Light Light Light links: [Other resource URI] /a/light/1 /a/light/3 /a/light/2 iCDG - Intel Communication and Devices Group

  12. IoTivity request-response flow Client Server Application Application EH URI: /a/light; rt = ‘oic.ex.light’, if = ‘oic.ex.rw’, Resource Model Resource Model prop = discoverable, observable CoAP over UDP CoAP over UDP L2 Connectivity + IP L2 Connectivity + IP iCDG - Intel Communication and Devices Group

  13. Resource discovery Multicast GET coap://224.0.1.187:5683/oic/res Unicast response [URI: /a/light; rt = ‘oic.ex.light’, if = ‘oic.ex.rw’, prop = discoverable, observable] Server Client 192.168.1.1 192.168.1.2 Application Application EH Resource Model Resource Model CoAP over UDP CoAP over UDP IPv4 224.0.1.187: 5683 L2 Connectivity + IP L2 Connectivity + IP IPv6 FF0X::FD: 5683 iCDG - Intel Communication and Devices Group

  14. GET operation Unicast GET coap://192.168.1.1:9000/a/light Unicast response [URI: /a/light; state = 0, dim = 0] Server Client 192.168.1.1 192.168.1.2 Application Application EH Resource Model Resource Model CoAP over UDP CoAP over UDP L2 Connectivity + IP L2 Connectivity + IP iCDG - Intel Communication and Devices Group

  15. PUT operation Unicast PUT coap://192.168.1.1:9000/a/light PayLoad: [state=1;dim=50] Unicast response Status = Success Server Client 192.168.1.1 192.168.1.2 Application Application EH Resource Model Resource Model CoAP over UDP CoAP over UDP L2 Connectivity + IP L2 Connectivity + IP iCDG - Intel Communication and Devices Group

  16. OBSERVE operation Unicast GET coap://192.168.1.1:9000/a/light; ObserveFlag = 1 Unicast response [URI: /a/light; state = 1, dim = 50] Server Client 192.168.1.1 192.168.1.2 Application Application EH Resource Model Resource Model CoAP over UDP CoAP over UDP L2 Connectivity + IP L2 Connectivity + IP iCDG - Intel Communication and Devices Group

  17. OBSERVE notification Notify Observers [URI: /a/light; state = 0, dim = 0, sequence #: 1] Server Client 192.168.1.1 192.168.1.2 Application Application EH Resource Model Resource Model CoAP over UDP CoAP over UDP L2 Connectivity + IP L2 Connectivity + IP iCDG - Intel Communication and Devices Group

  18. PRESENCE: “Active discovery” • Servers can advertise themselves to clients • Clients can request unicast or multicast notifications • Server coming online • Server going off-line • Changes to resources • Clients may indicate interest in specific resource types iCDG - Intel Communication and Devices Group

  19. Notable IoTivity features • Discovery • Messaging and data model • Message switching • Remote access • Services • Protocol plug-ins • Group management • Security iCDG - Intel Communication and Devices Group

  20. Role in the IoT ecosystem IoTivity IoT Application Application Industrial Healthcare Vertical Controller Profiles Smart Home … IoTivity Base & IoTivity Services Framework Connectivity Abstraction Connectivity Cloud Servers Cloud Servers LE service #2 service #1 domain domain Things Controller Local Control Remote Control Server to Server iCDG - Intel Communication and Devices Group

  21. Cross-platform support • Linux (Ubuntu 12.04) • Arduino: Due, ATMega 2560 • Android • Tizen iCDG - Intel Communication and Devices Group

  22. Embedded support: Yocto Project • http://www.yoctoproject.org/ • Hosted at the Linux Foundation • Create customized OS images for embedded targets • Ready-to-use BSPs for multiple platforms • Supports major CPU architectures • Layers and recipes iCDG - Intel Communication and Devices Group

  23. meta-oic software layer for Yocto • git://git.yoctoproject.org/meta-oic • Resource and Service layer samples Samples • APIs • Service layer • Resource Model IoTivity • Base Framework • Kernel Configuration • Protocols Dependencies • Middleware iCDG - Intel Communication and Devices Group

  24. Constrained peripherals • Storage and memory constraints • Lightweight IoTivity server stack • Base framework, resource model, messaging • Work in progress … iCDG - Intel Communication and Devices Group

  25. How can you participate? • Adopt IoTivity as the framework of choice for IoT projects • Contribute to the IoTivity project: www.iotivity.org • IoTivity mailing list: iotivity-dev@lists.iotivity.org iCDG - Intel Communication and Devices Group

  26. Thanks for your time! Q&A iCDG - Intel Communication and Devices Group

Recommend


More recommend