Team oasis

Members
Overall Objectives
Scientific Foundations
Application Domains
Software
New Results
Contracts and Grants with Industry
Other Grants and Activities
Dissemination
Bibliography
Inria / Raweb 2002
Project: oasis

Project : oasis

Section: New Results


Bibliothèques pour la répartition

Participants : Laurent Baduel, Françoise Baude, Roland Bertuli, Denis Caromel, Christian Delbe, Alexandre Genoud, Fabrice Huet, Lionel Mestre, Matthieu Morel, Diego Niewbourg, Romain Quilici, Emmanuel Reuter, Paul Roe, Haris Saybasili, Julien Vayssière.

Nous développons un modèle de programmation concurrente et répartie à objets ainsi qu'une implémentation sous la forme d'une bibliothèque appelée ProActive, 100 % Java ( http://www-sop.inria.fr/oasis/proactive), faisant suite aux travaux autour d'Eiffel// et de C++// ( http://www-sop.inria.fr/oasis/c++ll).

Les qualités essentielles du modèle proposé sont :

Le jeu de primitives que fournit le MOP (Meta Object Protocol) est utilisable pour la définition de mécanismes plus élaborés que le « simple » appel distant de méthode. En particulier, nous avons introduit un mécanisme de communication de groupe qui étend le principe de l'appel de méthode asynchrone et distante entre deux objets actifs, à l'invocation asynchrone et distante de méthode sur un groupe d'objets actifs . Ce mécanisme a été notamment utilisé pour simplifier la programmation d'une application de résolution d'équations de Maxwell 3D à partir de méthodes numériques mises au point dans l'équipe CAIMAN de l'UR . Dans ce travail, il s'agit de proposer un modèle et une bibliothèque à objets Java répartis qui outre son potentiel d'extensibilité soit compétitive face à des versions Fortran-MPI.

Nous avons également défini un mécanisme de migration d'objets utilisable par le programmeur grâce à un ensemble minimal de primitives, mais dont la gestion est totalement transparente . Il devient dès lors possible de construire des API d'agents mobiles grâce à la construction d'itinéraires d'un plus haut niveau d'abstraction. Nous avons démontré qu'une classe d'applications pouvant parfaitement être supportée par le modèle offert par ProActive, et en particulier, la construction d'itinéraires de haut niveau, consiste en de l'administration de systèmes en réseau à l'aide d'agents mobiles .

Nous avons entamé une étude portant sur la définition, l'interception et la gestion d'exceptions dans un contexte réparti à base d'objets mobiles . Ce travail se poursuit actuellement en thèse.

L'implémentation du MOP est aussi le lieu idéal pour injecter des optimisations d'exécution, comme par exemple le recouvrement du transfert de certains paramètres d'un appel distant de méthode, avec l'exécution de cette méthode distante . Même si ce résultat a été obtenu en utilisant la bibliothèque C++// , il s'agit d'un concept réutilisable notamment dans le cadre de ProActive.

Nous avons conçu et développé un environnement de déploiement, mise au point, contrôle, inspection, pour les applications développées en ProActive : IC2D (Interactive Control & Debug for Distribution) .

Les caractéristiques principales d'IC2D sont, sans introduire aucune modification dans le code de l'utilisateur :

Le principe consiste à rajouter un moniteur qui va être informé de façon transparente d'événements jugés importants pour suivre le déroulement d'une application à objets actifs répartis (tels par exemple les envois et réceptions de requêtes de service et de leurs réponses). Couplé à ces possibilités interactives pour influer sur le déploiement d'une application en cours d'exécution, nous avons introduit l'utilisation de fichiers de déploiement écrits au format XML. A l'aide de tels fichiers, on indique toute information utile afin de savoir, à l'instanciation de l'application, sur quels hôtes démarrer les JVMs et déployer les objets actifs, précisant ainsi les paramètres de déploiement de l'application sans avoir besoin de la recompiler.

Cette externalisation de la configuration de certains aspects d'une application ProActive, est poussée plus avant par l'introduction d'un modèle de composants pour ProActive . L'objectif est de réussir à encapsuler des objets actifs dans des composants pour permettre de construire des applications réparties à base de composants interconnectés. En utilisant un modèle de composants, tel Fractal, permettant la reconnexion dynamique de composants, on pourra obtenir des applications écrites en ProActive dynamiquement reconfigurables. Notre choix d'utiliser le modèle de composants Fractal, supporté aussi par le consortium ObjectWeb et par le projet RNTL Arcad, se justifie également par le fait que Fractal offre un modèle de composants hiérarchiques. Ceci permettra d'emboîter des composants ProActive et de leur appliquer ainsi récursivement des opérations de contrôle, comme par exemple la migration de tout un groupe de composants vers un autre cluster de PCs. Cette définition d'un modèle de composants pour ProActive se poursuit en thèse.

Paul Roe a étudié comment exposer les objets ProActive comme des services Web, sur la base d'un exemple (application C3D) ; plus généralement, il serait utile de combiner les concepts de ProActive (objets distribués) et les technologies du Web (XML, Service Web, XQuery) afin de pallier deux problèmes constatés : (1) la dualité statique vs dynamique (pour donner de nouveaux services à runtime) ainsi que (2) des communications plus lourdes à mettre en place et moins efficaces. Des expérimentations sont en cours.


previous
next