1. Trang chủ
  2. » Ngoại Ngữ

MODÉLISATION ET IMPLÉMENTATION DUN SYSTÈME DISTRIBUÉ DE PAGES

58 174 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 722,34 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Institut de la Francophonie pour

FORME MULTI-AGENT

Montréal, décembre 2003

RAPPORT DE STAGE

Trang 3

D'UN SYSTÈME DISTRIBUÉ DE PAGES BLANCHES AU SEIN D’UNE PLATE-

FORME MULTI-AGENT

Trang 5

Table 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 6

II 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 7

IV.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 8

Remerciements

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 10

Abstract

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 11

Plan 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 12

Chapitre 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 13

I.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 14

I.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 15

i 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 16

Il 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 17

Le 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 18

Voyager 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 20

 adresse 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 21

X : service non distribué

– : il n’existe pas de ce type de service dans le système

Trang 22

Chapitre 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 23

Pour 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 24

III 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 25

Chapitre 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 26

Chord 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 27

Pour 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 28

Pour 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 29

IV.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

Ngày đăng: 27/10/2016, 23:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] A. H. Bond and L. Gasser, editors. Readings in Distributed Artificial Intelligence. Morgan Kaufmann Publishers : San Mateo, CA, 1988 Sách, tạp chí
Tiêu đề: Readings in Distributed Artificial Intelligence
[2] B. Chaib-draa and P. Levesque. Hierarchical models and communication in multi-agent environments. In Proceedings of the Sixth European Workshop on Modelling Autonomous Agents and Multi-Agent Worlds (MAAMAW-94), pages 119-134, Odense, Denmark, August 1994 Sách, tạp chí
Tiêu đề: Proceedings of the Sixth European Workshop on Modelling Autonomous Agents and Multi-Agent Worlds (MAAMAW-94)
[3] B. Chaib-draa and P. Levesque. Hierarchical model and communication by signs, signals and symbols in multi-agent environments. Journal of Experimental and Theoretical AI (JETAI), 8 :7-20, 1996 Sách, tạp chí
Tiêu đề: Journal of Experimental and Theoretical AI (JETAI)
[4] J. Ferber. Les systèmes multi-agents, vers une intelligence collective. InterEditions, 1995 Sách, tạp chí
Tiêu đề: Les systèmes multi-agents, vers une intelligence collective
[5] N. R. Jennings, M. Wooldridge, and K. Sycara. A roadmap of agent research and development. Int Journal of Autonomous Agents and Multi-Agent Systems, 1(1) :7- 38, 1998 Sách, tạp chí
Tiêu đề: Int Journal of Autonomous Agents and Multi-Agent Systems
[6] B. Moulin and B. Chaib-draa. An overview of distributed artificial intelligence. In G. M. P. O'Hare and N. R. Jennings, editors, Foundations of Distributed AI, pages 3-54.John Wiley & Sons : Chichester, England, 1996 Sách, tạp chí
Tiêu đề: Foundations of Distributed AI
[7] J.P. Briot et Y. Demazeau. Principes et architecture des systèmes multi-agents. Hermès Science Publications, 2001 Sách, tạp chí
Tiêu đề: Principes et architecture des systèmes multi-agents
[15] FIPS 180-1. Secure Hash Standard. U.S. Department of Commerce/NIST, National Technical Information Service, Springfield, VA, Apr. 1995 Sách, tạp chí
Tiêu đề: Secure Hash Standard
[9] Aglets Workbench – laboratoire IBM Tokyo Research Laboratory – open source http://www.trl.ibm.com/aglets/ Link
[10] Jade - Java Agent DEvelopment Framework http://sharon.cselt.it/projects/jade/home.htm[11]Voyager – Voyager by Object Spacehttp://www.objectspace.com/products/voyager1.htm [12] Terminologies de l’IBM :http://www-3.ibm.com/ibm/terminology/ Link
[13] Encyclopédie de termes TI (Technologie d’informations) spécifiques : http://www.whatis.com Link
[14] Chord – Protocole pour les systèmes peer-to-peer - MIT http://www.pdos.lcs.mit.edu/chord/ Link
[8] FIPA – The Foundation for Intelligent Physical Agents www.fipa.org Khác

TỪ KHÓA LIÊN QUAN