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 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 ability for devices and machines to communicate will unleash a whole new world of technology innovation. Open source software and collaborative development are the building blocks to get us there,” Jim Zemlin
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.
The IoTivity framework APIs expose the framework to developers, and are available in several languages and for multiple operating systems. The APIs are based on a resource-based, RESTful architecture model.
The framework operates as middleware across all operating systems and connectivity platforms and has four essential building blocks:
IoTivity discovery supports multiple discovery mechanisms for devices and resources in proximity and remotely.
- Data transmission
IoTivity data transmission supports information exchange and control based on a messaging and streaming model.
- Data Management
IoTivity data management supports the collection, storage and analysis of data from various resources.
- Device management
IoTivity device management supports configuration, provisioning and diagnostics of devices.
- Direct Device-to-Device, Local Network
- Messaging Connectivity
- Supports information exchange and control based on a messaging/COAP
- Model 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
IoTivity uses encryption technology from a modified version of the open source project “tinydtls”. Publishing of this code is currently pending U.S. export license approval. Until approval is received, developers may compile IoTivity without security enabled.
Learn about the IoTivity framework and project goals in the IoTivity community wiki
The IoTivity project is sponsored by the Open Interconnect Consortium (OIC), a group of industry leaders who will be developing a standard specification and certification program to address these challenges.