Sous-sections
Participants : Emmanuelle
Anceaume, Francisco Brasileiro, Fabiola Greve, Michel Hurfin
[correspondant], Jean-Pierre Le Narzul, Frédéric Tronel, Yun
Wang.
Mots clés : applications réparties,
résistance aux défaillances, temps réel, communication de
groupe, consensus, CORBA, hétérogénéité .
Résumé :
Depuis plus de deux ans, un effort important est fourni
pour développer dans un environnement CORBA un prototype
convaincant qui intègre les solutions que nous proposons
pour garantir la sûreté de fonctionnement et le respect de
contraintes temporelles. Notre objectif dans les années à
venir est d'obtenir un démonstrateur répondant aux
exigences mentionnées dans l'appel à propositions rédigé
par l'OMG sur le thème de la tolérance aux défaillances
dans CORBA.
La plate-forme EDEN offre des services de
communication de groupe (construction d'un ordre total sur
les requêtes adressées au groupe, gestion de la composition
du groupe et de l'installation des vues). L'originalité de la
plate-forme réside d'une part dans le fait que tous les
services offerts sont conÇus comme des instances d'un service
d'accord élémentaire et d'autre part dans son architecture
qui repose sur un mécanisme de communication par événements.
Le système réparti servant de support à l'exécution du groupe
est supposé asynchrone :aucune hypothèse n'est
faite concernant les temps de transfert des messages ou les
vitesse d'exécution des membres du groupe qui peuvent
éventuellement s'exécuter sur des machines hétérogènes.
La plate-forme EDEN a été développée en
utilisant un langage orienté objet (Java).
EDEN est composée de deux modules appelés
EVA et ADAM. EVA
(EVent based Architecture) est un framework utilisant le
concept de communication par événements pour permettre au
programmeur une mise en oeuvre simple et efficace de
protocoles de communication spécialisés. Les services de
communication de groupe développés à l'aide de
EVA sont regroupés au sein du module appelé
ADAM.
-
EVA
Un protocole de communication de groupe est un exemple
typique de protocole de communication spécialisé de haut
niveau. La structuration par couche qui est
habituellement utilisée pour spécifier les protocoles de
communication élémentaires, présente de nombreux défauts
lorsqu'il s'agit de concevoir des protocoles de plus haut
niveau de la même faÇon. Pour éviter les inconvénients
d'une architecture à couche tout en gardant les avantages
d'une décomposition d'un problème en services de base
indépendants, nous avons opté pour une architecture
fondée sur le concept de notification d'événements. Les
interactions entre les entités qui mettent en oeuvre la
fonctionnalité désirée sont obtenues via des productions
d'événements (données en sortie) par des entités
productrices et des consommations d'événements (données
en entrée) par des entités consommatrices. Un canal
d'événement se charge de diriger les événements produits
vers les consommateurs intéressés. Cette approche permet
de construire des applications performantes, très
modulaires et reconfigurables dont les composants peuvent
être exécutés en parallèle. Lors du développement
d'EVA, nous avons cherché à utiliser des
concepts bien établis ( service de notification
d'événements, design
patterns) dont la combinaison permet de bâtir des
applications de faÇon simple et méthodique sans pour
autant sacrifier l'efficacité du code généré. Une
description détaillée d'EVA et de ses
principaux atouts est disponible dans [35].
-
ADAM
Le module ADAM offre des services de
communication de groupe. Plus précisément, il permet
d'une part de gérer dynamiquement la composition d'un
groupe (ajout et retrait de membres) et d'autre part de
garantir que toutes les requêtes diffusées à l'intention
des membres du groupe seront traitées dans le même ordre.
Ces requêtes peuvent avoir été générées par un membre du
groupe ou par des objets extérieurs au groupe.
L'entrelacement entre les changements de composition du
groupe et les livraisons de messages respectent les
règles classiques définies dans les systèmes de
communication de groupe existants (view synchrony). L'originalité de la
solution proposée vient du fait que tous ces services
sont développés au dessus d'un unique service d'accord
générique. Les intérêts de cette approche (modularité,
meilleure maîtrise du comportement en période de fort
asynchronisme, pré-réglage automatique des délais de
garde utilisés, détection simple des pertes de messages,
possibilité de prendre en compte des contraintes
temporelles) sont décrits aux travers des publications du
projet parues durant ces trois dernières années.