This repository contains data and instructions for the Case Study submitted for ACM/IEEE 26th International Conference on Model-Driven Engineering Languages and Systems (MODELS).
Ocean data is crucial for climate forecast, ocean state determination, and for the industry to detect and prevent incidents such as oil spills, structural integrity faults, and fish welfare degradation. Many challenges can impact the quality of marine data at different points of data delivery pipelines: from acquisition and transmission at the Internet-of-Underwater-Things (IoUT) level up to management and sharing. We propose a model-driven solution for marine data quality assessment in a platform using Key Performance Indicators (KPIs) to identify violations of established objectives and help optimize the usage of data generated during the sensor battery lifetime. The solution work builds on top of previous implementations of the multi-level model framework [1] demonstrating its generalizability.
This instantiation aims to enable observability of software systems, using the multi-level model framework as a semantic translator between the platform and the platform-defined KPIs, and the Prometheus monitoring toolkit where the platform-measured metrics are stored.
This repository contains the following components of the overall solution:
- Quality Evaluation System (QES) that receives as input a subject and a quality definition model
- Query Engine that interfaces with the metrics monitoring toolkit.
The remaining components part of the contribution, namely the data validation service of the platform and a data provider are available in:
- Data Validation Repository (including the metrics producer component)
- MQTT Data Publisher Repository
Those are used via the published container images in: https://hub.docker.com/repositories/km0lima
All the prototype components (data platform + observability subsystem) can be set up locally using Docker Compose to replicate the prototype used in the case study setup. Besides the implemented components, there is also a messaging service that is using the community edition of the HiveMQ MQTT Broker and its metrics producer extension for Prometheus. Lastly, Prometheus is also part of the components of the prototype.
Instructions to reproduce the case study setup are provided below in the setup section.
The results reported in the paper from the Query Engine execution can be found under the results folder.
Instructions on how to test the execution of the prototype can be found in the test section.
This component concerns the instantiation of the MLM framework for system observability purposes using KPIs.
Particularly, we are working at the levels @1 and @0 of the specified multi-level model. The models at level @1, namely the Ocean Data Platform model and the time bounded KPI model are used in input for the QES engine which interacts with the Query service. The models overview are showed below.
Key Performance Indicators (KPI) for the platform measured runtime metrics.
Models instances with a focus on monitoring marine data quality are available under the models folder.