ValIoT

Active data validation to increase fault tolerance in model-driven model-driven IoT applications

This project, a key initiative within the Software Campus program, receives its funding from the German Federal Ministry of Education and Research (BMBF). It is a collaborative effort that brings together the industry expertise of Software AG with the academic excellence of the University of Stuttgart, aiming to foster innovation and leadership in the field of technology.

In the Internet of Things (IoT), heterogeneous devices communicate via standardized internet protocols to achieve common goals. Well-known IoT applications are found in Smart Homes, Smart Cities, or Smart Factories. Typically, sensor data from various devices are extracted, processed, and evaluated to respond to new situations, for example, by controlling actuators. In a Smart Home, temperature measurements can enable automatic control of the heating system. In Smart Cities, traffic can be managed depending on the current situation through intelligent traffic light controls. However, the development of such distributed IoT applications is often very complex and labor-intensive, as many different software components need to be installed on a variety of IoT devices, which then have to communicate with each other. Therefore, the software development process for extensive IoT applications becomes very complex and labor-intensive.

One approach to managing this complexity is the model-driven development of complex IoT applications. Here, domain experts can model the business logic of new applications using graphical tools by linking abstract operations for data processing. In preliminary work, we have developed an application model that represents a directed graph. The nodes model the data operations, for example, extracting, filtering, processing, or storing the sensor data generated in the IoT. The edges between these operations define the data flow, i.e., to which subsequent operations the sensor data or corresponding results should be forwarded.

In addition to the application model, an environment model can also provide a view of the physical components of an IoT environment. It models the IoT devices, their sensors and actuators, as well as the existing network connections. For the model-driven development of an IoT application, modeling both the physical environment and the business logic is necessary. Subsequently, the application model can be automatically projected onto the environment model. More precisely, this means that the operations of the application model are assigned to the devices of the environment model. Algorithms and heuristics can be used for optimal distribution. Model-driven development can reduce complexity by abstracting technical details.

However, there are also new challenges in the model-driven development of IoT applications. In particular, potential errors must be considered during the modeling of an application, and appropriate countermeasures must be taken into account. Possible errors during the runtime of an application can originate not just from software issues in the IoT but also from the physical hardware. In particular, faulty or highly deviant sensor data can lead to undesired behavior of IoT applications. Especially in safety-critical areas such as traffic management, erroneous data can lead to dangerous situations. Non-technical users or domain experts who develop IoT applications in a model-driven way often lack the knowledge to recognize potential errors and implement appropriate countermeasures. The goal of this project is to find ways to identify potential errors during application development and suggest appropriate countermeasures that can be integrated into the models. For this purpose, techniques for data validation will be implemented.

In this project, mechanisms for increasing the fault tolerance of model-driven IoT applications through active data validation are to be developed. As a result, non-technical domain experts can develop more fault-tolerant IoT applications without needing in-depth technical knowledge about the IoT environment and potential error scenarios. The focus will be on operational errors that arise from faulty sensor values. Application developers can thus bring their domain expertise more effectively to the forefront and concentrate on the functionalities of the application. The goal of the project is to create a prototypical implementation of a graphical development environment for IoT applications, in which mechanisms for active data validation are automatically integrated.