6 research outputs found
A Survey on Self-healing Software System
With the increasing complexity of software systems, it becomes very difficult
to install, configure, adjust, and maintain them. As systems become more
interconnected and diverse, system architects are less able to predict and
design the interaction between components, deferring the handling of these
issues to runtime. One of the important problems that occur during execution is
system failures, which increase the need for self-healing systems. The main
purpose of self-healing is to have an automatic system that can heal itself
without human intervention. This system has predefined actions and procedures
that are suitable for recovering the system from different failure modes. In
this study, different self-healing methods are categorized and a summary of
them is presented
Feature Model-Guided Online Reinforcement Learning for Self-Adaptive Services
International audienceA self-adaptive service can maintain its QoS requirements in the presence of dynamic environment changes. To develop a self-adaptive service, service engineers have to create self-adaptation logic encoding when the service should execute which adaptation actions. However, developing self-adaptation logic may be difficult due to design time uncertainty ; e.g., anticipating all potential environment changes at design time is in most cases infeasible. Online reinforcement learning addresses design time uncertainty by learning suitable adaptation actions through interactions with the environment at runtime. To learn more about its environment, reinforcement learning has to select actions that were not selected before, which is known as exploration. How exploration happens has an impact on the performance of the learning process. We focus on two problems related to how a service's adaptation actions are explored: (1) Existing solutions randomly explore adaptation actions and thus may exhibit slow learning if there are many possible adaptation actions to choose from. (2) Existing solutions are unaware of service evolution, and thus may explore new adaptation actions introduced during such evolution rather late. We propose novel exploration strategies that use feature models (from software product line engineering) to guide exploration in the presence of many adaptation actions and in the presence of service evolution. Experimental results for a self-adaptive cloud management service indicate an average speed-up of the learning process of 58.8% in the presence of many adaptation actions, and of 61.3% in the presence of service evolution. The improved learning performance in turn led to an average QoS improvement of 7.8% and 23.7% respectively
Feature-Model-Guided Online Learning for Self-Adaptive Systems
A self-adaptive system can modify its own structure and behavior at runtime
based on its perception of the environment, of itself and of its requirements.
To develop a self-adaptive system, software developers codify knowledge about
the system and its environment, as well as how adaptation actions impact on the
system. However, the codified knowledge may be insufficient due to design time
uncertainty, and thus a self-adaptive system may execute adaptation actions
that do not have the desired effect. Online learning is an emerging approach to
address design time uncertainty by employing machine learning at runtime.
Online learning accumulates knowledge at runtime by, for instance, exploring
not-yet executed adaptation actions. We address two specific problems with
respect to online learning for self-adaptive systems. First, the number of
possible adaptation actions can be very large. Existing online learning
techniques randomly explore the possible adaptation actions, but this can lead
to slow convergence of the learning process. Second, the possible adaptation
actions can change as a result of system evolution. Existing online learning
techniques are unaware of these changes and thus do not explore new adaptation
actions, but explore adaptation actions that are no longer valid. We propose
using feature models to give structure to the set of adaptation actions and
thereby guide the exploration process during online learning. Experimental
results involving four real-world systems suggest that considering the
hierarchical structure of feature models may speed up convergence by 7.2% on
average. Considering the differences between feature models before and after an
evolution step may speed up convergence by 64.6% on average. [...
A survey on engineering approaches for self-adaptive systems (extended version)
The complexity of information systems is increasing in recent years, leading to increased effort for maintenance and configuration. Self-adaptive systems (SASs) address this issue. Due to new computing trends, such as pervasive computing, miniaturization of IT leads to mobile devices with the emerging need for context adaptation. Therefore, it is beneficial that devices are able to adapt context. Hence, we propose to extend the definition of SASs and include
context adaptation. This paper presents a taxonomy of self-adaptation and a survey on engineering SASs. Based on the taxonomy and the survey, we motivate a new perspective on SAS including context adaptation
Recommended from our members
Addressing Resource Variability Through Resource-Driven Adaptation
Software systems execute tasks that depend on different types of resources. However, the variability of resources may interfere with the ability of software systems to execute important tasks. Resource variability can occur due to several reasons including unexpected hardware failures, excess workloads, or lack of materials. For example, in automated warehouses, malfunctioning robots could delay product deliveries causing customer dissatisfaction and, therefore, reducing an enterprise’s sales. Moreover, the unavailability of medical materials hinders the ability of hospitals to perform medically-critical operations causing loss of life. In this thesis, we propose to address the problem of resource variability through resource-driven adaptation, using task models as input for adaptation decisions. The thesis presents the following contributions:
• SPARK: a framework for performing proactive and reactive resource-driven adaptation based on multiple task-related criteria. The framework supports different types of depletable and reusable resources that could face variability. SPARK assists with four types of adaptation, namely: (i) execution of a similar task that requires fewer resources, (ii) substitution of resources by alternative ones, (iii) execution of tasks in a different order, and (iv) cancellation of the execution of tasks.
• SERIES: a task modelling notation and editor tool that enables software practitioners to create task models that serve as input for SPARK. SERIES supports the representation of task priorities, task variants, task execution types, resource types, and properties representing users’ feedback.
SPARK was evaluated in terms of the percentage of executed critical task requests, the average criticality of the executed task requests in comparison to the non-executed ones, overhead, and scalability through two case studies concerned with a medicine consumption system and a manufacturing system. The results of the evaluation showed that SPARK increased the number of executed critical task requests during resource variability. Additionally, the results showed that the time it takes to prepare and apply adaptation plans does not add significant overhead that hinders the ability of software systems to execute tasks in a tolerable waiting time. Furthermore, SPARK was shown to be scalable since the abovementioned time increases polynomially relative to the input size (number of tasks and task variants).
SERIES was evaluated through a user study with twenty software practitioners. The results showed that software practitioners performed very well when explaining and creating task models using SERIES. These results were reflected in the task modelling activities that the participants performed as well as in their positive feedback regarding the usability of SERIES and the clarity of its semantic constructs.
Overall, we conclude that the research presented in the thesis contributes to addressing resource variability through resource-driven adaptation. We also provide suggestions for future work that can extend this research