Skip to main content
Log in

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

  • Published:
annals of telecommunications - annales des télécommunications Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. See http://fractal.objectweb.org/tutorial/index.html.

  2. The AttributesHelper class (provided by FScript) is about 450 lines long, although only part of the features are used here.

  3. http://www.hibernate.com.

  4. http://fractal.objectweb.org/fractaladl/index.html.

  5. The FScript interpreter is available for downloading at http:// fractal.objectweb.org/fscript/.

References

  1. 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

    Chapter  Google Scholar 

  2. Aldrich J, Chambers C, Notkin D (2002) ArchJava: connecting software architecture to implementation. In: International conference on software engineering, ICSE 2002, Orlando, May 2002

  3. 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

  4. Allen RJ (1997) A formal approach to software architecture. PhD thesis, Carnegie Mellon University, May 1997. Technical Report Number: CMU-CS-97-144

  5. 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

    Article  Google Scholar 

  6. 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

    Google Scholar 

  7. 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)

    Article  Google Scholar 

  8. Bruneton R, Coupaye T, Stéfani J-B (2003) The Fractal component model. Technical report, The ObjectWeb Consortium, Sept 2003, version 2.0

  9. 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

    Google Scholar 

  10. 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

    Article  Google Scholar 

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

    Google Scholar 

  16. 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

    Google Scholar 

  17. 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

  18. 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

    Google Scholar 

  19. Hajiyev E (2005) CodeQuest – source code querying with datalog. Msc thesis, St. Anne’s College, University of Oxford, Oxford University

  20. 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

  21. Kephart J, Chess DM (2003) The vision of autonomic computing. IEEE Comput 36(1):41–50

    Google Scholar 

  22. Kramer J, Magee J (1990) The evolving philosophers problem: dynamic change management. IEEE Trans Softw Eng 16(11):1293–1306

    Article  Google Scholar 

  23. 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

  24. 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

    Google Scholar 

  25. Medvidovic N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1):70–93

    Article  Google Scholar 

  26. Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv 37(4):316–344

    Article  Google Scholar 

  27. 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

    Google Scholar 

  28. OCL 2.0 Specification (2005) http://www.omg.org/docs/ptc/05-06-06.pdf

  29. 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

  30. 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)

    Google Scholar 

  31. 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

    Google Scholar 

  32. 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

    Google Scholar 

  33. 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

    Article  Google Scholar 

  34. 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

  35. Szyperski C (1997) Component software. ACM, New York

    Google Scholar 

  36. Traiger IL, Gray J, Galtieri CA, Lindsay BG (1982) Transactions and consistency in distributed database systems. ACM Trans Database Syst 7(3):323–342

    Article  MATH  Google Scholar 

  37. 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

    Google Scholar 

  38. World Wide Web Consortium (1999) XML path language (XPath) version 1.0. W3C Recommendation, Nov 1999. http://www.w3.org/TR/xpath/

  39. World Wide Web Consortium (2007) XML path language (XPath) version 2.0. W3C Recommendation, Jan 2007. http://www.w3.org/TR/xpath20/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Thomas Ledoux.

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

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12243-008-0073-y

Keywords

Navigation