Past Research activities

 

Direct links

 

Integration of persistence in object-oriented languages (FLOO)

 

 

This work was made between January 1990 and December 1995; it began during my thesis (in french only) and took place mainly within the framework of an ESPRIT II project (called Business Class). It lead to the development of a prototype named FLOO.

The objective of the work were to propose an approach for the management of the persistency of objects which is, orthogonal (that is which applies to all the types manipulated by a given application), and transparent for the programmer (no modification of the source code). It is a service which any object-oriented application must be able to have "free of charge". The approach which we propose here is based on a strong coupling with the language runtime and on the introduction of a library dedicated to the handling of persistence. More exactly this approach is based on:

  • the modification of the language run-time in order to achieve a transparent management of the exchange of objects (storage and retrieval ) between the volatile and persistent memories ;
  • the possibility to consider a method as a first class object ;
  • the automatic management of the extension of a type by taking into account the relation of inheritance ;
  • the automatic and static propagation of the description of the types of an application (data and behaviour) in the persistent memory to benefit from the power of the server of objects to realize complex queries on objects ;
  • classes allowing the management of transaction and the definition of queries in a style corresponding to object-oriented programming.

The approach described above was validated by the implementation of a prototype (FLOO) which extends the Eiffel language for the management of persistent objects and delegate the management of the persistent memory to the O2 DBMS (more information about O2 DBMS may be found here). This prototype consists of a library of classes, of a specific Eiffel run-time and of a translator. This last one propagates (with certain optimizations), the Eiffel classes susceptible to address persistent objects or to be the target of queries, into the database management system (O2 DBMS). The O2 system is used only as server of persistent objects and to initiate a dialogue with the specific Eiffel run-time using a client/server protocol. The originality of this prototype is to allow the manipulation of volatile and persistent instances and to optimize the queries to the server O2. They are more powerful than the ones described by a user of the O2 system.

Integration of concerns in object-oriented application (JAdaptor)

 

 

With regard to the service of persistence mentioned above, this work is a generalisation of the approach and may address other services, but it started several years later, after we are interested in the modelling by the separation of concerns (see the works around OFL ). More exactly the objective is to introduce mechanisms dedicated to the separation of concerns in object-oriented languages or to components, with the aim of improving the reuse of the classes or the components. Programming by separation of concerns is based on the fact that the "class" is not always the right unit of reuse :

Our model relies on the object orientation and on two approaches for the separation of concerns: aspect-oriented programming (AOP) and subject-oriented programming (SOP). This model allows to adapt the contents of the existing classes in order to integrate new concerns, that are functional, not functional or hybrid. Among the proposed advances, we can retain in particular the definition of an entity (called adaptor) to encapsulate a concern. It allows i) to group together a set of classes, ii) to realize the integration in situ or ex situ (inside or outside the existing classes), iii) to describe a composition protocol which is independent from the context of use and by the way, which limits the declarations to describe and to guide the programmer, during the use of already defined concerns.

thesis of Laurent Quintian in french

Modelling of object concepts (OFL)

 

 

As soon as we think about concept modelling, it is natural to look towards the existing standards and particularly at those of the OMG (Object Management Group) or of the W3C (World Wide Web Consortium). The model MOF (Meta-Object Facility) is especially dedicated to the description of models. It indeed offers the possibility to reify any type of entity and therefore, to describe the whole model OFL.

In OFL (Open Flexible Languages), we aim to describe the structure of the concepts but especially their semantics. In particular, it seemed important to us to be able to define parameterized (generic) concepts in order to capture the common semantics of the dominating entities (idea close to the notion of product lines). The choice to have generic concepts and to describe their semantics with regard to parameters defined at a meta level seemed to us an attractive approach. We prefer it on one hand to the existing reflexive systems which suggest an extensive usage of metaprogramming and, on the other hand, in the combined uses of inheritance and of variables and methods of classes. Their complexity of use or their lack of flexibility and readability are harmful from our point of view.

The model relies at first on the concept of semantic relationship between classifiers, on the incidence of its parameter setting on the classifiers themselves and on their resulting implications at the level of a language. This structured parameterization allows to address issues linked to the persistence of objects and components, and more generally, to the modelling of the languages. In particular its expressiveness allows for a given language (represented in OFL by a concept-language), to define a new semantic relationship (concept-relationship in OFL), or a new notion of classifier (concept-description in OFL) when it is suitable to the design of a set of related applications. The capture of the operational semantics of a language also requires the presence of other entities, which take part in the reification of an application (attribute, method, parameter of method, method call, etc.).

Concretely, it is frequent to use the mechanism of inheritance of a given object-oriented language to implement the various relationships which exist between the classes of an application. for example, inheritance is used to implement a strict sub-typing, a simple operation of re-use of source code or even a generalization. This variety of use of inheritance demonstrates the very general interest of this mechanism but also lets appear an immediate drawback : it is very difficult for a programmer to specify which usage he wishes to make of this mechanism with all the consequences that it can have on the control, the readability, the documentation, the maintainability and the evolution of the programs. Our approach addresses this particular problem and has for objective on one hand, to improve the expressiveness of the inheritance by giving to the metaprogrammer a set of parameters allowing to specify its usages and on the other hand, to propose combinations of these parameters for the most common cases of use (relations of specialization, generalization, re-use of code, version, view, etc.).

Some Applications :

thesis of Pierre Crescenzo in french

An overview of OFL stuff in french

A generic approach for the description of business models (SmartModels)

 

This work is a continuation of our work on the model OFL. It relies on SmartTools and on the contribution of the approaches by separation of concerns, by components and MDA but also, on generative programming. Our motivation is based in particular on the necessity of capitalizing the know-how and of taking into account the quick and continuous evolution of the technologies.

We wish to apply the know-how which we acquired to describe the operational semantics of the object concepts (OFL), in the description of executable business models. Henceforth the model OFL is a business model (among the others) which is dedicated to the design of languages and associated tools. The interest of our approach (called SmartModels) is to propose a means to describe the semantics of the entities used in a business model which is independent from a given application. This work is undergoing (Ph.D thesis of Emanuel Tundrea).

Among the important aspects of SmartModels stemming from our works on OFL, we find in particular:

Past project and collaborations

 

 

 

(*) GDR means in french "Groupement De Recherche". They are group around the country dedicated to a set of related topics.


Site of UNSA
 
Site of I3S Laboratory
   
Site of UFR Sciences
 
Site of Computer Science department  (UFR Sciences)
 
Site of CNRS
Author: Philippe Lahire (version 1.0)

Last update: 11-Nov-2016 6:29 PM