Abstract
As self-adaptive software systems get complex, it is desirable to modularize the monitoringanalysis-planning-execution (MAPE) feedback loop into ones that manage the changes related to individual goals. However, decomposing into modules requires resolving conflicts when the shared information is updated simultaneously. To address the challenge, we propose self-prioritization on top of Kramer et al.'s three-layered architecture of self-managing systems. A complex MAPE loop is first broken down into model-based Analysis-Planning (AP) process pairs, formulating an M(AP)+E loop template while sharing the monitor and execution interfaces to the managed system. Then, bidirectional transformations (BXs) are used to propagate changes between the modularized AP views, using BiGUL, a well-behaved put-based bidirectional language. Finally, conflicts between views are avoided by executing the AP pairs sequentially in a certain ordering, giving the maximum priority to the last one, and allowing it to overwrite the changes made by the previous ones. An important feature of our approach is that it frees users from specifying the changing priorities by employing a rule-based synchronizer that self-prioritizes the conflict-free execution of AP modules withrespect to dynamic contexts. Our approach has been implemented and illustrated on an
Infrastructure as a Service (IaaS), the Amazon Web Services (AWS) API. Its evaluation
highlights the effciency of using BiGUL, and the usefulness of the self-prioritized modular adaptation system.
Date of Award | 18 Jun 2018 |
---|---|
Original language | English |
Awarding Institution |
|
Supervisor | Pierre Yves Schobbens (Supervisor) |