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: Software


Keywords : programmation objet , parallélisme et répartition , représentation Meta-Objet , Mobilité , Sécurité , Metacomputing .

Répartition, mobilité et sécurité : ProActive

Participants : Laurent Baduel, Françoise Baude, Denis Caromel [correspondant], Alexandre Genoud, Fabrice Huet, Lionel Mestre, Matthieu Morel, Romain Quilici, Emmanuel Reuter, Julien Vayssière.

Notre objectif est de permettre l'exécution d'une même application sur une architecture multi-processeurs à mémoire partagée, sur un réseau de stations de travail, sur Internet ou encore sur n'importe quelle combinaison hiérarchique.

Pour attaquer ce problème, nous avons développé une bibliothèque 100% Java, qui fournit des threads transparents, des objets distants et mobiles, des appels (bi-point et multiploint) asynchrones avec futurs transparents, et des mécanismes de synchronisation de haut niveau. Cette bibliothèque permet très facilement de répartir et rendre collaborative toute application écrite en Java.

Afin de démontrer la puissance de cette bibliothèque, nous avons par exemple développé des applications collaboratives parallèles et distribuées qui permettent à plusieurs utilisateurs de travailler ensemble sur une scène 3D avec des mécanismes d'élection et de synchronisation : l'image de la scène est calculée par un ensemble dynamique de moteurs de rendu utilisant un algorithme de lancer de rayon. Nous avons également développé une plateforme d'administration système et réseau qui permet, par le biais d'objets mobiles, d'administrer des équipements distants en utilisant le protocole standard SNMP. Une collaboration démarrée (Color 2002) avec Stéphane Lanteri de l'équipe CAIMAN de l'UR de Sophia-Antipolis a permis de mettre au point une version entièrement Java d'une application de résolution numérique d'un système d'équations de Maxwell 3D. A partir d'une première version Java purement séquentielle, il s'est avéré aisé d'en dériver une version répartie par l'utilisation de ProActive. Bien que présentant des performances non encore satisfaisantes comparé à la version écrite précédemment en Fortran et parallélisée grâce à la bibliothèque d'échange de messages MPI, cette expérience a permis d'illustrer de nombreuses caractérisques offertes par ProActive - comme par exemple la communication multi-point - et de démontrer l'intérêt d'une approche totalement portable et extensible pour ce type d'applications.

Un environnement de mise au point (IC2D : Interactive Control & Debug for Distribution) de contrôle et inspection, pour les applications développées en ProActive est disponible. La gestion du support d'exécution est rendue transparente et est externalisée par rapport au code de l'utilisateur. Cette gestion offre notamment du chargement dynamique de code, l'interfaçage avec des machines hôtes accessibles via Globus, le déploiement de JVMs automatisé avec l'aide de fichiers de déploiement au format XML.

ProActive est ainsi particulièrement adaptée au développement d'applications réparties sur l'Internet grâce notamment à la réutilisation de code initialement non réparti, à une synchronisation automatique et à la possibilité de faire migrer des activités d'une machine à l'autre.

Depuis avril 2002, ProActive est soutenue par le consortium ObjectWeb http://www.objectweb.org. Pour plus d'information, consulter et la page http://www.inria.fr/oasis/proactive.


previous
next