organisation du partage des ressources dans un reseau p2p par la

Transcription

organisation du partage des ressources dans un reseau p2p par la
8e Conférence Internationale de MOdélisation et SIMulation - MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
« Evaluation et optimisation des systèmes innovants de production de biens et de services »
ORGANISATION DU PARTAGE DES RESSOURCES DANS UN RESEAU
P2P PAR LA COOPERATION DES PAIRS
A. CABANI*, W. ALSHABI**
M. ITMI**
(*) ESIGELEC/IRSEEM EA 4353
Avenue Galilée, BP 10024
76801 St-Etienne du Rouvray - France
[email protected], [email protected]
(**) INSA/LITIS EA4108
Avenue de l’Université, BP 08
76801 St-Etienne du Rouvray - France
[email protected]
RESUME : Nous nous intéressons à la simulation distribuée selon un paradigme pair-à-pair. Notre approche s’appuie
sur la déclaration des pairs selon leurs ressources. Nous avons implémenté et testé ce modèle. Nous y abordons le
problème de la gestion du partage des ressources par une approche coopérative : les pairs se partageant les ressources
selon un modèle de coopération que nous avons construit. Nous avons étudié ce modèle de coopération dans une
simulation multi-agents et nous l’avons implémenté. Cette approche va dans le sens de l’équilibrage des charges du
réseau P2P.
MOTS-CLES : Coopération, organisation, réseau pair-à-pair, simulation distribuée, systèmes multi-agents.
1
INTRODUCTION
Les dernières statistiques affiché par l’Arcep (L’autorité
de régulation des communications électroniques et des
postes), en août 2009, montre que le nombre des
ménages en France se connectant à Internet ne cesse
d’augmenter. En une seule année, il y a eu une hausse de
12% pour atteindre les 18.6 millions d’abonnements au
haut débit. Derrière chaque abonnement haut débit il y a
au moins un ordinateur. Ces derniers sont très rarement
utilisés d’une manière optimale. Plusieurs sont laissés
allumés des heures pour n’utiliser qu’un faible
pourcentage de leurs capacités matérielles.
Nous proposons de tirer profit de ces ressources
disponibles et non utilisées en les faisant agréger autour
de notre plate-forme PHAC (A P2P-based Highly
Avaible Computing Framework). Le but étant d’offrir un
réseau pair-à-pair hautement disponible.
Dans ce papier, nous introduisons le modèle de réseau
pair-à-pair et les modèles de coopération dans les
systèmes multi-agents. Ensuite nous présentons notre
plate-forme PHAC avec son modèle de coopération qui
permet d’organiser le partage des ressources dans un
réseau pair-à-pair. Ce modèle est inspiré de nos travaux
sur la coopération multi agents. Dans le paragraphe 5,
nous présentons les résultats obtenus par simulation
avant de conclure avec des perspectives pour ces
travaux.
2
MODELE DE RESEAU PAIR-A-PAIR
C’est un modèle distribué de nœuds qui jouent à la fois
le rôle de serveurs et de clients. Ce modèle est en pleine
expansion depuis les années 90. Une des applications les
plus connues est celle qui permet à des millions
d’internautes de partager et de télécharger librement des
fichiers (logiciels : Napster, Kazaa, Emule, etc.).
D’autres applications sont apparues. Elles ont profité du
potentiel offert par ce nouveau paradigme. On peut citer
le calcul distribué qui utilise les machines connectées à
l’Internet ainsi que les espaces collaboratifs basés sur les
échanges instantanés de messages.
Le pair-à-pair est une technologie émergeante. Son
utilité se fait de plus en plus ressentir car il est possible
d’adopter ce paradigme dans divers types d’applications
afin de réduire les coûts. Les applications sont plus
stables parce que les échanges de messages s’effectuent
directement de pair à pair sans passer par un serveur.
Ceci permet un meilleur passage à l’échelle en évitant les
goulots d’étranglement qui sont fréquents dans les
architectures client/serveur.
On distingue trois types d’architectures pour ce modèle :
− Le modèle centralisé : il repose sur un serveur
central
qui
détient
l’ensemble
des
connaissances. Les clients envoient leurs
requêtes vers le serveur. Celui-ci répond par
une liste des ressources et des clients les
hébergeant. Par la suite les clients
communiquent entre eux directement.
− Le modèle hybride : le contrôle des
informations s’échange à travers le serveur
alors que les flux des données sont échangés de
pair à pair. Le serveur agit en tant qu’agent de
surveillance.
Son
rôle
dépend
des
infrastructures. A titre d’exemple sur Kazaa, le
rôle du serveur est la découverte et la
localisation des ressources.
− Le modèle pur : dans ce type de modèle, il n’y a
aucun serveur. Le fait qu’un pair quitte le
réseau n’affecte pas le bon fonctionnement du
système. Parmi les systèmes adoptant ce type
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
d’architecture, on peut citer les systèmes à base
de table de hachage distribuée telles que Chord
[1], CAN [2], etc.
Le modèle pair-à-pair a ses caractéristiques intrinsèques.
Parmi elles, une des plus importantes à prendre en
considération est la volatilité des pairs. Tout pair a la
liberté de rester présent sur le réseau ou de s’en
déconnecter sans aucun préavis.
Avec ce type de modèle le passage à l’échelle est assuré
par la décentralisation. Une étude menée en 2001 [3] a
montré que Gnutella comptabilise une moyenne de dix
mille participants simultanés.
Dans la suite nous nous inspirerons de la coopération
dans un système multi agents pour construire la
coopération des pairs dans un réseau P2P.
3
MODELE DE COOPERATION
Les systèmes multi-agents ont surtout l'avantage de faire
intervenir des schémas d'interaction sophistiqués. Une
interaction est une mise en relation dynamique de deux
ou plusieurs agents par le biais d’un ensemble d’actions
réciproques. Les agents interagissent, le plus souvent,
selon des modes de coopération, de concurrence ou de
coexistence [4].
La notion de coopération est une caractéristique très
importante dans les systèmes multi agents. En effet, la
résolution distribuée d’un problème est le résultat de
l’interaction coopérative entre les différents agents.
Quatre buts génériques ont été définis par Durfee et al.
[5] pour établir la coopération dans un groupe d’agents:
− augmenter la vitesse de résolution des tâches
grâce au parallélisme ;
− augmenter le nombre de tâches réalisables grâce
au partage de ressources (information,
expertise, dispositifs physiques, etc.) ;
− augmenter les chances de finaliser des tâches en
les dupliquant et en utilisant éventuellement des
modes de réalisation différents ;
− diminuer l’interférence entre les tâches en
évitant des interactions négatives.
L’importance de la coopération était à l’origine de
plusieurs travaux de recherches avancés par les
scientifiques. Parmi ces travaux de recherche nous
pouvons citer les travaux de Lesser et Durfee [5],
Galliers [6] et Bouron [7]. Néanmoins, l’ensemble de ces
études concerne plutôt des aspects de la coopération
assez différents et il règne une certaine confusion sur la
signification de la coopération.
D’autres travaux de recherche ont été réalisés dans le
domaine [8, 9], néanmoins, jusqu'à présent, les stratégies
de coopérations employées sont pour la plupart soit adhoc dans la façon dont elles sont développées, soit
difficiles à réadapter et à réutiliser dans d’autres
applications.
4
COOPERATION DES PAIRS
D’après une étude effectuée par l’Omni group
consulting, il s’avère que 47% des ressources sont non
utilisées dans une entreprise. Il est judicieux de pouvoir
tirer profit de ces dernières au dépend d’autres solutions
plus coûteuse en terme d’investissement.
Dans ce qui suit nous présentons les principes et les
différents aspects de la mise en œuvre de la plate-forme
PHAC [10, 11] qui constitue une plate-forme flexible
pour distribuer une application.
4.1 Les PeerGroups
Rappelons quelques définitions :
- Un Peer est une entité (un processus, un
processeur, un hôte ou un utilisateur)
appartenant à un réseau.
- Un PeerGroup consiste en un groupe logique et
dynamique, constitué de pairs ayant un intérêt
commun et un ensemble de politiques
communes (la thématique du contenu ou des
services partagés, les conditions d’appartenance
au groupe, les communications, la sécurité, ...).
Différentes études ont montré l'avantage de définir un
PeerGroup [12]. La définition d'un tel groupe permet la
création de domaines sécurisés pour l'échange de
contenus, de créer des groupes qui partagent un intérêt
commun. Cela a pour effet de réduire la portée des
requêtes et des découvertes des autres pairs en se limitant
aux seuls pairs du groupe et non plus à toute la
communauté.
Tous les algorithmes existants dans les systèmes P2P
structurés supposent que tous les pairs sont uniformes
c'est-à-dire qu'ils ont les mêmes ressources disponibles.
Les messages sont acheminés sur le réseau sans
considérer les différences de capacités parmi les pairs
participant. Pourtant, certaines études [3, 13] ont montré
que les systèmes P2P sont extrêmement hétérogènes. Le
goulot provoqué par les capacités très limitées de
certains pairs pourrait donc causer une perte de temps et
un mauvais déroulement des algorithmes.
Vu que les réseaux P2P sont volatiles, et afin d'améliorer
leur fiabilité nous avons proposé de définir deux
catégories de PeerGroup [14] : JobPeerGroup et
RedundancyPeer.
Le premier type sera utilisé pour distribuer des
applications collaboratives sur les différents pairs le
formant. Le choix de ces derniers est crucial. Il peut
influencer directement les temps de calcul, la fiabilité du
réseau et la robustesse du système. Une attention
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
particulière sera donnée au choix des pairs formant ce
groupe et, surtout, aux caractéristiques suivantes :
-
-
Les ressources matérielles (charge du
processeur libre, mémoire libre, espace disque
libre),
Bande passante élevée,
Le temps de propagation en boucle (Round-Trip
Delay Time),
Disponibilité et durée de fonctionnement des
machines.
Le deuxième type sera utilisé pour donner plus de
fiabilité. A chaque pas de temps prédéfini, l'état des pairs
appartenant au JobPeerGroup est recopié dans des
machines appartenant au RedundancyPeer. Cette
redondance des données peut améliorer la fiabilité du
système. Les caractéristiques les plus importantes à
prendre en compte lors du choix des pairs sont :
-
Bande passante élevée,
Ressources matérielles (espace disque libre),
Disponibilité et durée de fonctionnement des
machines.
4.2 La plate-forme PHAC
Comme déjà évoqué, il n'existait jusqu'à présent aucun
environnement prenant en compte la disparité des pairs
et destiné à être utilisé pour la simulation distribuée.
Afin de remédier à ce manque, nous proposons la plateforme PHAC pour « A P2P-based Highly Available
Computing Framework » [10, 11].
PHAC est une plate-forme basée sur une architecture
pair-à-pair totalement décentralisée. Le but étant de tirer
profit des machines connectées sur le réseau et qui ne
sont pas en activité. Une attention particulière est donnée
à la disponibilité de ces machines afin d’avoir un réseau
pair-à-pair hautement disponible. Si un pair quitte le
réseau inopinément, ceci ne devrait pas gêner le bon
déroulement de l’application.
Pour pouvoir répondre au dessein projeté, il faut bien
organiser les pairs formant le réseau. Pour cela nous
avons défini sur chaque machine, un fichier journal
contenant l’ensemble des caractéristiques de la machine
tels que la fréquence du processeur, la mémoire, la
vitesse de connexion sur l’intranet et l’internet, etc.
L’utilisateur de la plate-forme spécifiera les
caractéristiques dont il a besoin pour former son réseau
(voir figure 1). La plate-forme PHAC essayera de
répondre de son mieux aux exigences de l’utilisateur.
Figure 1 : La plate-forme PHAC.
Les machines pouvant faire partie du réseau pair-à-pair
doivent lancer un daemon au préalable, ce qui
permettrait de pouvoir les contacter et les ajouter au
réseau en cours de formation. La technique utilisée pour
la recherche des pairs volontaires à faire partie du réseau
est la technique de bootstrapping. Il s’agit d’une
technique d’inondation du réseau de requêtes de proche
en proche.
La machine à partir de la quelle la requête de formation
d’un réseau pair-à-pair est appelée s’intitule pair maître.
Les autres machines formant le réseau sont appelées des
pairs exécutants.
Une fois les pairs exécutants découverts, ils formeront le
réseau pair-à-pair. Ces pairs sont regroupés en deux
catégories. Des pairs allant faire partie du JobPeerGroup
et qui auront pour rôle d’utiliser au maximum la
puissance de calcul offerte par ces derniers. D’autres
pairs feront partie du RedundancyPeerGroup. Ils auront
pour rôle de répliquer les données. Ceci permettra en cas
de déconnexion inopinée de l’un des pairs faisant du
calcul de continuer la tâche à partir du dernier temps de
réplication et pas à partir du début (voir Figure 2). Pour
cela, à des pas de temps réguliers prédéfinis par
l’utilisateur, les données sont stockées sur des machines
appartenant au RedundancyPeerGroup. La technique
utilisée est la sérialisation et la persistance des objets.
Les objets sont tout d’abord encodés sous forme d’une
suite d’octets pour créer une copie conforme des objets
d’origine et ensuite sauvegardés sur un ou plusieurs pairs
appartenant au RedundancyPeerGroup. Pour reprendre
les données répliquées, on utilise la technique de
désérialisation. Il s’agit d’un processus de conversion
d’un flux d’octets stockés en un objet actif.
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
Figure 2 : Diagramme d’activité modélisant la distribution d’une application.
Comme une des caractéristiques des réseaux pair-à-pair
est la volatilité des pairs le formant. Il est important de
vérifier à des pas de temps réguliers la connexion des
pairs. Pour détecter la déconnexion d’une machine du
réseau, soit à cause d’une panne ou délibérément de son
utilisateur, nous avons utilisé le protocole gossip-style
[15] pour sa possibilité de passage à l’échelle sans
aucune difficulté. Avec ce modèle, la détection des
fautes est effectuée d’une manière distribuée et réside sur
chaque pair appartenant au réseau. Chaque pair maintient
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
une table avec pour chaque membre connu son adresse et
un entier qui sera utilisé pour détecter les pannes. Cet
entier n’est autre qu’un compteur appelé communément
heartbeat counter. A chaque pas de temps prédéfini,
chaque membre incrémente son propre compteur et
sélectionne une autre machine aléatoirement et lui envoie
sa liste. A la réception du message contenant la liste, le
membre fusionne la liste reçue dans le message avec la
sienne et adopte la valeur maximale du counteur
hearbeat. Chaque membre maintient aussi, dans sa liste
pour chacun des autres membres, le dernier temps dont
le compteur heartbeat a été incrémenté. Si le compteur
des messages heartbeat, pour une même entrée, n'est pas
incrémenté après une certaine période, cette entrée est
considérée comme défaillante. En cas de panne détectée,
le pair est aussitôt remplacé par un autre pair lui
ressemblant. Les données perdues sont récupérées à
partir d'un pair redondant.
4.3 Modèle de coopération
Afin d’optimiser la coopération entre les différents pairs,
nous allons définir une structure simple, juste et efficace.
Simple, car tout à fait intuitive dans son approche. Elle
peut être facilement adaptée et appliquée dans de
multiples domaines et avec différents types de
contraintes.
Juste (équitable) car tous les pairs pouvant fournir les
services nécessaires, obtiennent au départ des
opportunités égales pour la réalisation des différentes
tâches.
Efficace parce que l’approche est pragmatique dans la
manière dont la coopération est conçue et orchestrée.
Elle sépare les stratégies du travail (attentes
économiques) de la conception de la solution. De plus,
un mécanisme très efficace est fourni pour non
seulement mettre en œuvre la coopération, mais aussi
contrôler les points qui l’étouffent.
Ce modèle permet une entière flexibilité ainsi qu’une
grande efficacité coopérative au sein de PHAC. Sa
flexibilité provient du fait qu’il est capable de répondre
aux deux extrémités sur l’échelle coopérative, et qui peut
aller de la coopération totale à l’antagonisme total. Quant
à son efficacité, elle est due au fait qu’elle permet
d’améliorer la performance des pairs de manière à les
aider à mieux survivre sans forcément que l’amélioration
des performances individuelles cause un effet négatif sur
le groupe, ce qui est souvent le cas.
Par analogie avec les systèmes multi agents, Ferber, cite
un bon exemple de ce problème où une population
d’herbivores qui du fait d’être capables d’exploiter son
territoire, peut aboutir à l’épuisement de ses ressources et
entraîner en conséquence sa perte.
L’approche que nous précisons est inspirée d’un modèle
que nous avons construit par ailleurs pour des systèmes
multi agents. Le problème de la coopération dans de tels
systèmes vient de deux principales propriétés des agents
intelligents : leur autonomie et leur sociabilité [16]. Cela
est identique pour notre plate-forme PHAC, les pairs
devant coopérer pour effectuer une tâche sont totalement
autonomes et doivent coopérer entre eux afin de pouvoir
réaliser la tâche demandée par l’utilisateur.
L’autonomie des agents suppose que ces derniers ont
leurs propres buts, leurs propres croyances et agissent en
fonction de leur rationalité individuelle, alors que la
sociabilité des agents suppose qu’ils peuvent coopérer
avec d’autres agents pour satisfaire des buts communs,
qu’ils peuvent être influencés pour adopter des buts
d’autrui, acceptent de travailler pour le bien être social
du système et agissent en fonction des normes sociales
du système. En conséquence, le défit pour les modèles
ou les mécanismes de coopération est d’assurer un
équilibre entre ces deux points de vue : la vision
individuelle de l’agent et la vision globale du système.
D’ailleurs, Jennings et Campos [17] trouvent que dans la
majorité de cas, les agents sont conçus pour maximiser
leur bénéfice individuel et par conséquent ils adoptent un
comportement individualiste (self interested stance) où
ils essayent de maximiser leur utilité individuelle. Dans
de telles stratégies, le succès de l'individu est l'unique
mesure pour l'évaluation de performance. Par contre, il
devient difficile voire impossible de prévoir les résultats
des interactions d'agents.
Par analogie, dans la plupart des cas, chaque pair a un
comportement individualiste. Le partage des ressources
du pair n’est possible que si ce dernier n’est pas en
activité. Or parfois, le pair peut être en activité sans pour
autant utiliser l’ensemble de ses ressources. Dans ce cas,
le pair peut éventuellement partager ses ressources non
utilisées. C’est un équilibre à trouver entre satisfaire ses
besoins et en même temps faire profiter de ses ressources
non utilisées l’ensemble des autres pairs sollicitant des
ressources.
Dans les systèmes multi-agents et les premières
applications, telles que DVMT [18] et HEARSAY II
[19], les composants individuels ont été d'une
importance secondaire par rapport aux besoins du
système. Pour de telles stratégies, l'évaluation de
performance se mesure selon la performance globale de
l’ensemble des agents dans le système multi-agents.
Dans ces systèmes les agents ne possèdent qu’une
autonomie limitée.
Dans ce contexte, des chercheurs comme Decker [20] et
Chaib-Draa [4] ont souligné le fait qu’un système peut
être caractérisé par le type de coopération mis en œuvre
qui peut aller de la coopération totale à l’antagonisme
total. Des agents totalement coopératifs peuvent changer
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
leurs buts pour répondre aux besoins des autres agents
afin d’assurer une meilleure coordination entre eux.
Dans le système PHAC, il est possible qu’un pair
choisisse d’être très coopératif et donc qu’il puisse
partager ses ressources malgré son activité. Le pair met
en priorité les performances globales du système avant
les siennes même si ce partage de ressources peut le
ralentir. Cette participation ne doit pas pour autant
entraver le bon fonctionnement de la machine.
De l’ensemble de ces travaux nous pouvons distinguer
deux extrémités qui représentent certains des systèmes
déjà développés. D’une part, il y a les systèmes
totalement coopératifs avec des ressources dédiées. La
performance totale est la mesure essentielle d’évaluation.
D’autre part, il y a les systèmes totalement antagonistes
où l’aspect coopératif est quasi inexistant. Chacun
travaille sur sa machine sans se soucier de l’existence de
ressources disponibles qui peuvent être à ses côtés. Dans
ce cas, la performance est évaluée selon l’intérêt
individuel.
La plupart des systèmes existants se situent entre les
deux extrêmes : coopération totale et antagonisme total.
Notre plate forme PHAC, permet de faire coopérer des
machines dès qu’il y a une demande de ressources de la
part d’un pair faisant partie du réseau. Pour cela nous
avons défini la notion d’indicateur de coopération (CI Cooperation Indicator). Ce dernier est inspiré des
travaux faits par Castelfranchi [21] et Jennings [17].
Dans ces travaux, les auteurs mettent l’accent sur
l’intérêt et la nécessité de définir un indicateur qui
permet d’établir un certain équilibre entre le bénéfice
individuel de l’agent et celui du système entier. Notre
indicateur de coopération nous permet à la fois de
répondre aux deux extrémités pour suivre l’évolution du
travail. De plus, il permet de quantifier la coopération et
d’avoir plusieurs niveaux de coopération. Cela permet
également d’éviter que le niveau de coopération soit figé
comme c’est le cas dans la plupart des systèmes
existants. Ainsi chaque pair peut définir son indice de
coopération.
Un autre grand problème réside dans le grand nombre de
communications entre les pairs. Cela est dû au fait que
les pairs sont des entités autonomes plongées dans un
environnement et qui doivent communiquer pour
pouvoir coopérer. La problématique qui est
l’augmentation non négligeable des communications est
un point important. Il arrive qu’une application
distribuée soit moins rapide à l’exécution qu’une
application non répartie. La simple répartition du calcul
est loin de garantir automatiquement des temps de calcul
plus courts. Une conception inadaptée de l’application
pourra conduire à un nombre important de messages de
partage d'information entre pairs.
Dans les systèmes multi agents, Mathieu [22] avance que
pour des applications nécessitant la coopération de plus
d’une dizaine d’agents, le système risque de voir ses
performances s’effondrer à cause de la complexité de la
structure de l’agent. La raison est que chaque agent du
système doit pour chaque geste, chaque action, tenir
compte des possibilités d’actions de tous les autres
agents qu’il connaît. En cas de conflit, l’agent doit
rentrer en négociation avec ses concurrents. Il est donc
difficile de gérer plusieurs agents vu que la complexité
du système augmente avec le nombre d’agents.
Chaib-draa [23] résume cela par le fait que lorsque la
taille du groupe grandit et que le nombre des tâches
augmente, le nombre de liens et la quantité
d’informations échangées peuvent devenir rapidement un
handicap sérieux.
Afin de ne pas être dans ce cas, nous avons proposé
d’organiser nos pairs d’une façon hiérarchique et
dynamique. La capacité des pairs de communiquer entre
eux directement a permis de réduire considérablement le
nombre de messages échangés. En outre, la division des
pairs en sous-groupes de JobPeerGroup et
RedundancyPeerGroup et l’introduction d’un pair
superviseur pour chaque groupe ont facilité la
coordination des pairs [24].
Le processus général de recherche de compétences (SSP)
fait succéder alternativement deux modes de recherche
[24, 25]. Autrement dit, il alterne entre la recherche
ASM (Acquaintances Skills Matrix) et la recherche par
délégation MPM (Message Passing Mechanism). La
succession de ces deux phases est inspirée du
comportement des insectes sociaux. C’est typiquement le
cas de modèles de recherche collective de nourriture
chez les fourmis.
Rappelons que les colonies de fourmis parviennent à
retrouver des sources de nourriture éloignées de leur nid
et à former des chaînes continues permettant de rapporter
la nourriture.
Les éthologistes, notamment Deneubourg [26],
fournissent une explication à ce phénomène. Les fourmis
se déplacent de manière aléatoire dans leur
environnement. Lorsqu’elles trouvent de la nourriture,
elles rentrent au nid en déposant sur leur chemin des
marqueurs chimiques appelés phéromones. En retour,
ces phéromones attirent les autres fourmis qui sont
incitées à suivre la même piste. La conjonction de
l’évaporation des phéromones et de la pose de
phéromones par les fourmis aboutit à l’apparition d’une
piste unique entre le nid et la source de nourriture. Cette
piste s’avère en outre être le chemin le plus court reliant
ces deux points.
Les algorithmes de contrôle et d’optimisation inspirés
des comportements collectifs chez les fourmis ont connu
un succès inattendu et sont connus sous le nom de (Ant
Colony Optimisation - ACO) ou (Ant Colony Routing ACR). On trouve notamment des applications pratiques
de l’ACR dans l’optimisation des réseaux de
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
télécommunication. Ces algorithmes ont été utilisés
également pour résoudre des problèmes posés en
informatique tel que le problème du voyageur de
commerce (Traveling Salesman Problem - TSP) [27].
Dans notre modèle, la phase de recherche par délégation
MPM peut représenter l’étape d’exploration aléatoire de
l’environnement effectué au départ par les fourmis.
Ainsi, nous commençons par explorer l’ensemble des
pairs afin de trouver et identifier les pairs compétents.
Une fois ces derniers sont identifiés, nous utiliserons les
liens d’accointances ASM comme un moyen de
communication direct et plus rapide.
Dans l’exemple de colonies de fourmis mentionné
précédemment, une fois toute la quantité de nourriture
déplacée vers le nid, les fourmis recommencent à
nouveau la recherche d’une nouvelle source de
nourriture. Ils reprennent, donc, le même processus de
recherche effectué auparavant. Autrement dit, elles se
déplacent au départ de manière aléatoire dans leur
environnement, ensuite elles vont suivre la piste entre le
nid et la source de nourriture établie grâce aux
phéromones déposées lors du déplacement. De même
dans notre modèle, après une période de temps
prédéfinie, nous considérerons que les liens directs entre
les pairs sont inexistants et nous recommencerons une
recherche globale. Cette alternance entre la recherche par
délégation MPM et la recherche ASM agit de façon à ce
que la connaissance du pair par rapport aux autres pairs
(son ASM) soit mise à jour.
Le mécanisme de choix (ACP - Agents’ Choice Process)
est un mécanisme flexible qui est capable de traiter
différents degrés de coopération entre les pairs. Ce degré
de coopération peut varier d’antagoniste à coopératif. De
plus, ce mécanisme permet à l'utilisateur de déterminer
le pourcentage de coopération attendue. Cela peut être
réalisé par l’intermédiaire du CI donné par l'utilisateur à
l'initialisation.
Ce mécanisme permet également de définir une valeur
de tolérance par l'utilisateur. La conjonction de la valeur
de CI et de la valeur de tolérance (TV - Tolerance Value)
permet de définir une zone de tolérance. Pour mieux
illustrer l’idée de la TV, considérons que la TV définie
par l’utilisateur est égale à ± 20%. Pour un CI égale à
50%, la zone de tolérance dans ce cas est illustrée par la
Figure 3. Il s’agit de la zone hachurée. C’est la bande
située dans la zone suivante :
[CI-TV , CI+TV] = [0.5-0.1 , 0.5+0.1] = [0.4 , 0.6]
Tous les pairs situés dans cette zone sont satisfaisants du
point de vue de l'utilisateur. Plus le nombre de pairs
appartenant à cet intervalle est élevé plus le résultat est
satisfaisant. Notre objectif est de maximiser le nombre
de pairs situés dans la zone donnée et voulue par
l’utilisateur et par conséquent de réduire le nombre de
pairs en dehors de cette zone.
Figure 3 : La zone de tolérance.
Dans la première architecture de PHAC, un pair
présentait directement ses fonctionnalités comme un
objet possède des méthodes. Pour des raisons de
découplage fonctionnel propre au génie logiciel, on
préfère aujourd’hui présenter les fonctions d’un agent via
une interface appelée le rôle.
Au même titre que dans les systèmes multi-agent et où
Savall [28] défini le rôle en tant qu’une représentation
abstraite d’une fonction ou d’un service proposé par un
agent, dans notre modèle le rôle est la tâche qu’un pair
peut réaliser dans les meilleurs conditions tels que le
calcul ou le stockage.
Dans notre modèle, un rôle peut être attribué
dynamiquement à un pair. Il peut par exemple assurer
des calculs ou stocker des données ou même les deux
simultanément. D’autres rôles peuvent être définis
comme le rôle de pair routeur qui se charge de la mise
en relation de plusieurs pairs.
Notre approche permet à un pair d’appartenir à plusieurs
groupes et donc de pouvoir adopter plusieurs rôles au
sein de ces différents groupes.
Chaque agent peut prendre en charge plusieurs rôles et
un rôle identique peut être tenu par plusieurs agents. La
Figure 4 montre l’adoption de plusieurs rôles par les
pairs. Les cercles blancs présentent les rôles inactifs pour
un pair tandis que les autres cercles présentent les rôles
actifs d’un pair au sein d’un groupe. Une modélisation
avec les réseaux de pétri des différents rôles nous a
permis de valider leurs fonctionnements.
Figure 4 : Rôles actifs et inactifs pendant la formation d'un
groupe.
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
100
95
90
CIréel
85
Série1
80
Série2
75
70
65
60
1
4
7
10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97
Itération
Figure 5 : Résultats obtenus par le système pour un CIattendu = 80%.
5
requêtes leurs demandant d’exécuter une tâche sans pour
autant posséder les compétences nécessaires.
RESULTAT
Dans ce qui suit, les pairs ont été assimilés à des agents.
Nous présentons les résultats obtenus par simulation. Ils
nous ont permis de tester et de valider notre modèle. Le
but est d’arriver à une coopération égale à 80%. Des
requêtes ont été envoyées à des destinataires tirés
aléatoirement. Ainsi, les pairs peuvent recevoir des
Un point de la courbe représente la moyenne des CI pour
deux cents requêtes tirées au hasard. L’axe des abscisses
représente le nombre d’itérations réalisées pour atteindre
une coopération égale à 80%.
100
90
80
70
CIréel
60
CI ideal
CI (100)
CI (200)
CI (500)
CI (1000)
CI (2000)
50
40
30
20
10
0
1
4
7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97
Figure 6CIidéal
: CIideal & CIréel.
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
La série n°2 représente le cas où lorsqu’un pair initiateur
reçoit une requête et ne possède pas la compétence
appropriée. Ne pouvant pas participer à une offre, le
nombre de Requested Bid ne change pas. On peut
remarquer que les résultats sont relativement lointains de
l’objectif fixé.
Afin d’améliorer la convergence du système et de se
rapprocher davantage de la valeur de coopération fixée,
le nombre Requested Bid est incrémenté même si le pair
initiateur ne possède pas la compétence requise. On peut
voir aisément dans la Figure 5, série n°1, que la moyenne
de CIréel est aux alentours de 80% qui représente
l’objectif fixé.
Dans un cas plus général, le système peut ne pas
converger vers le résultat attendu. Nous avons effectué
un programme de simulation qui permet d’envisager ce
cas de figure. Les résultats obtenus sont présentés dans la
figure 6.
En abscisse, on a l’indice de coopération idéal et en
ordonnée on a l’indice de coopération réel c’est-à-dire
l’indice de coopération attendu. Cinq scénarios sont
présentés : pour 100, 200, 500, 1000 et 2000 requêtes.
On peut voir que plus le nombre de requêtes augmente,
plus le CIréel converge vers le résultat attendu même
pour des CI faibles.
6
at the Multimedia Computing and Networking
2002 (MMCN'02), San Jose, California, United
States, 2002.
[4]
B. Chaib-draa and P. Levesque, "Hierarchical
model and communication by signs, signals and
symbols in multi-agent environments," Journal
of Experimental and Theoretical Artificial
Intelligence (JETAI), vol. 8, pp. 7-20, 1996.
[5]
E. H. Durfee, et al., "Trends in cooperative
distributed problem solving," presented at the
IEEE Transactions on Knowledge and Data
Engineering, 1989.
[6]
J. R. Galliers, "Modelling autonomous belief
revision in dialogue," in Proceedings of the
Second European Workshop on Autonomous
Agents in a Multi-agents World, 1991.
[7]
T. Bouron, "Structures de communication et
d'organisation pour la coopération dans un
univers multi-agents," Université Pierre et
Marie Curie (Paris VI), 1992.
[8]
N. E. Bensaid and P. Mathieu, "A hybrid and
hierarchical multi-agent architecture model,"
presented at the Proceedings of the Second
International Conference and Exhibition on the
Practical Application of Intelligent Agents and
Multi-Agent Technology (PAAM’97), LondonUnited Kingdom, 1997.
[9]
D. Bell and J. Grimson, Distributed database
systems: Addison-Wesley, 1992.
[10]
A. Cabani, et al., "Phac: A P2P-based
environment for distributed collaborative
applications," The International Journal of
Intelligent Control and Systems, (IJICS), 2007.
[11]
A. Cabani, et al., "Phac: an environment for
distributed collaborative applications on P2P
networks," presented at the 4th International
Conference on Distributed Computing and
Internet Technology (ICDCIT'07), 2007.
[12]
B. Traversat, et al. (2003, Project JXTA 2.0
Super-Peer Virtual Network. Available:
http://www.jxta.org/docs/JxtaProgGuide_v2.pdf
[13]
D. Andersen, et al., "Resilient overlay
networks," SIGOPS Oper. Syst. Rev., vol. 35,
pp. 131-145, 2001.
[14]
A. Cabani, et al., "Multi-agent Distributed
Simulation : Discussions and prototyping a P2P
architecture,"
in
Computer
Simulation
CONCLUSION
L’agrégation des ressources offertes par les pairs permet
de donner une puissance de calcul importante à moindre
coût. En nous appuyant sur nos travaux concernant la
coopération multi agents, nous avons mis en avant une
approche permettant de faire coopérer des machines
interconnectées via un réseau. Vu l’hétérogénéité des
configurations des pairs, notre modèle propose de les
organiser en sous groupes avec des rôles qui peuvent
évoluer dynamiquement. La simulation multi agents en
accord avec ce modèle a donné des résultats concluants.
La suite de nos travaux concerne l'implémentation du
modèle de coopération des pairs accompagnée de tests
réels sur une application.
REFERENCES
[1]
I. Stoica, et al., "Chord: A Scalable Peer-ToPeer Lookup Service for Internet Applications,"
in ACM SIGCOMM 2001, San Diego,
California, United States, 2001, pp. 149-160.
[2]
S. Ratnasamy, et al., "A Scalable ContentAdressable Network," in ACM SIGCOMM
2001, San Diego, California, United States,
2001, pp. 161-172.
[3]
S. Saroiu, et al., "A Measurement Study of
Peer-to-Peer File Sharing Systems," presented
MOSIM’10 - 10 au 12 mai 2010 - Hammamet - Tunisie
multiagent systems: part 1, Bologna, Italy,
2002.
Conference
(SCSC'05),
Philadelphia,
Pennsylvania, United States, 2005, pp. 281-286.
[15]
R. V. Renesse, et al., "A gossip-style failure
detection service," Technical report1998.
[16]
L. Esmahi, "Modèles formels pour la
coopération dans les SMA," presented at the
Actes des 9ème Journées Francophones
d'Intelligence Artificielle et Systèmes MultiAgents (JFIADSMA'01), 2001.
[17]
N. R. Jennings and J. R. Campos, "Towards a
social level characterisation of socially
responsible agents," presented at the IEE
Proceedings on Software Engineering, 1997.
[18]
D. D. Corkill and V. R. Lesser, "The use of
meta-level control for coordination in a
distributed problem solving network," presented
at the Proceedings of the Eighth International
Joint Conference on Artificial Intelligence,
Karlsruhe, Allemagne, 1983.
[19]
L. D. Erman and V. R. Lesser, "A mulit-level
organisation for probleme solving using many
diverse cooperating sources of knowledge,"
presented at the Proceedings of the International
Joint Conference on Artificial Intelligence
(IJCAI-75), Stanford, CA, 1975.
[20]
K. S. Decker, "Environment centered analysis
and design of coordination mechanisms,"
Computer Science Departement, University of
massachusetts, 1995.
[21]
C.Castelfranchi, "Through the Minds of the
Agents," Journal of Artificial Societies and
Social Simulation, vol. 1, 1998.
[22]
P. Mathieu,
multi-agent
Proceedings
conference
et al., "Dynamic organization of
systems," presented at the
of the first international joint
on Autonomous agents and
[23]
B. Chaib-draa, et al., systèmes multi-agents :
principes généraux et applications: Hermès
Sience Publications, Lavoisier, 2001.
[24]
W. Alshabi, et al., "Towards a social
responsible agents in hybrid organization,"
presented at the International Simulation Multiconference (ISMc'08) : Grand Challenges in
Modeling
&
Simulation
(GCMS’08),
Edinburgh, Scotland, 2008.
[25]
W. Alshabi, et al., "Un mecanisme de
cooperation
dans
une
organisation
hierarchique," presented at the 7ème
Conférence Internationale de MOdélisation et
SIMulation - MOSIM’08 - « Modélisation,
Optimisation et Simulation des Systèmes :
Communication,
Coopération
et
Coordination.», 2008.
[26]
J. L. Deneubourg, et al., "The self-organizing
exploratory pattern of the argentine ant,"
Journal of Insect Behavior, vol. 3, pp. 159-168,
1990.
[27]
D. S. Johnson and L. A. McGeoch,
Experimental analysis of heuristics for the
STSP: Kluwer Academic Publishers, 2002.
[28]
M. Savall, "Une architecture d’agents pour la
simulation : Le modèle YAMAM et sa plateforme Phoenix," Institut National des Sciences
Appliquées de Rouen (INSA), 2003.

Documents pareils