Trabajo de grado - Doctorado
IoT@run-time: a model-based approach to support deployment and self-adaptations in IoT systems
Date
2022-12-05Registration in:
instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
Author
Alfonso Díaz, Iván David
Institutions
Abstract
In recent years, the Internet of Things (IoT) has expanded its fields and areas of application, becoming a key component in industrial processes and even in the activities we perform daily. The growth of IoT has generated increasingly restrictive requirements, mainly in systems that analyze information in real time. Similarly, IoT system architectures have evolved to implement new strategies and patterns (such as edge and fog computing) to meet system requirements. Traditionally, an IoT system was composed of two layers: the device layer (sensors and actuators) and the cloud layer for information processing and storage. Today, most IoT systems leverage edge and fog computing to bring computation and storage closer to the device layer, decreasing bandwidth consumption and latency. Although the use of these multi-layer architectures can improve performance, it is challenging to design them because the dynamic and changing IoT environment can impact Quality of Service (QoS) and system operation. IoT systems are often exposed to changing environments that induce unexpected runtime events such as signal strength instability, latency growth and software failures. To cope with these events, system adaptations should be automatically executed at runtime, i.e., IoT systems should have self-adaptation capabilities.
In this sense, better support in the design, deployment, and self-adaptation stages of multilayer IoT systems is needed. However, the tools and solutions found in the literature do not address the complexity of multi-layered IoT systems, and the languages for specifying the adaptation rules that govern the system at runtime are limited.
Therefore, we propose a modeling-based approach that addresses the limitations of existing studies to support the design, deployment, and management of self-adaptive IoT systems. Our solution is divided into two stages:
Modeling (design time): to support the design tasks, we propose a Domain Specific Language (DSL) that enables to specify the multi-layered architecture of the IoT system, the deployment of container-based applications, and rules for the self-adaptation at runtime. Additionally, we design a code generator that produces YAML manifests for the deployment and management of the IoT system at runtime.
Self-adaptation (runtime): we have designed a framework based on the MAPE-K loop to monitor and adapt the IoT system following the rules specified in the model (design time). The deployment and configuration of the tools and technologies used by this framework is performed using the YAML manifests produced by the code generator.
Additionally, we have designed two extensions to our DSL. The first one is an extension focused on modeling IoT systems deployed in the underground coal mining industry. This DSL addresses new mining domain concepts such as mine structure specification and control points. The second DSL extension is focused on modeling IoT systems deployed in Wastewater Treatment Plants (WWTPs). This DSL extension addresses the modeling of the WWTP process block diagram using a graphical notation. Even with these two DSL extensions, there is no need to modify our framework that manages system adaptation at runtime.
Finally, we have conducted experimental studies classified into three groups: (1) we validated the expressiveness and usability of the DSL through experiments with 13 participants who performed modeling exercises (using the DSL) and answered surveys reporting their experience; (2) we functionally validated the architectural adaptations using our framework and comparing the performance and availability between a non-self-adaptive system versus a self-adaptive system implementing our approach; (3) finally, we evaluate the ability and performance of our framework to address the growth of concurrent adaptations on an IoT system. The results of these experiments demonstrated that (1) the DSL has the expressiveness to model multi-layered IoT systems (including its self-adaptive behaviour) and the learning curve is favorable; (2) functional tests demonstrated how the performance and availability of the system improves when using our approach; and (3) we have identified scalability limitations of the framework and proposed insights to address them.