In most IoT systems, it is critical to guarantee the quality of service (QoS) to the users, according to the requirements of the application domain. For example, in continuous monitoring systems, a decrease in the quality could generate wrong or late alerts stemming from the monitored system (imagine the effects of such late alerts in monitoring systems in hospitals).
Singh and Baranwal  classify QoS for IoT systems into three groups:
- QoS of communication aspects to measure the quality of network services with metrics such as jitter, bandwidth, performance and efficiency, and network connection time;
- QoS of things with metrics such as availability, reliability, response time, and security; and
- QoS of computation to measure computational performance with metrics such as scalability, dynamic availability, and response time.
Satisfying these commitments is challenging due to the dynamic nature of the environment surrounding the IoT system. All types of unexpected events (such as unstable signal strength, growth in the number of connected devices, and software and hardware aging [2, 3]) can happen at any time, posing a risk to the QoS. This unpredictable behavior of the system can be addressed at runtime by self-adaptive systems. A self-adaptive system modifies its behavior at runtime in response to changes in the system or its environment to ensure a certain quality level .
Most studies found in the literature individually address particular dynamic events in IoT systems and propose specific strategies to ensure QoS. However, each proposal provides only a partial view (and solution) to the self-adaptation problem. Therefore, a global view of all the different types of events (e.g., environmental) addressed in the literature has not been covered.
Indeed, we need a complete perspective on:
- A classification of the dynamic events that could impact the QoS in an IoT system;
- A classification of the self-adaptation strategies of the IoT system architecture; and
- A review of the gaps and challenges in the proposed strategies and their relationships.
To do so, In our paper Self-adaptive architectures in IoT systems: a systematic literature review, co-authored by Iván Alfonso, Kelly Garcés, Harold Castro and Jordi Cabot, published in the Journal of Internet Services and Applications, we have performed a systematic literature review (SLR) of existing scientific proposals and defined a research agenda for the near future based on the findings and weaknesses identified in the literature.
A systematic literature review (SLR) is a methodology used for the identification, analysis, and interpretation of relevant studies to address specific research questions . Given the complexity of the IoT domain, we decided that an SLR was the best way to systematically reach a comprehensive and fair assessment of this topic. Our SLR consists of six main steps and is based on the methodology proposed by Kitcheham et al. . The steps followed for this SLR are illustrated in Fig. 1.
Our goal is to identify the dynamic environmental events in the physical and edge/fog layers of an IoT system that could impact its QoS and therefore require the trigger of self-adaptations of the system. In addition, we classify the strategies to achieve this self-adaptation. For this purpose, our SLR addresses the following two research questions.
- RQ1. Which dynamic events present in the edge/fog and physical layers are the main causes for triggering adaptations in an IoT system?
- RQ2. How do existing solutions adapt their internal behavior and architecture in response to dynamic environmental events in the edge/fog and physical layers to ensure compliance with its requirements?
We chose four digital libraries (Scopus, Web of Science, IEEE Explore and ACM) and defined three search queries. We searched for studies, removed duplicates, applied inclusion and exclusion criteria, performed a quality assessment of each study, and finally obtained 39 studies to analyze in depth. In our published paper you can find the details of each stage of the SLR.
Dynamic events and adaptations
Fig. 2 provides an overview of the answer to research question RQ1. The figure presents a classification of the dynamic environmental events present in the edge/fog and physical layers and the studies that addressed that event. The references to each study can be recovered from the full paper linked above but the image alone gives you a feeling on the sparsity of the solutions.
Additionally, Fig. 3 presents a classification of the strategies used by each study to support specific dynamic events. It provides a preliminary answer to research question RQ2.
The most used adaptation strategies are Data flow reconfiguration (A1) and Offloading tasks (A4). Strategy A1 is used to deal five types of dynamic events. For example, Dynamic data transfer rate because it is possible to dynamically balance the variable data flows and distribute processing workloads among the edge/fog nodes. The adaptation strategy Auto Scaling of services and applications (A2) enables automatic adjustment of system capacity to ensure performance. This strategy enables the system to support variations in the workloads of edge/fog nodes and cloud servers. The strategy Offloading tasks (A4) is used to guarantee QoS at least in the critical tasks of the system. This strategy frees up processing resources on the edge/fog nodes to address critical tasks. Finally, the strategy of adaptation Software deployment and upgrade is only used by the studies that deal with the event Failures and software aging. The deployment of updates or new software versions in the edge/fog nodes allows for the repair of problems detected in the software. Please refer to our paper if you want more details about dynamical events and adaptations, and some examples studied in the literature.
Summary and future directions
We have conducted a systematic literature review to study the dynamic events that impact the QoS of IoT systems, to analyze the strategies implemented by the literature to address them, and to identify the weaknesses of the approaches found in the state-of-the-art. The design of IoT systems involves coping with several challenges to ensure a good QoS even when considering the dynamic nature of the IoT environment. Some specific challenges were pointed out by the studies analyzed in this work. Nevertheless, we want to highlight additional significant open challenges and future work we believe need to be addressed to improve current adaptation strategies. We classified the issues and challenges as follows.
Monitoring and logging the dynamic events themselves: monitoring the system infrastructure is a key process in the design of a self-adaptive architecture. However, designing a continuous, scalable, resilient, and non-intrusive monitoring system for IoT systems is a challenge. In the literature, efforts are focused on designing strategies to adapt the IoT system at run time. But self-adaptations for system monitoring components also require attention.
Software deployment on heterogeneous devices: there are challenges for software deployment and migration in the edge/fog layer nodes of IoT systems. One of the present challenges is related to making intelligent allocation decisions to guarantee QoS. When deploying or moving an application in the system, it is necessary to select the edge/fog nodes that have enough resources for the operation of the application, and to offer the appropriate QoS
Machine learning for self-adaptable systems: predictive maintenance of physical devices is one of the tasks that can be efficiently forecasted by algorithms learning. For example, manufacturing systems require maintenance of their machinery to avoid system failures and downtimes.
Global self-adaptive architecture: the studies included in this SLR propose techniques and strategies to address at most two of the dynamic events. However, in some scenarios or domains, it is necessary to propose solutions to support various/simultaneous dynamic events. This specific challenge is addressed in my doctoral thesis: to design a general architecture for IoT systems with components to monitor, detect events, and self-adapt the system: an architecture with the ability to adapt to various dynamic events. In our paper Modeling self-adaptative IoT architectures, co-authored by Iván Alfonso, Kelly Garcés, Harold Castro and Jordi Cabot, presented in SAM’21 (co-located with Models’21), we propose a new domain-specific language (DSL) focusing on modeling IoT systems, the deployment and grouping of container-based applications, and a specific sublanguage to express adaptation rules to guarantee QoS at runtime.
 Singh M, Baranwal G. Quality of service (qos) in internet of things. In: 2018 3rd International Conference On Internet of Things: Smart Innovation and Usages (IoT-SIU). Bhimtal: IEEE: 2018. p. 1–6.
 Buyya R, Srirama SN. Fog and Edge Computing: Principles and Paradigms. Hoboken: Wiley; 2019.
 Patel P, Ali MI, Sheth A. On using the intelligent edge for IoT analytics. IEEE Intell Syst. 2017; 32(5):64–69.
 De Lemos R, Giese H, Müller HA, Shaw M, Andersson J, Litoiu M, Schmerl B, Tamura G, Villegas NM, Vogel T, et al.Software engineering for self-adaptive systems: A second research roadmap. In: Software Engineering for Self-Adaptive Systems II. Germany: Springer: 2013. p. 1–32.
 Keele S, et al.Guidelines for performing systematic literature reviews in software engineering. Technical report, Ver. 2.3 EBSE Technical Report. EBSE. 2007.
 Kitchenham B, Brereton OP, Budgen D, Turner M, Bailey J, Linkman S. Systematic literature reviews in software engineering–a systematic literature review. Inf Softw Technol. 2009; 51(1):7–15.