High-level Language Support for the Control of Reconfiguration in Component-based Architectures

Architecting in the context of variability has become a real need in nowadays software development. Modern software systems and their architecture must adapt dynamically to events coming from the environment (e.g., workload requested by users, changes in functionality) and the execution platform (e.g., resources availability). Component-based architectures have shown to be very suited for self-adaptation purposes, not only because of their intrinsic characteristics like reusability and modularity, but also as virtue of their dynamical recon guration capabilities. The issue, nevertheless, remains that adaptation behaviors are generally conceived by means of ne-grained recon guration actions from the very initial con gurations. This way, besides the complexity in managing large-sized architectures, the space of reachable con gurations is not know in advance, which prevents ensuring well-mastered adaptive behaviours. This paper presents Ctrl-F, a domain-speci c language whose objective is to provide high-level support for describing adaptation behaviours and policies in component-based architectures. The proposed language lies on synchronous reactive programming, which means that it bene ts of an entire environment and formal tooling allowing for the veri cation and control of recon gurations. We show the applicability of Ctrl-F by rst integrating it to FraSCAti, a Service Component Architecture middleware platform, and then by applying it to Znn.com, a well known self-adaptive case study. Key-words: Component-based Architectures, Self-adaptation, Control Theory ∗ INRIA Grenoble Rhône-Alpes † INRIA Lille Nord Europe Support langage de haut niveau pour le contrôle des recon gurations dans les architectures à composants Résumé : La conception des architectures logicielles dans le contexte de la variabilité est devenue un vrai besoin du développement logiciel de nos jours. Les systèmes logiciels modernes et leur architectures doivent s'adapter dynamiquement aux événements provenant de l'environnement (par exemple, la charge de travail demandée par les utilisateurs, les modi cations apportées aux fonctionnalités) et la plate-forme d'exécution (par exemple, la disponibilité de ressources). Les architectures à base de composants ont montré être très appropriées à l'autoadaptation, en raison non seulement de leurs caractéristiques intrinsèques, comme la réutilisation et la modularité, mais aussi grÃ¢ce à leurs capacités de recon guration dynamiques. Néanmoins, la question demeure que les comportements d'adaptation sont généralement conçus au moyen d'actions de recon guration à grain n à partir des con gurations initiales. De cette façon, en plus de la complexité de gestion, notamment dans le cadre des grandes architectures, l'espace de con gurations accessibles n'est pas explicitement connu à l'avance, ce qui empêche d'assurer des comportements adaptatifs bien maîtrisés. Cet article présente Ctrl-F, un langage dédié dont l'objectif est de fournir un support de haut niveau pour décrire des comportements et politiques d'adaptation pour les architectures à base de composants. Ce langage s'appuie sur la programmation réactive synchrone, ce qui signi e qu'il béné cie de tout un environnement et outillage formels permettant la véri cation et le contrôle de recon gurations par la voie de la synthèse de contrôleurs discrets. Nous montrons l'applicabilité de Ctrl-F d'abord par l'intégration à FraSCAti, une plate-forme middleware pour la Service Component Architecture, puis en l'appliquant à Znn.com, une application auto-adaptative utilisée comme cas d'étude. Mots-clés : Architecture à composants, auto-adaptation, théorie du contrôle High-level Language Support for the Control of Recon guration in Component-based Architectures3