TD 8 : Service d'élection en CORBA - pages.lip6.fr · 4I404 - Systèmes Répartis Client/Serveur...

3
N6 N1 N2 N5 N3 N4 N 2

Transcript of TD 8 : Service d'élection en CORBA - pages.lip6.fr · 4I404 - Systèmes Répartis Client/Serveur...

SRCS : Systèmes Répartis Client/Serveur

TD 8 : Service d'élection en CORBA

Objectifs pédagogiques :- Élection de leader dans un anneau- Implantation d'algorithme réparti avec CORBA

Introduction

Nous souhaitons mettre en ÷uvre un algorithme d'élection sur un ensemble de n÷uds répartis relié selonune topologie logique en année. Ainsi chaque n÷ud connaît un voisin droit et un voisin gauche avecqui il est capable de communiquer et a un identi�ant unique (un entier). L'élection est un mécanismequi consiste à élire l'objet d'identi�ant le plus élevé (pour par exemple, lui attribuer un privilège). Uneélection peut être déclenchée par n'importe quel n÷ud de l'anneau qui dans ce cas, s'appelle un initiateur.On appelle � vague � le mécanisme de propagation de n÷ud en n÷ud qui permet de réaliser l'élection.

La �nalité est d'implanter cet algorithme en CORBA.

Exercice 1 � Élection à une vague

Dans cet exercice l'élection est réalisée à l'aide d'un message qui � fait le tour � de l'anneau. Deuxtypes d'élection sont possibles : en tournant dans le sens des aiguilles d'une montre ou dans le sens inverse.À la �n de l'élection, tous les objets de l'anneau doivent connaître l'identi�ant de l'élu.

N6

N1

N2

N5N3

N4

Question 1Quel est le test d'arrêt de l'élection i.e. du "tour de l'anneau" ? Quelle information faut-il inclure dansle message qui fait le "tour de l'anneau" pour pouvoir réaliser ce test ?

Question 2Représenter sur un diagramme les échanges de messages engendrés par l'exécution d'une élection avecl'objet N2 comme initiateur.

4I404 - Systèmes Répartis Client/Serveur TD 8

Question 3Quel est le test de décision de l'élu ?

Question 4Quelle information faut-il inclure dans le message qui fait le "tour de l'anneau" pour pouvoir réaliserce test ?

Question 5Reprendre le schéma de l'anneau avec les 6 n÷uds et indiquer sur chaque message la valeur de cesdeux informations.

Question 6À la �n d'un tour, quel(s) n÷ud(s) connaî(ssen)t l'identi�ant de l'élu ? Pourquoi ?

Question 7Proposer deux solutions, une à base de message synchrone, une à base de message asynchrone, pourque tous les objets de l'anneau connaissent l'identi�ant de l'élu.

Pour implanter ce protocole, nous allons considérer que chaque n÷ud est représenté par un objet CORBA.

Question 8Combien d'interface IDL devrons-nous dé�nir ?

Question 9Sur chaque objet, le "tour de l'anneau" correspond à une méthode election prenant en entrée lesinformations dé�nies aux questions 1 et 2. Pour chacune des solutions proposées à la question 7, dé�nirl'interface IDL CORBA correspondant à un objet de l'anneau.

Question 10Implanter les classes des servants des interface dé�nies à la question précédente avec la méthode del'héritage.

Question 11Y a-t-il besoin de gérer la concurrence ici ? Justi�er.

Exercice 2 � Élection contrarotative sur un anneau

On souhaite étendre l'algorithme d'élection de l'exercice précédent. L'élection n'est maintenantplus réalisée par une seule vague comme précédemment, mais par 2 vagues �qui tournent�en sens inverse (voir �gure). Ainsi, le n÷ud initiateur d'une élection propage simultanément une vaguevers la droite et une vague vers la gauche. Les n÷uds intermédiaires propagent les vagues dans le sens oùils les reçoivent. Lorsque les deux vagues se rencontrent, elles re�uent chacune de leur côté vers l'initiateur.On suppose qu'il n'y a simultanément qu'un seul objet initiateur sur l'anneau.

N6

N1

N2

N5N3

N4Dans cet exemple, N2 est initiateur. Il propage 2 vagues :

1. une à gauche vers N1

2. une à droite vers N5

Lorsque les vagues se rencontrent, elles re�uent vers N2. Chaqueobjet visité par une vague, choisit un nombre aléatoire.

c© Jonathan Lejeune

https://pages.lip6.fr/Jonathan.Lejeune/

Page 27

4I404 - Systèmes Répartis Client/Serveur TD 8

Question 1Représenter sur un diagramme les échanges de messages engendrés par l'exécution d'une élection avecle n÷ud N2 comme initiateur.

Question 2L'interface IDL doit-elle obligatoire être di�érente de celle dé�nie pour l'élection avec une seule vagueou peut-on réutiliser la même interface ? Justi�er votre réponse et donnez éventuellement la nouvelleinterface.

On s'intéresse maintenant à un test d'arrêt de la propagation. On va donc étudier le mécanisme àmettre en place pour décider si un objet doit continuer à propager une vague ou si la vague doit êtreretournée.

On appelle antipodes, l'objet (dans le cas d'anneaux contenant un nombre pair d'objets) ou les objets (dansle cas d'anneaux contenant un nombre impair d'objets) positionnés sur l'anneau de façon symétrique parrapport à un objet donné. Par exemple, sur l'exemple N2 et N3 sont antipodes.

Question 3Peut-on supposer que les deux vagues se rencontrent toujours sur des objets situés aux antipodes del'initiateur ? Pourquoi ?

Question 4Expliquer comment le test à mettre en place pour décider si un objet doit continuer à propager unevague ou si la vague doit être retournée peut être réalisé. Il est conseillé d'illustrer cette explicationpar un schéma.

On souhaite maintenant comparer les performances de cette nouvelle version de l'élection avec la versionen une seule vague. On s'intéresse aux performances en nombre d'invocations de méthodes (1 invocation= 1 message d'appel + 1 message de retour) et en temps. On suppose que la version en une seule vagueutilise (n− 1) invocations sur un anneau comprenant n objets : l'objet situé � avant l'initiateur � détectela terminaison de la propagation et retourne l'invocation.

Question 5Par rapport à la version en une seule vague, la nouvelle version diminue-t-elle ou augmente-t-elle lenombre d'invocations de méthodes nécessaire à une élection ? De combien d'unités ? Il est conseillé dedétailler explicitement le nombre d'invocations, éventuellement à l'aide d'un exemple.

Question 6Par rapport à la version en une seule vague, la nouvelle version améliore-t-elle ou détériore-t-elle letemps nécessaire à une élection ? Sans pour autant donner un compte exact, donner une estimationdu gain ou de la perte.

Question 7Y a-t-il besoin de gérer la concurrence ici ? Justi�er.

Question 8En supposant, qu'il n'y a qu'un seul objet initiateur simultanément, donner en Java la classe du servantqui implante l'interface IDL.

Question 9On suppose maintenant que plusieurs objets peuvent initier simultanément une élection. Y a-t-il desproblèmes nouveaux à gérer ? Si oui, le(s)quel(s) et expliquer alors (sans forcément donner un nouveaucode), comment votre algorithme de la question précédente peut être modi�é.

c© Jonathan Lejeune

https://pages.lip6.fr/Jonathan.Lejeune/

Page 28