|Consortium Activities Projects Forge Events|
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.
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.
Questions, comments, ideas, etc. related to Fractal can be posted on the Fractal mailing list.
Copyright © 1999-2009, OW2 Consortium | contact | webmaster | Last modified at 2012-12-03 09:57 PM