4.2.2 Approche distribuée
4.2.2.1 Principes et fonctionnement
Dans cette approche il n'existe pas de super noeud
centraliseur (voir figure 4.3). Les machines sont
reliées directement entre eux et chaque machine dispose d'un arbre
local. Et la communication inter-sites se fait directement entre les
différents machines.
L'organisation locale de l'approche distribuée
concerne un site donné où chaque machine peut communiquer avec
n'importe quel autre machine du site. Cette communication est nécessaire
lorsqu'une recherche locale d'un service dans la machine échoue. Dans
cette approche, nous proposons des métadonnées (voir
figure 4.4) qui sont créées en faisant un regroupement
de services suivant le type de système d'exploitation, la licence et le
langage de développement des services, au niveau de chaque machine. Ces
métadonnées sont partagées entre les machines du site. Ce
qui permet
Marie Hélène Wassa Mballo Page 89
d'effectuer des envoies groupés (multicast) lorsque la
recherche en locale n'aboutit pas. Plutôt que d'aller chercher le service
sur toutes les autres machines, ce qui est pénalisant du point de vue
coût de communication et temps de localisation du service, une machine
fait appel uniquement aux machines qui, potentiellement, sont susceptibles de
contenir le service recherché. Ces machines sont alors choisies à
l'aide de ces métadonnées.
La recherche dans d'autres sites se fait lorsque celle
effectuée dans le site local n'a pas aboutit. La machine initie une
requête et contacte dans ce cas de façon aléatoire une
machine se trouvant dans un autre site pour y poursuivre la recherche. La
communication entre les sites se fait par des messages réseau car chaque
machine a dans sa table de routage l'adresse réseau des autres sites. La
machine qui est contactée de façon aléatoire continue le
même principe de recherche que dans l'organisation locale décrite
dans le paragraphe précédent.
Figure 4.3 structure de l'approche distribuée
pour la recherche de services
Figure 4.4 : Exemple de
métadonnées U: Unix, L: Libre, J: Java, P:
Propriétaire
De cet exemple, le premier groupe de
métadonnées concerne les pairs hébergeant des services
utilisant le système Unix, la licence libre
et le langage java. Pour le deuxième groupe,
il s'agit des pairs qui hébergent des services qui ont pour
système Unix, la licence propriétaire
et le langage java.
Marie Hélène Wassa Mballo Page
90
4.2.2.2 Gestion des services
a) Recherche d'un service
Les étapes de recherche de service dans le cas de
l'approche distribuée, sont définies comme suit :
· Recherche locale : la recherche de
service se fait dans la machine qui a initié une requête de
demande de service.
· Recherche dans le site : cette
étape est réalisée lorsque la recherche locale a
échouée (service non trouvé). Cette requête de
recherche est alors transmise à un sous-ensemble de machines qui est
défini grâce aux métadonnées.
· La recherche globale : est
initiée par la machine qui a lancé la requête, pour ce
faire une machine d'un autre site est choisi de façon aléatoire
pour que ce dernier puisse effectuer la recherche dans le site ou elle se
trouve.
b) Insertion et suppression d'un service
L'insertion d'un nouveau service nécessite la mise en
oeuvre des étapes suivantes :
· La machine, qui héberge un nouveau service,
lance une requête d'insertion pour rajouter ce service dans l'arbre. La
table des métadonnées est également mise à jour
selon la description du service.
· Une notification de mise à jour est
envoyée aux autres machines, pour qu'ils puissent mettre à jour
leurs métadonnées respectives.
· L'algorithme de suppression fonctionne selon les
mêmes principes que celui de l'insertion (mise à jour en local et
dans le site, mise à jour également des
métadonnées).
|