research areas

When I was involved in research (from 2001 to 2008), I was mostly interested in:

See my full list of publications.

master’s degree

In 2001 I did a DEA (the French equivalent to a Master’s Degree) at EMN under the supervision of Thomas Ledoux. In this context I designed and implemented an (unnamed) runtime for dynamic adaptation of Java applications using reflective techniques.

The runtime was based on a MOP for Java which allowed to dynamically alter the behavior of Java objects by attaching/detaching meta-objects to base-level quasi-POJOs (there were a few restrictions on the base-level objects to make this work). Meta-objects attached to a base object intercept all method invocations sent to it and can interpret the message however they want, including calling the base behavior.

Given this infrastructure, I designed a DSL (and implemented the corresponding runtime) to specify adaptation policies. The role of policies was to decide automatically which base-level object should be associated with which meta-objects. The system supported two levels of policies:

  1. system policies defined abstract roles (e.g. “server”), and the corresponding meta-objects which must be attached to objects which perform this role. The list of meta-objects to use was not static, but based on dynamic rules which could depend on changes in environmental conditions (e.g. the presence and kind of network connectivity).
  2. application policies defined rules to associate concrete business objects from an application to system policies. These rules defined groups of business objects by predicates on their properties (e.g. “all instances of class MailServer which have the status attribute set to RUNNING”).

At runtime, the system monitored both the attributes of business objects used in application policies to dynamically re-evaluate the composition of objects groups. It also monitored the environmental conditions used by system policies to determine which kinds of meta-objects were required at each time to implement the system roles. Changes in any of these triggered the attachment/detachment of specific meta-objects to business-level objects, ensuring that at each point in time, each object had the exact set of meta-level objects required by both its current state and the environmental conditions.

relevant publications

PhD and postdocs

After the master, I continued working in the same team (then OBASCO, now ASCOLA), still under the supervision of Thomas Ledoux but with Pierre Cointe as my administrative advisor. The subject was a continuation of the same themes as the master, but with a focus on component-based systems and dynamic architecture reconfigurations (instead of plain OO reflection).

The goal was still to allow unanticipated adaptation of software systems by means of dynamic reconfigurations. I focused on the Fractal component model as a substrate. Fractal has the advantages of being very generic and dynamic (more than most industrial solutions), and benefits from a sophisticated, robust and highly flexible implementation (more than many research prototypes).

On top of Fractal, I designed and implemented the Safran system (Self-Adaptive FRactal compoNents). Safran was an extension of Fractal which allowed the dynamic attachment of reactive adaptation policies to any Fractal component. Concretely, Safran used the extensibility of the Fractal model to add a new optional controller to Fractal components whose API could be used to dynamically associate such policies to individual components.

Safran adaptation policies were expressed in a Domain-Specific Language based on the idea of Event-Condition-Action rules from active databases.

I designed and implemented Safran as a modular system, where each sub-system could be (and was) reused outside of Safran itself:

After the PhD, I did a postdoc at Orange Labs (then France Télécom R&D) and then worked as a research engineer in the OBASCO team (again) in the context of the Selfware project. In both cases, I continued working on WildCAT, FPath and FScript (but not much on Safran itself) and collaborated with several PhD students who worked on similar subjects, in particular Nagapraveen Jayaprakash (at Orange Labs) and Marc Léger (both at Orange Labs and in the OBASCO team at EMN).

relevant publications

source code

other details