Conception et réalisation d'un système multi- agents pour les enchères en ligne( Télécharger le fichier original )par Yacine Sahraoui Université Larbi Ben M'Hidi Algérie - Ingénieur d'état en informatique 2009 |
Bibliographie[RDJ, 99] Robert ORFALI, Dan HARKEY, Jerri EDWARDS Titre: CLIENT/SERVEUR GUIDE DE SURVIE Date : Novembre 1999 [BRN, 95] Bernard Fabrot Titre : Réinstaller Windows Date : 1995 [ROU,02] Siegfried Rouvrais, Université de Rennes Titre : « Utilisation d'agents mobiles pour la construction de services distribués » Date : Juillet 2002 [DCO,95] Douglas Comer, tcp/ip Titre : architecture, protocoles, applications Date : 2005 [ Fig ,1] Image : Architecture client-serveur Lien : http://www.mpandco.com/images/client_serveur.jpg [FRA, 04] Laurent Franck Titre : architecture client/serveur, département de génie électrique en informatique, INSA de Toulouse Date : 2004 [CAB, 07] Cabani Adnane Titre : these pour obtenir le titre de docteur en informatique Réseaux pair a pair et simulation distribuées Application a la simulation Multi-agent Date :16/7/2008 [ferb,95] Les Systèmes Multi-Agents-Ferber, J --Inter Editions, 1997. [woold,2001] An Introduction to MultiAgent Systems--Wooldridge, M. --Wiley 2002. [Brio t,2001] Principes et Architectures des SMA--Briot, J.-P., Demazeau, Y., -I Hermes, 2001. in agent-based systems, Proceedings of the first European Conference on Cognitive Science'95:117-132, 1995 [Ferber, 1995] Ferber J., Les systèmes multi-agents : vers une intelligence collective, InterEditions, ISBN : 2-72-96-0572-X, 1995. [Ferber, 1999] Ferber J., Multi-Agent Systems -
An introduction to distributed [Maes, 1995] Maes P., Intelligent Software,
Scientific American, volume 273, [Drogoul, 1998] A. Drogoul, J.-D. Zucker, LIP6 1998/041: Rapport de Recherche LIP6 - 30 pages -Octobre/October 1998 [Varela, 1989] Varela F., Connaitre les sciences cognitives : tendances et perspectives. Paris : Seuil, ISBN : 2-02-010474-1, 126 p, 1989. [BIB 01] Il y a beaucoup des articles qui expliquent PersonaLogic, Bargain Finder et Jango (et qui les comparent avec leurs alternatives), il suffit de faire une recherche sur google. [BIB 02] Chavez Anthony, Pattie Maes, "Kasbah: An Agent MarketPlace for Buying and Selling Goods", in proceedings of The First International Conference on The Practical Application of Intelligent Agents and Multi-Agent Technology (PAAM"96), pp. 75-90, 1996. Asc/ pattie@media.mit.edu [BIB 03] R. Guttman and P. Maes, "Agent-mediated Integrative Negotiation Retail Electronic Commerce." in the proceedings of the Workshop on Agent Mediated Electronic Trading (AMET"98), Minneapolis, Minnesota, April 1998. [BIB 04] P. Wurman, M. Wellman, and W. Walsh, "The Michigan Internet AuctionBot: A Configurable Auction Server for Human and Software Agents." in proceedings of the Second International Conference on Autonomous Agents (Agents"98), May 1998. "Representing agent interaction protocols in UML". [BEL 00] Bellifemine F., Giovani C., Tiziana T. Rimassa G., "Jade Programmer's Guide" Jade version 2.6 ( http://www.fipa.org/specs/fipa00001/), 2000. [BEL 99] Bellifemine F., Poggi A., Rimassa G.,
"JADE -- A FIPA-compliant Annexe A. ~ Le progres technologique n'abolitpas les obstacles; il en change simplement la nature o - Huxley, Aldous La plate~~orme Jade Java Agent DEvelopment Framework
JADE (Java Agent DEvelopement framework) est une plate-forme multi-agent créé par le laboratoire TILAB et décrite par Belli femine et al. Dans [BEL 99], [BEL 00]. Elle permet le développement de systèmes multi-agents et d'applications con formes aux normes FIPA. Elle est implémentée en JAVA et fourni des classes qui implémentent o JESS » pour la dé finition du comportement des agents. JADE possède trois modules principaux (nécessaire aux normes FIPA).
Ces trois modules sont activés à chaque démarrage de la plate-forme. 3. Architecture logiciel de la plate-forme JADE Chaque instance de l'environnement d'exécution de JADE s'appelle un conteneur (container) car il peut contenir plusieurs agents. L'ensemble des conteneurs acti fs s'appelle une plate forme. Dans une plate forme, un conteneur spécial appelé conteneur principal (Main-container) doit toujours etre en activité, les autres conteneurs s'enregistrent auprès de celui-ci des qu'ils démarrent. Le conteneur principal héberge les agents techniques de Jade (DF, AMS, RMA, DummyAgent, ...). La figure suivante représente des modules sous forme des services de base qui sont le Directory Facilitator (DF) et l'Agent Management System (AMS), mais le service (MTS) sera chargé a la demande, L'AMS est un autre composant important car ce service e ffectue la correspondance entre l'agent et leur identi ficateur (AID), Il n'y a qu'un AMS par plate-forme. Fig.1 : Architecture logiciel de La plate-forme JADE.
Pour supporter la tâche difficile du débogage des applications multi-agents, des outils ont été développés dans la plate-forme JADE. Chaque outil est empaqueté comme un agent, obéissant aux mêmes règles, aux mêmes possibilités de communication et aux mêmes cycles de vie d'un agent générique (agentification de service). 5.1. Agent RMA (Remote Management Agent) : Le RMA permet de contrôler le cycle de vie de la plate-forme et tous les agents la composant. L'architecture répartie de JADE permet le contrôle a distance d'une autre plate-forme. Plusieurs RMA peuvent etre lances sur la meme plate-forme du moment qu'ils ont des noms distincts. Figure 2 : L'interface de l'agent RMA 5.2. Agent Dammy Cette interface permet la composition et l'envoi de messages ACL et maintient une liste de messages ACL envoyés et recus. Cette liste peut etre examinée par l'utilisateur et chaque message peut etre vu en détail ou meme édité.ou bien le sauvegardé sur le disque et renvoyé plus tard. Figure 3 : L'interface de l'agent Dammy. 5.3. Agent Direcory Facilitator L'inter face du DF peut etre lancée a partir du menu du RMA .Cette action est en fait implantée par l'envoi d'un message ACL au DF lui demandant de charger son interface graphique. L'inter face peut etre juste vue sur l'hOte oil la plate-forme est exécutée. En utilisant cette interface, l'utilisateur peut interagir avec le DF. Figure 4 : L'interface de l'agent DF. 5.4 Agent Sniffer Quand un utilisateur décide d'épier un agent ou un groupe d'agents, il utilise un agent sniffer. Chaque message partant ou allant vers ce groupe est capté et affiché sur l'interface du sniffer. Figure 5 : L'interface de l'agent Sniffer 5.5 Agent Inspector Cet agent permet de gérer et de contrôler le cycle de vie d'un agent s'exécutant et la file de ses messages envoyés et reçus. Figure 6 : L'interface de l'agent Inspector. 6. Cycle de vie d'un agent Figure7 : Le cycle de vie d'un agent. Voici la description des di fférents états d'un agent en accord avec la spéci fication de la FIPA : -Initiated : l'objet agent est créé mais n'est pas encore enregistré aupres du service de nommage (AMS). - Active : l'objet agent est enregistré aupres du service de nommage (AMS), il possède désormais une adresse unique et peut donc communiquer avec les autres agents. - Suspended : l'exécution de l'agent est suspendu. - Waiting : l'agent est bloqué et doit attendre un événement comme un message par exemple. -Transit : l'agent rentre dans cet état lorsqu'il migre dans un autre conteneur. -Deleted : l'agent est détruit et supprimé du service de nommage (AMS). 7. Les Behaviours (Comportements) Un comportement dé finie les taches qu'e ffectue un agent. Quelque soit le type du Behaviour, il doit implémenter la méthode action() qui dé finit la séquence des instructions a exécuter et lorsque la méthode done() retourne true elle s'arrete. La méthode block() d'un comportement permet de bloquer ce dernier. Suite a l'arrivée d'un nouveau message. Pour ajouter un comportement a la file des comportements de l'agent, on utilise la méthode addBehaviour(new BehaviourClass(Parametres)) de la classe 'agent'. On distingue plusieurs types de comportement, les plus utilisés sont: - Classe o Behaviour o : c'est la classe de base a partir de laquelle sont dérivés les autres classes de Behaviours. Exemple : public class MonBehaviour extends Behaviour{ // Ici vous pouvez declarer des variables // Un Behaviour possède un constructeur public MonBehaviour(/*paraml, param2,...*/){ // Initialisation du Behaviour. } public void action(){ // Traitement // cette méthode est exécutée jusqu'a ce que la méthode done() retourne true. } public boolean done() { return valeurBooleenne; } - Classe OneShotBehaviour : c'est une spécialisation de la précédente, la méthode action() est exécutée une seule fois (par dé faut, la méthode done() retourne true). Donc vous n'avez pas a redé finir la méthode done(). - Classe CyclicBehaviour : la méthode action() est exécutée en répétition, la méthode done() retourne false. N'oublier pas de bloquer le Behaviour a la fin de la méthode action(), car il fait une boucle infinie (gaspillage de CPU). Le Behaviour sera débloqué quand un nouveau message est inséré dans la file de l'agent. - Classe WakerBehaviour: la méthode action() est exécutée apres un temps donne en parametre (exprime en millisecondes) et une seule fois. - Classe TickerBehaviour : la méthode action() est exécutée chaque t milliseconde (t est donne en parametre a la creation du Behaviour). 8. Communication entre agents La communication entre agents se fait par un langage qui est FIPA-ACL(Agent Communication language). La classe ACLMessage représente les messages qui peuvent être échangés par les agents. La communication de messages se fait en mode asynchrone. Lorsqu'un agent souhaite envoyer un message, il doit créer un nouvel objet ACLMessage, compléter ces champs avec des valeurs appropriées et enfin appeler la méthode send(). Lorsqu'un agent souhaite recevoir un message, il doit employer la méthode receive() ou la méthode blockingReceive(). Un message ACL dispose obligatoirement des champs suivants :
Tab.1 :Les champs d'un message ACL. Tous les attributs de la classe ACLMessage peuvent etre obtenus et modi fies par les methodes set/get(). Le contenu des messages peut etre aussi bien du texte que des objets car la serialisation Java est supportee. 8.1. Envoi d'un message Exemple : Le code suivant correspond a l'envoi d'un message a l'agent « Yacine » dans le but de l'in former que (Le match de football est termine)
8.2. Reception d'un message. Exemple : on bloque le comportement jusqu'a l'arrive du msg.
. Conclusion Le rôle de la plate-forme JADE est de réaliser la couche communication inter-agents de façon à pouvoir faire une argumentation sans l'intervention de l'humain et donc dans cette optique de les rendre autonome. On se sert pour cela du langage ACL pour que les agents s'échangent leurs messages. Annexe B ~ La machine d'arithmitique ait des e~~ets qui approchentplus de la pensee que tout ce que ont les animaux mais elle ne ait rien qui puisse aire dire qu'elle a de la volonte, comme les animaux »-Blaise Pascal. AUML Agent Unified Modeling Language
UML (Unified Modeling Language) [Odell, 1 998] unifie et formalise les méthodes de plusieurs approches orientées objets. UML prend en charge plusieurs types de modèles :
4. AUML AUML [Odell,00] est base sur la methode UML (Unified Modeling Language) qui est une methode de genie logiciel utilisee pour les developpements en langages orientes-objets. Elle est dejà largement utilisee par la communaute des concepteurs-objet et son succes continue de croitre. Comme nous l'avons dejà vu, par rapport aux objets, les agents ont des activites autonomes et des buts. C'est cette difference qui entraine l'insuffisance d'UML pour modeliser les agents et les systemes multi-agents. Aussi AUML remplace-t-il la notion de methode par celle de service. Ses principales extensions sont :
La deuxieme couche : les echanges entre agents :
Decrivent les operations entre agents et les evenements qui les declenchent ; Comparables aux reseaux de petri colores : Representation graphique des processus ; Representation des traitements concurrents et asynchrones ; Representation de communications simultanees avec divers participants Diagrammes d'etats de transitions : Decrit les changements d'etat lors des echanges entre agents ; Facilite la description des contraintes sur les protocoles. La troisieme couche : les traitements internes de l'agent : -Diagramme d'activites pour chaque agent ; -Diagramme d'etats-transitions pour chaque agent.
Aujourd'hui AUML n'est pas encore un langage de modelisation fini et adopte par la communaute car aucune specification finale n'a ete publiee officiellement mais plusieurs publications sur des extensions d'UML ont etes publiees par les membres du groupe. Actuellement, leurs travaux se concentrent sur les interactions, plus specifiquement sur les protocoles d'interaction, mais aussi sur d'autres aspects connexes comme les langages d'interaction, la coordination, les roles des agents. D'autres travaux portent egalement sur les architectures, et les ontologies. |
|