LibDaaS Component
To test the validity of DaaS technology, a prototype was developed in C language, called daas-api, which implements the protocol.
The precompiled libdaas library is distributed for the main hardware platforms and operating systems, with the aim of maximising portability.
libdaas is designed to be compact and compatible with any architecture, from embedded microcontrollers to cloud servers. To ensure this broad compatibility, the implementation includes only features that are independent of specific hardware and software environments.
The result is a library of a few kilobytes that executes the DaaS protocol logic in accordance with the four defined singularities.
The management of the various communication peripherals is delegated to a driver architecture, which allows adaptation to the various devices on the market.
To promote the spread of DaaS technology, specific packages have also been prepared that make libdaas features immediately usable on commercial hardware systems and dedicated software (SDKs).
In particular, DaaS-IoT is a product aimed at developers of IoT solutions, allowing them to quickly integrate DaaS technology for the creation of new connected applications.
As already described, libdaas implements only the fundamental logic of the DaaS protocol. To obtain fully operational network nodes, it is necessary to integrate services that interact with the specific system resources of the target hardware platform (Target-Host).
The driver architecture of libdaas allows the integration of specific modules for the communication peripherals available on the Target-Host.
These modules can be developed and tested independently by users, then integrated into the DaaS nodes active on the platforms for which they were designed.
The SDK packages include the DDKit (DaaS Drivers Kit), which provides documentation and tools for creating custom drivers.
libdaas uses the Target-Host's RAM to manage the data structures necessary for the node to function. Specifically, the following are allocated:
- The maptable (neighbour node address table)
- Data exchange queues (DME/DDO)
- Configuration data for node activation
These structures can be made persistent on non-volatile RAM memory to allow the node status to be saved and restored after a restart.
The persistent configuration includes:
- The local instance identifiers (<SID>,<DIN>)
- The list of tuples {<din>,<link>,<url>} relating to neighbouring nodes
- The list of drivers to be activated for managing available peripherals
DaaS-IoT is distributed as a Software Development Kit (SDK) and includes, in addition to the precompiled version of libdaas, technical documentation and several ready-to-use demonstration projects.
The DaaSIoT-SDK is available for the following platforms:
- MS Windows
- Linux
- MacOS
- NodeJS
- Java
- Expressif Esp32
- Microchip DSpic