Jérémy Buisson, Jeremy.Buisson@irisa.fr
Version 0.1 is available.
GNU Lesser General Public License version 2.1.
Dynaco (Dynamic Adaptation for Components ) is a framework that helps in designing and implementing dynamically adaptable components. This framework is developed by the Paris Project-Team. The implementation of Dynaco is based on the Fractal Component Model and its formalism.
In Dynaco , the process of achieving dynamic adaptation is split over three phases:
Upon the reception of an event that notifies of a change in certain conditions, the component has to make a decision: should it adapt itself to the new situation or not? To do so, it can rely on monitors in order to observe the system. This decision phase is captured by the Decider Component .
Once it has been decided that the component should adapt itself, the component needs to investigate how the adaptation can be achieved. In particular, it has to design the list of the tasks that should be performed. This phase is captured by the Planner Component .
Finally, this adaptation plan has to be executed. The Executor Component is the virtual machine that implements the semantics of the instructions used by the Planner Component. To do so, it can rely on the Modification Controller Components , which implement some primitive instructions by giving a direct access to the content of the components.
Dynaco mainly defines interfaces between those components. In addition, it includes a reference implementation for the Julia implementation of Fractal . With this implementation, only the Modification Controller Components are placed in the membrane of the adaptable component.
When the contents of the component encapsulates a parallel code, the Executor Component has to take care of the synchronization between the parallel processes executing the applicative code and the adaptation actions. Our solution for handling this problem relies on a separated framework, called AFPAC .