Inria / Raweb 2004
Project-Team: Sardes

Search in Activity Report, year 2004:


Project-Team : sardes

Section: New Results

Models and Tools for Distributed Components

The main goal of the component technology theme is to develop a provably sound and efficient reflective software component technology for the construction of highly reconfigurable distributed systems, and in particular distributed software infrastructures (operating systems and middleware). This gives rise to two main research activities: models and foundations, and support for component-based distributed programming. The Fractal component model, jointly developed by Sardes and France Telecom RD, plays a central part in both activities.

Models and foundations

( 6.1.3). In this work, the aim is to develop novel models for component-based distributed programming, grounded on a rigourous semantical basis. The approach is to exploit and develop, where appropriate, techniques (e.g. behavioural equivalences, type systems) from process calculi to formally characterize the main primitives in our programming models and to serve as a basis for establishing the soundness of our supporting tools. The current work is aimed at characterizing program equivalence in the Kell calculus, at formalizing the Fractal component model, including its component sharing capability, and at defining provably correct abstract machines for the Kell calculus.

Support for component-based distributed programming

( 6.1.4). In this work, the aim is to prototype basic support for our component models, building and extending on the Fractal component model, and its Java and C implementations. The current work is aimed at efficiently supporting fine-grain dynamic reconfiguration, at introducing activity and concurrency management concepts, and at devising a dynamic Architecture Description Language for Fractal.

Models for Distributed Computing

Participants: Jean-Bernard Stefani, Alan Schmitt, Philippe Bidinger.

The work on models has two main objectives: to elicit a model for distributed computing that includes constructs for mobility and dynamic reconfiguration; and to provide a basis for the formal specification of the systems developed in the project. This formal specification in turn let us derive a precise semantic for component-based programs and build verification tools to help the development of such programs.

In 2004, we have continued our work on the Kell calculus, a family of higher-order distributed calculi. More precisely, we have made progress in several directions.

Work is in progress to apply the Kell calculus to the specification and proof of actual systems, e.g. the Think framework for kernel development [7]. This is the subject of the ongoing Ph.D. thesis of Ph. Bidinger. Other work in progress include the implementation of the Kell calculus; and the design of type systems for the Kell calculus and for Fractal, inspired by our previous work on the M-calculus [11].

Reconfiguration of Component-based Applications

Run-time reconfiguration is a basic tool for dynamic software adaptation [23]. However, it is difficult to achieve safely and reliably with standard software infrastructures. Fractal provides built-in facilities such as dynamic rebinding, which can be used for run-time reconfiguration. A preliminary experience was to extend Think (a framework for kernel development [7]) with a lightweight component framework derived from Fractal, thus allowing dynamic reconfiguration. This was the subject of the Ph. D. thesis of O. Charra [12].

More recent work was done in two directions.

1) A Framework for the Reconfiguration of Fractal Components

Participants: Jean-Bernard Stefani, Vivien Quéma, Jakub Kornaś, Matthieu Leclercq.


The goal of this work is to extend the Fractal specification and implementation with dynamic reconfiguration capabilities. In 2004, we have made progress in two main directions.

2) A Framework for Building Self-adaptive Multimedia Applications

Participants: Daniel Hagimont, Oussama Layaida.


The goal of this work is to develop methods and tools for designing adaptive (or, better, self-adaptive) multimedia streaming applications. To that end, such applications must be enhanced with new features allowing them: to observe themselves and their environment, to detect significant changes, and to reconfigure their behavior accordingly. Our previous study on proxy-based multimedia adaptation has demonstrated the effectiveness of the component-oriented approach [31][32]. The next challenge consists in achieving these functions in a generic fashion so that different kinds of multimedia applications as well as their variable reconfiguration requirements can be addressed without additional development efforts.

Towards this goal we designed Plasma [33], a component-oriented framework for building self-adaptable multimedia applications. Plasma exploits the recursive composition of Fractal with a hierarchy of components (media components, QoS/Resource Probes and Actuators), based on which different kinds of multimedia services can be composed. Likewise, reconfiguration responsibilities are distributed across different levels with a well-established semantics. Combined with the use of a dynamic ADL, we believe that this approach provides an efficient means to attain our objective.

Several application scenarios have been implemented, among which a video streaming application with mobile equipments. The experimental evaluations in this context have demonstrated that reconfiguration can be performed with a very low overhead, while significantly improving the Quality of Service of multimedia applications as well as resource usage on mobile equipments. This work is done in association with Microsoft Research ( 7.3).