Iotivity Lite Overview

Iotivity Lite Overview

IoTivity Overview OCF EU Developer Training 2019, Budapest, Hungary Kishen Maloor, Intel Outline • What is IoTivity? • Structure of an OCF implementation • IoTivity-Lite • Protocols and payloads • Support for OCF roles • Porting • Directory structure • IoTivity-Lite resources 2 What is IoTivity? • Umbrella of projects for building IoT devices • Open-source, reference implementations of OCF specifications • Serve as starting point for developing and certifying OCF products Specifications Vertical Data Models Device Certification Strategy, Marketing Independent governance with coordinated efforts 3 Structure of an OCF implementation User space IoT Applications Outer functional blocks APIs & Language Security Device on-boarding, Bindings Provisioning Credentials provisioning, Infrastructure Access-control lists OCF Resource Model Resource directory, Device High-level Services Wi-Fi Easy Setup, Stack Security Flows OCF Cloud Connectivity Bridging to other BLE, Zigbee, Z-Wave, etc. IP Connectivity ecosystems Kernel space Network Interfaces OS & Kernel 4 IoTivity-Lite • Lightweight implementation of OCF specifications • Suitable for all device classes (including few constrained devices) • Port to any target by implementing a thin platform abstraction layer • Runs on Linux, Windows, Android1, macOS2, and multiple RTOSes • C and Java3 APIs 1, 3: Working Android adaptation with Java binding currently on “swig” branch 2: Work-in-progress 3: Java bindings may be used to build Java applications for platforms with the Java runtime (Eg. Linux, Windows, etc.) 5 Protocols and payloads • Constrained Application Protocol (RFC 7252) • Lightweight protocol for constrained nodes and networks • Security • DTLS-based authentication, encryption and access control • Leverages mbedTLS https://github.com/ARMmbed/mbedtls • Concise Binary Object Representation (RFC 7049) • Handle OCF request/response payloads using simple C APIs • Payloads typically consist of key-value pairs • Leverages tinyCBOR https://github.com/intel/tinycbor March 7, 2019 6 Support for OCF roles • REST architectural style; ”things” modeled as resources • Servers • Expose resources to Clients • Clients • Access resources hosted in Servers • Onboarding Tools (OBT) • Takes on the Client role • Manage security context across a network of OCF Devices • APIs for creating OBTs March 7, 2019 7 Porting • OS-agnostic core • Abstract interfaces hook into platform-specific components • Bounded definitions, elicit specific contract from implementations • Platform-specific blocks • Clock • Connectivity • PRNG • Storage March 7, 2019 8 Directory structure – <IoTivity-Lite root>/* api apps include onboarding_tool messaging deps port security tests patches tools util LICENSE.md IoTivityConstrained-Arch.png README.rst March 7, 2019 9 Directory structure - <IoTivity-Lite root>/port/* oc_connectivity.h oc_clock.h oc_random.h oc_storage.h oc_log.h oc_network_events_mutex.h oc_assert.h linux windows android zephyr ... March 7, 2019 10 IoTivity-Lite resources • IoTivity-Lite repository • https://github.com/iotivity/iotivity-lite • IoTivity-Lite build instructions • https://github.com/iotivity/iotivity-lite/blob/master/README.rst • Each OS adaptation (port) employs a build system native to its environment (E.g. Linux uses make, Windows uses VS projects, etc.) • IoTivity Wiki • https://wiki.iotivity.org/ • OCF Specification documents • https://openconnectivity.org/developer/specifications 11 .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us