All my publications, most recent first:

  1. FPath and FScript: Language support for navigation and reliable reconfiguration of Fractal architectures, Pierre-Charles David, Thomas Ledoux, Marc Léger and Thierry Coupaye, in Annals of Telecommunications: Special Issue on Software Components — The Fractal Initiative, Volume 64, n°1/2, Springer Paris, January/February 2009. PDF BibTeX
    Abstract. Component-based systems must support dynamic reconfigurations to adapt to their execution context, but not at the cost of reliability. Fractal provides intrinsic support for dynamic reconfiguration, but its definition in terms of low-level APIs make it complex to write reconfigurations and to ensure their reliability. This article presents a language-based approach to solve these issues: direct and focused language support for architecture navigation and reconfiguration make it easier both to write the reconfigurations and to ensure their reliability. Concretely, this article presents two languages: (i) FPath, a DSL which provides a concise yet powerful notation to navigate inside and query Fractal architectures, and (ii) FScript, a scripting language which embeds FPath and supports the definition of complex reconfigurations. FScript ensures the reliability of these reconfigurations thanks to sophisticated run-time control, which provides transactional semantics (ACID properties) to the reconfigurations.
  2. A Multi-Stage Approach For Reliable Dynamic Reconfigurations of Component-Based Systems, Pierre-Charles David, Marc Léger, Hervé Grall, Thomas Ledoux and Thierry Coupaye, in Proceedings of the 8th IFIP International Conference on Distributed Applications and Interoperable Systems (DAIS’08), Lecture Notes in Computer Science Vol. 5053, Springer-Verlag, Oslo, Norway, June 2008. PDF BibTeX
    Abstract. In this paper we present an end-to-end solution to define and execute reliable dynamic reconfigurations of open component-based systems while guaranteeing their continuity of service. It uses a multi-stage approach in order to deal with the different kinds of possible errors in the most appropriate way; in particular, the goal is to detect errors as early as possible to minimize their impact on the target system. Reconfigurations are expressed in a restricted, domain-specific language in order to allow different levels of static and dynamic validation, thus detecting errors before executing the reconfiguration where possible. For errors that can not be detected early (including software and hardware faults), a runtime environment provides transactional semantics to the reconfigurations.
  3. Flexible Reactive Capabilities in Component-Based Autonomic Systems, Jayaprakash Nagapraveen, Thierry Coupaye, Christine Collet and Pierre-Charles David, in Proceedings of the Fifth IEEE Workshop on Engineering of Autonomic and Autonomous Systems (EASe 2008), p. 97-106, IEEE Computer Society, Belfast, Northern Ireland, March-April 2008. PDF BibTeX
    Abstract. Reactive behaviour, the ability to (re)act automatically to perform corrective actions in response to the occurrence of situations of interest (events) is a key feature of autonomic computing. In active database systems, this behaviour is incorporated by Event-Condition-Action (or active) rules. Our approach consists in defining mechanisms for their integration in component-based systems to augment them with autonomic properties. The contribution of this article is twofold. Firstly, we propose a rule model, composed of a rule definition model and a rule execution model. Sec- ondly, we propose an architecture for the integration of ac- tive rules into component-based systems in which the rules as well as their semantics (execution model, behaviour) are represented/implemented as components, which permits i) to construct personalized rule-based systems and ii) to dynamically modify them and their semantics in the same manner as the underlying system. These foundations form the basis of a framework which can be seen as a library of components to construct the various active mechanisms. Further, the framework is extensible: additional components can be added at will to the library to render elaborate and specific semantics according to application requirements.
  4. Experience with implementing safe reconfigurations in component-based embedded systems, Juraj Polakovic, Sébastien Mazaré, Jean-Bernard Stefani, and Pierre-Charles David, in Proceedings of the 10th International ACM SIGSOFT Symposium on Component-Based Software Engineering (CBSE 2007), Boston, MA, USA, July 2007. PDF BibTeX
    Abstract. Supporting dynamic reconfiguration is required even in highly constrained embedded systems, to allow patches and updates to the embedded systems software, and to allow adaptations to changes in environmental and operating conditions without service interruption. Dynamic reconfiguration, however, is a complex and error prone process. In this paper we report our experience in implementing safe dynamic reconfigurations in embedded devices with limited resources. Our approach relies on a component-based framework for building minimal and reconfigurable operating systems and the use of a domain specific language (DSL) for reconfiguration.
  5. Principes généraux d’architecture logicielle pour la construction d’applications autonomiques ouvertes, Thierry Coupaye, Pierre-Charles David, Bruno Dillenseger, François Horn, Nagapraveen Jayaprakash, Alain Ozanne and Nicolas Rivierre, Chapter 11 of L’autonomie dans les réseaux (Traité IC2 série Réseaux et télécommunications), Francine Krief and Mikaël Salaun (ed.), 324p., Hermès Sciences, ISBN: 978-2-7462-1367-8, September 2006. BibTeX
  6. Safe Dynamic Reconfigurations of Fractal Architectures with FScript, Pierre-Charles David and Thomas Ledoux, in Proceedings of the 5th Fractal Workshop at ECOOP 2006, Nantes, France, July 2006. PDF BibTeX Slides
    Abstract. In this paper we present FScript, a Domain-Specific Language used to program structural reconfigurations of Fractal architectures. Compared to the use of the standard Fractal APIs in a general purpose language, FScript offers better syntactic support for navigation, more dynamicity, and guarantees on the reconfigurations (termination, atomicity, consistency, and isolation). FScript introduces a new notation, called FPath, which is designed to express queries on Fractal architectures, navigating inside them and selecting elements according to predicates. It also provides access to all the primitive reconfiguration actions available in Fractal, and enables the user to define custom reconfigurations using a simple imperative language.
  7. An Aspect-Oriented Approach for Developing Self-Adaptive Fractal Components, Pierre-Charles David and Thomas Ledoux, in Proceedings of the 5th International Symposium on Software Composition (SC 2006), Lecture Notes in Computer Science, vol. 4089, Vienna, Austria, March 2006. PDF BibTeX Slides
    Abstract. Nowadays, application developers have to deal with increasingly variable execution contexts, requiring the creation of applications able to adapt themselves autonomously to the evolutions of this context. In this paper, we show how an aspect-oriented approach enables the development of self-adaptive applications where the adaptation code is well modularized, both spatially and temporally. Concretely, we propose SAFRAN, an extension of the Fractal component model for the development of the adaptation aspect as reactive adaptation policies. These policies detect the evolutions of the execution context and adapt the base program by reconfiguring it. This way, SAFRAN allows the modular development of adaptation policies and their dynamic weaving into running applications.
  8. Une approche par aspects pour le développement de composants Fractal adaptatifs, Pierre-Charles David and Thomas Ledoux, RSTI – L’Objet, Volume 12 – n°2-3/2006, Hermès Sciences/Lavoisier, 2006. This is a very slightly corrected/extended version of the JFDLPA 2005 paper, this volume of L’Objet serving as post-proceedings of the workshop. PDF BibTeX
    Abstract. Today application developers have to deal with an increasingly variable execution context, requiring the creation of applications able to adapt themselves autonomously to the evolutions of this context. In this paper, we show how an aspect-oriented approach enables the development of self-adaptive applications where the adaptation code is well modularized, both spatially and temporally. Concretely, we propose SAFRAN, an extension of the Fractal component model for the development of the adaptation aspect as reactive adaptation policies. These policies detect the evolutions of the execution context and adapt the base program by reconfiguring it. This way, SAFRAN allows the development of the adaptation aspect in a modular way and its dynamic weaving into applications.
  9. WildCAT: a generic framework for context-aware applications, Pierre-Charles David and Thomas Ledoux, in Proceeding of MPAC’05, the 3rd International Workshop on Middleware for Pervasive and Ad-Hoc Computing, Grenoble, France, November 2005. PDF BibTeX Slides
    Abstract. We present WildCAT, an extensible Java framework to ease the creation of context-aware applications. WildCAT provides a simple yet powerful dynamic model to represent an application’s execution context. The context information can be accessed by application programmers through two complimentary interfaces: synchronous requests (pull mode) and asynchronous notifications (push mode). Internally, WildCAT is designed as a framework supporting different levels of extensions, from the simple configuration of the default generic implementation to completely new implementations tailored to specific needs. A given application can mix different implementations for different aspects of its context while only depending on WildCAT’s simple and unified API.
  10. Une approche par aspects pour le développement de composants Fractal adaptatifs (An aspect-oriented approach to the development of self-adaptive Fractal components), Pierre-Charles David and Thomas Ledoux, in 2ème Journée Francophone sur le Développement de Logiciels Par Aspects (JFDLPA 2005), pp. 91-108, Lille, France, September 2005. PDF BibTeX Slides
    Abstract. Today application developers have to deal with an increasingly variable execution context, requiring the creation of applications able to adapt themselves autonomously to the evolutions of this context. In this paper, we show how an aspect-oriented approach enables the development of self-adaptive applications where the adaptation code is well modularized, both spatially and temporally. Concretely, we propose SAFRAN, an extension of the Fractal component model for the development of the adaptation aspect as reactive adaptation policies. These policies detect the evolutions of the execution context and adapt the base program by reconfiguring it. This way, SAFRAN allows the development of the adaptation aspect in a modular way and its dynamic weaving into applications.
  11. Développement de composants Fractal adaptatifs: un langage dédié à l’aspect d’adaptation (Development of self-adaptive Fractal components: a domain-specific language for the adaptation aspect), Pierre-Charles David, PhD Thesis, École des Mines de Nantes and Université de Nantes, July 2005, in French. PDF BibTeX Slides
    Abstract. The increasingly diverse and dynamic contexts in which current applications are run imposes them to adapt and to become more autonomous. The goal of this thesis is to ease the development of such self-adaptive applications, by considering adaptation as an aspect which should be defined separately from the rest of the application, so as to be integrated and modified dynamically. To this end we propose Safran, an extension of the Fractal component model enabling dynamic association of adaptation policies to the components of an application. These policies are programed using a Domain-Specific Language in the form of reactive rules. Their execution harnesses WildCAT, a context-awareness system which can detect changes in the execution context (when to adapt?), and FScript, a language dedicated to dynamic and consistent reconfigurations of Fractal components (how to adapt?).
  12. Pour un aspect d’adaptation dans le développement d’applications à base de composants, Pierre-Charles David and Thomas Ledoux, in Actes Journée de l’AS 150, Systèmes répartis et réseaux adaptatifs au contexte, Paris, April 2004. PDF BibTeX
  13. Towards a Framework for Self-Adaptive Component-Based Applications, Pierre-Charles David and Thomas Ledoux, in Proceedings of Distributed Applications and Interoperable Systems 2003, the 4th IFIP WG6.1 International Conference, DAIS 2003, J.-B. Stefani, I. Demeure and D. Hagimont (ed.), Lecture Notes in Computer Science vol. 2893, pp. 1-14, Springer-Verlag, Paris, France, November 2003. PDF BibTeX Slides
    Abstract. Nowadays, applications must work in highly dynamic environments, where resources availability, among other factors, can evolve at runtime. To deal with this situation, applications must be self-adaptive, that is adapt themselves to their environment and its evolutions. Our goal is to enable systematic development of self-adaptive component-based applications using the Separation of Concerns principle: we consider adaptation to a specific execution context and its evolutions as a concern which should be treated separately from the rest of an application. In this paper, we first present the general approach we propose and the corresponding development framework and tools we are developing to support it. Then, in order to validate this approach, we use it on a small component-based application to show how it can be made self-adaptive.
  14. An Infrastructure for Adaptable Middleware, Pierre-Charles David and Thomas Ledoux, in Distributed Objects and Applications 2002 (On the Move to Meaningful Internet Systems 2002: CoopIS, DOA, ODBASE 2002), R. Meersam, Zahir Tari et al (ed.), Lecture Notes in Computer Science vol. 2519, pp. 773-790, Springer-Verlag, Irvine, California, October 2002. PDF BibTeX Slides
    Abstract. Today’s software systems have to deal with an increasing diversity and complexity of execution environments. Next generation applications will have to deal with the unknown, with execution conditions which can not be predicted at the time they are written: they must be adaptable. In this paper, we present our current answer to this problem, in the form of an infrastructure for adaptable middleware. This infrastructure uses a Separation of Concerns approach where the associations between functional and non-functional components can be modified at run-time. These associations are controlled by an adaptation engine which monitors both the execution environment and the application, and adapts the associations according to adaptation policies.
  15. Dynamic Adaptation of Non-Functional Concerns, Pierre-Charles David and Thomas Ledoux, in First International Workshop on Unanticipated Software Evolution (USE’02) at ECOOP 2002, Malaga, Spain, June 2002. PDF BibTeX Slides
    Abstract. In order to build programs able to adapt themselves to changing execution conditions, we propose a Separation of Concerns approach distinguishing functional and non-functional concerns. These two kinds of concerns are composed together, at run-time, by a weaver which is aware of the execution conditions so that it can adapt its weaving to their evolution.
  16. Dynamic Adaptability of Services in Enterprise JavaBeans Architecture, Zahi Jarir, Pierre-Charles David and Thomas Ledoux, in Seventh International Workshop on Component-Oriented Programming (WCOP’02) at ECOOP 2002, Malaga, Spain, June 2002. PDF BibTeX Slides
    Abstract. To be in harmony with continuous variations of the execution environment such as fluctuating network bandwidth, decreasing battery power, and so on, new approaches are required for component-based middleware to make them adaptable with regard to these changes. The aim of the work presented in this paper is to enhance the EJB architecture by allowing applications to be aware of, and adapt to, variations in the execution context. We propose to dynamically adapt the association between EJB components and middleware services when necessary. Thus, EJB applications have the advantage to be dynamically adaptive according to changes related to their execution context.
  17. Two-step weaving with reflection using AspectJ, Pierre-Charles David, Thomas Ledoux and Noury M. N. Bouraqadi-Saâdani, in OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Tampa, USA, October 2001. PDF BibTeX Slides
  18. Une infrastructure pour middleware adaptable (An infrastructure for adaptable middleware), Pierre-Charles David, Rapport de DEA, Université de Nantes (roughly equivalent to a Master’s Thesis), 2001, in French. PDF BibTeX Slides