Self-Organising IoT Systems
Self-Organising IoT Systems
Modern IoT systems are highly distributed and rely on the synergy of embedded devices, cloud and edge. Applications and devices grow more intelligent by the day posing new challenges for coordinating, managing, controlling and developing such systems. To address these challenges we need new paradigms to support not only the development but also the deployment of modern IoT systems. Application containers with its orchestration and digital twin abstractions have proven to be valuable assets for decoupling large systems and lowering complexity in general. The biggest issue is finding a solution that is lightweight and flexible enough to suit all modern IoT systems.
We have developed two components for this
coSense: Collaborative Sensing Middleware
coSense is designed to ease one of IoT's most basic functions: gathering sensory information. Although being one of its basic functions, gathering such information is still a tedious process: sensors are unreliable, inaccurate, slow and you have to gather the information from potentially hundreds of individual devices. coSense alleviates you from these problems. It is a middleware that implements a multi-stage sensor fusion system and offers sensing-as-a-service combined with a simple quality-of-service (QoS) oriented API for easy access. The core of the sensor fusion system is coSense's ability to abstract any number of sensors into just a few easy-to-handle sensing entities. These entities offer a unified API to not only query your sensor data but also query for a specific QoS. Internally sensor fusion is used to achieve the different QoS levels. For the sensor fusion to work reliably, coSense learns which sensors to use for its fusion by means of unsupervised learning. Additionally, it adapts to changing behaviour to always deliver the best possible result.
Elastic IoT Platform (EIP)
The Elastic IoT Platform is a distributed operating system for modern IoT applications. The EIP treats the IoT and its devices as a set of orchestrated microservices in which each physical device is implemented as a digital twin. These twins are virtual representations of devices that encapsulate all functionalities and offers them in a unified service like abstraction. Having these abstractions in place, designing and implementing complex IoT applications becomes less troublesome as everything device related is taken care of. Applications themselves are implemented as digital twins, by combining and enhancing existing twins into more abstract and powerful concepts. The system is backed by a set of pre-existing and provided system services. It heavily relies on asynchronous message passing and uses the MQTT protocol as a lightweight message brokering system. On top of MQTT everything is treated as a resource that is semantically annotated. The entire system is delivered in containers for easy deployment and orchestrated by Kubernetes for maximal flexibility and portability.