The Eclipse Agail is a language-agnostic, modular software and hardware gateway framework for the Internet of Things with support for protocol interoperability, device and data management, IoT application execution, trusted data sharing and external Cloud communication.
A framework both for developers who wish to quickly prototype IoT solutions but also for end users who want to easily customise their gateway based on their context and have full control of their data and devices.
The hardware framework defines the design of a RaspberryPi shield that comes with various onboard sensors and two Xbee sockets for hosting different wireless communication modules (e.g., ZigBee, LoRaWAN, ZWave, etc.)
The following image visualises the AGAIL software structure:
The Agail software consists of serveral modules that can operate indepdently from each other and implement various features including IoT device discovery and management, data storage & management, IoT workflow development, remote gateway management, communication with external Cloud services and more.
Modularity & Adaptability
At the software level, different components enable new features: data collection and management on the gateway, intuitive interface for device management, visual workflow editor for creating IoT apps with less coding, and an IoT marketplace for installing IoT apps locally.
At the deployment level, the software components packaging & delivery is performed through containerization. This choice gives the developers the flexibility to share and install components without worrying about dependencies and conflicts. The containers utilise the internal AGAIL Project API, so access to gateway resources can be monitored and fully controlled by the user.
The following detailed view illustrates the concept of the containers and the language-agnostic Agail Gateway API for inter-module communication:
The Agail software can auto-configure and adapt the essential components, based on the hardware configuration so that driver installation and configuration is performed automatically. IoT apps and workflows can be recommended based on hardware setup, reducing the gateway setup and development time significantly.