The Fractal Project

Background image appears courtesy of Giuseppe Zito.

OW2 Technology Council Special Prize for ProActive-CLIF-Fractal integration. Project Description Fractal is a modular, extensible and programming language agnostic component model that can be used to design, implement, deploy and reconfigure systems and applications, from operating systems to middleware platforms and to graphical user interfaces. The goal of Fractal is to reduce the development, deployment and maintenance costs of software systems in general, and of ObjectWeb projects in particular. The Fractal component model has the following important features: recursivity : components can be nested in composite components (hence the "Fractal" name).

: components can be nested in composite components (hence the "Fractal" name). reflectivity : components have full introspection and intercession capabilities.

: components have full introspection and intercession capabilities. component sharing : a given component instance can be included (or shared) by more than one component. This is useful to model shared resources such as memory manager or device drivers for instance.

: a given component instance can be included (or shared) by more than one component. This is useful to model shared resources such as memory manager or device drivers for instance. binding components : a single abstraction for components connections that is called bindings. Bindings can embed any communication semantics from synchronous method calls to remote procedure calls

: a single abstraction for components connections that is called bindings. Bindings can embed any communication semantics from synchronous method calls to remote procedure calls execution model independence : no execution model is imposed. In that, components can be run within other execution models than the classical thread-based model such as event-based models and so on.

: no execution model is imposed. In that, components can be run within other execution models than the classical thread-based model such as event-based models and so on. open: extra-functional services associated to a component can be customized through the notion of a control membrane. Programming Languages Support The Fractal Component Model is available for various programming languages: Reference implementations: Julia (Java)

Cecilia (C) Other implementations: AOKell (Java)

Think (C)

FractNet (.NET experimental)

FracTalk (SmallTalk experimental)

Julio (Python experimental)