Microservices and virtualization have recently revolutionized the world of software development bringing agility and innovation in this domain. Microservices promote the use of fine grained and independent services that are implemented as autonomous entities interacting each other through well known APIs: independent software modules ease the maintenance process and reliability, making it easier to identify which components fail, restart failed services or correct the identified problems. Virtualization helps instead to decouple hardware resources from software: software can run on multiple hardware architectures and can be easily moved and shifted from one server to another. With the advent of containerization technologies (such as Docker for example) microservices can be realized as “containers” that result to be extremely fast to start up and can be easily deployed (using a common packaging mechanism) and can be easily released and shared via common repositories (like the Docker Hub).
Nowadays, Open Source is becoming more and more popular, even in the corporate world. Many companies are merging into consortium in order to define common specifications and standards for their products. One of the main consortium is the Open Connectivity Foundation and it is currently defining OCF specifications for the emerging needs of the Internet of Things (IoT). Company members of the consortium include Samsung, Intel, Qualcomm, Mediatek, and others. From these specifications, an open source framework, called IoTivity is being developed.
Sponsored by the OCF and hosted by the Linux Foundation, IoTivity’s goal is to create a new commercial standard that creates a robust and extensible architecture for smart and thin devices. It enables device-to-device and device-to-internet communications by supporting different protocol stacks like BLE, NFC, BlueTooth, IPv4/IPv6.
In particular for constrained devices, there is a stripped down version called IoTivity-Constrained that runs on Realtime Operating Systems like RIOT-OS, Contiki, Zephyr, and Linux. RIOT is now an official operating system supporting IoTivity.
In order to make developers life easy while developing smart objects that are able to talk IoTivity, a special RIOT-OS package has been developed. It allows the creation of IoTivity-based applications that are interoperable with commercial solutions.
The AGILE Gateway also supports IoTivity devices. We have developed a simple step-by-step tutorial in order to demonstrate the communication between an AGILE makers gateway (Raspberry Pi device) and a 802.14.5 node.