You are here

Features

IoTivity 1.1.0 Features

General

  • Core functionality written in C for deployment to constrained devices
  • Most functionality available from C and C++
  • Other bindings available:
    • Java (Android)
    • JavaScript (in progress)

Discovery & Connectivity

  • Direct Device-to-Device, Local Network
  • Messaging Connectivity
  • Supports information exchange and control based on a messaging/CoAP Model
  • Supports IPv4 and IPv6 on IP-based networks (all OS)
  • Supports Bluetooth GATT profile on Linux, Android and Arduino targets
  • Supports Bluetooth Serial RFCOMM (Android)
  • Message switching between heterogeneous connectivity types supported
  • Manages radio connections among devices (Wi-Fi*, LAN ) and across any available transport, whether it's device-to-device or across the same network
  • The SDK abstracts all the OS APIs for radio connections into simpler APIs
  • Discovery mechanisms for devices and resources in proximity
  • Allows presence subscription, un-subscription, and announcement from the device, and based on a newly created resource
  • Provides device discovery mechanism to find devices based upon specific device-level attributes
  • Supports secure connections (DTLS)
  • Supports high QoS (RESET/ACK CoAP responses)
  • On-boarding support by multi-phy EasySetup

Resource Management

  • Provides platform initialization, discovery of resources and registration/creation of resources
  • Resource model based operations: GET, PUT, OBSERVE, Cancel observation, and notifications sent by the resource
  • Entity handler support to receive requests from a client for processing
  • Client, server and client-server mode support with In-Proc model, CBOR encoding and decoding, CBOR serialization and deserialization
  • Allows a root resource to point to other resources
  • Default, link list and batch operations on the collection resource
  • Enables support for a server to indicate a 'slow response' to a client request
  • Provides mechanism for completing operations on a secure resource

Services

Resource Encapsulation API:

  • Simplified data-driven API to create an IoTivity server and client

Scene Manager:

  • Group creation and finding appropriate resources in network
  • Member presence management (check status regarding connectivity/resource change)
  • Taking a single action on a group to affect all resources
  • Supports configuration and diagnostic commands

Resource Offloading (Resource Hosting Service):

  • Responsible for hosting the resources of a Lite device or less power/memory capable IOT device by another smart device
  • Event driven mechanism to detect the presence of devices whose resources needs to be hosted
  • Targeted discovery of hosting resource
  • Registering a resource as virtual in a smart device base to differentiate and give priority to the hosting resource

Resource Directory:

  • Responsible for hosting a list of services not always discoverable with multicast queries (e.g., devices that disable their radios when idle)
  • Client-side code to enable discovery of the RD itself and to publish services in it

Resource Container:

  • Dynamic loading of plugins (resource bundles), including bundle templates and a common configuration
  • Bundles can be loaded dynamically and abstract the interaction with the IoTivity base
  • Virtual soft sensors: takes input from one or more resources (physical sensor data listening), adds processing, translation, and aggregation capabilities to present as a virtual resource
  • Provides mechanism to represent non-OIC protocols within the OIC framework

Platform-specific notes

Android Support:

  • IoTivity supports client side Java APIs for Android (NDK version 10 or later, SDK API level 21)
  • Includes sample applications to demonstrate use of Java SDK

Tizen Support:

  • IoTivity project build supported on Tizen 2.3 and Tizen 3.0

Yocto Support:

  • meta-oic software layer for Yocto separately hosted on git.yoctoproject.org
  • Contains recipes to build the IoTivity framework and SDK for Yocto based embedded targets
  • Currently supports the resource layer (runtimes and applications) of the IoTivity stack

IoTivity Simulator

  • Java SDK support on Linux
  • Server: resource simulation
    • OIC resources can be simulated, using resource model definitions defined in RAML format
    • Manage creation, deletion, request handling and notifications for OIC resources
    • Manual and automatic modes of attribute value modifications
  • Client: resource operations
    • Discovery
    • Manual and automatic sending of different requests and display of responses
    • Validating of responses as per  the specified RAML file