Keywords

1 Introduction

The complexity of modern software systems has increased dramatically over the years and is continuing to do so [1]. Users can access software applications using a variety of devices and since mobile technologies are on the rise, applications are becoming ubiquitous in our society. In order to deal with the great diversity of execution contexts, different user profiles, system faults, changing environmental conditions and user needs, etc., modern software systems provide self-adaptation capabilities at runtime.

In practice, these capabilities are usually realized by implementing the prominent MAPE-K feedback control loop [2, 3]. In MAPE-K, self-adaptation is achieved applying four steps: Monitor, Analyze, Plan, and Execute. In the Monitor step, runtime data from the targeted adaptive system and its environment is collected. The collected data is then Analyzed and, if needed (e.g. analysis results show a violation of the requirements), a system adaptation is Planned. Finally, the adaptation is enacted in the Execute step. In order to function properly, these four steps share a Knowledge base containing data such as measurements, logs, adaptation policies, etc.

Modern SASs rely on external monitoring services for observing them and their environment. In the MAPE-K loop, the monitoring services play a crucial role since the quality of the monitoring data (e.g., correctness, timeliness, freshness, accuracy, availability, etc.) affects directly the performance of the rest of the elements of the loop and in consequence the self-adaptation decisions made [2].

In order to guarantee the quality of the monitoring data at runtime, monitoring services supporting SASs have to be adaptive as well. The complexity of handling the monitoring services adaptation in coordination with SASs operation challenges and offers new opportunities to software engineers. In this research, alternatives for addressing this challenge are studied. The rest of the paper is organized as follows. Section 2 states the problem this research intends to solve. Section 3 details the proposed solution. Section 4 presents related work. And finally, Sect. 5 presents conclusions and future work.

2 Problem Statement

Several approaches have been proposed to support monitoring of SASs and their environment. However, most of them assume that the Monitor element (as well as the rest of elements) of the loop is a static component and it does not change at runtime. This implies that the systems’ owners should know everything to be monitored at design time and that the monitoring services that compose this MAPE-K element always behave the same. Due to the systems’ changing environment, monitoring services dynamism and evolving user and systems’ owners’ requirements, this vision is not valid anymore.

As mentioned before in Sect. 1, monitoring services supporting modern SASs need to be adaptive as well in order to guarantee monitoring data quality (e.g., correctness, timeliness, freshness, accuracy, availability, etc.) and the requirements’ satisfaction over time. The challenge of handling the monitoring services adaptation process in coordination with SASs operation motivates the study, specification, design and development of new and innovative methods and techniques for effectively, efficiently and accurately planning and applying adaptation decisions on monitoring services supporting SASs at runtime.

Motivated by this challenge, this research explores and experiments with new and existing methods and techniques in order to provide a solution to deal with the automatic adaptation of the monitoring services supporting MAPE-K-based SASs. In summary, the research addresses two main objectives:

  • Enable the automatic adaptation of monitoring services supporting MAPE-K-based SASs at runtime in order to respond to changes in the environment and the monitoring services themselves.

  • Compare the results of using adaptive monitoring services in MAPE-K-based SASs, against using non-adaptive (static) monitoring services.

In order to meet these research objectives we have to address the following research questions:

  • RQ1. How is monitoring adaptation supported by existing approaches?

  • RQ2. How is the monitoring services adaptation at runtime supported in current MAPE-K-based SASs by existing approaches?

  • RQ3. What can be improved or done for better supporting the adaptation of the monitoring services at runtime in MAPE-K-based SASs in the existing approaches?

3 Proposed Solution

In order to coordinate the adaptation of the monitoring services conforming the Monitor element of MAPE-K-based SASs, this research proposes: first, extend the IBM MAPE-K loop architecture [3] utilized by most of the modern SASs for conducting their adaptation process, with a second MAPE-K loop on top of the Monitor element in charge of managing the adaptation process of the monitoring services (see Fig. 1). This design decouples the monitoring services adaptation logic from the SASs adaptation logic, allowing the independent development of the modules and the adoption of the approach by existing SASs.

Fig. 1.
figure 1

Adaptive monitoring services for SASs (Color figure online)

Second, we propose to explore different methods and techniques identified in RQ1 and RQ2 for implementing the MAPE-K loop in charge of the monitoring services adaptation. Then, determine which of them perform better for monitoring services supporting SASs. A flexible and generic design of the external MAPE-K loop elements (orange elements in Fig. 1) will be required for experimenting with the different techniques. At this point, we are exploring different algorithmic, statistical, modeling and stochastic analysis and decision-making techniques, through a systematic mapping in the domain of adaptive monitoring. Finally, we are developing a reusable high-level architecture for adaptive monitoring services participating in MAPE-K loops. The architecture is intended to serve as a reference for correctly managing the enactment process of monitoring adaptation decisions at runtime.

We plan to evaluate our solution in two systems: a self-adaptive smart vehicle and a real self-adaptive video streaming service, this second as part of the SUPERSEDE (SUpporting evolution and we adaptation of PERsonalized Software by Exploiting contextual Data and End-user feedback) H2020 research and innovation project (https://www.supersede.eu). In the first scenario, the monitoring services adaptation aims at providing energy-efficient monitoring for self-adaptive smart vehicles. In the second scenario, adaptation is performed in order to guarantee monitoring services resilience for the self-adaptive video streaming service. Techniques for implementing the external loops of both systems (orange elements in Fig. 2) are being studied.

Fig. 2.
figure 2

Adaptive monitoring services for SASs evaluation (Color figure online)

Regarding the evaluation, we have already results about the adaptation of the target systems with static monitoring. For the smart vehicle a preliminary version of the implementation has been presented as a demo tool in the IEEE RE’15 conference [4]. On the other hand, the advances on the video streaming service are available in the public deliverable D4.5 of the SUPERSEDE project [5].

4 Related Work

So far, a lot of research has been performed on adapting monitoring systems in a diversity of domains, for instance, e-health monitoring services [6, 7], structural and environmental monitoring hardware and software systems [8, 9], network probing [10, 11] and software systems monitoring applications [12, 13]. In this work, due to space limitations, we reference only some of the studies dealing with the adaptation of monitoring systems; however, we know that there are several more since we are conducting a systematic mapping in which we are analyzing a final set of 115 papers related to this topic.

Although lot of effort has been done, only very few of existing works consider the adaptation of monitoring systems that support SASs. And in consequence the challenge of handling the adaptation process of the monitors in coordination with the normal operation of SASs is still open. On the other hand, the importance of making the MAPE-K loop elements adaptive has been remarked in the last years by other works [2, 14, 15]. However, the proposals are very superficial or designed for solving a particular problem. Unlike existing work, we propose to develop a reusable solution to place on top of any type of monitoring service in the adaptation logic of a SAS.

5 Conclusions and Future Work

In this paper details about our ongoing research on the adaptive monitoring service for MAPE-K-based SASs topic have been provided. We stated the motivation of the research and the research problem and challenge it tries to solve. Moreover, we described our initial proposal for addressing the research challenge as well as the systems in which we plan to evaluate this proposal. We have also presented the related work and pointed out the novelty of our research regarding existing proposals. For the advances on the research results, we have initial implementations of the self-adaptive smart vehicle and video streaming service with static monitoring services. The next step is to provide adaptation capabilities to these monitoring services applying our proposed solution and compare evaluation results using the static and the adaptive monitoring services in the same systems (i.e., address RQ3).