Fully Automatic Adaptation of Software Components Based on Semantic Specifications* (original) (raw)

Controlled Adaptation-Oriented Evolution of Object-Oriented Components

By introducing syntactic and semantic changes, the upgrade of a software component may invalidate existing applications that use one of its previous versions. Existing adaptation approaches to compensate for such changes rely on and, hence, are limited to certain change specifications. In addition to using an adaptation technology, the developer needs to be guided in the way the component should be evolved in order to enable automatic adaptation and avoid semantic inconsistencies. Based on our experience, we describe problems common to different adaptation techniques and give advice on how to control yet not restrict component evolution.

On Behavioural Interfaces and Contracts for Software Adaptation

Software Adaptation aims at composing in a non-intrusive way black-box components or services, even if they present some mismatches in their interfaces. Adaptation is a complex issue especially when behavioural descriptions of services are taken into account in their interfaces. In this paper, we first present our abstract notations used to specify behavioural interfaces and adaptation contracts, and propose some solutions to support the specification of these contracts. Then, we overview our techniques for the generation of centralized or distributed adaptor protocols and code based on the aforementioned contracts.

A Generic Language for Dynamic Adaptation

2005

Today, component oriented middlewares are used to design, develop and deploy distributed applications easily. They ensure the heterogeneity, interoperability, and reuse of software modules. Several standards address this issue: CCM (CORBA Component Model), EJB (Enterprise Java Beans) and .Net. However they offer a limited and fixed number of system services, and their deployment and configuration mechanisms cannot be used by any language nor API dynamically. As a solution, we present a generic high-level language to adapt system services dynamically in existing middlewares. This solution is based on a highly adaptable platform which enforces adaptive behaviours, and offers a means to specify and adapt system services dynamically. A first prototype was achieved for the OpenCCM platform, and good performances were obtained.

Adapting Abstract Component Applications Using Adaptation Patterns

2010

Abstract: Using a component-based approach, applications can be defined as an assembly of abstract components, requiring services from and providing services to each other. At the time of execution, they are mapped to the concrete level after identifying the deployed components. However, several problems can be detected at init time that prevent the mapping to be achieved successfully, eg, heterogeneity of connection interfaces.