PhDOOS Logo

Supported by AITO.

These pages are currently maintained by Alex Potanin

 

a rewriting model for services integration

Olivier Nano
( French )

Laboratoire I3S - CNRS - URA 1376
Bâtiment ESSI 650, Route des Colles B.P. 145 06903 SOPHIA-ANTIPOLIS Cedex, FRANCE
tel: (+33) 4 92 96 51 13
fax: (+33) 4 92 96 51 55
nano@essi.fr

Keywords:

meta architectures software engineering aspect oriented programming components

Abstract:

Configuring distributed applications requires the introduction of high-level features such as transaction, persistency, security, database support, asynchronous call and so on. Component models like CORBA Component Model (CCM) or Enterprise Java Beans (EJB) allow programmers to declare, in deployment descriptors, which services have to be plugged into components. However, this approach doesn't allow the integration of services not initially provided by the platform, nor a non expected customization by the users. Even if conceptually the integration of a service doesn't depend on the platform, the provider of a service has to redefine for each targeted platform the way to integrate his service.
There are two main points treated in the thesis. First we want the integration of services to be independent of the platform. So, we define a generic model of platform that will supersede several standard platforms and supports automatic generation of code for the targeted platform. The second point is the services composition. The services composition should be automatic, able to check incompatibilities and should not depend on declaration order. To apprehend this we define an algebra which introduces operations that respect these properties.
Based on these concepts, we propose a process for integrating services in three steps. First the service provider writes an integrator (a description of the manner to integrate a service). So he reasons on an abstraction of platform architecture. Then the user that wants to integrate services in his application instantiates the parameters needed by the integrators. Finally the services are merged and spread in the application.
The implementation of this process is based on four main parts. First we implement a MOP which supports an abstraction of platforms and provide implementation of operators that respect the algebra. Then we use an abstract syntax tree to represent an application according to the meta-model and we add the services in the AST with the help of the operations of the MOP. Thirdly the merging leads to a unique behaviour, which is independent of the order the services where integrated. Finally, once the services have been merged in the AST, we use a projection mechanism (generative programming) to generate appropriate code to the targeted platform. The projection comes late in the whole process which let us have a general model to add and compose services independently of the platform.
So far I have worked on those points: bibliography, study of platforms, operators' definition, partial definition of the MOP and generic platform, and a first implementation.

The PhD work started: October 2001



HTML3
JAVA

 


Last modified on Mon Aug 15 14:59:24 2005