FPath and FScript: Language support for navigation and reliable reconfiguration of Fractal architectures

Component-based systems must support dynamic reconfigurations to adapt to their execution context, but not at the cost of reliability. Fractal provides intrinsic support for dynamic reconfiguration, but its definition in terms of low-level APIs makes it complex to write reconfigurations and to ensure their reliability. This article presents a language-based approach to solve these issues: direct and focused language support for architecture navigation and reconfiguration make it easier both to write the reconfigurations and to ensure their reliability. Concretely, this article presents two languages: (1) FPath, a domain-specific language that provides a concise yet powerful notation to navigate inside and query Fractal architectures, and (2) FScript, a scripting language that embeds FPath and supports the definition of complex reconfigurations. FScript ensures the reliability of these reconfigurations thanks to sophisticated run-time control, which provides transactional semantics (ACID properties) to the reconfigurations.

[1]  Letizia Tanca,et al.  What you Always Wanted to Know About Datalog (And Never Dared to Ask) , 1989, IEEE Trans. Knowl. Data Eng..

[2]  Hans-Jörg Schek,et al.  Concepts and Applications of Multilevel Transactions and Open Nested Transactions , 1992, Database Transaction Models for Advanced Applications.

[3]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[4]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[5]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[6]  Peyman Oreizy,et al.  Using object-oriented typing to support architectural design in the C2 style , 1996, SIGSOFT '96.

[7]  Thaís Vasconcelos Batista,et al.  Managing Dynamic Reconfiguration in Component-Based Systems , 2005, EWSA.

[8]  Michael Stonebraker,et al.  The Morgan Kaufmann Series in Data Management Systems , 1999 .

[9]  Mirina Grosz,et al.  World Wide Web Consortium , 2010 .

[10]  Vinny Cahill,et al.  Supporting Unanticipated Dynamic Adaptation of Application Behaviour , 2002, ECOOP.

[11]  Gordon S. Blair,et al.  A component model for building systems software , 2004, IASTED Conf. on Software Engineering and Applications.

[12]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java: Experiences with Auto-adaptive and Reconfigurable Systems , 2006 .

[13]  Thierry Coupaye,et al.  A Model for Developing Component-Based and Aspect-Oriented Systems , 2006, SC@ETAPS.

[14]  Steven J. DeRose,et al.  XML Path Language (XPath) Version 1.0 , 1999 .

[15]  Romain Rouvoy Une démarche à granularité extrêmement fine pour la construction de canevas intergiciels hautement adaptables : application aux services de transactions. (A extremely fine-grained approach to build highly adaptable middleware frameworks: application to transaction services) , 2006 .

[16]  Clemens Szyperski,et al.  Component software , 1997 .

[17]  Robert J. Allen A formal approach to software architecture , 1997 .

[18]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[19]  Elnar Hajiyev,et al.  CodeQuest: querying source code with datalog , 2005, OOPSLA '05.

[20]  A. Elmagarmid Database transaction models for advanced applications , 1992 .

[21]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[22]  Pierre-Charles David,et al.  Experience with implementing safe reconfigurations in Component-based embedded systems , 2007 .

[23]  Thomas Ledoux,et al.  An Aspect-Oriented Approach for Developing Self-Adaptive Fractal Components , 2006, SC@ETAPS.

[24]  Rachid Guerraoui,et al.  One-phase commit: does it make sense? , 1998, Proceedings 1998 International Conference on Parallel and Distributed Systems (Cat. No.98TB100250).

[25]  Julia L. Lawall,et al.  Proceedings of the 2002 Usenix Annual Technical Conference Think: a Software Framework for Component-based Operating System Kernels , 2022 .

[26]  R. G. G. Cattell,et al.  Recent books , 2000, IEEE Spectrum.

[27]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[28]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[29]  Irving L. Traiger,et al.  Transactions and consistency in distributed database systems , 1982, TODS.

[30]  Peyman Oreizy Issues in the Runtime Modification of Software Architectures , 1997 .

[31]  Jim Dowling,et al.  The K-Component Architecture Meta-model for Self-Adaptive Software , 2001, Reflection.

[32]  Pierre-Charles David Développement de composants Fractal adaptatifs : un langage dédié à l'aspect d'adaptation , 2005 .

[33]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[34]  Elnar Hajiyev CodeQuest-Source Code Querying with Datalog , 2005 .

[35]  A. Lefebvre,et al.  Querying reflexive component-based architectures , 2004 .

[36]  Marija Mikic-Rakic,et al.  Mae---a system model and environment for managing architectural evolution , 2004, TSEM.

[37]  Hervé Grall,et al.  A Multi-stage Approach for Reliable Dynamic Reconfigurations of Component-Based Systems , 2008, DAIS.

[38]  C. Chambers,et al.  ArchJava: connecting software architecture to implementation , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[39]  Thierry Coupaye,et al.  Querying reflexive component-based architectures , 2004, Proceedings. 30th Euromicro Conference, 2004..

[40]  Gordon S. Blair,et al.  Supporting adaptable distributed systems with FORMAware , 2004, 24th International Conference on Distributed Computing Systems Workshops, 2004. Proceedings..

[41]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[42]  Thomas Ledoux,et al.  Contrôle dynamique de l'intégrité des communications dans les architectures à composants , 2006, LMO.

[43]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.