C’est une plate-forme multi-agents intégrant les concepts des systèmes distribués, des services d’infrastructure des plates-formes d’agents – à savoir les services de pages blanches et e
Trang 1Institut de la Francophonie pour
FORME MULTI-AGENT
Montréal, décembre 2003
RAPPORT DE STAGE
Trang 3D'UN SYSTÈME DISTRIBUÉ DE PAGES BLANCHES AU SEIN D’UNE PLATE-
FORME MULTI-AGENT
Trang 5Table des matières
Table des matières 4 Remerciements _ 7 Résumé _ 8 Abstract 9 Plan du rapport _ 10 Chapitre 1 Systèmes multi-agents et systèmes peer-to-peer 11
I Principes de base 11
I.1 Introduction des systèmes multi-agents _ 11 I.2 Systèmes multi-agents : Principes généraux et applications _ 11 I.2.1 Définition générale _ 11 I.2.1.1 Qu’est-ce qu’un agent ? _ 12 I.2.1.2 Agent mobile _ 13 I.2.1.3 Système multi-agent 13 I.2.2 Caractéristiques principales 13 I.2.3 Problèmes inhérents 13 I.3 Les plates-formes d'agents mobiles : Aglets, Jade, Voyager _ 14 I.3.1 Aglets _ 15 I.3.2 Jade _ 16 I.3.3 Voyager 16 I.3.4 Notre plate-forme multi-agent : Présentation de Guest _ 17 I.4 Les systèmes P2P 18 I.4.1 Qu’est-ce qu’un système peer-to-peer ? _ 18 I.4.2 Les services des systèmes P2P 18 I.4.3 Exemples _ 19
Chapitre 2 État de l'art _ 21
Trang 6II Problèmes _ 21
II.1 Les limitations des SMA disponibles : Aglet, Jade, Voyager, … _ 21 II.1.1 Rappel de service de Pages blanches (AMS – Agent Management System)
21 II.1.2 Problème de l'agent "PagesBlanches" 21 II.2 L’inconvénient des systèmes P2P : Gnutella, Chord _ 22
III 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 Aperçu du système 24
IV.1 Principes de fonctionnement du Chord 24 IV.1.1 Problèmes 24 IV.1.2 Hachage consistant _ 25 IV.1.3 Localisation par hachage – Table d’index _ 25
IV.1.4 Tolérance aux fautes – Listes de successeurs _ 26 IV.1.5 Mise à l’échelle de la localisation des nœuds - Protocole de stabilisation 27 IV.1.6 Performance 27 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.1 Agents _ 31 IV.4.2 Protocoles 31 IV.4.2.1 ProtocoleAttenteConnexionDHT _ 31 IV.4.2.2 ProtocoleConnexionDHT _ 32 IV.4.2.3 ProtocoleEnrichirDHT _ 34 IV.5 L'organisation du code 36 IV.5.1 massip _ 36
Trang 7IV.5.2 SimP2P 37
Chapitre 4 Résultats atteints _ 38
V Résultats _ 38
V.1 Système réalisé 38 V.1.1 SMA+P2P 38 V.1.2 Techniques inspirées du Chord 38 V.2 Performance 39 V.2.1 Pas de migration et de mort 39 V.2.1.1 Statistiques _ 39 V.2.1.2 Évaluation 39 V.2.2 Avec de migration – techniques du Chord pas encore implémentées 39 V.2.2.1 Statistiques _ 40 V.2.2.2 Évaluation 41 V.2.3 Avec les techniques d'optimisation du Chord _ 41 V.2.3.1 Statistiques _ 41 V.2.3.2 Évaluation 42 V.3 Évaluation globale _ 43
Chapitre 5 Conclusions 44
VI Conclusions 44
VI.1 Avantages 44 VI.2 Inconvénients _ 44 VI.3 Développements dans l'avenir 45
Trang 8Remerciements
Ce 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 – doctorant du CRIM pour son intérêt à mes travaux pendant la période de mon stage, ainsi pour ses conseils scientifiques et pratiques qu'il m'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 connaissance) 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'ont permis d’avancer pendant cette période difficile
Je suis profondément reconnaissante à tous mes amis pour leur aide et leurs encouragements, notamment les étudiants vietnamiens à Montréal pour leurs collaborations
Je tiens à remercier tous les membres de l'ancienne équipe GLIC que je ne les ai pas encore cité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 la patience qu'ils m'ont montrée pendant cette longue période de travail
Trang 9À 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 Cela donne des avantages : facilité de mise à l’échelle, robustesse, coopération, partage, Il y 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, des services 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 10Abstract
Multi-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 various examples : Gnutella, Chord (file sharing), … 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 for agent 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 of multi-agents platforms like AMS (white pages) services and enriched of Chord techniques – a peer-to-peer protocol 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 11Plan 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 Le chapitre 5, ″Conclusion″ présente les avantages, inconvénients du système et son développement en réalité au futur
Trang 12Chapitre 1 Systèmes multi-agents et systèmes
peer-to-peer
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 modules logiciels Le concept de système multi-agent propose un cadre de réponse à ces enjeux
I.2 Systèmes multi-agents : Principes généraux et applications
I.2.1 Définition générale
Trang 13I.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 se ressemblent toutes sur les concepts généraux, mais diffèrent selon le type d’application pour lequel 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 univers multi-agents, peut communiquer avec d’autres agents, et dont le comportement et la conséquence de ses observations, de ses connaissances et des interactions avec les autres agents
elle-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èmes embarqué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 son é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’accomplir ses tâches ou aider ces agents à accomplir les leurs
Trang 14I.2.1.2 Agent mobile
Les agents mobiles sont des entités logicielles autonomes qui peuvent suspendre leur exé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 relever beaucoup de défis Voici les problèmes inhérents à la conception et à l'implémentation des SMA, d'après [1] :
− Comment formuler, décrire, décomposer, allouer les problèmes et synthétiser les résultats ?
− Comment permettre aux agents de communiquer et d'interagir ? Quoi et quand communiquer ?
Trang 15i 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écisions locales
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 éviter ou amoindrir un comportement nuisible du système global, comme les comportements chaotiques ou oscillatoires ?
− 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ées locales 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 16Il 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 une autre, 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 sa Machine Virtuelle (VM) Cela permet d'utiliser des objets mobiles et des agents autonomes comme 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ésident sur 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 17Le 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 mots Agent et Applet, ce qui exprime assez
clairement ce qu’est Aglet
Site Web : http://www.trl.ibm.com/aglets/
I.3.2 Jade
JADE : plate-forme Java pour les systèmes multi-agents respectant le standard FIPA JADE a été développé par l'université de Parme et C-SELT – centre de recherche télécom italien
Le but de JADE est pour simplifier le développement des systèmes multi-agents
− 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 protocole d’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 de nombreuses 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 environnement d'exécution pour l'exécution des agents et permet plusieurs 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 18Voyager est un produit développé par ObjectSpace Voyager implémente une plate-forme pour systèmes distribués, il est totalement Java et adapté 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 services fournis sont entre-autres la persistance, la communication de groupe scalaire et une gestion basique 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 Grasshopper L’opposé est vrai également Les futures générations d’agents pour les applications Internet devront être adaptées aux serveurs
hétérogènes produits par différents partenaires Guest est née afin d’adresser ce problème
Guest est une plate-forme multi-agent générique et extensible, permettant de développeurs et
de déployer des systèmes multi-agents mobiles, hétérogènes et répartis au-dessus des autres plates-formes multi-agents, de manière indépendante avec celles-ci
Guest est développé au sein de l’équipe GLIC, au Centre de Recherche Informatique de
Montréal (CRIM) Les caractéristiques principales de Guest sont les suivantes :
− Java pur : Le langage de développement utilisé dans Guest est Java, un langage
orienté objet très populaire dans le domaine des applications multi-agents ;
− Indépendant des 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 de nouvelles 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 19− 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 20adresse 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
−
Ces systèmes avec leurs services distribués :
Service pour se connecter Service de recherche Service de transfert
Trang 21X : service non distribué
– : il n’existe pas de ce type de service dans le système
Trang 22Chapitre 2 État de l'art
II Problèmes
II.1 Les limitations des SMA disponibles : Aglet, Jade, Voyager, …
II.1.1 Rappel de service de Pages blanches (AMS – Agent Management System)
− Gestion du cycle de vie des agents
− Maintient une liste de tous les agents qui résident sur 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 23Pour 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 tel serveur), tel agent n'est pas encore crée, tel agent vient de mourir) Cette information est essentielle pour qu'un agent puisse repérer bien le correspondant 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'agent PagesBlanches 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 fonctionnalité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 peuvent venir et quitter le système régulièrement de façon imprévisible, on voit que, dans ce type de ces systèmes actuels, les connexions, les données restent statiques tant que les 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 24III 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 enrichir notre 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éseau peer-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 est qu'on doit assurer la stabilité du système quand il y a des agents qui migrent ou meurent
Trang 25Chapitre 3 Analyse du système
IV 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, via un 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 du Chord – Projet de système de fichier distribué, développé par
Trang 26Chord fournit une opération afin d’adresser le problème de 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, et stocke 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 la fonction 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
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 cercle de 0 à 2m-1,
successeur(k) est le premier nœud dans le sens des aiguilles d'une montre
IV.1.3 Localisation par hachage – Table d’index
Trang 27Pour 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 est accomplie 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 Par exemple, dans la Figure à
cơté, si les nœuds 20 et
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 28Pour 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 détruire la chaỵne du Chord, un événement qui est très impossible avec des valeurs modestes de r Supposons que chaque nœud échoue indépendamment avec la probabilité p, la probabilité que tous les r successeurs
échouent simultanément est seulement pr 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 ajoute s 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 successeurs et réconcilie sa liste avec le nouveau
successeur A ce point là, n peut transférer les recherches des clés pour lequel le 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œuds - 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 bien 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 stabilisation, 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 le système 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
Trang 29IV.2 Principes de fonctionnement du notre Système
En s’inspirant des techniques de base du Chord, on va construire une plate-forme d’agents
mobiles intégrant les services de pages blanches, les concepts de décentralisation Cette forme peut accueillir des agents, ordonner leurs identifiants sur un cercle en faisant exécutant leurs protocoles et gérer des messages entre eux
plate-Pour les techniques d’optimisation, nous n’avons pas implémenté la première – qui serve à la
recherche accélérée des données, nous n’avons implémenté que la deuxième (liste de
successeurs) et la troisième (protocole de stabilisation) techniques du Chord
En appliquant ces techniques à notre Système, nous pouvons améliorer sa vitesse Le temps
(c-a-d : le nombre de pas) à atteindre une chaỵne en bon ordre d’identifiants et le temps à reformer la chaỵne à cause des migrations ou des morts des agents sont réduits significativement
Au début, les agents sont crées, chacun possède un couple (identifiant, adresse IP) :
− identifiant : unique pour chaque agent, permet à localiser un agent
− adresse IP : adresse de la machine ó l’agent exécute
Simulateur : fonctionne comme un réseau sur lequel on teste les agents P2P
AgentP2P : chacun maintient une liste des connaissances – d’autres agents qu’il a vus tout au
long de sa vie
Voici un exemple d’illustration de fonctionnement du notre Système sur trois étapes :
1 Avant migration : Une bonne chaỵne est formée selon l’ordre croissant des identifiants : 0 → 1 → 2 → 3 → 4 → 5