Abstract
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.
Similar content being viewed by others
Notes
The AttributesHelper class (provided by FScript) is about 450 lines long, although only part of the features are used here.
The FScript interpreter is available for downloading at http:// fractal.objectweb.org/fscript/.
References
Abdallah M, Guerraoui R, Pucheral P (1998) One-phase commit: does it make sense? In: ICPADS ’98: proceedings of the 1998 international conference on parallel and distributed systems. IEEE Computer Society, Washington, DC, p 182
Aldrich J, Chambers C, Notkin D (2002) ArchJava: connecting software architecture to implementation. In: International conference on software engineering, ICSE 2002, Orlando, May 2002
Alia M, Lenglet R, Coupaye T, Lefebvre A (2004) Querying on reflexive component-based architectures. In: Proceedings of the 30th EUROMICRO conference, Rennes, Sept 2004
Allen RJ (1997) A formal approach to software architecture. PhD thesis, Carnegie Mellon University, May 1997. Technical Report Number: CMU-CS-97-144
Avizienis A, Laprie J-C, Randell B, Landwehr C (2004) Basic concepts and taxonomy of dependable and secure computing. IEEE Trans Dependable Secur Comput 01(1):11–33
Batista T, Joolia A, Coulson G (2005) Managing dynamic reconfiguration in component-based systems. In: 2nd European workshop on software architectures (EWSA 2005). Lecture notes in computer science, vol 3527. Springer Berlin, Heidelberg
Bruneton R, Coupaye T, Leclercq M, Quéma V, Stefani J-B (2006) The Fractal component model and its support in Java. Softw Pract Exp 36(11–12):1257–1284 (special issue on Experiences with Auto-adaptive and Reconfigurable Systems)
Bruneton R, Coupaye T, Stéfani J-B (2003) The Fractal component model. Technical report, The ObjectWeb Consortium, Sept 2003, version 2.0
Cattell R, Barry DK, Berler M, Eastman J, Jordan D, Russell C, Schadow O, Stanienda T, Velez F (eds) (2000) The object data standard – ODMG 3.0. The Morgan Kaufmann series in data management systems. Morgan Kaufmann, San Francisco
Ceri S, Gottlob G, Tanca L (1989) What you always wanted to know about Datalog (and never dared to ask). IEEE Trans Knowl Data Eng 1(1):146–166
Coulson G, Blair GS, Grace P, Joolia A, Lee K, Ueyama J (2004) A component model for building systems software. In: Proceedings of IASTED software engineering and applications (SEA’04), Cambridge, Nov 2004
Dashofy EM, van der Hoek A, Taylor RN (2001) A highly-extensible, XML-based architecture description language. In: Proceedings of the working IEEE/IFIP conference on software architectures (WICSA 2001), Amsterdam
David P-C (2005) Développement de composants Fractal adaptatifs : un langage dédié à l’aspect d’adaptation. Ph.D. thesis, Université de Nantes / École des Mines de Nantes, July 2005
David P-C, Ledoux T (2006) An aspect-oriented approach for developing self-adaptive Fractal components. In: 5th international symposium on software composition (SC’06), Vienna, Mar 2006
David P-C, Léger M, Grall H, Ledoux T, Coupaye T (2008) A multi-stage approach for reliable dynamic reconfigurations of component-based systems. In: Proceedings of the 8th IFIP international conference on distributed applications and interoperable systems (DAIS’08), Oslo, Norway, June 2008. LNCS. Springer, Heidelberg
Dowling J, Cahill V (2001) The K-Component architecture meta-model for self-adaptive software. In: Yonezawa A, Matsuoka, S (eds) Proceedings of reflection 2001, the third international conference on metalevel architectures and separation of crosscutting concerns, Kyoto, Japan (Sept 2001), vol 2192 of Lecture Notes in Computer Science, AITO. Springer, Heidelberg, pp. 81–88
Fassino J-P, Stefani J-B, Lawall J, Muller G (2002) THINK: a software framework for component-based operating system kernels. In: Proceedings of the general track: 2002 USENIX annual technical conference, June 10–15, 2002, Monterey, California, USA. USENIX 2002, ISBN 1-880446-00-6
Garlan D, Monroe RT, Wile D (2000) Acme: architectural description of component-based systems. In: Leavens GT, Sitaraman M (eds) Foundations of component-based systems. Cambridge University Press, New York, pp 47–67
Hajiyev E (2005) CodeQuest – source code querying with datalog. Msc thesis, St. Anne’s College, University of Oxford, Oxford University
Jayaprakash N, Coupaye T, Collet C, Rivierre N (2005) Des régles actives au sein d’une infrastructure logicielle autonomique. In: Journées Composants 2005, 4éme conférence francophone autour des composants logiciels, Le Croisic, Apr 2005
Kephart J, Chess DM (2003) The vision of autonomic computing. IEEE Comput 36(1):41–50
Kramer J, Magee J (1990) The evolving philosophers problem: dynamic change management. IEEE Trans Softw Eng 16(11):1293–1306
Léger M, Coupaye T, Ledoux T (2006) Contrôle dynamique de l’intégrité des communications dans les architectures à composants. In: Rousseau R, Urtado C, Vauttier S (eds) LMO (2006), Hermés Lavoisier, pp 21–36
Medvidovic N, Oreizy P, Robbins JE, Taylor RN (1996) Using object-oriented typing to support architectural design in the C2 style. In: Proceedings of the ACM SIGSOFT’96 fourth symposium on the foundations of software engineering, San Francisco, CA, USA, Oct 1996. ACM SIGSOFT, New York, pp 24–32
Medvidovic N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1):70–93
Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv 37(4):316–344
Moreira RS, Blair GS, Carrapatoso E (2004) Supporting adaptable distributed systems with FORMAware. In: ICDCSW ’04: proceedings of the 24th international conference on distributed computing systems workshops. IEEE Computer Society, Washington, DC, pp 320–325
OCL 2.0 Specification (2005) http://www.omg.org/docs/ptc/05-06-06.pdf
Oreizy P (1996) Issues in the runtime modification of software architectures. Technical report UCI-ICS-TR-96-35, Department of Information and Computer Science University of California, Irvine
Pessemier N, Seinturier L, Coupaye T, Duchien L (2006) A model for developing component-based and aspect-oriented systems. In: Löwe W, Südholt M (eds) Software composition, 5th international symposium, SC 2006, Vienna, Austria, Mar 2006, vol 4089 of Lecture Notes in Computer Science. Springer, Heidelberg, pp 259–274 (Revised papers)
Polakovic J, Mazaré S, Stefani J-B, David P-C (2007) Experience with implementing safe reconfigurations in component-based embedded systems. In: The 10th international ACM SIGSOFT symposium on component-based software engineering (CBSE 2007), Boston, MA, USA, July 2007. Lecture Notes in Computer Science, ACM. Springer, Heidelberg
Redmond B, Cahill V (2002) Supporting unanticipated dynamic adaptation of application behaviour. In: Proceedings of ECOOP 2002, Malaga, Spain, May 2002, vol 2374 of Lecture Notes in Computer Science. Springer, Heidelberg, pp 205–230
Roshandel R, Hoek AVD, Mikic-Rakic M, Medvidovic N (2004) Mae—a system model and environment for managing architectural evolution. ACM Trans Softw Eng Methodol 13(2):240–276
Rouvoy R (2006) Une démarche à granularité extrêmement fine pour la construction de canevas intergiciels hautement adaptables : application aux services de transactions. PhD thesis, Université des Sciences et Technologies de Lille, Lille
Szyperski C (1997) Component software. ACM, New York
Traiger IL, Gray J, Galtieri CA, Lindsay BG (1982) Transactions and consistency in distributed database systems. ACM Trans Database Syst 7(3):323–342
Weikum G, Schek H-J (1992) Concepts and applications of multilevel transactions and open nested transactions. Database transaction models for advanced applications. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, pp 515–553
World Wide Web Consortium (1999) XML path language (XPath) version 1.0. W3C Recommendation, Nov 1999. http://www.w3.org/TR/xpath/
World Wide Web Consortium (2007) XML path language (XPath) version 2.0. W3C Recommendation, Jan 2007. http://www.w3.org/TR/xpath20/
Author information
Authors and Affiliations
Corresponding author
Additional information
This research is supported by the French RNTL project Selfware (http://sardes.inrialpes.fr/selfware) and the IST project Selfman (http://www.ist-selfman.org).
Rights and permissions
About this article
Cite this article
David, PC., Ledoux, T., Léger, M. et al. FPath and FScript: Language support for navigation and reliable reconfiguration of Fractal architectures. Ann. Telecommun. 64, 45–63 (2009). https://doi.org/10.1007/s12243-008-0073-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12243-008-0073-y