next up previous
Next: Sous-projet OCL/IREC. Up: État d'avancement Previous: État d'avancement

Sous-projet OCL/FLOO.

Ce projet propose un modèle de persistance intégré au langage Eiffel qui satisfait les règles d'Atkinson pour les bases de données, et d'autres nécessaires au génie logiciel pour les besoins de la réutilisation et de la fiabilité, lesquels sont contrôlés par le typage statique, les assertions et les exceptions.

La gestion des échanges entre les mémoires volatile et persistante est transparente au programmeur, sans modification du langage et sans la nécessité d'utiliser des classes ou des méthodes spécifiques. Les accès sont réalisés de manière automatique et incrémentale, soit de manière navigationnelle par redéfinition de l'opérateur d'accès (en Eiffel, la notation pointée a.x.g(k).h...), soit par des requêtes sélectives unifiées avec les méthodes générales de parcours des collections génériques de la bibliothèque Eiffel. Le statut de persistance s'obtient par des requêtes explicites sur des racines de persistance, ou implicitement par ``contagion'' du statut de persistance. La destruction physique des instances est retardée, réalisée par les ramasse-miettes volatiles et persistants. Enfin, FLOO repose sur un système transactionnel de type clients/serveurs, pour prendre en compte les accès simultanés, le partage d'objets et la gestion des reprises en cas d'incidents.

Le prototype implémenté pour le projet FLOO s'appuie sur le SGBD O2. Cette solution a l'inconvénient d'une redondance des schémas (Eiffel et O2) et a une certaine lourdeur de mise en oeuvre : traduction complète des classes Eiffel avec leurs méthodes, en C par le compilateur Eiffel, puis en O2 par le compilateur FLOOgif. Le bénéfice est cependant clair pour ce qui est de l'efficacité et de l'interopérabilité entre des applications écrites en Eiffel et dans d'autres langages couplés avec O2, notamment C++.

Par rapport aux modèles de l'OMG ( ODMG'93, ODMG'95), le modèle FLOO va plus loin pour ce qui est de la transparence des accès et permet un traitement beaucoup plus efficace des instances volatiles, tout en utilisant les mêmes notations pour manipuler les instances volatiles ou persistantes. Cependant, il peut encore être amélioré pour le traitement des associations et de la sélection des champs. Ce travail se poursuit actuellement par une réflexion sur l'utilisation de vues pour étendre les mécanisme d'héritage d'Eiffel et permettre l'expression des sélections de champs (deux stages de DEA en 94 et 95, et démarrage de la thèse de Pierre Crescenzo en novembre 1995).

Ce projet a conduit à la thèse de Philippe Lahire en 1992, à de nombreux rapports techniques, séminaires de présentation, démonstrations et comités d'évaluation, notamment dans le cadre du projet ESPRIT, à plusieurs publications dans des conférences [CFLR93,CFLR93,CFLR95b] et à un article soumis à TSI pour le numéro spécial sur les objets, qui devrait paraître en 1996 [CFLR95a].



next up previous
Next: Sous-projet OCL/IREC. Up: État d'avancement Previous: État d'avancement