Safe Dynamic Reconfiguration of Applications with Features
Reconfiguration dynamique sûre des applications comportant des options fonctionnelles
Résumé
Cloud applications and cyber-physical systems require frequent reconfiguration at run-time to adapt to changing needs and requirements, highlighting the importance of dynamic reconfiguration capabilities. Additionally, the environment platforms can extend and modify their services at run-time, which necessitates a compositional approach to allow the modifications of the configurations. To manage the variability of large systems' architecture, feature models are widely used at design-time with several operators defined to allow their composition. Existing approaches compute new valid configurations either at design time, at runtime, or both, leading to significant computational or validation overheads for each reconfiguration step. In addition, building correct-by-construction formal models to handle application reconfigurations is a complex and error-prone task, and there is a need to make it automated as far as possible.
To address these challenges, we propose an approach that leverages feature models to automatically generate, in a component-based formalism called JavaBIP, component-based run-time variability models that respect the feature model constraints. These component-based run-time variability models are executable and can be used at runtime to enforce the variability constraints, that is, to ensure the (partial) validity of all reachable configurations.
As complex systems' architectures may evolve at run-time by acquiring new features and functionalities while respecting new constraints, we define composition operators for component-based run-time variability models that not only encode these feature model composition operators, but also ensure safe run-time reconfiguration. To prove the correctness and compositionality properties, we propose a novel multi-step $\mathcal{UP}$-bisimulation equivalence and use it to show that the component-based run-time variability models preserve the semantics of the composed feature models.
For the experimental evaluation, we demonstrated the applicability of our approach in real-world scenarios by generating a run-time model based on the feature model of the Heroku cloud platform using our approach. This model is then used to deploy a real-world web application on the Heroku platform. Furthermore, we measured the time and memory overheads induced by the generated run-time models on systems involving up to 300 features. The results show that the overheads are negligible, demonstrating the practical interest of our approach.
Les applications en nuage et les systèmes cyber-physiques nécessitent une reconfiguration fréquente en cours d'exécution pour s'adapter à l'évolution des besoins et des exigences, ce qui souligne l'importance des capacités de reconfiguration dynamique. En outre, les plateformes d'environnement peuvent étendre et modifier leurs services en cours d'exécution, ce qui nécessite une approche compositionnelle pour permettre la modification des configurations. Pour gérer la variabilité de l'architecture des grands systèmes, les modèles de caractéristiques sont largement utilisés au moment de la conception, avec plusieurs opérateurs définis pour permettre leur composition. Les approches existantes calculent de nouvelles configurations valides soit au moment de la conception, soit au moment de l'exécution, soit les deux, ce qui entraîne d'importants frais généraux de calcul ou de validation pour chaque étape de reconfiguration. En outre, la construction de modèles formels corrects par construction pour gérer les reconfigurations d'applications est une tâche complexe et sujette aux erreurs, et il est nécessaire de l'automatiser autant que possible.
Pour relever ces défis, nous proposons une approche qui s'appuie sur les modèles de caractéristiques pour générer automatiquement, dans un formalisme basé sur les composants appelé JavaBIP, des modèles de variabilité d'exécution basés sur les composants qui respectent les contraintes du modèle de caractéristiques. Ces modèles de variabilité d'exécution basés sur les composants sont exécutables et peuvent être utilisés à l'exécution pour appliquer les contraintes de variabilité, c'est-à-dire pour garantir la validité (partielle) de toutes les configurations atteignables.
Comme les architectures des systèmes complexes peuvent évoluer à l'exécution en acquérant de nouvelles caractéristiques et fonctionnalités tout en respectant de nouvelles contraintes, nous définissons des opérateurs de composition pour les modèles de variabilité à l'exécution basés sur des composants qui non seulement encodent ces opérateurs de composition de modèles de caractéristiques, mais garantissent également une reconfiguration sûre à l'exécution. Pour prouver les propriétés de correction et de composition, nous proposons une nouvelle équivalence $\mathcal{UP}$-bisimulation en plusieurs étapes et l'utilisons pour montrer que les modèles de variabilité d'exécution basés sur les composants préservent la sémantique des modèles de fonctionnalités composés.
Pour l'évaluation expérimentale, nous avons démontré l'applicabilité de notre approche dans des scénarios réels en générant un modèle d'exécution basé sur le modèle de caractéristiques de la plateforme cloud Heroku à l'aide de notre approche. Ce modèle est ensuite utilisé pour déployer une application web réelle sur la plateforme Heroku. En outre, nous avons mesuré les surcharges de temps et de mémoire induites par les modèles d'exécution générés sur des systèmes impliquant jusqu'à 300 fonctionnalités. Les résultats montrent que les surcharges sont négligeables, ce qui démontre l'intérêt pratique de notre approche.
Mots clés
Origine | Fichiers produits par l'(les) auteur(s) |
---|