2.1.6. Automated Configuration enabler
2.1.6.1. Introduction
Automated Configuration Enabler keeps heterogenous devices and services synchronised with their configurations. User can update configuration and define fallback configurations in case of errors. Self-* component will be responsible for reacting to changing environment and updating configura-tion as necessary
2.1.6.2. Features
2.1.6.2.1. Automated configuration
Enabler keeps heterogenous devices and services synchronised with their configurations.
User can update configuration and define its fallback versions in case of errors. Self-* component will detect if fallback configuration should be used.
Self-* component will be responsible for reacting to changes in the environment and updating configuration as necessary/required.
2.1.6.2.2. Connection of heterogenous devices
Various devices, groups of devices, services and other enablers will have uniform API to communicate with the Enabler.
2.1.6.3. Place in architecture
Will be determined after the release of the enabler.
2.1.6.4. User guide
Will be determined after the release of the enabler.
2.1.6.5. Prerequisites
2.1.6.5.1. Scala
Scala is a language of preference for the SRIPAS group. Scala provides support for functional idioms and static typing. Those two features and familiarity with the language are arguments for Scala in the IoT environment, to support high reliability demand of the business.
2.1.6.5.2. Akka
Akka is a Scala library supporting Actor concurrency model. This library is a de facto standard for creating concurrent and/or distributed systems in Scala. Among others, Akka provides connectors for REST, MQTT, Kafka, gRPC. Akka seems like a natural fit for heterogenous and distributed environment of IoT.
2.1.6.5.3. Kafka
Kafka is an open-source, distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. Kafka’s high reliability seems like a good fit for internal component communication. Its large number of available connectors will also help with various analytical needs we might have.
2.1.6.5.4. MQTT
MQTT is an OASIS standard messaging protocol for the IoT. It is designed as an extremely lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth. Today, MQTT is used in a wide variety of industries, such as automotive, manufacturing, telecommunications, oil and gas, etc.
MQTT provides IoT specific features like Last Will and Testament. PAHO provides a broad range of MQTT clients.
2.1.6.5.5. REST (Enabler’s API)
Currently it is decided as project-wide standard. REST is overall a web standard.
2.1.6.6. Installation
Will be determined after the release of the enabler.
2.1.6.7. Configuration options
Will be determined after the release of the enabler.
2.1.6.8. Developer guide
Will be determined after the release of the enabler.
2.1.6.9. Version control and release
We will use gitlab as version control and release tooling.
2.1.6.10. License
Will be determined after the release of the enabler.