• Aucun résultat trouvé

2.5 Éléments de méta-modèle des systèmes P2P

2.5.2 Un modèle des systèmes DHT

2.5.2.1 Description

(Ratajczak and Hellerstein, 2003) est certainement le modèle des systèmes DHT le plus abouti. Il ne se place pas au même niveau que les modèles étudiés précédemment. Son objet n'est pas de comprendre le lien entre l'application et le réseau P2P, mais de proposer un méta-modèle mathématique des structures de réseau logique. Pour cela, les auteurs proposent de modéliser des topologies réseau à l'aide de graphes de Cayley (théorie des groupes). Le dual de ce modèle mathématique, c'est l' emulation scheme , technique de mise-en-place de cette structure sur le réseau.

Les graphes de Cayley sont sommet-transitifs (vertex-symmetric), c'est-à-dire que n'importe quelle permutation des n÷uds est homomorphe au graphe originel. Visuelle- ment, si on trace le graphe du réseau à partir de la donnée des relations de voisinage (tables de routage), on peut échanger les noms des sommets comme on veut (sur le même dessin), le graphe obtenu sera toujours conforme aux tables de routage. Plus pragmatiquement, d'un point-de-vue P2P, cela permet que l'algorithme de routage ait le même comportement, quel que soit son point de départ. Donc tout pair peut être pris comme point de départ d'une recherche, cette recherche aura le même comportement, même coût, même qualité - on parle qualité et coût moyens, minimaux ou maximaux.

Pour compléter cette brève description de la théorie des graphes de Cayley, ils reposent sur un couple (G, S), où G est un groupe et S un ensemble d'éléments de

G. Grossièrement, G donne l'ensemble des sommets et le sous-groupe de G généré par S donne les arêtes. Pour un ensemble de sommets G, on peut construire plusieurs

Le modèle mathématique utilisant les graphes de Cayley permet d'étudier l'ecacité d'une structure de réseau : répartition de charge, ecacité de la recherche ; par exemple parce qu'il permet de mesurer le diamètre du réseau. Le problème, c'est que dans un système P2P ces structures sont diciles à mettre en ÷uvre. On a par exemple des con- traintes sur le nombre de n÷uds dans la structure ; du type  le nombre de n÷uds doit être une puissance de 2 . Il faut aussi gérer la dynamicité du réseau : des pairs joignent et quittent le réseau en permanence. Cela impose que la construction d'un réseau P2P repose sur des fonctions join et leave (au minimum), parce que ces réseaux se constru- isent et évoluent par entrées et sorties de pairs du réseau. Il faut faire la correspondance entre cette structure de l'algorithme de construction et le modèle mathématique que nous venons de voir : c'est le rôle de l' emulation scheme .

Les auteurs recensent trois types d'émulation schemes. Grossièrement, le premier consiste à considérer que les pairs sont répartis dans un espace (ex. espace vectoriel, comme pour Chord et CAN). Les liens entre les pairs correspondent aux relations de voisinage dans cet espace. Équilibrer la structure, c'est équilibrer la répartition des pairs dans l'espace. Pour le second, les pairs sont les feuilles d'un arbre (typiquement, l'arbre des partitionnements de l'espace sous-jacent, comme pour pSearch). Équilibrer la structure, c'est équilibrer l'arbre. Le troisième est basé sur une estimation de la taille du réseau. Chaque pair possède sa propre estimation n de la taille du réseau et met en place trois tables de routage correspondant aux hypothèses que le réseau est de taille

n, n − 1 et n + 1. On aura donc au moins trois réseaux imparfaits qui vont co-exister

pour couvrir l'ensemble des pairs. Les requêtes vont être routées au mieux, à cheval sur ces trois réseaux.

2.5.2.2 Remarques

Pour être vraiment complet, il faudrait ajouter une troisième dimension (peut-être une troisième couche) en plus du modèle mathématique et de l'émulation scheme. En eet, il manque les aspects programmation répartie. Par exemple, les pairs (Stoica et al., 2001) recherchent régulièrement leur prédécesseur, pour vérier que la structure ne contient pas de  trou . Lorsqu'une telle irrégularité est détectée, un algorithme de réparation est appliqué. (Tang et al., 2003) fonctionne diéremment, avec un algorithme de réparation rapide de la structure en cas de défaut de pair (takeover) - qui ne répare jamais la structure de façon optimale - et un algorithme de rééquilibrage qui tourne en tâche de fond et répare les défauts créés par takeover. Il est certain cependant que l'ecacité d'un choix d'implémentation est très lié au type d' émulation scheme im- plémenté.

Cette proposition va clairement dans le sens d'une étude séparée de la structure mathématique (aspect applicatif) et des mécanismes de gestion répartie de cette struc- ture (aspect réseau). L'inconvénient, c'est qu'elle convient très bien pour étudier les sys- tèmes DHT - dans le sens solution de stockage d'informations - mais n'est pas générique

à tous les types d'application. En Recherche d'Information, par exemple, on ne connaît pas a priori le vocabulaire employé par les utilisateurs. Le vocabulaire est celui de la collection, de l'ensemble de documents, et sera connu à l'exécution, et non lors de la conception du système. Du coup, la structure de données sous-jacente n'est pas con- nue a priori : elle est mise-en-place dynamiquement ; et le modèle de (Ratajczak and Hellerstein, 2003) n'est pas applicable.