Adaptation Timing in Self-Adaptive Systems
Gabriel A. Moreno.
PhD thesis, Institute for Software Research, School of Computer Science,Carnegie Mellon University, April 2017. Technical Report CMU-ISR-17-103.
Online links: Plain Text
Abstract
Software-intensive systems are increasingly expected to operate under changing
and uncertain conditions, including not only varying user needs and workloads, but
also fluctuating resource capacity. Self-adaptation is an approach that aims to address
this problem, giving systems the ability to change their behavior and structure
to adapt to changes in themselves and their operating environment without human
intervention.
Self-adaptive systems tend to be reactive and myopic, adapting in response to
changes without anticipating what the subsequent adaptation needs will be. Adapting
reactively can result in inefficiencies due to the system performing a suboptimal
sequence of adaptations. Furthermore, some adaptation tactics—atomic adaptation
actions that leave the system in a consistent state—have latency and take some time
to produce their effect. In that case, reactive adaptation causes the system to lag
behind environment changes. What is worse, a long running adaptation action may
prevent the system from performing other adaptations until it completes, further limiting
its ability to effectively deal with the environment changes.
To address these limitations and improve the effectiveness of self-adaptation, we
present proactive latency-aware adaptation, an approach that considers the timing
of adaptation (i) leveraging predictions of the near future state of the environment
to adapt proactively; (ii) considering the latency of adaptation tactics when deciding
how to adapt; and (iii) executing tactics concurrently. We have developed three different
solution approaches embodying these principles. One is based on probabilistic
model checking, making it inherently able to deal with the stochastic behavior
of the environment, and guaranteeing optimal adaptation choices over a finite decision
horizon. The second approach uses stochastic dynamic programming to make
adaptation decisions, and thanks to performing part of the computations required
to make those decisions off-line, it achieves a speedup of an order of magnitude
over the first solution approach without compromising optimality. A third solution
approach makes adaptation decisions based on repertoires of adaptation strategies—
predefined compositions of adaptation tactics. This approach is more scalable than
the other two because the solution space is smaller, allowing an adaptive system to
reap some of the benefits of proactive latency-aware adaptation even if the number
of ways in which it could adapt is too large for the other approaches to consider all
these possibilities.
We evaluate the approach using two different classes of systems with different
adaptation goals, and different repertoires of adaptation strategies. One of them is a
web system, with the adaptation goal of utility maximization. The other is a cyberphysical
system operating in a hostile environment. In that system, self-adaptation
must not only maximize the reward gained, but also keep the probability of surviving
a mission above a threshold. In both cases, our results show that proactive
latency-aware adaptation improves the effectiveness of self-adaptation with respect
to reactive time-agnostic adaptation. |
Keywords: Latency-aware, Rainbow, Self-adaptation.
|
|