Fractal - Documentation

Overview

Fractal is a modular and extensible component model that can be used with various programming languages to design, implement, deploy and reconfigure various systems and applications, from operating systems to middleware platforms and to graphical user interfaces. Fractal is also a project with several sub projects, dealing with the definition of the model, its implementations, and the implementation of reusable components and tools on top of it.

The Fractal component model heavily uses the separation of concerns design principle. The idea of this principle is to separate into distinct pieces of code or runtime entities the various concerns or aspects of an application: implementing the service provided by the application, but also making the application configurable, secure, available, ... In particular, the Fractal component model uses three specific cases of the separation of concerns principle: namely separation of interface and implementation , component oriented programming , and inversion of control . The first pattern, also called the bridge pattern, corresponds to the separation of the design and implementation concerns. The second pattern corresponds to the separation of the implementation concern into several composable, smaller concerns, implemented in well separated entities called components. The last pattern corresponds to the separation of the functional and configuration concerns: instead of finding and configuring themselves the components and resources they need, Fractal components are configured and deployed by an external, separated entity.

The separation of concerns principle is also applied to the structure of the Fractal components. A Fractal component is indeed composed of two parts: a content that manages the functional concerns, and a membrane of controllers, that manages zero or more non functional concerns (introspection, configuration, security, transactions, ....). The content is made of other Fractal components, i.e. Fractal components can be nested at arbitrary levels (Fractal components can also be shared , i.e. be nested in several components at the same time). The introspection and configuration interfaces that can be provided by the controllers allow components to be deployed and reconfigured dynamically. These control interfaces can be used either programmatically, or through tools based on them, such as deployment or supervision tools.

Reference Documentation

The specification of the Fractal component model is presented in the The Fractal Component Model document. In addition, the Fractal ADL web page contains information about the Fractal Architecture Description Language.

Publications

  • Special issue of the Annals of Telecommunications on Component-Based Architecture: The Fractal Initiative. January-February 2009.
  • P. Merle, and J.-B. Stefani. A Formal Specification of the Fractal Component Model in Alloy . INRIA Research Report 6721. November 2008.
  • E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma, and J.-B. Stefani. The Fractal Component Model and Its Support in Java . Software Practice and Experience, special issue on Experiences with Auto-adaptive and Reconfigurable Systems. 36(11-12), 2006. [PDF]
  • E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma, and J.-B. Stefani. An Open Component Model and Its Support in Java . 7th International Symposium on Component-Based Software Engineering (CBSE-7). LNCS 3054, pp. 7-22, May 2004. [PDF]
  • E. Bruneton, T. Coupaye, and J.-B. Stefani. Recursive and Dynamic Software Composition with Sharing . 7th International Workshop on Component-Oriented Programming (WCOP02), Monday, June 10, 2002 - At ECOOP 2002, Malaga, Spain, June 10-14, 2002. [PDF]

In French.

Slides

In French.

Fractal Workshops & Poster Sessions

Mailing List

Questions, comments, ideas, etc. related to Fractal can be posted on the Fractal mailing list.

Copyright © 1999-2005, ObjectWeb Consortium | contact | webmaster | Last modified at 2012-12-03 09:57 PM