Tải bản đầy đủ (.pdf) (58 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (722.34 KB, 58 trang )

Institut de la Francophonie pour

Centre de Recherche Informatique de

l'Informatique

Montréal

RAPPORT DE STAGE

MODÉLISATION ET IMPLÉMENTATION
D'UN SYSTÈME DISTRIBUÉ DE PAGES
BLANCHES AU SEIN D’UNE PLATEFORME MULTI-AGENT

Réalisée par :
NGUYEN Thi Truc Vien
Promotion 7 - IFI
Sous la responsabilité de :
M. Arnaud DURY
Chercheur au CRIM

Montréal, décembre 2003



MODÉLISATION ET IMPLÉMENTATION
D'UN SYSTÈME DISTRIBUÉ DE PAGES
BLANCHES AU SEIN D’UNE PLATEFORME MULTI-AGENT


MODÉLISATION ET IMPLÉMENTATION


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

Réalisée par :
NGUYEN Thi Truc Vien
Promotion 7 - IFI
Sous la responsabilité de :
M. Arnaud DURY
Chercheur au CRIM

Centre de Recherche Informatique de Montréal
Décembre, 2003


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


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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
II.2
III.

Problème de l'agent "PagesBlanches" ____________________________ 21

L’inconvénient des systèmes P2P : Gnutella, Chord _____________________ 22
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

Table des matières

5


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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

V.3

Pas de migration et de mort ____________________________________ 39

Avec les techniques d'optimisation du Chord_______________________ 41

V.2.3.1

Statistiques _______________________________________________ 41

V.2.3.2

Évaluation________________________________________________ 42

É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

Annexes _________________________________________________________________ 46
Systèmes multi-agents : Principes généraux et applications_____________________ 46
whatis.com _____________________________________________________________ 51
Interface graphique du Système ___________________________________________ 52
Références _______________________________________________________________ 57

Table des matières

6


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent


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

Remerciements

7


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent


Résumé
Le thème des systèmes multi-agents (SMA) est actuellement un champ de recherche très actif.
C’est une discipline qui s’intéresse aux comportements collectifs produits par les interactions
de plusieurs entités autonomes et flexibles appelées agents, que ces interactions tournent
autour de la coopération, de la concurrence ou de la coexistence entre ces agents. Il existe
plusieurs plate-formes d'agents mobiles : Jade, Aglet, Voyager, .... Dans ces systèmes
aujourd’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 où 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 où 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 où 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

Résumé


8


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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


Abstract

9


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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.

Plan du rapport

10


Chapitre 1. Systèmes multi-agents et systèmes peerto-peer

I.

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 modules logiciels. Le concept de système multiagent 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


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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 ellemê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.
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.

Systèmes multi-agents et systèmes peer-to-peer

12


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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
où 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 ?

Systèmes multi-agents et systèmes peer-to-peer

13


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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
la terminaison) ?



Comment reconnaître et réconcilier les points de vue disparates et les intentions
conflictuelles dans un ensemble d'agents essayant de coordonner leurs actions ?



Comment trouver le meilleur compromis entre le traitement local au niveau d'un seul
agent et le traitement distribué entre plusieurs agents (traitement distribué qui induit la
communication) ? Plus généralement, comment gérer la répartition des ressources
limitées ?



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.

Systèmes multi-agents et systèmes peer-to-peer

14


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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


Formé en 1996 afin de construire des standards pour les agents hétérogènes, en
interaction et les SMA




Design de spécifications afin de faciliter l’interopérabilité entre les différents SMA
développés par différentes sociétés et organisations



Relations fortes avec d’autres standards et organisations comme OMG (Object
Management Group)



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

Systèmes multi-agents et systèmes peer-to-peer

15


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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 : />
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, où 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 : />
I.3.3 Voyager

Systèmes multi-agents et systèmes peer-to-peer

16


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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 : />
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 plates-formes : Guest rend compatibles entre elles plusieurs platesformes 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 ;

Systèmes multi-agents et systèmes peer-to-peer

17


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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
Site Web :
1. Terminologies de l’IBM :
/>2. Encyclopédie de termes TI (Technologie d’informations) spécifiques :



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, où 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

Systèmes multi-agents et systèmes peer-to-peer

18


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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 :

Services
Applications

Service pour se
connecter

Service de recherche

AIM

X

X

ICQ

X

X

Jabber

X


X

Groove

X

X

Gnutella 2

X

Systèmes multi-agents et systèmes peer-to-peer

Service de transfert

19


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

Chord
Freenet
Overnet

Légende :
: service distribué
X : service non distribué
– : il n’existe pas de ce type de service dans le système.


Systèmes multi-agents et systèmes peer-to-peer

20


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
.


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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, où
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.

État de l’art

22


Modélisation et implémentation d’un système distribué de pages blanches au sein d’une plate-forme multi-agent

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 où 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.

État de l’art

23


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
le MIT.
Site Web : />
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 recherchées».


×