ADAM Research team

Adaptive Distributed Applications and Middleware

Team presentation

The project-team ADAM (Adaptive Distributed Applications and Middleware) deals with the concepts and tools for the adaptation of applications and middleware in distributed multi-scale environments.

With the increasing need of self-managed systems and the emergence of multi-scale environments, software developers need to cope with variability. Software must be developed to be adapted and reconfigured automatically on heterogeneous platforms in accordance with the unavoidable evolution of information and communication technologies. Therefore, the adaptation is now considered as a first-class problem that must be taken into account throughout the software life-cycle.

An adaptive system is a software-intensive system that can adjust and respond to changes in its environment, evolving requirements, removal of obsolete technologies or introduction of new technologies, and new knowledge. The objective of the ADAM project-team is to provide a set of paradigms, approaches and frameworks based on advanced software engineering techniques such as CBSE (Component-Based Software Engineering), AOSD (Aspect-Oriented Software Development) or CAC (Context-Aware Computing) to build distributed adaptive software systems involving multi-scale environments and to take into account the adaptation all along the software life-cycle. We propose to follow two research directions: The definition of adaptable component frameworks for middleware and the design of distributed applications for adaptive platforms.

Research themes

  • Adaptable Component Frameworks for Middleware : The research challenge that we propose here is to define and develop middleware and associated services which could be adapted to a broad range of environments from grid computing, to Internet-based applications, to local networks, to mobile applications on PDA's and smart phones, to embedded systems. The benefits of that are two-fold. First, it enables the easier deployment of mobile applications in different environments by taking advantage of the common ground provided by adaptable middleware. Second, middleware is a rapidly changing domain where new technologies appear frequently. Yet, up to now, each new technological shift has imposed a complete re-development of the middleware. Having a common ground on which middleware is built would help in such transitions by fostering reuse. In terms of industrial output, the impact of these results will also be helpful for software editors and companies to adapt their products more rapidly to new and emerging middleware technologies.

  • Distributed Applications Design for Adaptive Platforms : The research challenge is to consider the adaptation at the first stage of the application design, in the way of a better anticipation of these adaptations. The paradigms of software engineering such as component-based development, aspect-oriented software development, or context-aware computing, are as many means which already help in the design of adaptable software, via techniques of composition, reflection or of modeling or generative programming. In this second challenge, we plan to study dynamic points of variation in applications and in their modeling. We will propose modeling processes and architecture description considering adaptation. In the first steps of design, we will take into account the evolution of the user requirements or technological developments. These approaches must consider the modeling of the context, such as execution, location or using context, in which the application will be carried out, but also the adaptive mechanisms themselves. The second step of this challenge will be to implement design processes which maintain coherence between the various stages of modeling in a MDE approach of the applications, as well as maintaining coherence between the phases of modeling and implementation. For that, we will design and realize tools which will allow traceability and checking of coherence between models, and between models and the execution.

International and industrial relations

  • Associate INRIA team on Aspect-Oriented Software Development in Langages, Compoents and Architectures with the Prog-Ssel team from Vrije Universiteit Brussel,
  • Project and collaborations :
    • The Network of Excellence on AOSD (Aspect-Oriented Software Development)
    • The belgium IAP (Interuniversity Attravtion Poles) MOVES ( Fundamental Issues in Software Engineering : Modeling, Verification and Evolution of Software),
    • The ITEA S4ALL (Services-for-All) project,
    • The ObjectWeb Consortium,
    • The ERCIM Working Group Software Evolution,
    • The ICT Asia,
    • The CPER MOSAIQUES (Models and Frameworks for ubiquitous Applications) project,
    • The ARA SI (security and computing) REVE (safe reuse of embedded components in heterogeneous environments)
    • The RNTL FAROS (composition of contracts for the safety of service-oriented architectures)
    • The RNTL JonES (open source distributed Enterprise Software Bus)
    • The RNTL Flex-eWare (defining an open and adaptable middleware platform for component-based applications in the domain of embedded systems)
    • The RNTL SCOrWare (Studying complementariness between Service-Oriented Architectures and Architectural component-based approaches)
  • Industrial collaborations : With France-Telecom R&D for weaving components and aspects in software architectures.