Sections
Accueil UNamur > Agenda > Self-Prioritized Modular Adaptations using Bidirectional Transformations
événement

Self-Prioritized Modular Adaptations using Bidirectional Transformations

Défense de mémoire de Jérémy Duchesne et Quentin Lombat

Catégorie : mémoire
Date : 18/06/2018 13:00 - 18/06/2018 14:00
Lieu : salle académique
Orateur(s) : Jérémy Duchesne/Quentin Lombat
Organisateur(s) : Isabelle Daelman

As self-adaptive software systems get complex, it is desirable to modularize the monitoring- analysis-planning-execution (MAPE) feedback loop into ones that manage the changes re- lated to individual goals. However, decomposing into modules requires resolving conflicts when the shared information is updated simultaneously. To address the challenge, we pro- pose 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 with respect 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 efficiency of using BiGUL, and the usefulness of the self-prioritized modular adaptation system.

Au fur et à mesure que la complexité des logiciels auto-adaptifs augmente, il est intéressant de modulariser la boucle monitoring-analysis-planning-execution (MAPE) en plusieurs, qui gèrent les changements de façon individuelle. Cependant, la décomposition en modules demande de résoudre les conflits apparaissant lorsque l’information partagée est mise à jour simultanément. Pour résoudre ce problème, nous proposons d’ajouter le fait de donner de la priorité automatique à l’architecture en trois couches de Kramer et al. sur les systèmes qui s’auto-gèrent. Une boucle MAPE complexe est découpée en pairs d’analyse et de plan (AP), devenant ainsi une boucle M(AP)+E, où les pairs d’AP partagent les mêmes étapes de monitoring et d’exécution. Ensuite, les transformations bidirectionnelles sont utilisées pour propager les changements entre les vues d’AP. Cette propagation est réalisée par BiGUL, un langage bidirectionnel dit "basé put". Enfin, les conflits entre les vues sont évitées par l’exécution séquentielle des pairs dans un ordre précis. La priorité maximum est donnée à la dernière vue exécutée, lui permettant de remplacer par son propre changement ceux effectués par de précédentes vues. Une importante caractéristique de notre approche et qu’elle libère l’utilisateur de spécifier lui-même les priorités des vues, via l’utilisation d’un synchroniseur basé sur des règles. Ce synchroniseur donne la priorité de façon automatique lors de l’exécution sans conflit des modules d’AP, tout en respectant le contexte courant. Notre approche a été implémentée et est illustrée sur l’API Amazon Web Services, un IaaS (Infrastructure as a Service). Son évaluation souligne l’efficacité de l’utilisation de BiGUL, ainsi que l’utilité de notre système.


Contact : Isabelle Daelman - 4966 - isabelle.daelman@unamur.be
Télecharger : vCal