Fractal component model
Encyclopedia
Fractal is a modular and extensible component model that can be used with various programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

s to design
Software design
Software design is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution...

, implement, deploy
Deployment
Deployment may refer to:* Deployment flowchart, a process mapping tool used to articulate the steps and stakeholders of a given process* System deployment, transforming a mechanical, electrical, or computer system from a packaged form to an operational state* Software deployment, all of the...

 and reconfigure various systems and applications, from operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s to middleware
Middleware
Middleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...

 platforms and to graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

s.
The goal of Fractal is to reduce the development, deployment and maintenance costs of software systems in general, and of OW2 projects in particular. The Fractal model already uses some well known design patterns, such as separation of interface and implementation and, more generally, separation of concerns
Separation of concerns
In computer science, separation of concerns is the process of separating a computer program into distinct features that overlap in functionality as little as possible. A concern is any piece of interest or focus in a program. Typically, concerns are synonymous with features or behaviors...

, in order to achieve this goal. There is also ongoing research work to get even closer to this goal.
Fractal is hosted and developed by the OW2 consortium. It is distributed under the LGPL open-source license
Open-source license
An open-source license is a copyright license for computer software that makes the source code available for everyone to use. This allows end users to review and modify the source code for their own customization and/or troubleshooting needs...

.

Sub Projects

The Fractal Project is made of four sub projects:
  • The Component Model sub project deals with the definition of the Fractal component model specification. The main characteristics of this model are recursivity (components can be nested in composite components - hence the "Fractal" name) and reflexivity (components have full introspection and intercession capabilities). The Fractal model is also language independent, and fully modular and extensible.
  • The Implementations sub project deals with the implementation of Fractal component platforms, which allow the creation, configuration and reconfiguration of Fractal components. Julia, the reference implementation, is developed in this sub project.
  • The Component Libraries sub project deals with the implementation of reusable, ready to use Fractal components, such as protocol or Swing components.
  • The Tools sub project deals with the implementation of Fractal based applications dedicated to Fractal, such as tools to define and manage component configurations .

Implementations

Besides Julia http://fractal.objectweb.org/tutorials/julia/index.html, the reference implementation in Java maintained in the ObjectWeb
ObjectWeb
The OW2 Consortium is a not-for-profit, international consortium mainly devoted to producing open source middleware, EAI, e-business, clustering, grid computing. It was founded by INRIA, Groupe Bull, and France Télécom...

 Fractal project, there are several other implementations of the Fractal component model in other projects, including non ObjectWeb
ObjectWeb
The OW2 Consortium is a not-for-profit, international consortium mainly devoted to producing open source middleware, EAI, e-business, clustering, grid computing. It was founded by INRIA, Groupe Bull, and France Télécom...

 projects:
  • AOKell http://fractal.objectweb.org/tutorials/aokell/index.html is a Java implementation similar to Julia, but based on AspectJ instead of mixins. It can execute the same applications as Julia, including Fractal RMI, Fractal ADL, Fractal Explorer.
  • FracTalk is a SmallTalk implementation of the Fractal component model.
  • FractNet http://www-adele.imag.fr/fractnet/ is a .Net implementation of the Fractal component model.
  • Plasma is a C++ implementation of Fractal, geared at multimedia applications.
  • ProActive
    ProActive
    ProActive is Java grid middleware for parallel, distributed, and multi-threaded computing. It is developed by the OW2 Consortium, including INRIA, CNRS, University of Nice Sophia Antipolis, and ActiveEon...

     http://proactive.inria.fr is a distributed and asynchronous implementation of Fractal geared at Grid Computing.
  • Think
    ObjectWeb Think
    The ObjectWeb THINK framework is a C implementation targeting the embedded world of the highly flexible . It lets OS architects assemble system components of arbitrary sizes in varied ways so that architectural aspects can be clearly separated from functional ones...

     is a C implementation of Fractal geared at operating system development.
  • Cecilia http://fractal.ow2.org/cecilia-site/current/ is another C implementation of Fractal, forked
    Fork (software development)
    In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...

    from Think v3.

Tools

The currently available Fractal tools are listed below:

  • Fractal GUI editor is a tool made of several Fractal components that provides a graphical tool to design and edit Fractal component configurations.


External links =
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK