IoTivity is an open source software framework enabling seamless device-to-device connectivity to address the emerging needs of the Internet of Things.
Each day more and more devices are coming online, adding to the ever-growing Internet of Things (IoT). Analysts agree the IoT will grow to many billions of devices over the next decade.
The challenge for the IoT ecosystem is to ensure these emerging IoT devices can connect securely and reliably to the Internet and to each other.
The Internet of Things (IoT) is taking charge of the industry and our day-to-day lives. Interconnectivity between devices is simplifying, making networking a household phenomenon. For instance, a person staying abroad can monitor the safety of his elderly parents back home in India by remotely accessing and operating the security devices in his house—all thanks to the IoT connectivity. Undoubtedly, there are millions of such vast networks that require a platform to connect and understand the architecture of connectivity. IoTivity is one such open source, free software that enables seamless device-to-device connectivity for the IoT.
The IoTivity project was created to bring together the open source community to accelerate the development of the framework and services required to connect these billions of devices.
The IoTivity project is sponsored by the Open Connectivity Foundation (OCF), a group of industry leaders who will be developing a standard specification and certification program to address these challenges.
The IoTivity is an open source project. The IoTivity project is hosted by the Linux Foundation, and sponsored by the Open Connectivity Foundation (OCF) that is a group of technology companies such as Samsung Electronics and Intel who together will develop standard specifications, promote a set of interoperability guidelines, and provide a certification program to enable the Internet of Things. This project is independent from the OCF. Any individual or company can contribute to the project, and this may influence OCF standards indirectly. However, being a member of the OCF can benefit from patent cross-licensing protection.
The IoTivity architectural goal is to create a new standard by which billions of wired and wireless devices will connect to each other and to the internet. The goal is an extensible and robust architecture that works for smart and thin devices.
In October 2016 they announced AllJoyn merger into Iotivity. Also during the merging announcement, it was stated that current devices running either AllJoyn or Iotivity will be interoperable and backward compatible.
The IoTivity will deliver an open source reference implementation of the OCF standard specifications but not limited to those requirements. Currently, there is a 1.3.1 release for the IoTivity Framework. Within the merging process with AllJoyn, the project’s licence is changed to Apache 2.0 Licence which makes it easier to other open source projects to include IoTivity and AllJoyn in more projects.
IoTivity will deliver an open source reference implementation of the OCF standard specifications, yet will not be limited to those requirements.
IoTivity and IoTivity-Lite:
There are currently two OCF implementations under the IoTivity umbrella – IoTivity and IoTivity-Lite.
IoTivity assumes a full-featured device with ample memory to accommodate all the mandatory and optional features of the OCF 1.3 specification. IoTivity also hosts a runtime for developers planning to implement OCF control applications in development environments for higher-level languages such as Node.js or Java.
IoTivity-Lite is a light-weight implementation of the OCF 1.3 specification and is able to target constrained hardware and software environments where resource utilization, energy efficiency, and modular customization are essential. Visit the about IoTivity-Lite page for more details about the project.
While the two implementations present different developer APIs, both implementations are interoperable with each other and are certifiable to the OCF 1.3 specifications
- Core functionality written in C for deployment to constrained devices
- Most functionality available from C and C++
- Other bindings available:
- Java (Android)
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
- 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
October 10th of 2016 AllSeen Alliance merged with the Open Connectivity Foundation (OCF) under the OCF name and bylaws. OCF will now sponsor both the IoTivity and AllJoyn open source projects at The Linux Foundation. Both projects will collaborate to support future versions of the OCF specification in a single IoTivity implementation that combines the best of both technologies into a unified solution. The newly merged groups announced that they will collaborate on future OCF specifications, as well as the IoTivity and AllJoyn open source projects, and current devices running on either AllJoyn or IoTivity solutions will be interoperable and backward-compatible. The expanded OCF board of directors will consist of executives from a wide array of leading companies: Electrolux, Arçelik A.S., ARRIS International plc, CableLabs, Canon, Cisco, GE Digital, Haier, Intel, LG Electronics, Microsoft, Qualcomm, Samsung, and Technicolor SA.
IoTivity Tools and implementation:
IoTivity is an Eclipse plugin tool designed to work on top of existing protocols such as Bluetooth, ZigBee, Z-wave and Wi-Fi Direct. Its framework includes hardware, OS, C++ API, C API, more bindings and high-level services.
IoTivity implements OIC security called secure resource manager, which has two main functions. In steady state operation, SRM filters resource requests, granting or denying based on configurable policies. Also, it manages security related services such as maintaining credentials, and loading and storing access control lists. At high level, SRM also carries out request filtering and secure virtual processes.
Read Next: List of open source IoT application platforms – http://meenag.com/list-of-open-source-iot-application-development-platforms/
Read Next: Developer Community to discuss your IoT queries – IoT Developer Forum