C’est une plate-forme multi-agents intégrant les concepts des systèmes distribués, deservices d’infrastructure des plates-formes d’agents – à savoir les services de pages blanches et enr
Trang 1l ' I n f o r m a t i q u e
Montréal
RAPPORT DE STAGE
MODÉ LISATI
ON ET IMPLÉ MENTA TION D'UN SYSTÈ
Trang 2Promotion 7
- IFI
Sous
la respon sabilit
é de :
M Arnaud DURY
CRIM
M ont réa
l, dé ce mb
re 20 03
Trang 4D'UN SYSTÈME DISTRIBUÉ DE PAGES BLANCHES AU SEIN D’UNE PLATE-
FORME MULTI-AGENT
Trang 5D'UN SYSTÈME DISTRIBUÉ DE PAGES BLANCHES AU SEIN D’UNE PLATE-
Trang 6Table des matières 4 Remerciements _ 7 Résumé 8 Abstract 9 Plan du rapport _ 10 Chapitre 1 Systèmes multi-agents et systèmes peerto peer 11
I Principes de base 11
I.1 Introduction des systèmes multi-agents _ 11I.2 Systèmes multi-agents : Principes généraux etpplications _ 11I.2.1 Définition générale _ 11I.2.1.1 Qu’est-ce qu’un agent ? _ 12I.2.1.2 Agent mobile _ 13I.2.1.3 Système multi-agent 13I.2.2 Caractéristiques principales 13I.2.3 Problèmes inhérents _ 13I.3 Les plates-formes d'agents mobiles : Aglets, Jade, Voyager _ 14I.3.1 Aglets _ 15I.3.2 Jade _ 16I.3.3 Voyager 16I.3.4 Notre plate-forme multi-agent : Présentationde Guest _ 17I.4 Les systèmes P2P 18I.4.1 Qu’est-ce qu’un système peer-to-peer ? _ 18I.4.2 Les services des systèmes P2P 18I.4.3 Exemples _ 19
Chapitre 2 État de l'art _ 21
Trang 7AI Problèmes _ 21
II.1 Les limitations des SMA disponibles : Aglet, Jade, Voyager, … _ 21
II.1.1 Rappel de service de Pages blanches (AMS – A gent Management System)
21II.1.2 Problème de l'agent "PagesBlanches" 21
II.2 L’inconvénient des systèmes P2P : Gnutella, Chord _ 22
BI Solution _ 23
III.1 Mes travaux 23
III.2 But principal : Service de pages blanches + Peer-to-peer _ 23
III.2.1 Nouveau modèle de pages blanches 23
III.2.2 Peer-to-peer _ 23
Chapitre 3 Analyse du système _ 24
IV.1 Principes de fonctionnement du Chord 24
IV.2 Principes de fonctionnement du notre Système _ 28
IV.3 Service de nomage _ 30
IV.4 Architecture du Système _ 31
IV.4.2.1IV.4.2.2IV.4.2.3IV.5 L'organisation du code 36
Trang 9Ce travail de stage a pu voir le jour avec énormément d'aide et encouragement des personnes autour de moi Ce court remerciement ne sera pas suffisant pour récompenser leurs efforts mais tout de même
J’adresse tout d'abord mes grands remerciements à M Arnaud Dury – chercheur du CRIM pour avoir dirigé ce stage avec passion et avec patience Son aide précieuse m'a fait enfin arriver à la finition de ce travail
Je souhaite remercier M Thang Viet Pham – doctoran t du CRIM pour son intérêt à mestravaux pendant la période de mon stage, ainsi pourses conseils scientifiques et pratiques qu'ilm'a prodigué au cours de cette recherche
Je tiens à exprimer mes remerciements, à M Laurent Magnin – responsable de l’ancienne équipe GLIC (Génie logicielle et ingénierie de la onnaissance) du CRIM et professeur associé
à l’Université de Montréal qui m'a accueillie gentiment au sein de l'équipe GLIC qu’il a animé Sa gentillesse et sa sympathie ont accompagné la réalisation de la partie de ce travail
Je remercie sincèrement tous les membres du CRIM Depuis le début de mon stage au sein
de l'équipe, leurs aides et leurs encouragements m'ontpermis d’avancer pendant cette périodedifficile
Je suis profondément reconnaissante à tous mes amis pour leur aide et leurs
encouragements, notamment les étudiants vietnamiens à Montréal pourleurs collaborations
Je tiens à remercier tous les membres de l'ancienne équipe GLIC que je ne les ai pas encorecités – Nicolas Besson, Kaddour Boukerche, El-Hachemi Alikacem, Nazim Bougherara pour leurs encouragements et gentillesse ! Je les remercie de m'avoir encouragé
Enfin, je tiens à adresser mes grands remerciements aux membres de ma famille pour lapatience qu'ils m'ont montrée pendant cette longuepériode de travail
Trang 10Le thème des systèmes multi-agents (SMA) est actuelement un champ de recherche trèsactif C’est une discipline qui s’intéresse aux comportements collectifs produits par lesinteractions de plusieurs entités autonomes et flexibles appelées agents, que ces interactionstournent autour de la coopération, de la concurrence ou de al coexistence entre ces agents Ilexiste plusieurs plate-formes d'agents mobiles : Jade, Aglet, Voyager, Dans ces systèmesaujourd’hui, le fonctionnement des services de pages blanches et jaunes est centralisé En raison de cela, il faut un serveur central qui sert à gérer les localisations des agents
À cơté des SMA existent les systèmes peer-to-peer : un ensemble de clients informatique partageant leurs données ou leurs ressources à travers un réseau de communications ó les ordinateurs sont à la fois clients et serveurs Cel a donne des avantages : facilité de mise à l’échelle, robustesse, coopération, partage, Ily a de nombreux exemples : Gnutella, Chord (partager des fichiers), Mais, dans ces systèmes, le code reste toujours immobile, non migrant.
Au sein des systèmes distribués, deux grandes tendances convergent D'un cơté, nous voyons apparaỵtre des environnements d'exécution de systèmes d'agents mobiles ó il faut un serveur central pour gérer la communication entre agents De l'autre cơté, nous voyons apparaỵtre des systèmes peer-to-peer ó tout est égal Nous proposons de développer un nouveau modèle de pages blanches pour les applications multi-agents C’est une plate-forme multi-agents
intégrant les concepts des systèmes distribués, deservices d’infrastructure des plates-formes d’agents – à savoir les services de pages blanches et enrichis par les techniques du Chord –
un protocole de peer-to-peer du MIT pour les applications sur Internet
Notre rédaction a pour ambition de présenter les principes fondamentaux, problèmes,
solution et techniques utilisées pour la réalisation du projet
Mots clés : systèmes multi-agents, systèmes peer-to-peer, service de pages blanches,
techniques du Chord
Trang 11Multi-agent system is not a new subject It is an active research field at present, a subject about collective behaviours generated by interactions of several autonomous, flexible entities called agents These interactions turn around the cooperation, competition or
coexistence among the agents There are several mobile agents platforms : Jade, Aglet, Voyager, … The problem is that, AMS – Agent Management System and DF – Directory Facilitator services of actual multi-agents platforms have been still centralized Therefore, a central server is necessary for agent management
Besides multi-agents systems, there are peer-to-peer systems – a set of computer clients sharing their data and resources through a communication network where each one is both client and server That provides many advantages : scalability, without centralized authority, robustness, cooperation, sharing, … There are vario us examples : Gnutella, Chord (filesharing), … But, the code of those systems is still immobile, without migration
So, in the distributed systems world, the two tendencies tend to meet to each other On one side,
we see appearing mobile agent system execution environments, which need a central server foragent management On the other side, we see appearing peer-to-peer systems where all is equal.Beyond the two ones, we propose to develop a new model of AMS for multi-agents applications.That is a multi-agents platform integrated distributed systems concepts, infrastructure services ofmulti-agents platforms like AMS (white pages) services and enriched of Chord techniques – apeer-to-peer proto col of MIT for Internet applications
Our composition is for the purpose of presenting the fundamental principles, problems,solution and techniques used to carry out this project
Key words : multi-agents systems, peer-to-peer systems, AMS (white pages) service, and
Chord techniques
Trang 12Plan du rapport
Le chapitre 1, ²Systèmes multi-agents et systèmes peer-to-peer² introduit les principes et
quelques exemples d'applications des systèmes multi-agents, plate-formes d'agents mobiles et
systèmes peer-to-peer Le chapitre 2, ²État de l'art ² présente les problèmes, notre solution et le but principal de notre projet Le chapitre 3, ²Analyse² détaille le système réalisé, techniques utilisées et l'architecture de notre système Le chapitre 4, ²Résultats atteints² fait des
statistiques quantiques et évalue les résultats Lechapitre 5, ²Conclusion² présente les
avantages, inconvénients du système et son développement en réalité au futur
Trang 13I Principes de base
I.1 Introduction des systèmes multi-agents
L'informatique devient de plus en plus diffuse et distribuée La décentralisation et donc, la coopération entre modules logiciels est un besoin De plus, avec la croissance de la taille, de
la complexité de nouvelles applications informatiques, la vision centralisée et assez statique atteint ses limites On est ainsi naturellement conduit à chercher une façon de donner plus d'autonomie et d'initiative aux différents moduleslogiciels Le concept de système multi-agentpropose un cadre de réponse à ces enjeux
I.2 Systèmes multi-agents : Principes généraux et pplications
I.2.1 Définition générale
Trang 14I.2.1.1 Qu’est-ce qu’un agent ?
Dans la littérature spécialisée, on trouve une multitude de définitions des agents Elles seressemblent toutes sur les concepts généraux, maisdiffèrent selon le type d’application pourlequel est conçu l’agent
Première définition due à Ferber [4] :
Un agent est une entité autonome, réelle ou abstraite, qui est capable d’agir sur même et sur son environnement, qui, dans un universmulti-agents, peut communiqueravec d’autres agents, et dont le comportement et la conséquence de ses observations,
elle-de ses connaissances et elle-des interactions avec les autres agents
Définition proposée par Jennings, Sycara et Wooldridge récemment [5] :
Un agent est un système informatique, situé dans un environnement, et qui agit d’une façon autonome et flexible pour atteindre les objectifs pour lesquels il a été conçu.
- situé: l’agent est capable d’agir sur son environnement à partir des entrées qu’il
reçoit de ce même environnement (systèmes de contrôle de processus, systèmesembarqués, etc.) ;
−
−
autonome : l’agent est capable d’agir sans l’intervention d ’un tiers (humain ou
agent) et contrôle ses propres actions ainsi que so n état interne ;
flexible : l’agent dans ce cas est :
capable de répondre à temps : l’agent doit être capable de percevoir son
environnement et d’élaborer une réponse dans les temps requis,
proactif : l’agent doit exhiber un comportement proactif et opportuniste, tout
en étant capable de prendre l’initiative au bon moment,
social : l’agent doit être capable d’interagir avec les autres agents (logiciels et
humains) quand la situation l’exige afin d’accompli r ses tâches ou aider ces agents à accomplir les leurs
Trang 15I.2.1.2 Agent mobile
Les agents mobiles sont des entités logicielles autonomes qui peuvent suspendre leurexécution sur une machine et migrer avec leur code,variables et état vers une autre machine
ó ils reprennent leur exécution
I.2.1.3 Système multi-agent
Un système multi-agent est un système logiciel distribué, composé d'un ensemble d'entités (de programmes) relativement indépendantes – des agents, dotés chacun de leur propre thread, de buts propres à remplir, et de moyens de communiquer et de négocier avec les autres pour accomplir leurs buts
Les SMA sont conçus et implantés idéalement comme un ensemble d'agents interagissant
selon les modes de coopération, de concurrence ou de coexistence [2, 3, 6].
I.2.2 Caractéristiques principales
Un SMA est généralement caractérisé ainsi :
- Chaque agent dispose d’informations ou de capacités de résolution de problèmes limités (ainsi, chaque agent a un point de vue partiel)
- Il n'y a aucun contrơle global du système multi-agent
- Les données sont décentralisées
- Le calcul est asynchrone
I.2.3 Problèmes inhérents
Bien que les SMA offrent de nombreux avantages potentiels, ils doivent aussi releverbeaucoup de défis Voici les problèmes inhérents àla conception et à l'implémentation desSMA, d'après [1] :
- Comment formuler, décrire, décomposer, allouer lesproblèmes et synthétiser les résultats ?
- Comment permettre aux agents de communiquer et d'interagir ? Quoi et quand
communiquer ?
Trang 16i Comment assurer que les agents agissent de manière cohérente ? en prenant leurs décisions ou actions
ii En gérant les effets non locaux de leurs décisionslocales
iii En évitant les interactions nuisibles
- Comment permettre aux agents individuels de représenter et raisonner sur les
actions, plans et connaissances des autres agents afin de coordonner avec eux ?
- Comment raisonner sur l'état de leurs processus coordonnés (comme l'initialisation ou
- Comment concevoir les plates-formes technologiques et les méthodologies de
développement pour les SMA ?
Pour les exemples d'applications des SMA, cf Annexes
I.3 Les plates-formes d'agents mobiles : Aglets, Jade, Voyager
Qu’est ce que les agents mobiles ?
Le réseau d’agents mobiles sont des programmes qui peuvent être déplacés d'un ordinateur et être à l’autre à distance pour l'exécution Arrivant à l'ordinateur à distance, ils s’authentifient afin d’obtenir l’accès aux services et aux donnéeslocales L'ordinateur distant peut également
se servir de courtier en rassemblant des agents avec des intérêts semblables et les buts
compatibles, afin de fournir un endroit de réunion auquel les agents peuvent agir l'un sur l'autre
Trang 17Il existe de nombreuses plates-formes d’agents mobiles : Aglets, Jade, Voyager, …
Les agents Aglets, Jades ou Voyagers sont des objets de Java qui peuvent se déplacer d'une machine sur l'Internet vers une autre C'est à dire, un aglet qui exécute sur une machine peut arrêter l'exécution soudainement, déplace vers uneautre, là, il continue son exécution Quand
un aglet se déplace, il apporte son programme de code ainsi que son état (des données) Un mécanisme assure la sécurité quand l’aglet se déplace vers les machines peu de confiance
Un des avantages de Java est de charger en cours de fonctionnement des classes dans saMachine Virtuelle (VM) Cela permet d'utiliser des objets mobiles et des agents autonomescomme outils pour construire des objets distribués
- Site Web : www.fipa.org
Pages blanches (Agent Management System – AMS)
- Gestion du cycle de vie des agents
- Maintient une liste de tous les agents qui résidentsur la plate-forme (White pages)
- Contrôle l'accès ainsi que l'utilisation du canal de communication des agents (ACC)
Pages jaunes (Directory Facilitator – DF)
−
−
Enregistre les descriptions des agents ainsi que les services qu'ils offrent
Les agents peuvent enregistrer leurs services auprès d'un DF ou demander à DF de découvrir les services offerts par d'autres agents(Yellow Pages)
I.3.1 Aglets
Trang 18Le plus connu des projets du monde Java nous vient de chez IBM Japon, il s’agit d’Aglets.
Aglets Software Development Kit est un environnement pour programmer les agents
Internet en JavaTM, développé par une équipe de chercheurs du laboratoire de recherche
d’IBM Tokyo au Japon Ce nom a été créé à partir des motsAgent et Applet, ce qui exprime
assez clairement ce qu’est Aglet
Site Web : http://www.trl.ibm.com/aglets/
en assurant la conformité des standards par un ensemble complet de services et agents
en se conformant aux standards FIPA : service de nom, service de pages jaunes,messages transportés et service d’analyse, et une bibliothèque de protocoled’interactions de FIPA à utiliser
Jade comporte tous les composants accrédités qui gère la plate-forme : ACC, AMS et DF - annuaire « pages jaunes » d’agents (service de noms)
La communication des agents est faite par messages échangés, ó FIPA ACL est le langage pour représenter des messages
La plate-forme d'agents peut être distribuée sur denombreuses machines Seule une
application Java, et donc, seule une machine virtuelle Java est exécutée sur chaque machine Fondamentalement, chaque JVM est un récipient d'agents qui fournit un environnementd'exécution pour l'exécution des agents et permetlusieursp agents d'exécuter concurremment sur une même machine
Site Web : http://sharon.cselt.it/projects/jade/home.htm
I.3.3 Voyager
Trang 19Voyager est un produit développé par ObjectSpace Voyager implémente une plate-formepour systèmes distribués, il est totalement Java etadapté pour supporter son modèle d'objets.
De plus, il est utilisable gratuitement
Voyager inclut un ORB supportant les objets mobiles et Agents Autonomes Les servicesfournis sont entre-autres la persistance, la communication de groupe scalaire et une gestionbasique des services Directory
Site Web : http://www.objectspace.com/products/voyager1.htm
I.3.4 Notre plate-forme multi-agent : Présentation de Guest
Un agent ne peut qu’exécuter sur sa propre plate-forme Par exemple, un Aglet ne peut qu’utiliser un serveur d’Aglets, pas celui de Grass hopper L’opposé est vrai également Les futures générations d’agents pour les applicationsInternet devront être adaptées aux serveurs
hétérogènes produits par différents partenairesGuest est née afin d’adresser ce problème.
Guest est une plate-forme multi-agent génériqueet extensible, permettant de développeurs et
de déployer des systèmes multi-agents mobiles, hétérogènes et répartisau-dessus des autres plates-formes multi-agents, de manière indépendanteavec celles-ci.
Guest est développé au sein de l’équipe GLIC, au Centre ed Recherche Informatique de Montréal (CRIM) Les caractéristiques principales ed Guest sont les suivantes :
- Java pur : Le langage de développement utilisé dansGuest est Java, un langage
orienté objet très populaire dans le domaine des aplications multi-agents ;
- Indépendant des plates-formes: Guest rend compatibles entre elles plusieurs
plates-formes multi-agents a priori incompatibles et offre un modèle d’agent
universel qui est indépendant des types de plates-formes, tout en leur offrant denouvelles fonctionnalités ;
- Extensible : Guest offre un modèle d’agents flexible, permettant de développer et
de déployer facilement de nouvelles fonctionnalités par le mécanisme de plugins et
de JavaBeans ;
- Dynamique : Guest offre un modèle d’agents dynamique facilitant le
développement de systèmes multi-agents adaptatifs ;
Trang 20- GUI : Guest fournit des outils graphiques qui permettent de visualiser et de gérer de
façon centralisée des applications multi-agents tout en automatisant le lancement des différents serveurs et agents
I.4 Les systèmes P2P
I.4.1 Qu’est-ce qu’un système peer-to-peer ?
Selon George McDaniel IBM Dictionary of Computing, Tenth Edition, McGraw-Hill,
(1993), peer-to-peer (P2P) est «un modèle de communication dans lequel chaque partie dispose de même capacité potentielle et toutes parties peuvent initialiser une session de communication» Sur Internet, P2P est «un type de réseau transitoire (transient network) qui permettent un groupe d’utilisateurs de se connecter et d’accéder directement des fichiers des autres disques durs».
cf Annexes pour la version origine en anglais
I.4.2 Les services des systèmes P2P
Dépendant des caractéristiques centralisées ou distribuées des services, les systèmes et applications peer-to-peer sont des systèmes distribués totalement – sans aucun contrơle central ou organisation hiérarchique, ó chaque nœud exécute des logiciels avec des
fonctionnalités équivalentes ou partiellement – des services centralisés et d’autres distribuées.Nous citons les services généraux d’un système peer-to-peer typique :
- Service pour se connecter : trouver le point d’entrée
serveur cache : utilise des serveurs (super-nœuds) caches
Trang 21adresse communiquée directement : utilise l’adresse IP de l’hôte à distance pour lui communiquer directement sans serveur
- Service de recherche : trouve l’information ou la ressource
- Service de transfert : télécharge le fichier
I.4.3 Exemples
Nous présentons ici quelques exemples d’applications des systèmes peer-to-peer existent en
citant leurs services distribués
Les systèmes peer-to-peer existants :
- Messages instantanés : AIM, ICQ, Jabber
- Calcul distribué : distributed.net, SETI@Home, United Devices
- Collaboration : Groove, Zaplet
- Partage des fichiers : Napster, Gnutella, Freenet, KaZaa, E-Donkey, Chord
- Réputation et confiance : MojoNation, Mnet
- Stockage : OceanStore, Freenet
- Infrastructure : JXTA, NET
Trang 23Légende :
: service distribué
X : service non distribué
– : il n’existe pas de ce type de service dans le s ystème
Trang 24AI Problèmes
II.1 Les limitations des SMA disponibles : Aglet, Jade, Voyager, …
II.1.1 Rappel de service de Pages blanches (AMS – A gent Management System)
−
−
−
Gestion du cycle de vie des agents
Maintient une liste de tous les agents qui résidentsur la plate-forme (White pages)
Contrôle l'accès ainsi que l'utilisation du canal de communication des agents (ACC)
II.1.2 Problème de l'agent "PagesBlanches"
Il existe de nombreux systèmes multi-agents : Jade, Aglet, Voyager, qui sont présentés dans
la section précédente
Dans ce genre de systèmes multi-agents, les agents (les entités logicielles) peuvent
apparaître, disparaître, se déplacer – migrer (de serveur d'agents en serveur d'agents) ou tomber – mourir
Trang 25Pour gérer le cycle de vie des agents dans un système multi-agent, on doit donc maintenir àjour une liste indiquant, pour chacun d'eux, leur emplacement actuel (tel agent est sur telserveur), tel agent n'est pas encore crée, tel agent vient de mourir) Cette information estessentielle pour qu'un agent puisse repérer bien lecorrespondant afin de ²router²correctement ses messages vers leur destinataire.
Dans les systèmes existants aujourd'hui, cette liste est tenue à jour par un agent particulier, appelé²PagesBlanches ².
Dans Guest (le système multi-agent du CRIM), cet agent se nomme GuestRegion.
Cette approche présente des problèmes importants :
−
−
Si l'agent PagesBlanches meurt, toute l'application est paralysée
Si le nombre d'agents de l'application augmente trop, ou si le volume de messages
échangés augmente trop, l'agentPagesBlanches est surchargé.
−
−
S’il diminue trop, l'agent PagesBlanches est surdimensionné inutilement.
Tous les agents doivent pouvoir contacter l'agent PagesBlanches, indépendamment
de leur emplacement
II.2 L’inconvénient des systèmes P2P : Gnutella, Chord
Nous ne s’intéressons qu’aux systèmes totalement distribués : Freenet, Gnutela, Chord, …
Ce sont des systèmes distribués sans aucun contrơle central ou organisation hiérarchique, ó chaque nœud exécute des logiciels avec des fonction nalités équivalentes
Malgré une architecture pour la très grande échelle; une haute dynamicité grâce à la
composition et la topologie du réseau : les nœuds p euvent venir et quitter le système
régulièrement de façon imprévisible, on voit que, ansd ce type de ces systèmes actuels, les connexions, les données restent statiques tant queles nœuds demeurent dans le système
En raison de cela, il a besoin d’un système peer-to-peer qui peuvent exécuter dynamiquement
Trang 26III Solution
III.1 Mes travaux
Mes travaux portent sur l’intégration des concepts des systèmes peer-to-peer aux systèmes d’agents mobiles Les travaux courant concernent pour l’instant les systèmes peer-to-peer à code non migrant Le but de mes travaux est de réaliser un modèle de systèmes d’agents mobiles totalement distribué garantissant le fonctionnement des services encore centralisés
de ces systèmes aujourd’hui, à savoir les services de pages blanches et de s’inspirer des
méthodes utilisées dans ces réseaux pour enrichirotren plate-forme d’agents
III.2 But principal : Service de pages blanches + Peer-to-peer
Notre but principal, c'est de réaliser un nouveau modèle de pages blanches des systèmes multi-agents de façon décentralisée, via un réseaupeer-to-peer
III.2.1 Nouveau modèle de pages blanches
Ce système nous permettra de créer des agents et d'échanger des messages d’entre eux
Dans les systèmes existant, le service de Pages Blanches est faite par l’agent PagesBlanches
qui maintient une liste de tous les agents qui résident sur la plate-forme (White pages)
⇒ Dans notre système, chaque agent maintient une liste des connaissances d’autres agents
III.2.2 Peer-to-peer
La communication des agents est réalisée de façon distribuée Un prototype de système
d’agents mobiles fonctionnant avec un service distribué de pages blanches a été réalisé en simulation En réalité, dans l’avenir, c'est de mettre en oeuvre dans un réseau peer-to-peer réel, les machines seront des nœuds à être mises sur une bonne chaỵne Chaque nœud est le lieu ó résident des agents Les agents peuvent envoyer des messages, migrer ou tomber L'essentiel estqu'on doit assurer la stabilité dusystème quand il y a des agents qui migrent ou meurent
Trang 27IV Aperçu du système
Nous réalisons un système permettant de gérer le routage dans une application distribuée de façon décentralisée, sans agent PagesBlanches, viaun réseau peer-to-peer
D’abord, nous présentons le principe de fonctionnement du Chord – un protocole
peer-to-peer pour les applications sur Internet que nous allons appliquer au notre système Ensuite,
nous décrivons les concepts élémentaires de notre système sur la base de modèle du Chord
Un exemple d’exécution est donné pour illustrer clairement son exécution
IV.1 Principes de fonctionnement du Chord
Nous étudions les techniques duChord – Projet de système de fichier distribué, développé
par le MIT
Site Web : http://www.pdos.lcs.mit.edu/chord/
IV.1.1 Problèmes
Un problème fondamental des systèmes peer-to-peer existants est «comment localiser
efficacement d’un nœud qui stocke des données reche rchées».
Trang 28Chord fournit une opération afin d’adresser le problèmede localisation : donné une clé, il
affecte la clé à un nœud La localisation des donné es peut être implémentée simplement en
associant une clé à chaque élément de données, etockes la paire (clé, élément de données)au
nœud auquel la clé est affectée
IV.1.2 Hachage consistant
Chord utilise un espace circulaire d’identifiants La fonction d’hachage désigne chaque nœud et clé un identifiant de m-octets en basant sur lafonction d’hachage comme SHA-1 [15]
Des identifiants sont
ordonnés sur un cercle
modulo 2m La clé k est
assignée au premier
nœud dont l’identifiant
est égal à ou plus que k
dans l’espace
d’identifiants
Autrement dit, la clé k
est associée au nœud n de plus faible indice tel que: n>=k Ce nœud est appelé le successeur
de clé k, dénotésuccesseur(k) Si les identifiants sont représentés sur un cercl de 0 à 2 m-1,
successeur(k) est le premier nœud dans le sens des aiguilles d'u ne montre.
IV.1.3 Localisation par hachage – Table d’index
Trang 29Pour accélérer la recherche d’informations,Chord utilise des informations additionnelles de
routage Ces informations additionnelles ne sont pas essentielles pour la correction, qui estaccomplie dès que chaque nœud connaỵt bien son bon successeur
Soit m le nombre d’octets sur
l’espace d’identifiants
clé/nœud Chaque nœud n
dispose une table de routage
contenant m entrées, appelée
«Table d’index» La ith entrée de
la table du nœud n contient
l’identifiant du premier
nœud s qui possède
l’identifiant, ou le plus petit
identifiant supérieur à n+2i-1 sur le cercle, c-a-d., s=successeur(n+2i-1), ó 1 ≤ i ≤ m On appelle s la ith entrée du nœud n Ainsi la première entrée de la table d’un nœud n pointe sur
le successeur de n, les entrées suivantes doublant la distance du successeur Une table
d’index inclut tous les identifiants et les adresses IP (et nombre de la porte) du nœud
IV.1.4 Tolérance aux fautes – Listes de successeurs
L'exactitude du protocole du Chord se fonde sur le fait que chaque nœud connaỵt son
successeur Cependant, cet invariable peut être compromis si les nœuds échouent Parexemple, dans la Figure à
cơté, si les nœuds 20 et
32 échouent
simultanément, nœud 10
ne sais pas que nœud 40
est son successeur pour
l’instant Un successeur
incorrect mènera aux
recherches incorrectes
Trang 30Pour augmenter la robustesse, chaque nœud du Chord maintient une liste de successeurs de
la taille r, contenant les r premiers successeurs du nœud Si le successeur imm édiat d'un
nœud ne répond pas, le nœud peut substituer la deuxième entrée dans sa liste de successeurs
Tous les r successeurs devraient échouer simultanément pour étruired la chaỵne du Chord, un événement qui est très impossible avec des valeursmodestes de r Supposons que chaque nœud échoue indépendamment avec la probabilité p, al probabilité que tous les r successeurs
échouent simultanément est seulement rp En augmentant r rend le système plus robuste.
La liste des successeurs est stabilisée par la suite : nœud n réconcilie sa liste avec son successeur s en copiant la liste de successeurs de s, enlève sa dernière entrée, et ajoutes au début de la liste Si nœud n constate que son successeur est échoué, il le remplace par la
première entrée vivante dans sa liste de successeur et réconcilie sa liste avec le nouveau
successeur A ce point là, n peut transférer les recherches des clés pour lequele nœud échoué est le successeur envers le nouveau Le protocole Stabilisation va corriger la table d’index et
la liste de successeurs qui pointent vers le nœud é choué
IV.1.5 Mise à l’échelle de la localisation des nœud s - Protocole de
stabilisation
Afin d’assurer que la recherche s’exécute correctement quand l’ensemble des nœuds
participants change, Chord doit assurer que chaque successeur d’un nœud est b ien mis à jour souvent Grâce à un algorithme de stabilisation ( stabilise), la modification va être prise en compte progressivement dans les tables d’index ( finger tables) et les listes de successeurs Si
on veut garantir un routage pendant la période de tabilisation, on peut facilement trouver dans
la table d’index du nœud n un chemin adaptatif.
IV.1.6 Performance
Chord adapte efficacement aux cas ó des nœuds viennent et quittent le système, et donne de bonnes réponses des requêtes même si lestèmesy change toujours.
L’analyse théorique et la simulation constatent la grande mise à l’échelle du Chord : le cỏt
de communication et la maintenance des états de chaque nœud est à proportion
logarithmiquement du nombre de nœuds du Chord.