WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et réalisation d'un système multi-agents pour les enchères en ligne

( Télécharger le fichier original )
par Chouchane Sahraoui Yacine Med Redha
Université Larbi Ben M'Hidi Algérie - Ingénieur d'état en informatique 2009
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

2009-2010

Conception et réalisation d'un système

multi-agents pour les enchères en ligne

Chouchane Med Redha Sahraoui Yacine

Ministère de l'enseignement supérieur et de la recherche scientifique
Université Larbi Ben M'hidi d'OEB

Département d'informatique

Mémoire de fin d'études

Pour l'obtention du diplôme
d'Ingénieur d'Etat en informatique

Option : Systèmes parallèles distribués

Thème

Conception et réalisation d'un système

multi-agents pour les enchères en ligne

Réalisé par : Encadré par :

-Mr SAHRAOUI Yacine -Mr Berkane Mohamed

-Mr CHOUCHENE Med Redha

IRgrng~cigrngnts

throub temetcionb Ale tout puibbant de noub avoit donne la fotce et le couta~e pout taalibet ce ttavail.

2l ebt toujoutb delicat de temetciet l'enbemdle deb petbonneb ?ui ont conttibud a l'ahoutibbement de ce ttavail de tliabe. Que ceux ?ui ne bont pab mentionnab ne noub en tiennent pab ti~ueut..

throub temetcionb donc vivement notte enbei~nant cfietkane diolamed, de noub avoit ptopobe ce bujet et de noub avoit encadté conjointement pendant celle-ci. et pout beb nombteux conbeilb .

throub le temetcionb encote pout ba dibponibilité, et ba toactivité a la lectute et a la cottection de nob documentb, et de bon boutien.

throb temetciementb itont natutellement vetb toub ceux ?ui ont accept~ avec bienveillance de patticipet aujut# de thebe.

cfnfin un ~tand metci a toub nob amib ~ui noub ont encoutage de ptab ou de loin pendant la fin de ce thebe.

Vdicacs

Se dadie ce ttavail :

cc me, &cab elLetb patella, ri font tosyoutb a 'nab aotab a
tout moment. Qua cpieu voub =cattle une longue et houteube
vie ;
cc mon. cleat Imp ;
e 'nab datab bcautb ;
cc moo cleat ftete dtgick ri n.'on.tjamaib came de me boutenit ;
041 tore met andb, r11~ mexeubent de ne lab avoit pub eitab ;
cc
notte quiee national de football ri hanote l'ofetia.

lacine.

DED1CACE

A votes pareits
A votes sceurs

VOWS VOWS rtes olepews6s pour ma saws compter.
ew recowwai.ssawce de tour Les snort-Roes cowsewti.s par tour et
cknout pour vote perw.ettre ot'attei,144tre cette 6tape de ma vile.
Avec toute ovta tewolresse.

atte olittt VOWS prote e et Vous b6wisse

A vt,ta raioe voi.re , votes otn.cLes, taintes, cottstins et coustints.
vows avez de pr.s ott de Law cowtri,lott6 A wta forovtattow.

Affectueuse recoWN411.ssawoe

A tout Les novas A A1,14, B,ei,ola et ailLeurs

A outs camarades orattolitares et tour pew( de La facuLt6 des scitinzes exacter de
L'RtAlversi,t6 Luria 13etn, Mlitoli,.

Je Mate ce travail.

Sommaire

Résumé 1

Problématique et objectifs 2

CHAPITRE I: Le système client/serveur.

1. Introduction 4

2. Le paradigme client/serveur 5

3. Présentation du modèle client/serveur 5

3.1. Caractéristiques du serveur 6

3.2. Caractéristiques du client 7

3.3. Point commun entre le client et le serveur 7

3.4. Caractéristiques du modèle client/ serveur 7

4. Le modèle pair à pair 9

4.1. Présentation du modèle pair- à-pair 9

4.2. Caractéristiques du modèle pair- à-pair 9

4.3. Typologies du modèle pair-à- pair 10

4.3.1. Le modèle centralisé 10

4.3.2. Le modèle hybride 11

4.3.3. Le modèle pur 12

4.3.4. Synthèse des typologies du modèle pair- à-pair 12

4.4. Avantages et inconvénients du pair- à-pair 13

5. Types de conceptions client/ serveur 14

5.1. Conception à 2 niveaux 14

5.2. Conception à 3 niveaux 14

5.3. Comparaison des deux types de conceptions 15

6. Synthèse 15

7. Conclusion 17

CHAPITRE II: La vente aux enchères en ligne.

1. Introduction 19

2. Définition de l'e-commerce et ces types 19

2.1. Définition 19

2.2.Les formes du commerce électronique 20

3. Fonctionnement de la vente aux enchères en ligne 21

3.1. La théorie des enchères 22

4. Avantages de la vente aux enchères en ligne 22

5. Les paramètres des enchères 23

6. Protocoles d'enchère 23

6.1. Enchère anglaise (premier-prix offre-publique) 23

6.2. Enchère premier-prix offre-cachée 24

6.3. Enchère hollandaise (descendante) 24

6.4. Enchère Vickery (deuxième-prix offre-cachée) 24

6.5. Enchères tous-payent 24

7. Problèmes avec les protocoles d'enchère 26

8. Exemples de sites Web de vente aux enchères 26

9. Le centre commercial virtuel 26

10. Traitement du paiement 28

11. Conseils concernant la protection des transactions en ligne 30

12. Conclusion 30

Chapitre III : Les agents & Les systèmes multi-agents

1. Introduction 32

2. L'agent :définitions 32

2.1. Définition de Woodbridge 32

2.2. Définition de Ferbert 32

2.3. Définition de Maes 33

3. Propriétés d'un agent 33

4. Classement des agents 33

4.1.relatives à leur réactivité 33

4.2.par rapport à leur mobilité 34

5. Le rôle 35

6. Le comportement 36

7. L'agent comme entité d'un système 36

7.1. Définition d'un système multi-agent(SMA) 36

7.2. Caractéristiques d'un SMA 37

8. Architecture du SMA 37

8.1. Organisation centralisée 37

8.2. Organisation libre (non centralisée) 38

9. L'environnement 38

10. Communication entre les agents 39

10.1. Communication asynchrone 39

10.2. Communication synchrone 39

10.3. Communication directe (monocast) 40

10.4. Communication en groupe de diffusion (multicast) 40

10.5. Transport des messages 40

11. Format d'échange des données 41

11.1. Format XML (description de la forme) 41

11.2. Format ACL / KIF / KQML (description du fond) 42

12. Coopération 43

13. La coordination 44

13.1.Définition 44

14. Négociation 44

14.1.Définition 44

15. Champs d'application des SMAs 44

15.1. Simulation 44

15.2. Résolution de problème 45

15.3. L'Intégration 45

16. Exemple de systèmes multi agents (commerce électronique) 46

16.1. Les agents dans le commerce électronique 46

16.2. Agents existent déjà dans le commerce électronique 47

17. Inconvénients des SMAs 48

18. Conclusion 49

Chapitre IV : Analyse et Conception

1. Introduction 51

1.1. Description fonctionnelle du système (Besoins fonctionnelles) 51

1.1.1. Front-office 51

1.1.2. Back-office 51

1.2. Choix de la méthode 51

2. Analyse 53

2.1. Identification des Agents 53

2.1.1 Les agents de la plateforme Client 53

2.1.2 Les agents de la plateforme serveur 53

2.1.3. Schéma général du système 54

2.2. Identification des Interactions 55

2.3. Environnement du système 56

2.4. Organisation 57

2.5. Utilisateurs 57

3. Conception 58

3.1 Scénario du processus de déroulement 58

3.2 Diagrammes de cas d'utilisations 60

3.3. Diagrammes de séquences 62

3.4. Diagrammes de classes 71

3.4.1. Conception de la base de données 71

3.4.2. Classes internes du système 73

3.4.3. Diagramme de classe d'agents 76

4. Conclusion 78

Chapitre V : Réalisation.

1. Introduction 80

2. Environnement de développement 80

2.1. Choix de la plateforme multi-agents 80

2.2. Choix du langage de la programmation 81

2.3. Choix du SGBD 81

2.4. Environnement de programmation 82

2. Architecture du prototype 82

3.1. Architecture logicielle 82

3.2. Caractéristiques du système 82

3. Réalisation du système 83

4.1. Les agents de notre système 83

4.2. Les interfaces du système 84

4.2.1. Interface de l'authentification 84

4.2.2. Interface d'inscription 84

4.2.3. Interface d'interaction client 85

4.2.4. Interface pour poser des offres 85

4.2.5. Interface pour configurer l'agent négociateur 86

4.2.6. Interface de payement 86

4.2.7. Interface pour l'administrateur 86

4. Conclusion 90

Conclusion et perspectives 91

Perspectives 92

Conclusion 92

Glossaire.
Bibliographie.
Annexes :
Annexe A : La plateforme jade.
Annexe B : AUML.

Liste des Figures :

Fig.1 : Une architecture client serveur 6

Fig.2 : Topologie d'un modèle centralisé 11

Fig.3 : Topologie d'un modèle Hybride 11

Fig.4 : Topologie d'un modèle Pur 12

Fig.5 : Conception à deux niveaux 14

Fig.6 : Conception à trois niveaux 15

Fig.7 : transaction via un grand (banque) 29

Fig.8 : Simulation de la vente aux enchères sur Internet 37

Fig.9 : Architecture libre (non centralisée) du SMA 38

Fig.10 : Shema represente la notion de boucle 39

Fig.11 : Représentation symbolique d'un système multi-agents 52

Fig.12 : Architecture générale du SMA(1) 54

Fig.13 : Architecture générale du SMA(2) 55

Fig.14 : Organisation du système multi-agents 57

Fig.15 : Diagramme de cas d'utilisation <SMA d'enchères> (Vue globale) 60

Fig.16 : Diagramme de cas d'utilisation <rechercher produit 61

Fig.17 : Diagramme de cas d'utilisation <Négocier produit> 62

Fig.18 : Diagramme de cas d'utilisation <Achat produit > 63

Fig.19 : Diagramme de cas d'utilisation < Gérer le catalogue de produits > 64

Fig.20 : Diagramme de séquences < Authentification > 65

Fig.21 : Diagramme de séquences < Inscription > 66

Fig.22 : Diagramme de séquences < Chercher produit > 67

Fig.23 : Diagramme de séquences < Gestion du catalogue produit > 68

Fig.24 : Diagramme de séquences < Négocier produit > 69

Fig.25 : Diagramme de séquences < Valider achat > 70

Fig.26 : Diagramme de Classe UML < Entités de la BDD> 72

Fig.27 : Architecture logicielle du système 82

Fig.28 : AP et AE dans la plateforme jade 83

Fig.29 : AGUI, AC, AN dans la plateforme jade 84

Fig.30 : Interface de l'authentification 84

Fig.31 : Interface d'inscription 85

Fig.32 : Interface d'interaction client 85

Fig.33 : Interface pour proposer des offers 86

Fig.34 : Interface pour configurer l'agent négociateur 86

Fig.35 : Interface de payement 86

Fig.36 : Interface pour l'administrateur 87

Fig.37 : Interface pour ajouter un produit 88

Fig.38 : Interface pour supprimer un produit 88

Fig.39 : Interface pour la modification d'un produit 89

Fig.40 : Interface pour supprimer un produit 89

Fig.41 : Interface pour visionner les categories 90

Liste des tables :

Tab.1 : Comparaison entre les différentes implémentations du client/serveur 9

Tab.2 : Comparaison entre les typologies du modèle pair-à- pair 13

Tab.3 : Synthèse des avantages et inconvénients du modèle client/serveur 17

Tab.4 : Comparaison entre agents cognitifs et agents réactifs 34

Tab.5 : Description des classes 72

Tab.6 : Description des associations 72

Introduction generale :

Notre thèse a pour but de développer un système multi-agents pour les enchères en ligne qui permet d'automatiser les opérations commerciales aux acheteurs, en offrant un catalogue qui contient les produits mis en enchère afin de satisfaire les besoins du client.

Le but essentiel c'est d'avoir un certain degré d'autonomie a l'aide de ces entités logicielles intelligentes ou tout simplement agents qui sont des programmes auxquels on peut déléguer une tache. Le système diffère du logiciel traditionnel grace a ces entités autonomes qui négocient entre elles . Cette particularité les rend utiles pour l'environnement du commerce électronique notamment les enchères.

Dans ce contexte, on créer un système multi-agents oil les agents sont programmé en JAVA sous la plateforme JADE et se communiquent avec le langage commun FIPA-ACL.

Notre travail consiste a comprendre le fonctionnement de deux architectures a savoir le paradigme client-serveur et celui des systèmes multi-agent ainsi que le concept du e-commerce en particulier la vente aux enchères, pour cela nous avons entrepris notre étude selon les 5 chapitres suivants :

Chapitre / : il est consacré a une étude sur le modèle client-serveur (Présentation du modèle client-serveur, modèle pair -a- pair, types de conceptions...).

Chapitre 2 : ce chapitre est consacré a une étude globale sur le concept de la vente aux enchères en ligne.

Chapitre 3 : vu que nous somme en train de développer un système multi-agent , un chapitre sur la notion des agents et les systèmes multi-agents s'avers indispensable pour notre étude. Chapitre 4 : il est consacré a la conception du système a mettre en ceuvre en suivant la démarche défini par la méthodologie voyelle.

Chapitre 5 : nous arrivons dans ce chapitre a l'implémentation de notre système.

Est enfin nous terminerons par une conclusion générale ,qui résume l'apport essentiel de notre travail , qui tente de s'ouvrir sur des nouveaux éléments de réflexions et propose quelques perspectives de recherche ,Deux annexes sont ajoutées a la fin pour éclaircir les notions non approfondis

Mot cles : Systèmes Multi agents, la vente aux enchères, commerce électronique.

Problématique et Objectifs

Problématique :

Les sites de vente en ligne se manquent d'automatisation et d'autonomie, notamment les sites de vente en encheres au niveau de la médiation entre vendeurs et acheteurs et de la négociation automatique des offres et des prix.

Ainsi la non satisfaction des vendeurs et acheteurs tels que le but du vendeur est d'obtenir le plus haut prix pour son produit, et celui des acheteurs est d'obtenir ce produit au plus bas prix.

Objectifs :

Dans ce projet on va construire un système de vente aux encheres ou les négociations se déroule selon un protocole anglais en se basons sur des agents de la plateforme Jade , ces derniers permettent de chercher un produit que le client le désir et de négocier (faire des propositions de prix avec différentes stratégies) de maniere automatique.et de signaler au gagnant lorsque l'enchere est achevée.

Chapitre I.

LES SYSTEMES CLIENT/SERVEUR

~ Iln'~ a pas de grandeurpour qui veut grandir. Il n'~
a pas de modèle pour qui cherche ce qu'il n'a jamais
vu » -- Paul Eluard.

Résumé : Nous presentons dans ce chapitre le paradigme client/serveur puis nous decrirons cette technologie du point de vue modele en citant ses caracteristiques , puis on met l'accent sur l'architecture peer to peer, nous presenterons aussi les differents types de conceptions utilisees pour ce modele .

Et enfin, pour conclure nous en deduirons les faiblesses de ce paradigme.

1. Introduction

Dans l'informatique moderne, de nombreuses applications fonctionnent dans

un environnement client/serveur ; cette denomination signifie que des machines clientes (faisant partie du reseau) contactent un serveur - une machine generalement tres puissante

en terme de capacite d'entre/sortie de memoire et de processeur -- qui leurs fournit des services(/).

Jusqu'a ce jour, la technologie client/serveur s'est developpee en suivant la genese ciapres:

- la premiere vague : celle de l'apparition du partage des ressour ces ; differents dispositifs sont alors mis en commun tels que des imprimantes et des lecteurs. C'est donc principalement le debut des serveurs de fichiers ; le client demande des enregistrements de fichiers au serveur.

- la deuxieme vague : celle des applications centralisées de bases de données. Le client forme des messages de requetes (2) pour que le serveur selectionne dans sa base l'information demandee et la lui renvoie via le reseau. Le client recoit donc juste ce qui

l'interesse et non un fichier complet.

- la troisième vague : celle des objets distribués. qui regroupent toutes les possibilites de techniques anterieures en leur ajoutant la capacite de repartir au mieux les fonctions

entre clients et serveurs .

De nos jours, il existe quatre modèles de client/serveur a savoir le contexte du travail

qui sont : le client serveur « traditionnel » -utilisant la methode RPC-, le Client/serveur a objet -RMI, CORBA et DCOM-, le client serveur de données - Requetes SQL- et

le modèle client/serveur web-CGI, Servlet, asp, jsp, php...

[RDJ, 99]

(1).Programmes ournissant des acces a des ressources : utilisation CPU (ressources physiques), d'interrogation. (2).d'une base de donnies (ressource logicielle), l'heure, des ichiers, une connexion, etc.

2. Le paradigme client/serveur

Le client/serveur qui est une evolution du mainframe (Systemes centralises) permet, par l'utilisation de nouvelles methodes et techniques, de passer outre les limites que l'on connaissait avec de tels systemes, ou :

· La logique de traitement : se situe sur la machine hOte, l'utilisateur interagissant avec celui-ci a travers un terminal PC en mode caractere ;

· Les donnees : le systeme centralise est base sur une architecture de fichiers partages qui sont traites dans leur totalite ;

· Les applications : sont developpees sans decomposer leurs trois champs d'activite (la presentation, le noyau applicatif et l'acces aux ressources)

[BRN, 95]

Par contre, l'idee du client/serveur est la suivante :

· Le systeme de fi chier : est remplace par une base de donnees que l'utilisateur interroge a travers des requetes.

· Les communications : entre clients et serveur se font soit par RPC(3) (Remote Procedure Call : Appel de procedure distantes) soit par requetes SQL.

De plus, l'idee du client/serveur est plus large ; un reseau n'est pas toujours necessaire.

1l est possible de le realiser sur une machine en degageant deux processus l'un -le client- qui envoie des requetes a l'autre -le serveur- ce dernier traitant les requetes et renvoyant des reponses.

[ROU,02]

3. Presentation du modele client/serveur

Le modele client/serveur est une des modalites des architectures informatiques distribuees.

Au sein de cette architecture, les processus sont classes entre offreurs de services (serveurs) et consommateurs de services (clients).

Le terme serveur s'applique a tout programme qui offre un service que l'on peut atteindre a travers un reseau.

Le serveur accepte des demandes issues du reseau, les traite et renvoie le

resultat au demandeur. Quant au terme client, il s'applique a tout programme qui emet une demande a une serveur et qui attend une reponse(4).

[DCO, 95]

(39.+echnique permettant d'appeler une procedure distante comme une procedure locale, en rendant transparents les messages ichanges.

(49.-essage transmis par un serveur a un client suite a l'exécution d'une operation .

Fig.1 : Une architecture client /serveur.

· Le client émet une requete vers le serveur grace a son adresse IP et le port, qui désigne un service particulier du serveur.

· Le serveur recoit la demande et répond a l'aide de l'adresse de la machine cliente et son port.

3.1. Caracteristiques du serveur

Le rOle du serveur est l'hébergement des services. Il est peut etre spécialisé

en serveur d'applications, de fichiers ou de terminaux ou de messagerie électronique(5).

· Il est Passif (esclave), en attente d'une requete ;

· Il est a l'écoute, pret a répondre aux requetes envoyées par les clients ;

· Des qu'une requete lui parvient, il la traite et envoie une réponse ;

· Il est capable de traiter les requetes et répondre a plusieurs clients simultanément (multi-threading) ;

· Il est contrOleur d'acces et garant de l'intégrité globale.

· Les serveurs peuvent etre mis a niveau sans effet sur les clients tant que l'interface des messages reste la meme.

(5).11 s'agit de courrier dectronique.

3.2. Caractéristiques du client

· Actif (maitre) ;

· Envoie des requetes au serveur ;

· Attend et recoit les reponses du serveur.

Les systèmes client/serveur peuvent etre : soit plats dans le cas ou tous les clients communiquent seulement avec un seul serveur soit hierarchiques dans le cas ou les clients n'ont de contact qu'avec les serveurs de plus haut niveau qu'eux (les serveur DNS).

3.3. Point commun entre le client et le serveur

Le client et le serveur doivent, bien sur utiliser le meme protocole de communication.

3.4. Caracteristiques du modele client/ serveur [ERA, 04]

Les systèmes client/serveur partagent les caracteristiques suivantes constituant une base pour la conception d'application en reseau :

· Le partage de ressources : plusieurs clients peuvent etre o servis » simultanement et leurs accès aux ressources est controle.

· La transparence : la localisation des clients et des serveurs est transparente aux deux.

· L'echelonnage : Supporte mieux une augmentation du nombre de clients.

· L'interoperabilite : les plates formes clients peuvent etre heterogènes (le lien est fait grace au protocole).

· La delocalisation : il y a peu ou pas de contraintes de proximite entre les clients et le serveur.

· Système ouvert : s'appuie sur des standards (ISO, ANSI, IEEE...) pour permettre la portabilite, le remplacement d'un composant d'un constructeur par celui d'un autre conforme aux standard.

· L'integrite : le code et les donnees du serveur sont geres de facon centralisee, ce qui garantit un moindre cout de maintenance et une meilleure integrite des donnees partagees.

· Echange de messages : les clients et les serveurs interagissent par l'intermediaire de messages, le message est le mecanisme d'emission des demandes de services et des reponses a celles-ci.

L'union entre le concept d'objet et de repartition a donne naissance a un nombre impressionnant de langages , de systèmes,de bibliothèques d'objets repartis ,et de produit commerciaux, parmi lesquels :CORBA ,DCOM, java (java RMI) ou encore .NET, qui sont consideres très branches comme technologies ,le tableau ci-dessous synthetise la difference entre ces systèmes :

Tab.1 :Comparaison entre les differentes implementations du client/serveur (in cluent .net et les web services ).

4. Le modèle pair a pair [CAB, 07]

Dans ce qui suit, nous presenterons les notions de base du paradigme pair-a-pair et ses differentes caracteristiques, ensuite, ses differentes topologies et en citer ses avantages et inconvenients pour enfin, le comparer avec le modele client/serveur.

4.1. Presentation du modèle pair- a-pair

Le modele pair-a-pair (peer to peer) est un modele de reseau informatique ou tous

les nceuds jouent a la fois le role de client et de serveur. Depuis les annees 90, ce modele est en pleine expansion ; les scientifiques se sont apercus de son enorme potentiel alors que jusqu'ici, c'est le modele client/serveur pur qui a ete adopte vu la simplicite de sa mise en ceuvre et la maitrise acquise au fils des annees. Le modele pair -a- pair profitant de l'expansion des acces a Internet et de la disponibilite de millions de machines, repousse considerablement les limites imposees par le modele client/serveur et a demontre ses avantages par rapport a ce modele par le partage de fichiers multimedias. Ainsi, des applications qui etaient developpees sur le modele client/serveur sont revues et repensees pour les faire tourner sous le modele

pair -a- pair (calcul distribue, espaces collaboratifs...etc.).

4.2. Caractéristiques du modèle pair -a- pair [CAB, 07]


· La decentralisation : c'est la principale caracteristique du modèle pair -a- pair, elle s'applique aux differentes topologies. Dans le cas du modèle centralise, seules les ressources sont decentralisees, mais les mecanismes de recherche et de localisation restent centralises. Alors que dans le cas du modèle pur, tout est decentralise : les

ressources, les mecanismes de recherche, la localisation, la securite, le routage.

· Passage a l'echelle : On denombre un tres grand nombre de participants aux differents reseaux de pair -a- pair sans pour autant poser de problemes au bon fonctionnement des applications. Ces caracteristiques sont limitees par des facteurs comme la quantite de messages echanges entre differents pairs.

· L'anonymat : est une fonction qui permet de ne pas etre identifiable sur un reseau. On peut distinguer six formes d'anonymat : l'auteur, l'editeur, le serveur, le document et la requete.

· L'auto-organisation : Necessaire en raison du passage a l'echelle et de l'absence d'un element central vu qu'il est difficile de prevoir le nombre des utilisateurs et la charge sollicitee comme, plus le passage a l'echelle augmente, plus la probabilite de fautes augmente d'oU la necessite d'une auto-maintenance

et d'une auto-reparation du systeme.

· Connectivite Ad Hoc(6): Du fait de la volatilite des pairs, des mecanismes de duplication et de synchronisation sont mis en place a travers differents terminaux mobiles formant un reseau ad Hoc.

4.3. Typologies du modele pair-a- pair

Le modele pair-a-pair peut etre soit centralise soit hybride ou bien pur :

4.3.1. Le modele centralise :

1l est tres proche du modele client/serveur, repose sur un serveur central detenant l'ensemble des connaissances, les clients envoient et recoivent les informations a travers le serveur mais les ressources sont hebergees par les clients. Une fois qu'un client a recu du serveur la liste des ressources et des clients les hebergeant, il peut interagir directement avec les autres. C'est la principale difference avec le modele client/serveur.

Plusieurs systemes s'appuyant sur ce modele existent : Serveurs de base de donnees, serveurs web, etc.

(6). Réseaux sansfils capables de s'organiser sans infrastructure définie préalablement oir chaque naud communique directement avec son voisin contrairement aux réseaux d'échange en mode infrastructure oh il est nécessaire de faire passerpar un point d'accès.

Fig.2 : Topologie d'un modèle centralisé

4.3.2. Le modèle hybride :

Avec ce modèle, le contrOle des informations s'échange a travers le serveur

alors que les flux de données sont échangés de pair a pair, le serveur de commande agit en tant qu'agent de surveillance pour tous les autres pairs et assure la concordance

de l'information.

Les serveurs de tel modèle sont utilisés pour assurer des fonctions relatives au routage, a la comptabilité ou a l'organisation fonctionnelle des pairs.

Fig.3:Topologie d'un modèle Hybride

4.3.3. Le modèle pur :

Dans ce type de modele, il n'y a aucun serveur. Le fait qu'un pair quitte le reseau n'affecte pas le systeme. Les pairs sont consideres comme strictement equivalents.

Differentes applications sont construites sur ce type de topologie : Gnutella, toutes les infrastructures a base de table distribuee tel que Chord, Pastry, Tapstry, CAN...

Fig.4:Topologie d'un modèle Pur

4.3.4. Synthèse des typologies du modèle pair -a- pair

Résumons dans le tableau en page suivante, les principales differences qui existent entre les différentes typologies du modèle pair -a- pair :

Tab.2 : Comparaison entre les typologies du modèle pair -a- pair

4.4. Avantages et inconvenients du pair - a- pair

Le pair -a- pair est une technologie émergeante. Son utilité dans de différentes applications devient de plus en plus évidente a cause de :

· son coUt réduit (les coUts engendrés par un tel réseau sont le matériel, les cables et la maintenance).

· sa simplicité a toute épreuve!

Mais :

· Ce système n'est pas du tout centralisé, ce qui le rend très difficile a administrer

· Sa sécurité est très peu présente

· Aucun maillon de ce système n'est fiable

Ainsi, les reseaux d'egal a egal ne sont valables que pour un petit nombre d'ordinateurs (generalement une dizaine), et pour des applications ne necessitant pas une grande securite (il est donc deconseille pour un reseau professionnel avec des donnees sensibles).

5. Types de conceptions client/ serveur .

5.1. Conception à 2 niveaux

La conception a deux niveaux (aussi appelee architecture 2-tiers, « tier » signifiant etage en anglais)caracterise les systèmes clients/serveurs dans lesquels le client demande une ress ource et le serveur la lui fournit directement. Cela signifie que le serveur ne fait pas appel a une autre application afin de fournir le service.

Fig.5: Conception a deux niveaux

5.2. Conception a 3 niveaux

Dans la conception a 3 niveaux (appelees architecture 3-tiers), il existe un niveau intermediaire, c'est-à-dire que l'on a generalement une architecture partagee entre :

· Le client : le demandeur de ressources.

· Le serveur d'application (appele aussi middleware) : C'est le serveur charge de fournir la ressource mais faisant appel a un autre serveur.

· Le serveur secondaire (generalement un serveur de base de donnees), fournissant un service au premier serveur.

Fig.6: Conception a trois niveaux

5.3. Comparaison des deux types de conceptions

Le choix entre les deux conceptions 2-tiers et 3-tiers dépend de la facon dont l'application client/serveur est partagée en unités fonctionnelles(7).

Le besoin de l'architecture 3-tiers s'est révélé lorsque le client/serveur s'est agrandi (cas d'applications critiques ayant prises des proportions intergalactiques).

6. Synthèse

Quelle que soit l'implémentation utilisée (CORBA, DCOM, Java RMI, .Net ou encore la technologie des Web service) et quelle que soit l'organisation

adaptée (les différentes typologies du pair -a- pair), le modèle client/serveur présente des avantages et des inconvénients que nous avons résumés dans le tableau ci-dessous :

.

(7)*Inter ace utilisateur, logique de traitement et les données partagees

Tab.3: Synthèse des avantages et in convénients du modèle client/serveur

7. Conclusion

Nous avons étudié dans ce chapitre le fameux modèle client/serveur, nous nous sommes

un peu étalées sur l'architecture peer to peer, ce que nous pouvons conclure est que ce type d'architecture fonctionne très bien dans les systèmes locaux et fermés (les intranets a titre d'exemple) dans lesquels les roles de client et de serveur sont établis a l'avance mais elle est une vision centralisée, rigide et passive, est controlée par le programmeur, ne supporte ni la taille, ni la complexité ni l'évolutivité croissante des nouvelles applications .En effet, le modèle client/serveur ne peut pas répondre a certaines contraintes (temps de réponses, disponibilité des services) qu'impose le volume d'information énorme sur le réseau Internet induit par le
nombre croissant des utilisateurs Web.

On est ainsi conduit a chercher a donner plus d'autonomie et d'initiatives aux différents modules logiciels.

Plusieurs approches ont été proposées pour pallier aux problèmes du modèle
client/serveur parmi lesquelles la mobilité des codes qui sera l'objet d'un autre chapitre .

Chapitre II~

LA VENTE AUX ENCHERES EN

LIGNE

« Rien n'est plus dangereux qu'une idee, quand on n'a qu'une idee. » - Alain(Ernile Chartier, dit)

Résumé : Ce chapitre presente les notions de commerce electronique et la vente aux encheres, ainsi que les deferents types d'e-commerce et les protocoles de la vente aux encheres, on donnant quelques exemples sur les sites les plus connus d'enchere.

1. Introduction

La nouvelle ere de l'information va revolutionner les processus de gestion dans de nombreux domaines surtout le commerce electronique (e-commerce, en anglais). Aujourd'hui, l'informatique est devenue le moteur de l'economie, donc le terme du e-commerce a ete etabli, et les applications de la vente et l'achat en ligne ont ete rapidement diffusees autour du monde. Ou on a tres souvent recours a la vente aux encheres sur Internet pour se debarrasser d'o bjets superflus. La vente aux encheres permet aux petits entrepreneurs de liquider des marchandises excedentaires ou defraichies, de maniere rentable, et meme d'evaluer le potentiel de vente d'un produit particulier sur Internet.

En fait, la vente aux encheres sur Internet a en partie modifie le fonctionnement des microentreprises. Pour la premiere fois, les vendeurs peuvent, a domicile, se brancher rapidement au marche mondial, et a un prix aborda ble.

De nos jours, le chef de file de la vente aux encheres, eBay, a plus de 65 millions d'usagers actifs.

Dans le monde actuellement, plusieurs milliers de commercants soucieux d'economie, gagnant leur vie a domicile en vendant des produits sur eBay.

2. Definition de l&e-commerce et ces types

Avant d'entamer a la vente aux encheres, tout d'abord, il faut savoir la notion d'e-commerce.

2.1. Definition

Le commerce electronique (e-commerce, en anglais) designe l'echange de biens et de services entre deux entites sur les reseaux informatiques, notamment Internet.

Le client effectuant des achats sur Internet est appele cyberconsommateur. Le e-Commerce ne se limite pas a la seule vente en ligne, mais englobe egalement :

· La realisation de devis en ligne

· Le conseil aux utilisateurs

· La mise a disposition d'un catalogue electronique

· Un plan d'acces aux points de vente

· La gestion en temps reel de la disponibilite des produits (stocks)

· Le paiement en ligne

· Le suivi de la livraison

· Le service apres-vente

Attention! : Il ne faut pas confondre e- business et e-commerce, e- business est plus large :

e- business designe tous les processus economiques transformes par le Web : l'integration des systemes d'information avec les clients et les fournisseurs (via des sites web a acces reserve : les extranets), le travail dans l'entreprise (via un site web reserve aux employes : l'intranet), le recrutement, la finance, le marketing (publicite p.ex.), etc.

2.2. Les formes du commerce electronique Il existe plusieurs formes de l'e-commerce a savoir :

- Business-to-Consumer (B2C) : Le B2C (prononcez " bi-tou-ci") designe le commerce en ligne de biens ou de services entre une entreprise et des particuliers. C'est notamment le cas pour les sites de vente en ligne.

- Business-to-Business (B2B) : les achats et les ventes des biens ou des services entre les societes sur le Web. C'est le modele d'e- business qui concerne les relations interentreprises. Il concerne la majeure partie des activites de l'e- business; la plupart des analystes considere que le Business to Business offre beaucoup plus de perspectives que le Business to Consumer.

- Consumer-to-Consumer (C) : Les affaires qui se deroulent entre les particuliers ou bien les clients. Expression designant les sites constituant des points de rencontre entre les Internautes ("chat club", forums, sites de vente aux encheres).

- Business-to-Employee (B2E) : Ce sont les relations commerciales entre les entreprises et les employes. De plus, il designe les applications et les services informatiques mis par les entreprises a disposition de leur personnel, generalement sur un Intranet. Y figurent en bonne place les portails d'entreprises accessibles sur les Intranet.

- Business to gouvernement (B2G) : Echange electronique entre les entreprises privees et le gouvernement en faisant et investissant des projets en ligne.

Noter bien qu'un site peut tres bien etre a la fois B2C et B2B.

Donc, l'apparition d'e-commerce implique l'apparition d'enchere sur Internet.

3. Fonctionnement de la vente aux encheres en ligne

La vente aux encheres electronique s'appelle souvent la place du marche en ligne. Elle reunit acheteurs et vendeurs sur Internet dans le but d'echanger biens et services.

La plupart du temps, le processus de vente aux encheres electronique se deroule selon le modele des encheres traditionnelles.

En general, un acheteur rencherit sur d'autres acheteurs pour o btenir un produit ou un service en particulier, et le plus offrant peut se procurer l'article au terme du processus.

Si vous voulez acheter un produit, vous pouvez explorer un site de vente aux encheres en ligne en examinant differentes categories de produits, ou utiliser des mots cles qui decrivent ce que vous cherchez. Au moment oil vous participez au processus d'achat du produit, la plupart des sites de vente aux encheres electronique peuvent rencherir a votre place (en reponse a d'autres mises), jusqu'à concurrence du montant limite que vous avez determine d'avance.

Par consequent, vous n'avez pas besoin de verifier sans cesse sur le site pour savoir si vous avez fait la meilleure offre, ou pour rencherir.

Les vendeurs, pour leur part, peuvent etablir un prix minimal (le plus bas prix acceptable). Il peut egalement y avoir une limite temporelle aux encheres, au terme de laquelle le produit ou service ira a la personne qui aura fait la meilleure offre.

Les sites de vente aux encheres electronique peuvent accepter des modes de paiement varies tels que le paiement par carte de credit, les services de reglement en ligne tels que PayPal ou Escrow, le paiement par carte bancaire, les cheques personnels, les cheques de banque ou les mandats.

En general, les modes de paiement acceptes sont affiches sur le site Web.

3.1. La theorie des encheres = les protocoles et les strategies des agents dans les encheres.

· L'initiateur veut vendre un objet au plus grand prix et les participants veulent l'acheter au plus petit prix possible.

· Un protocole centralise, inclut un initiateur et plusieurs participants.

· L'initiateur annonce un objet pour la vente. Dans certains cas, l'o bjet peut etre une combinaison d'autres objets, ou un objet avec plusieurs attributs.

· Les participants font des soumissions (offres). Cela peut etre fait plusieurs fois, en fonction du type d'enchere.

· L'initiateur choisi le gagnant.

4. Avantages de la vente aux encheres en ligne

Vendre aux encheres sur Internet presente des avantages tangibles compare aux autres types de vente en ligne, voici quelques avantages clefs de la vente aux encheres en ligne :

· La vente aux encheres est ouverte au monde 24 heures sur 24. Cela rend la vente aux encheres fortes commodes pour les vendeurs et les acheteurs vivant dans des fuseaux horaires differents.

· La vente aux encheres gen~re une certaine fe brilite, propice aux ventes et aux achats, la vente aux encheres cree des clients assidus, amateurs d'emotions fortes.

· Les sites de vente aux encheres presentent donc une mise en marche rentable de vos produits, la vente aux encheres attire un grand nombre d'usagers. Il s'agit donc d'un systeme fort rentable de commercialisation de vos produits, un systeme oa le coat d'exploitation et le capital investi sont faciles a recuperer.

· Echanges et commentaires creant une certaine convivialite, vendeurs et acheteurs ajoutent de commentaires susceptibles de renforcer ou de miner les reputations a l'interieur du reseau. En creant un sentiment d'appartenance, reliant des usagers disperses de par le monde.

5. Les parametres des encheres

> Encheres avec valeur privee: la valeur d'un agent pour un objet depend seulement de ses preferences privees.

> Encheres avec valeur commune: la valeur de l'o bjet depend completement de l'evaluation des autres.

> Encheres avec valeur correlee: la valeur de l'objet depend des evaluations internes et externes.

6. Protocoles d'enchère

6.1. Enchere anglaise (premier-prix offre-publique) -- chaque participant annonce publiquement son offre. Le participant avec la plus grande soumission gagne l'o bjet au prix de son offre.

Strategie:

Dans les encheres a valeurs privees la strategie dominante est de

toujours faire une offre avec un peu plus grande que la plus grande offre actuelle et s'arreter quand la valeur privee est atteinte.

Dans les encheres a valeurs correlees, le participant augmente le prix a une rate constante ou a une rate qu'il considere appropriee.

6.2. Enchere premier-prix offre-cachée -- chaque participant soumet une

offre sans savoir les offres des autres. Celui qui fait la plus grande soumission gagne l'o bjet et paye le montant de son offre.

Strategie:

Pas de strategie dominante.

Offrir moins que sa vraie evaluation, mais cela depend des autres soumissions qui sont pas connues.

6.3. Enchere hollandaise (descendante) -- l'initiateur diminue tout le temps le prix jusqu'a ce qu'un des participants achete l'objet au prix actuel. Strategie:

Equivalente du point de vue strategique avec l'enchere premier-prix offre-cachee.

Efficiente en temps reel.

6.4. Enchere Vickery (deuxieme-prix offre-cachee) -- chaque participant

soumet une offre sans savoir les offres des autres. Celui avec la plus grande offre gagne, mais au prix de la deuxieme plus grande offre.

Strategie:

La strategie dominante du participant est d'offrir sa vrai evaluation.

6.5. Encheres tous-payent -- chaque participant doit payer le montant de son offre (ou un autre montant) a l'initiateur.

Les diagrammes ci-dessous présentent les principales differences entre les enchères anglaises et les enchères hollondaises

· Vente aux enchères anglaises

· Vente aux enchères hollondaises

7. Problèmes avec les protocoles d'enchère

n Des blocages peuvent apparaitre.

n Initiateur menteur :

o Probleme dans l'enchere Vickery.

o Probleme dans l'enchere anglaise -- l'initiateur utilise des faux participants dans
l'enchere pour augmenter l'evaluation de l'o bjet par les autres participants.

o L'initiateur offre le deuxieme plus grand prix pour o btenir son prix reserve -- il est possible qu'il arrive a garder l'o bjet.

o Les encheres avec des valeurs communes peuvent etre soumises a la malediction du gagnant ("winner's curse").

o Des encheres inter-liees -- le participant peut mentir sur la valeur d'un objet pour obtenir une com binaison d'o bjets a leur prix d'evaluation.

8. Exemples de sites Web de vente aux enchères(8)

· www.uBid.com (site de vente aux encheres non specialise).

· www.eBay.com (site de vente aux encheres non specialise).

· www.alibaba.com (site de vente aux encheres non specialise).

· www.bidville.com (site de vente aux encheres non specialise).

· www.liquidation.com (stocks commerciaux et biens gouvernementaux excedentaires -- large eventail de categories de produits).

· www.dovebid.com (fournisseur international de services de vente aux encheres, d'evaluation, d'echange et de gestion des actifs immobilises).

· www.elance.com (axe sur les services. Vous pouvez chercher un fournisseur en fonction de la categorie ou afficher votre projet et recevoir des propositions de fournisseurs de services).

9. Le centre commercial virtuel

9.1. En quoi consiste un centre commercial virtuel?

Un centre commercial virtuel (ou cybercentre commercial ou centre commercial en ligne) consiste en un site Internet qui fonctionne sur le mode du centre commercial. On peut acceder a un vaste ensemble de vendeurs et de produits a partir d'un seul site Web. Dans certains cas, les centres commerciaux electroniques disposent d'un panier d'achat virtuel et

(8)Sources : Index de web.com www.indexoftheweb.com/Shopping/ Auctions.htm www.emarketservices.com, http:// www.e-bc.ca /pages/ressources/internet-auctions.php

d'un systeme de paiement communs a l'ensemble des vendeurs. Dans d'autres sites, les vendeurs ont davantage de controle sur les fonctions de commerce electronique, de paiement et de livraison.

9.2. Son fonctionnement

En general, l'exploitant ou l'hote d'un centre commercial virtuel exige le paiement de droits pour etablir et maintenir le kiosque ou la boutique du marchand et pour inclure ses produits dans le catalogue. De plus, l'hote peut exiger que le vendeur lui paie une redevance sur chaque vente ou chaque fois que quelqu'un clique sur un de ses produits.

Les frais de listage peuvent varier de 25 cents a 2 $ ou plus par produit. Les frais de parachevement de la vente se situent entre 1,25 et 5 %, habituellement en fonction du prix de l'article.

Les centres commerciaux virtuels ne sont pas tous exploites de la meme facon. Dans le cas de certains sites pleinement integres, l'hote assume le traitement du paiement et le catalogue du site tandis que dans d'autres cas, il incombe au marchand de veiller '

l'apparence de la boutique et au traitement du paiement, et de s'occuper de la livraison et des remboursements.

En ce qui concerne les sites plus integres de centres commerciaux virtuels, l'hote peut egalement elaborer des profils d'utilisateur ayant trait aux clients qui accedent a l'un ou l'autre des magasins en ligne. Cette methode permet de developper des centres commerciaux hautement specialises (c.-à-d. axes sur des creneaux de marche particuliers).

www.etsy.com: c'est un exemple de centre commercial virtuel le plus frequente.

9.3. Comment les centres commerciaux virtuels peuvent-ils aider les

petites entreprises?

Avez-vous deja voulu vendre vos produits et services en ligne, sur votre propre site Web, tout en ayant le sentiment de ne pas etre pret? Les centres commerciaux virtuels peuvent vous procurer l'acces a un marche plus grand, a peu de frais. Il s'agit egalement d'un bon moyen d'annoncer vos produits et services sur le Web.

Dans l'optique de l'acheteur, les centres commerciaux virtuels permettent de comparer les produits sans devoir multiplier les demarches.

Gardez a l'esprit que les centres commerciaux virtuels se fondent sur le modele des magasins de detail, et ils constituent a court terme l'une des facons les plus simples d'etablir votre site de commerce electronique.

Grace aux centres commerciaux virtuels, vous n'avez pas a vous soucier de mettre sur pied un site de cybercommerce.

Les centres commerciaux virtuels peuvent attirer des clients qui, autrement, ne trouveraient peut-etre pas votre site Web. Il s'agit d'une solution peu risquee et peu couteuse pour eprouver en ligne le marche de vos produits.

Si vous parvenez a asseoir la reputation de votre entreprise en ligne, vous pourriez alors envisager d'autres solutions telles que votre propre magasin electronique.

9.4. Y a-t-il des risques?

Les centres commerciaux virtuels pourraient ne pas constituer la solution ideale si vous souhaitez que votre entreprise se demarque. Meme si on a lance un bon nombre de centres commerciaux sur le Web au cours des dernieres annees, beaucoup echouent dans les deux ans qui suivent leur creation. Les entrepreneurs doivent evaluer avec soin si le recours a un cybercentre commercial d'un type particulier leur convient.

10. Traitement du paiement

Beaucoup d'encre a coule a propos des moyens de paiement en ligne. Il en existe de nombreuses categories, mis a disposition par de nombreux prestataires. Bien sur, tous les moyens de paiement classiques sont disponibles (cheques, mandats...), et ne necessitent peu ou pas de developpements. A l'inverse, le "paiement securise par carte bancaire" necessite une interface avec les reseaux cartes bancaires (RCB), il implique donc l'intervention d'un intermediaire specialise.

> Paiements off-line

C'est de tres loin le plus simple a mettre en oeuvre ; les clients paient avec les moyens habituels: cheque, mandat, ou n° CB par courrier/fax/telephone.

Les deux premiers vont de soi, mais le paiement par CB off-line necessite l'utilisation par le marchand d'une interface bancaire de saisie des transactions CB (minitel, Internet, ...). Dans ce dernier cas, la banque prendra sa commission de 1 a 3% sur chaque transaction.

> Sites de banques :

Ce sont les solutions les plus simples a mettre en oeuvre ; en gros, quand le client desire payer, il est redirige vers une page hebergee par une banque avec comme parametres son identifiant et le montant a payer. La page de la banque, securisee, permet a l'internaute de saisir ses informations bancaires. Lorsque la transaction est terminee, l'internaute est a nouveau redirige vers le site marchand avec comme parametre son identifiant le resultat de la transaction que le marchand enregistre. L'inconvenient de ce systeme est le va-et-vient du client qui risque d'abandonner en cours.

> Batch CB

Cette solution ressemble a la precedente, si ce n'est que la page securisee est geree par le marchand et non plus par la banque. L'avantage est l'ergonomie, la souplesse fonctionnelle et la continuite de la navigation du client.

L'inconvenient majeur est que le marchand est responsable de la securite des informations ainsi rescues, et qu'il doit veiller a ce qu'elles demeurent inaccessibles a toute personne mal intentionnee (en interne comme en externe). En outre, il doit les detruire des qu'il n'en a plus

L'usage (c'est la loi), et veiller a la recense de tous les certificats et logiciels de securite necessaires a la securite.

> Argent electronique (eCash) :

Analogue electronique de l'argent liquide. L'argent electronique a emis par une banque, et chacun des billets (ou chacune des pieces) electronique comporte un numero de serie unique et represente une somme d'argent precise. L'argent electronique peut etre stockee sur un support materiel tel le porte monnaie electronique ou sur le serveur d'une banque tel le porte monnaie virtuel.

D'autres institutions financiere permettent au client de deposer une somme d'argent et

d'o btenir des " jetons "(argent electronique) pouvant etre utilises chez les vendeurs acceptant ce type de paiement. Le chargement du porte monnaie se fait par un autre moyen de paiement (CB, mandat, ...).

Grand

ig.7 :transaction via un grand (banque).

> Autres moyens de paiement : la liste des modes de paiement que nous avons donnee n'est pas exhaustive, voici quelques autres modes de paiement :

- Cartes bancaires jetables : numeros de CB emis par une banque a usage unique,

- Telephone surtaxe : pour payer, l'internaute doit telephoner ou envoyer un certain SMS. "Au moment d'utiliser le service de paiement en ligne offert par une societe specialisee. " Selon Wikipedia ( www.wikipedia.org), PayPal ( www.paypal.com) est l'entreprise specialisee dans le traitement des paiements en ligne qui connait la plus grande popularite.

Selon www.canadaone.com les petites entreprises ont recours aux systemes d'organisations telles que PayPal ( www.paypal.com), CCNow, ( www.ccnow.com) PsiGate ( www.Psigate.com), Beanstream ( www. beanstream.com) et InternetSecure ( www.internetsecure.com) ", en ce qui a trait a des transactions liees a une vente aux encheres ou effectuees dans des centres commerciaux virtuels, tant les acheteurs que les vendeurs doivent habituellement creer des comptes qui leur permettent de faire un paiement ou de le recevoir. La plupart des societes de paiement en ligne imputeront des frais au vendeur en echange de leurs services (recevoir des fonds d'un compte et les transferer dans un autre). Les acheteurs et les vendeurs doivent tenir compte de plusieurs elements au moment de determiner le mode de paiement qui leur conviendra".

11. Conseils concernant la protection des transactions en

(9)

ligne

n Verifiez s'il est possible de renverser les paiements.

n Examinez les conditions du paiement en ligne ou du service d'entiercement.

n Examiner la politique de confidentialite des services en ce qui a trait au mode de paiement, et les mesures de securite.

n Verifiez la legitimite des cheques ou mandats.

n Les vendeurs doivent imputer le montant de la vente a la carte de credit seulement apres avoir procede a l'expedition du produit.

n Verifiez la legitimite du service d'entiercement ou de paiement en ligne, surtout si vous ne le connaissez pas.

12. Conclusion

Aujourd'hui, Internet nous offre la possibilite d'ouvrir des boutiques accessibles a tout le monde partout dans le monde. Malheureusement, ce nouveau mode d'achat presente des inconvenients a savoir la mefiance vis-a-vis des sites de vente.

Internet est aussi un moyen tres efficace pour rester en contact avec le client pour comprendre ces besoins et les satisfaire. Ainsi, on augmente les chances qu'il reste fidele a l'entreprise.

(9) Source : http://www.ftc.gov/bcp/conline/pubs/online/auctions.shtm et Internet Auctions - What You Should Know Before You Buy or Sell. Australian Competition & Consumer Information.

Chapitre III.

LES AGENTS &

LES SYSTEMES MULTI-AGENTS

ol'esprit est une societe d'agents plus simples qui cooperent
ou se font concurrence»
(La société de Pesprit. InterEditions19 88)

Résumé : Ce chapitre presente les notions d'agents et de systemes multi-agents. Ces systemes possedent des proprieties remarquables qu'il est utile de presenter des a present. Nous presenterons notamment leur typologie , leur comportement et leur caractere adaptatif lors de situations d'interaction et de cooperation.

1. Introduction

Le domaine des systemes multi-agents (SMAs) n'est pas recent, il est actuellement un champ de recherche tres actif. Cette discipline est a la connexion de plusieurs domaines en particulier de l'intelligence artificielle , des systemes informatiques distribues et du genie logiciel. C'est une discipline qui s'interesse aux comportements collectifs produits par les interactions de plusieurs entites autonomes et flexibles appelees agents, que ces interactions tournent autour de la cooperation, de la concurrence ou de la coexistence entre ces agents.

2. L' AGENT: definitions

2.1. Definition de Wooldridge:

Agent intelligent [Woold, 2001] est une entite situee dans un environnement, capable de realiser des actions flexibles et autonomes dans cet environnement dans le but d'atteindre ses objectifs .

2.2.Definition de Ferber :

Jacques Ferber, propose cette definition [Ferber, 1995] et dans [Ferber, 1999]. « On appelle agent une entitephysique ou virtuelle :

· qui est capable d'agir dans un environnement,

· qui peut communiquer directement avec d'autres agents,

· qui est mue par un ensemble de tendances (sous la forme d'objectifs individuels ou

d'une fonction de satisfaction, voire de survie , qu'elle cherche a optimiser),

· qui possede des ressources propres ,

· qui est capable de percevoir (mais de maniere limitee) son environnement ,

· qui ne dispose que d'une representation partielle de cet environnement (et eventuellement aucune) ,

· qui possede des competences et offre des services,

· qui peut eventuellement se reproduire , mourir et changer d'etat

· dont le comportement tend a satisfaire ses objectifs , en tenant compte des

ressources et des competences dont elle dispose, et en fonction de sa perception, de

ses representations et des communications qu'elle recoit ».

2.3. Définition de Maes :

Pattie Maes [Maes, 1995] du groupe de recherche SMA au MIT propose une bonne definition generique du terme agent: "An agent is a computational system that inhabits a complex' dynamic environment. The agent can sense' and act on' its en vironment' and has a set ofgoals or motivations that it tries to achieve through these actions."

De ces definitions on va deduire les notions fontamentales qui caractirisent un agent: Capable de percevoir, decider et agir.

3. Propriétés d'un Agent

Ø Autonome:

La prise de decision sur son comportement est uniquement en fonction de ses perceptions, connaissances , et representation du monde (un agent peut etre dependant et autonome).

Ø Proactif :

Gen~re ses buts, prise d'initiative pour satisfaire ses buts, pas dirige seulement par les evenements.

Ø Flexible:

Reaction aux changements dans l'environnement; adaptation aux ressources disponibles.

Ø Social:

Capacite d'interagir pour atteindre ses buts, pour aider d'autres agents dans leurs activites.

Ø Situé:

Capacite de percevoir l'environnement et a y agir de façon limitee.

4. Classement des agents

4.1. Relative a leur réactivité

Les agents peuvent etre classes en deux categories principales selon leur comportement et leur granularite. Cette notion de granularite est bien sur tres subjective, elle exprime la complexite de « raisonnement » d'un agent afin de separer les agents dits "intelligents" et des agents moins "intelligents". On parle d'agents cognitifs et d'agents reactifs.

· Cognitifs:

Ils peuvent anticiper, prevoir le futur, memoriser des choses ... ils reflechissent.

· Réactifs:

Ils reagissent directement a l'environnement percu, par pulsion (ex : les fourmis).

Systèmes d'agent cognitifs

Systèmes d'agent réactifs

Présentation explicite del'environnement

Pas de représentation

Peut tenir compte de son passé

Pas de mémoire de son historique

Agents complexes

Fonctionnement stimulus/action

Petit nombre d'agents

Grand nombre d'agent

Tab.4 : Comparaison entre agents cognitifs et agents réactifs.

 

· Hybride: Combinaison des deux, il est conçu pour allier des capacités réactives à des capacités

cognitives, ce qui lui permet d'adapter leur comportement en temps réel à l'évolution de leur univers. Un agent hybride est composé de plusieurs couches arrangées selon une hiérarchie.

4.2. Par rapport a leur mobilité

· Agents fixes

C'est le systeme le plus immediat (facile) a implementer. Un SMA avec des agents non mobile presente tous les interets d'un SMA classique :

Execution des divers agents en parallele (en general sous forme de threads) et donc independance d'execution des differents agents,

Communication grace a un protocole et un systeme de communication (en reseau si c'est le cas) ,

Libre arbitre des agents : ils decident de repondre ou non aux sollicitations (messages) exterieures ,

Les agents peuvent etres de n'importe quel type : reactif, cognitif, etc.

· Agents mobiles

Lors de l'utilisation d'agents mobiles toutes les caracteristiques des agents fixes sont conservees. L'utilisation des agents mobiles presente en outre ,

plusieurs avantages :

De la charge de calcul : un agent mobile peut en effet se deplacer sur un ordinateur plus puissant pour effectuer un calcul complexe. De meme il peut quitter une machine qui est sature pour aller sur une autre.

reduction du trafic reseau : un agent qui a besoin de traiter une grande quantite de donnees situees sur un autre ordinateur (base de donnees par exemple) peut se deplacer sur l'ordinateur possedant les donnees et revenir avec le resultat. Cela permet d'eviter de faire transiter les donnees sur le reseau.

Les agents mobiles presentent des interets evidents , mais sont cependant plus complexes a gerer. Par exemple :

- Il faut faire suivre les messages lorsque l'agent se deplace.

- Pour qu'un agent puisse se deplacer, il faut bien entendu que des sites d'accueil existent.

- L'utilisation de plusieurs langages de programmation peut poser des problemes pour la mobilite des agents.

5. Le role

Le role est une representation abstraite d'une fonction ou d'un service propose par un agent. Un role peut etre attribue dynamiquement a un agent. Il peut par exemple jouer un role de client ou de fournisseur ou meme les deux simultanement. D'autres roles peuvent etre definis comme le role de mediateur qui se charge de la mise en relation des clients et des fournisseurs.

Chaque methodologie peut apprehender le role de differentes façons. Certaines proposent d'associer potentiellement plusieurs roles a un agent. D'autres specifient qu'un role est au contraire tenu par plusieurs agents.

Dans Aalaadin [Ferber & Gutknecht, 1997] , chaque agent peut prendre en charge plusieurs roles et un role identique peut etre tenu par plusieurs agents mais le role sera toujours local a l'agent.

Dans [Drogoul, 199 8] , un agent est vu comme un ensemble de roles, parmi lesquels on peut distinguer trois niveaux :

· Les roles individuels qui sont les differents comportements que les agents sont capables de tenir sans se soucier de la strategie choisie pour les tenir.

· Les roles relationnels qui concernent comment ils choisissent d'interagir avec un autre

(en activant ou en desactivant les roles individuels) avec le respect des dependances mutuelles de leurs roles individuels.

· Les roles organisationnels ou comment les agents peuvent gerer leurs interactions pour devenir ou rester organises (en activant ou en desactivant des roles relationnels).

6. Le comportement

Un comportement est une reponse a un evenement ou une situation. Dans ce contexte , un evenement est une chose qui se produit et qui change l'environnement ou l'etat de l'agent. Un agent defini son comportement en fonction des evenements qui lui arrivent. Un evenement peut etre par exemple l'arrivee d'un courier electronique.

Lorsqu'un evenement se produit, l'agent doit l'analyser et l'evaluer pour produire une reponse adaptee.

La decision d'un agent va donner lieu a une action, cette derniere n'est pas seulement envisagee comme le resultat de ce que font les agents mais comme le resultat des reactions du monde aux influences des agents.

Le comportement d'un agent peut etre considere d'un point de vue externe ou interne a l'agent. Le comportement externe d'un agent correspond a l'observation d'une suite d'actions entreprises par celui-ci , alors que son comportement interne correspond a l'expression de ses capacites de perception, de decision, et d'action.

Pour nous, le comportement interne d'un agent exprime quand et comment un agent va utiliser ses connaissances , ses savoir-faire et ses facultes de perception de l'environnement, ou de communication pour decider de ses actions. Pour un concepteur, la definition du comportement est alors : "comment assembler les di**~rentes parties d'un agent de mani.re qu'il accomplisse les actions que l'on attend de lui ? ".

7.L'agent comme entite d'un systeme

7.1. Definition d'un systeme multi-agent (SMA).

· Agents intelligents interagissant [Weiss, 1999] Agent +autonomie

Intelligent +but, tiches

Interagissant +prise en compte des autres.

· Systeme distribue compose d'un ensemble d'agents.

· Un ensemble organise d'agents [Briot, 2001].

Un SMA peut-etre ouvert (cas d'un magasin ou des clients entrent et sortent

librement) ou ferme (l'ensemble d'agents reste le meme comme dans un match de football). Un SMA peut etre homogene, c'est-à-dire que tous les agents sont construits sur le

meme modele (ex: une reunion de travail, une colonie de fourmis) ou heterogene, c'est-àdire que les agents sont construits de modeles differents et/ou de granularite differentes (ex: un eco-systeme).

7.2. Caracteristiques d'un SMA

ü Chaque agent a des informations ou des capacites de resolution de problemes limitees , ainsi chaque agent a un point de vue partiel.

ü Il n'y a aucun controle global du systeme multi-agent.

ü Les donnes sont decentralisees.

ü Le calcul est asynchrone.

8. Architecture du SMA

8.1. Organisation centralisee

Dans une conception centralisee , un agent connait tous les autres agents.

Ainsi lorsque l'on a besoin d'une competence particuliere ou d'un agent particulier on s'en refere a cet agent pour connaitre le/les agents concernes.

On peut noter que ces deux fonctionnalites font partie de CORBA. Ainsi , si tous les agents sont des objets CORBA , il n'y a plus grand chose a faire.

> Désavantages des Systèmes centralises:

L'avantage de la methode est sa simplicite de mise en oeuvre. Cependant , un seul objet gerant toutes les adresses , il peut devenir un goulet d'etranglement et grever de façon significative les performances du systeme. De meme, si l'objet gerant le systeme d'adressage plante , le systeme plante avec.

Ex : vente aux enchéres

100 agents, chacun 10 comportements ce qui implique 10100comportements possibles. Comment gerer tout cela de maniere centralisee lors de la conception ?

Fig. 8:Simulation de la vente aux encheres sur Internet.

8.2. Organisation libre (non centralisee)

Aucun agent ne connait tous les agents. Localement, un agent peut connaitre les agents avec il est susceptible de traiter, mais personne n'a, a priori, de vision globale.

Personne ne connait personne a priori et c'est en dialoguant que l'on trouve les autres.

On peut par exemple s'inscrire sur un groupe de diffusion qui nous interesse pour entrer en contact avec d'autres agents.

Envoi de

messages

Agent

Fig.9 : Archetecture libre (non centralisee) du SMA Avantages des Systemes non centralises:

Cette methode presente l'avantage d'être plus "distribue" que la method centralisee. En cas de defaillance d'une partie du systeme, le reste peut continuer a fonctionner.

Cependant la recherche d'un agent donn~e ou d'une categorie d'agent ayant des competences particulieres est moins directe.

De meme l'attribution d'adresses unique a chaque agent est moins directe que dans la methode centralisee.

9. L'environnement

Un agent ne peut exister sans environnement et sans systeme multi-agents ,

Donc l'environnement est une structure dans laquelle l'agent evolue. Un agent va agir sur son environnement et l'environnement va agir sur l'agent.

On retrouve cette notion de boucle de retro-action dans la « commande » de Francisco Varela [Varela, 19 89].

Fig.10 :Shema represente la notion de boucle.

Cette structure peut etre centralisee et on la represente comme un bloc monolithique. Elle peut aussi etre formee de cellules reunies en reseau et on la represente sous forme d'un automate cellulaire. On parle dans ce dernier cas d'environnement distribue. Chaque cellule se comporte comme un environnement centralise en miniature.

Ce qui distingue un environnement distribue d'un environnement centralise tient en quatre points :

ü L'etat de la cellule depend des autres cellules qui l'environnent et donc aussi des influences produites par les agents dans les cellules voisines.

ü La perception des agents s'etend generalement au-dela d'une cellule , ce qui fait qu'il n'est pas possible d'envoyer a l'agent uniquement les informations de l'etat de la cellule sur laquelle il se trouve.

ü Les agents se deplacent de cellule en cellule , ce qui fait qu'il faut gerer les liens que les agents entretiennent avec une cellule particuliere.

ü Des signaux peuvent se propager de cellule en cellule. Cette propagation prend un certain temps et il faut alors synchroniser le deplacement des signaux avec les mouvements des agents.

10. Communication entre les agents

10.1. Communication asynchrone :

Reponse non donnee immediatement. On demande et on n'attend pas la reponse, on fait autre chose en attendant.

10.2. Communication synchrone :

La communication synchrone est celle que l'on a le plus l'habitude de manipuler : c'est, par exemple , un appel de methode. Un objet demande quelque chose a un autre objet et attend la reponse avant de poursuivre son execution.

10.3. Communication directe (monocast) :

On discute directement d'un agent avec un autre agent : les deux agents sont en communication directe. En fonction des implementations, les deux objets se "connaissent" directement via leurs references, connaissent un proxy de l'objet ou ne connaissent que le nom de l'objet et utilisent les services d'un facteur pour delivrer le message. Les diverses implementations dependant du niveau d'independance que l'on veut donner aux agents.

10.4. Communication en groupe de diffusion (multicast) :

Inscription a une liste de diffusion et reception de tous les messages qui y sont associes (utilisation des sockets multicast).

La difference entre la communication directe et les listes de diffusion, est exactement la meme que celle qui existe entre le mail et les mailing-list. (On peut noter que les listes de diffusion s'apparentent a la technologie push.)

Dans le cas ou plusieurs listes existent, il est possible de les structurer sous forme d'une liste ou d'une arborescence. Cette derniere possibilite est beaucoup plus souple. De meme un objet partage peut gerer la liste des sujets et en ajouter a la demande d'un utilisateur.

Un cas particulier de la communication multicast est la communication broadcast. La communication broadcast consiste a envoyer un message a tous les agents du SMA. Ceci permet, par exemple , a un agent d'indiquer sa presence aux autres agents. Ce type de communication s'implemente tres facilement si l'on dispose d'une couche de communication multicast.

Note : Les sockets multicast sont basees sur le protocole UDP. Ce protocol se situe un niveau en dessous les sockets TCP/IP et ne garantie pas la reception des donnees envoyees. Il se peut donc que certains messages envoyes via les multicast sockets n'arrivent jamais.

10.5. Transport des messages :

Le transport des messages est un point important dans les SMAs : les agents "dialoguent" uniquement par echange de message, donc les performances du transport de messages influencent directement les performances du SMA.

Le transport des messages peut se faire de diverses manieres :

- a l'aide d'objets CORBA ou des sockets pour la couche de transport des donnees.

- D'autres systemes proprietaires permettent aussi de transporter des messages : PRC en C/C++ , RMI en Java, COM/DCOM sous Windows...,

- Par appel de methode directe sur l'agent ou appel de methodes sur un objet proxy de l'agent (celui-ci permettant aux autres objets/agents de ne jamais connaitre directement l'agent) ,

- Par utilisation d'un MOM (Message Oriented Middleware) qui agit comme un facteur et distribue les messages aux agents interesses.

Nous venons d'evoquer les methodes de transport susceptibles d'etres utilisees pour la communication directe entre deux agents, pour la communication multicast, on peut rajouter d'autres points :

- la gestion des differents sujets des listes de diffusion,

- la diffusion des messages d'un point de vue materiel : on peut utiliser la couche de transport de messages directs ou utiliser des protocols multicast, comme les multicast socket. Il faut aussi noter que dans le cas d'une implementation reseau , il faut definir un "reseau virtuel" logiciel au-dessus de la couche reseau materielle. En effet il faut pouvoir donner une adresse (equivalent a de l'adresse IP pour les machines) a tous les agents presents dans le systeme. Il faut aussi pouvoir router les messages afin que n'importe quel agent puisse dialoguer avec n'importe quel(s) autre(s) agent(s). Plusieurs solutions sont envisageables pour resoudre ce probleme :

- Un objet distribue unique qui attribue les adresses (objet CORBA par exemple) et qui gere le routage des messages,

- Une architecture du type reseau Ethernet (il me semble) , c'est a dire avec des routeurs (gateway) a differents niveaux. Par exemple un routeur par SMA puis un routeur pour un groupe de SMA. Cette architecture peut etre auto-configurable (en se basant en partie sur les adresses IP des machines par exemple) ou etre configuree par des fichiers d'initialisations par exemple.

11. Format d'échange des données

11.1. Format XML (description de la forme)

XML : permet de decrire des structures de donnees aussi bien que de representer des donnees. Ceci permet donc au langage XML d'être un bon candidat pour l'echange de donnees entre les differents agents du systeme.

Plusieurs solutions se presentent tout de meme pour l'echange de donnees avec XML : Les donnees que l'on echange n'ont pas une structure fixe (a priori), il faut donc :

- Soit decrire la structure des donnees dans le document XML puis construire un objet qui puisse accueillir ces informations ;

- Soit definir une bibliotheque d'objet qui sont susceptibles d'etres echanges ,

et se referer a cette bibliotheque lorsque l'on echange des informations.

Les deux solutions semblent envisageable et presentent chacune leurs

avantages et leurs inconvenients.

Il faut noter que l'utilisation de langages differents entraine d'autres problemes, notamment sur les types de base : un entier n'a pas la meme plage de valeur

dans tous les langages , etc.

11.2. Format ACL / KIF / KQML (description du fond)

KQML (Knowledge Query Modeling Langage) :

Est un langage qui permet de definir un moyen de communication uniforme entre les divers acteurs du systeme multi-agents. Ce langage , contrairement a XML decrit la forme dont les donnees sont echangees (du pseudo-lisp) mais aussi le fond, c'est a dire les informations a mettre dans le message. Meme si l'on utilise XML pour la forme, pour le contenu du message il peut etre interessant de regarder ce qui a ete fait avec KQML , Le nom de l'expediteur , du destinataire , le sujet du message, l'intention du message et/ou le type du message, la priorite du message, la date d'emission , la duree de validite (dans le cas d'une application oil la notion de temps est importante) le type de contenu de message, le contenu du message, etc.

FIPA-ACL :

Ces dernieres annees , KQML semble perdre du terrain au profit d'un autre langage qui est FIPA-ACL qui est plus riche semantiquement et dote d'une liste plus reduite de performatifs et d'une semantique plus precise que celle de KQML.

Theorique , FIPA-ACL s'inspire de la theorie des actes de langage; d'un point de vue plus technique, le message est egalement une chaine de caracteres possedant une syntaxe -à la LISP -(paires de parentheses) commencant par un nom de performatif et suivi par une liste de couples attribut-valeur.

FIPA-ACL s'appuie sur la definition de deux ensembles :

- Un ensemble d'actes de communication primitifs , auquel s'ajoutent les autres actes de communication pouvant etre obtenus par la composition des ces actes de base.

- Un ensemble de messages predefinis que tous les agents peuvent comprendre.

FIPA-ACL possede 21 actes communicatifs.

Ces actes communicatifs peuvent etre groupes selon leurs fonctionnalites de la facon suivante :

· Passage d'information: inform*, inform-if (macro act) , inform-ref (macro act) , confirm*, disconfirm*;

· Requisition d'information : query-if, query-ref, subscribe ;

· Negociation : accept-proposal, cfp , propose, reject-proposal ;

· Distribution de tiches (ou execution d'une action) : request*, request-when , request-whenever, agree, cancel, refuse ;

· Manipulation des erreurs : failure, not-understood.

KIF (Knowledge Interchange Format ):

Les agents ont besoin de comprendre le contenu des messages qu'ils recoivent. Ceci est possible par l'intermediaire de KIF.

KIF est un langage logique pour la description dans le cadre de systemes experts, bases de donnees ,... il a ete concu comme langage intermediaire , lisible par un programme et par un humain.

KIF est une version prefixee du calcul des predicats du premier ordre. La description du langage inclut une specification pour la syntaxe et une pour la semantique.

Exemple: (> (*(width chip1) (length chip1)) (*(width chip2) (length chip2))).

12. Cooperation

Il existe plusieurs points de vue sur la cooperation, selon que l'on considere que la cooperation est une attitude des agents qui decident de travailler en commun ou que l'on se pose comme un observateur qui interprete a posteriori les comportements.

- La cooperation comme attitude intentionnelle :

La cooperation est caracteristique d'une attitude (posture) des agents. On dit que des agents cooperent s'ils s'engagent dans une action commune apres avoir identifie et adopte un but commun.

Pour quelques chercheurs , il y a cooperation si les agents s'engagent dans une action et identifient un but commun , c'est-a-dire reconnaissent que les autres agents sont engages dans le meme but.

- La cooperation du point de vue de l'observateur :

On considere la cooperation comme une qualification de l'activite d'un ensemble d'agents par un observateur exterieur qui n'aurait pas acces aux etats mentaux des agents.

En tant observateur , on observe un certain nombre de phenomenes que l'on utilise comme des indices d'une activite de cooperation.

Voici quelques d'indices proposes par T. Bouron pour qualifier les activites de cooperations:

-Le degre de parallelisation , qui est fonction de la repartition des tiches et de leur resolution concurrente.

- La robustesse , qui concerne l'aptitude du systeme a suppleer la defaillance d'un agent. - La non redondance des actions, qui caracterise le faible taux d'activites redondantes. - La non persistance des conflits , qui temoigne du faible nombre de situations bloquantes.

Il existe deux indices qui semblent necessaires et suffisants pour caracteriser s'il y a ou non activite de cooperation :

1. L'ajout d'un nouvel agent permet d'accroitre differentiellement les performances du groupe.

2. L'action des agents sert a eviter ou a resoudre des conflits potentiels ou actuels.

13. La coordination

13.1. Definition :

La coordination d'actions est l'ensemble des activites supplementaires qu'il est necessaire d'accomplir dans un environnement multi-agents et qu'un agent poursuivant les memes buts n'accomplirait pas.

Exemple : les processus informatiques doivent synchroniser leurs actions lorsqu'ils accedent a des ressources communes de maniere a ce que le systeme reste dans un etat coherent.

La coordination d'actions est necessaire pour quatre raisons principales:

1. Les agents ont besoin d'informations et de resultats que seuls d'autres agents peuvent fournir,

2. Les ressources sont limitees , il est alors necessaire de coordonner les attitudes des agents pour eviter les eventuelles collisions d'acces ,

3. On cherche a optimiser les couts en eliminant les actions inutiles et en evitant les redondances d'action ,

4. On veut permettre a des agents ayant des objectifs distincts mais dependant les un des autres de satisfaire ces objectifs et d'accomplir leur travail en tirant eventuellement partie de cette dependance.

14. Négociation

14.1. Definition :

La negociation est une activite qui consiste a echanger des informations entre agents afin d'aboutir a un compromis mutuellement acceptable.

Les chercheurs en IAD utilisent la negociation comme un mecanisme pour coordonner un groupe d'agents. Differentes approches ont ete developpees en s'appuyant sur la riche diversite des negociations humaines dans divers contextes.

Un des protocoles les plus utilises pour negociation s'appuie sur une metaphore organisationnelle: le protocole du reseau contractuel (contract-net) a ete une des approches les plus utilises dans les SMAs.

15. Champs d'application des SMAs.

15.1. Simulation

Etudes de phenomenes complexes du monde reel : ethologie , scoiologie , economie environnement.

Representer et simuler des systemes sociaux ou naturels faisant intervenir un grand nombre d'individus

- Ecosysteme avec pecheurs, bancs de poisons et polluants ,

- Societe d'insectes : construction fourragement chez les fourmis , araignees , termites abeilles ...

- Formation d'un embouteillage , dynamique d'opinion ...

· Comprehension des interactions entre humains : simulations comportementales-explication de l'impact de comportement individuel sur le niveau global

- Etude de clienteles

- Integration de malades mentaux

· Modéliser des environnements virtuels : Jeux video (massivement //) multiJoueur, cinema (Massive), formation sur des environnements pour activités collectives.

15.2.Resolution de probleme

· Controle de processus distribue sans centralisation.

· Supervision d'un atelier de production: plusieurs machines, plusieurs pieces, plusieurs usinages , ...organisation ? Reorganisation en cas de panne ?.

· Supervision de reseaux de telecommunications : agents de suivi , agents de diagnostic de panne, agent operateur de maintenance.

· reseaux de transport (d'energie , ...) ...

15.3.o Integration >>faire inter-operer des logiciels avec des etres humains et des systemes mecaniques :

· Recherche et filtrage d'informations sur le Web: agregation de services
(ex : organisation voyage : billet train, chambre d'hotel , billet musee , ...)

· informatique diffuse ou intelligence ambiante, cpervasive computingo : monde informatique ouvert, capteurs ,

-Militaire , surveillance ,

-Social, surveillance des personnes agees a domicile ...

16. Exemple de systèmes multi agents (commerce electronique)

16.1. Les agents dans le commerce electronique

· Les agents d'analyse de la demande des consommateurs :

Ce sont les agents les plus importants , sont ceux qui s'adressent aux consommateurs , ceux qui analysent la demande globale pour adapter leur offre aux besoins du marche.

Voici les differentes fonctions qu'ils rempliront pour satisfaire au mieux les besoins du client :

1°) enregistrement du profil et des preferences de l'acheteur :

Informations generales (gouts, type de produits consommes, statut, professions...) ceci permettra :

ü Un accueil personnalise et guidage

ü Des propositions commerciales personnalisees.

2°) enregistrement des demandes successives d'un consommateur :

Il est necessaire d'enregistrer les demandes d'un consommateur pour l'analyser pour suivre en temps reel l'evolution du profil des consommateurs et de mieux donner :

ü Une synthese des demandes successives des consommateurs

ü Une analyse de la demande dans le temps tests ponctuel (ex : etude de l'impact micro-promotions ne durant que quelques minutes pour connaitre la reactivite des clients ou de leurs agents).

3°) Recommandation sur l'evolution de l'offre commerciale :

Les agents d'analyse de la demande auront acces a des statistiques sur la demande globale des consommateurs et seront a meme d'analyser les raisons des leurs succes ou de leurs echecs pour proposer des recommandations quant aux orientations future de la politique commerciales de leur societe.

v Benefice pour le consommateur : offre mieux adaptee a ses besoins.

v Benefice pour le marchand : meilleure connaissance de ses clients, reactivite plus grande.

· Les agents dédiés a l'analyse de l'offre :

L'agent intelligent peut prendre en charge a la place de l'utilisateur la recherche et la negociation des prix de produit pendant que celui-ci se consacre a d'autres travaux. Ces agents pourront donc renseigner sur :

ü La disponibilite d'un produit en menant une recherche par marque, recherche par categorie (produit+accessoires).

ü L'identification des distributeurs : localisation d'un distributeur precis Liste integrale ou selective de distributeurs (en fonction des services qu'ils offrent : garantie , facilite de paiement...)

ü En traitant les informations collectees :

Tableaux comparatifs des offres selon differents criteres :

ü Prix

ü Services

ü Avis des autres consommateurs (sur un livre , disque, une automobile,...). En etablissant une preselection automatique d'articles en fonction des preferences du consommateur (priorite au rapport qualite/prix , au service, aux avis des autres consommateurs...)

ü En realisant la transaction :

ü De façon automatique (achat repetitif d'un panier de produits/alimentation , achat des qu'un modele est en solde).

ü Ou semi-automatique : recommandation/suggestions , accords et transaction automatique (ordre d'achat, paiement, reception de la facture et gestion simplifiee de la comptabilite).

v Benefice pour le consommateur :

Minimiser le temps, analyser d'une offre commerciale plus etendue , transparence des marches. Soutien d'un agent qui connait de mieux en mieux ses goats.

v Benefice pour le distributeur :

Localisation plus facile des boutiques, augmentation des ventes pour celles qui parviennent ~ analyser la demande.

· Agents specialise dans la recherche de produits et services :

Ce sont des agents intelligents dedies a la recherche de produits et services. Il suffit de leurs indiquer les outils de recherche auquel ils doivent s'adresser, de taper les mots-cles pertinents et ils se chargeront de se connecter a Altavista, Yahoo ! , Magellan etc.... et rapatrieront automatiquement les documents correspondants aux criteres de recherche sur le disque dur de l'utilisateur.

Ils peuvent egalement verifier a intervalle regulier le contenu d'un site pour un client de tout changement du sur le site (baisse des prix, disponibilites d'un produit).

16.2. Agents existent déJà dans le commerce electronique:

ü Agents du courtage de produits :

Firefly [BIB 01]: aide ces utilisateurs a trouver des produits en utilisant la methode de la bouche a l'oreille en s'aidant des actions d'autres utilisateurs sans s'occuper des caracteristiques de produit. Il est actuellement utilise pour recommander des livres et CDs.

PersonaLogic [BIB 02] : comme Firefly l'agent aide l'utilisateur a trouver le produit qui correspond le plus aux caracteristiques definies , PersonaLogic utilise la recommandation par contrainte et applique le CSP pour atteindre son but.

> Agents du courtage de marchands

Bargain Finder [BIB 02] : developpe par Andersen Consulting, il est parmi les premiers agents qui comparent les prix en ligne , pour cela il interroge les sites offrant ces produits et compare leurs prix.

Jango [BIB 02]: plus avance que Bargain Finder, il utilise le « browser » du client pour lancer la recherche qui s'affichera d'une facon claire.

Kasbah [BIB 03] : concu dans les laboratoires du MIT, il utilise un systeme multi-agents pour la recherche des vendeurs , pour cela un agent est cree et lui assigne des contraintes qu'il doit utiliser pour trouver un acheteur ou un vendeur potentiel. Il est aussi un agent de negociation.

> Agents de négociation :

Tete-a-tete [BIB 04]: les agents de Tete-a-Tete utilisent la negociation cooperative, les agents vendeurs comme acheteurs sont aussi des agents de courtage qui utilisent le CSP pour trouver un produit donne.

AuctionBot [BIB 05]: developpe par l'universite du Michigan, l'utilisateur cree un agent pour vendre un produit en choisissant un type d'enchere donnee. La difference entre un site d'enchere et AuctionBot c'est que ce dernier, met en place une API qui permet la creation de son propre agent.

17. Inconvénients des SMAs

Les systemes multi-agents et malgre leur interet, ils soulevent plusieurs problemes.

-Un probleme important porte sur la definition d'un modele qui assure au modelisateur que l'outil informatique implemente bien le modele que le modelisateur a decrit , et que les consequences observes lors de la simulation sont bien directement des consequences du modele et non le produit d'un comportement non desire du systeme informatique.

-Un autre grand probleme tient dans l'explosion du nombre de communication entre agents pour l'organisation du SMA donc l'augmentation non negligeable des communications. Il arrive frequemment qu'une application SMA soit moins rapide ~ l'execution qu'une application non repartie.

1 8. Conclusion

Les interactions entre les agents et la resolution distribuee qu'elles mettent en place induisent alors une contradiction avec le principe d'autonomie de decision propre au concept d'agent. Les agents peuvent avoir conscience de cette resolution collective (agents cognitifs) ou non (agents reactifs) , mais de toute façon , ils utiliseront ou subiront a un moment ou a un autre des contraintes issues de leurs interactions avec les autres agents du systeme.

Toute la difficulte de concevoir des systemes multi-agents consiste alors a gerer cette contradiction entre le principe d'autonomie des agents et la resolution collective par le systeme qu'ils composent. Tous les agents doivent s'integrer au même systeme pour former un tout coherent resolvant le probleme a traiter, même si les formalismes qui modelisent les differents agents du systeme sont heterogenes. Cette necessite d'integration et d'interaction avec les autres fait intervenir des mecanismes et des notions permettant la coordination de la resolution distribuee du probleme pour obtenir un comportement global coherent et efficace du systeme. Les notions d'interactions et d'organisation permettent d'apprehender cette necessite.

Chapitre IV.

Anal~se et Conception

«Il semble que la perfection soit atteinte, non quand il nji a plus rien a
a~outer, mais quand il ny a plus rien a retrancher »
- Antoine de Saint Exupery.

Résumé : dans ce chapitre, nous presentons la conception de notre prototype. Nous entamons d'abord par une description fonctionnelle du système suivie d'une identification des cinq dimensions proposees par la methode voyelle: agent, interaction, environnement, organisation et utilisateur. Et nous terminerons par la modelisation de notre système avec le langage AUML.

1. Introduction

Notre projet qui s'inscrit dans le domaine de vente aux enchères en ligne par système multi-agent, vise a aider l'utilisateur du système durant tout le processus de son activite (achat \ vente). A fin d'atteindre ce but, nous procederons en mettant en application les notions presentees precedemment a travers :

- La description fonctionnelle du systeme, - La conception du Systeme Multi-Agents .

1.1. Description fonctionnelle du système (Besoins fonctionnelles)

Notre Travail consiste a concevoir et réaliser un système de vente aux enchères a

base de la technologie Agent, ayant comme but essentiel d'assurer cette activité en présentant les fonctionnalités suivantes :

1.1.1. Front-office : qui est le programme qui va interagir avec le client, Cette partie se decompose en plusieurs modules qui permettent aux clients et prospects de :

· Rechercher un produit a negocier,

· Entrer en negociations,

· Valider l'achat d'un produit.

1.1.2. Back-office : qui est une la partie invisible du système a laquelle le client n'a pas accès et qui permet :

· Négocier selon un protocole anglais le prix d'un produit,

· Mise a jour de l'information de vente d'une enchère spécifique,

· /nformer le client gagnant de l'enchère,

· supprimer une enchère vendu du système.

1.2. Choix de la méthode

Parmi les méthodes qui couvrent le mieux le cycle de développement d'un systèmes multiagents,nous avons choisi la méthodologie Voyelles pour modéliser notre système. Ce choix se justifie comme suit :

· Cette méthode repose sur la decomposition du système en cinq dimensions : Agent,

Environnement, /nteraction, Organisation, Utilisateur (cette dernière est créée récemment). Cette décomposition permet de modularisé le système, simplifier sa construction et offrir une meilleure réutilisation du code.

· Voyelles n'est couplée a aucune notation ni plateforme, ce qui offre la possibilité d'utiliser le langage AUML (Agent Unified Modeling Language : cf. Annexe B), qui est une extension du langage UML, dans la phase de conception du système et la plateforme Jade pour réaliser le système.

· Voyelles repose sur des principes purement multi-agents.
> Principes sur la methode « Voyelles »

Le processus de développement avec la méthode Voyelles (ou AE/O) comporte trois étapes essentielles :

· ? Analyse : consiste a identifier les cinq composantes : Agent (A), Environnement (E), /nteractions (/), Organisation (O), Utilisateurs (U).

· Conception : il s'agit de choisir les modèles opérationnels des composantes.

· Implementation : consiste en l'instanciation des modèles en utilisant des plateformes et des langages choisis.

Fig.11 : Representation symbolique d'un systè me multi-agents

2. Analyse

2.1. Identification des Agents

Vu que notre systeme s'inspire du modele client / serveur, en peut arranger ces agents en deux grandes classes :

2.1.1. Les agents de la plateforme Client : ce sont les agents qui se trouve sur la machine cliente chaque utilisateur connecte au systeme possede une instance de agents suivant :

> Agent GUI (AGUI) :

o Recoit des commandes de l'utilisateur et agit egalement, il n'a pas le comportement proactif,

o /l fait toutes les actions disponibles dans l'interface utilisateurs,

o Met a jour l'information de l'enchere lorsqu'il recoit des messages de la part d'autres agents.

> Agent negociateur (AN) :

o Négocie d'une manière automatique en faveur de l'utilisateur,

> Agent chercheur (AC) :

o Responsable de rechercher des articles au nom de l'utilisateur.,

o /nforme l'utilisateur si le produit désiré est disponible.

2.1.2. Les agents de la plateforme serveur : ces derniers se trouve sur la machine serveuse, on trouve egalement :

> Agent Principal (AP):

o Responsable de la creation des comptes, de l'authentification,

o Cree de nouvelles encheres, etablie la liste des encheres existantes,

o Cree un agent d'enchere lorsque une nouvelle enchere est ajouter au systeme

o Répond aux questions pour des articles ou des enchères.. > Agent d'enchere (AE) :

o Responsable de la commande d'une enchere particuliere,

o Les utilisateurs s'enregistrent a l'enchere et puis envoient des offres a l'agent d'encheres, L'agent d'enchere informe les utilisateurs enregistrés des changements du prix de l'article.

o A l'extrémité de l'enchère, cet agent informe le gagnant et le vendeur et passe la main a l'agent principal.

o Quand l'enchère est terminée, cet agent est supprimé.

2.1.3. Sche rna general du systerne

Fig.12 : Architecture générale du SMA (1)


· Une autre vue du systerne :

Fig.13: Architecture generale du SMA (2)

Le système, comme illustre dans les figures précédentes, est compose principalement d'un système multi-agents qui accede a la base (BDD clients et Catalogue d'encheres) et qui communique avec d'autres agents (clientl ,client 2) et leur donne possibilité de rechercher éventuellement des produits ,négocier le prix de vente.

2.2. Identification des Interactions

Dans ce qui suis nous utiliserons les abréviations suivantes : Agent GUI = AGUI, Agent chercheur = AC, Agent Négociateur = AN, Agent principal = AP, Agent d'enchere = AE

Comme illustre la schematisation precedente, voici les interactions qui existent entre les differents agents du systeme :

1. Interactions Agent GUI /Agent chercheur :

- L'AGU/ passe une demande de recherche d'un produit a l'AC,

- L'AC informe l'AGU/ sur le resultat de recherche d'un article desire, AC est dote d'un Comportement proactif

- L'AGU/ est responsable de la creation de l'AC.

2. Interactions Agent GUI /Agent Negociateur :

- L'AGU/ passe a l'AN les informations necessaires (Article desire ,Prix max ...)

- L'AN met à jour l'AGUI du prix atteint par l'article désiré.

- L'AGU/ est responsable de la creation et la destruction de l'agent negociateur.

3. Interactions Agent GUI/Agent principal :

- L'AGU/ s'enregistre / se connecte d'aupres l'AP en envoyant les informations Necessaires.

4. Interactions Agent GUI/Agent d'enchere :

- L'AE informe l'AGU/ du gagnant

5. Interactions Agent chercheur/Agent principal : - L'AC passe une requete de recherche a l'AP - L'AP reponde a la requete de l'AC

6. Interactions Agent Negociateur/Agent d'enchere : - L'AN negocie le prix (Augmentation raisonnable du prix) avec sa reciproque l'AE

- Apres la MAJ du prix par AE, ce dernier informe tout ces reciproques (AN) de cette MAJ

7. Interactions Agent principal/Agent d'enchere :

- Lorsque une nouvelle vente est ajoute au systeme , l'AP cree un AE responsable.

2.3. Environne ment du systeme

C'est l'environnement physique support des actions des agents et disposant des ressources.

L'environnement de notre SMA est constitue de :


·:* Les bases de donnees du site d'encheres (BDD clients+Catalogue des produits a vendre).

Re marque: L'environnement de chaque agent est constitue de l'environnement du SMA interne et les autres agents du SMA externe (clients+serveur).

2.4. Organisation

< L'organisation est une structure decrivant comment les membres de l'organisation sont en Relation et interagissent afin d'atteindre un but commun >.

L'organisation structurelle est donnee par la figure suivante.

Les /HMs du systeme represente ses points d'interaction avec les utilisateurs du systeme (Client / Admin) . La page d'accueil du client lui permet de se connecter ou de s'inscrire, une fois que le client s'est connecte l'Agent GU/ lui cree un agent de recherche et un Agent Negociateur .

Dans le serveur on trouve un Agent Principal et les Agents d'Enchères, L'administrateur a son tour possède une interface lui permettons de manipuler le catalogue des produits ainsi que la BDD des clients, de changer les informations du Serveur de données et de lancer ou arreter le service.

Fig.14: Organisation du systeme multi-agents.

2.5. Utilisateurs

Nous avons identifie deux types d'utilisateurs du systeme :


·:* Client : C'est l'utilisateur le plus important car il s'agit d'un systeme oriente client. /l

communique avec le systeme par l'intermediaire de son Agent GU/ . Parmi ses taches :

- /nscription et connexion au systeme via l'Agent principal (plateforme serveur),

- Recherche de produits,

- participer a une enchere et entrer en negociation.

- Valider l'achat d'un produit.


·:* L'utilisateur interne (Admin): c'est l'utilisateur qui interagit avec le Back-office du systeme, il est charge de la :

- Gestion du catalogue des produits.

3. Conception

Apres avoir detaille chaque composant du systeme, nous allons decrire dans cette section le scenario du comportement du systeme sous la forme d'un pseudo algorithme :

3.1. Scenario du processus de déroulement

Debut

- L'utilisateur se connecte au systeme via son application ;

-Si L'utilisateur existe déjà alors - chargement de l'interface ;

- L'utilisateur specifie ses criteres de recherche et lance l'operation;

- Creation de l'AC ;

- L'AC envoie une requete de recherche d'un produit a L'AP du serveur ;

- Si (le produit existe) alors

- L'AC informe L'utilisateur ;

// Prix_max : designe la plus grande somme que l'utilisateur peu pays pour l'article(attribut prive du client)

- Creation de L'AN // AN : representant du client
- L'AN d'une maniere automatique prend les information nécessaire (produit a

négocier, prix_max) et entre en négociation avec L'AE spécifique ;

- Tant que Non(Contraintes de terminaison d'enchère) faire

- Si (Prix_max > Prix_actuel) alors

- AN envoie une proposition de prix meilleur a AE

- AE met a jour le prix Actuel et le diffuse pour tout les ANs Concerné ; - AN met a jour L'AGU/ du prix atteint

Sinon

- en informe le client que l'enchère est terminée négativement

Fin TQ

- L' AE déclare le vainqueur et lui envoie un message d'information ;

- L'AE informe tout les ANs de la fin du processus et passe la main a L'AP;

- AN informe le client par l'intermédiaire de son AGU/ (ce dernier l'informe Visuellement le client) .

- Le Client se charge du processus de paiement (Transaction bancaire) . - L'AE ainsi que l'enchère sont supprimés par l'AP

Sinon

// /l s'agit d'un nouvel utilisateur

- Lors de la déconnexion du client l'AC et AN sont supprimés

Fin

> Pourquoi AUML ?

Les agents ont des activités autonomes et des buts ,c'est ce qui diffère un agents d'un objet ,par conséquent UML est insuffisant pour modéliser les agents et les systèmes multi-agents et c'est pour cette raison que nous avons utilisé AUML (Annexe B) pour modéliser notre système .

3.2 Diagrammes de cas d'utilisations

Ce prototype est réalisé avec l'environnement de développement Enterprise architect 6.5 version prof supportant les normes UML 2.0.

a. Cas d'utilisation « Vue globale du systeme»

Ce diagramme de cas d'utilisation présente 3 types d'acteurs : client, banque et administrateur. L'utilisateur peut s'abonner pour devenir un client. Le client est un visiteur déjà inscrit sur le site de vente aux encheres. /l peut chercher et enchérir produit, une fois identifié sur le site. L'administrateur peut gérer les encheres ainsi que les clients, apres s'etre identifié sur le site.

uc SMA_Enchéres

Client

Banque

Acheter produit

Gérer
Catalogue
produits

Chercher produit

Enchérir
produit

Admin

Fig.15: Diagra mme de cas d'utilisation <SMA d'encheres> (Vue globale). pres avoir raffiné chaque cas a part on obtient les cas suivant :

b. Cas d'utilisation « Recherche produit »

Une fois inscrit dans le système, le client introduit dans un formulaire ses besoins (intitulé, catégorie , prix_min ,prix_max , Date_debut , Date_fin) et lance une opération de recherche du produit demandé en se basant sur ses criteres introduits. Une fois celui-ci trouvée,

le résultat est affiché au client. Le diagramme ci-apres illustre cela :

Libelle Type Date debut

_ Date fin

_ Prix min

_ Prix --max

Verifier disponibilite

Prenom

email

Activite

«include»

Nom

Specifier
criteres

Engager un AC

Remplire formulaire

Env oyer requete

Date_naiss

«include»

«extend» «include»

S'authenfifier

Mot passe

«include» «include»

«extend»

Client

Pseudo

Inscription

Chercher produit

uc Chercher produit

Fig.16 : Diagra mme de cas d'utilisation <rechercher produit>

c. Cas d'utilisation « Négocier produit (Enchérir) »

Lorsque le produit désiré est disponible l'utilisateur peut en gager un AN qui s'occupe de la négociation du prix ce dernier doit d'abord prendre les critères nécessaires (libellé, prix_max ,prix (prix actuel) ) après il s'enregistre a l'enchère et entre se met a l'action en envoyant des proposition

uc Négocier produit

Client

Négocier produit

Engager un AN Env oyer une

Prendre les
critéres

«include»

«include»

Libellé Prix_max Prix

«include»

S'enrégistrer a
l'enchére

«include»

proposition

Fig.17 : Diagra mme de cas d'utilisation <Négocier produit>

d. Cas d'utilisation « Achat produit »

Ce cas aura lieu lorsque le client est le gagnant de l'enchère, alors il est obligé a payer le produit en remplissant ses informations bancaires (Num_cb, Code secret du compte) et demander la transaction, l'AP du serveur vérifie la validité de la transaction et a son tour envoie un accusé de réception au client.

uc Achat produit

Client

Envoie Acusé

de réception «include» par AP «include»

Valider Achat

Introduire informations bancaires

«include»

Num_cb

Code_secret

«include»

Valider transaction

«include»

Transaction

Prix

Supprimer enchére

Banque

Fig.18: Diagra mme de cas d'utilisation <Achat produit >

e. Cas d'utilisation «Gérer le catalogue de produits»

La gestion de stock est une tache obligatoire est permanente que l'Administrateur doit effectuer, Ce dernier peut ajouter, modifier ou supprimer des produit du catalogue,

Ou chacun de ces opérations est effectué par l'AP.

uc Gérer catalogue produits

Gerer
catalogue

«include»

Se connecter

Admin

code_produit

Ajouter
enchére

Modifier
enchére

Supprimer
enchére

Libellé

«include»«include»«include»

Type

MAJ BDD par
AP

Prix_init

«extend» «extend»

Durée

Ajouter AE

extension points: Ajouter une enchére

Supprimer AE

extension points: Supprimer une enchére

Fig.19 : Diagra mme de cas d'utilisation < Gerer le catalogue de produits >

3.3. Diagrammes de sequences

Dans ce qui suit nous allons representer les differentes interactions dans le systeme en mettent en oeuvre les diagrammes de sequences.

a. Diagra mme de sequences « Authentification »

sd Authentification

AGUI

AP

BDD

Saisie (id,mot_passe)

Envoie (infos)

Informer (Exist)

alt Disponibilité client

[Existe=true]

Chargement d'interface

[else]

Message d'erreur

Vérification et validation (infos)

Réponse

:Client

Requete d'authentification

Demande des infos

Fig.20: Diagra mme de sequences < Authentification >

b. Diagra mme de sequences « Inscription »

sd Inscription

AGUI

AP

BDD

Demande d'inscription

Saisie des infos

Chargement d'interface

Chargement d'interface

Requéte d'inscription

Demande des infos

Envois (infos)

Confirmation

Ajouter client (infos)

:Client

Fig.21 : Diagramme de séquences < Inscription >

c. Diagra mme de sequences « Chercher produit »

sd Chercher produit

AGUI

AP

BDD

Lancer une recherche

Chargement d'interface

Introduire les infos

Créer()

AC

Prendre infos produit()

Informer (resultat)

Requete de recherche (infos)

Informer (resultat)

Envoie_acusé_réception

Chercher (infos)

Réponse (resultat)

:Client

Fig.22: Diagra mme de sequences < Chercher produit >

d. Diagra mme de sequences « Gestion du catalogue »

sd Gestion du catalogue

:Admin

Choix de l'operation et saisie d'infos

alt Manipulation BDD

[ops=ajout]

[ops=modif]

[ops=suppr]

Gui_Admin

Requete de modification (infos)

Requete de suppression (infos)

Requete d'ajout (infos)

Informer (resultat)

Informer (resultat)

Informer (resultat)

AP

Creer AE(prod)

Détruire AE (prod)

Supprimer produit (infos)

Modifier produit (infos)

Ajouter produit (infos)

BDD

Fig.23 : Diagra mme de sequences < Gestion du catalogue produit >

e. Diagra mme de sequences « Négocier produit»

sd Négocier produit

:Client

Lancer opération Négocier

AGUI

Prendre_criteres()

Créer()

Informer (echec)

Detruire()

[Enchére_terminé=faux]

loop Conditions de l'enchére

alt Condition d'une propsition

[Prix<Prixm_max]

[else]

AN

Demande d'inscription (infos)

Informer_MAJ_enchere(prix)

Réponse_proposition_recu

Envoie_proposition

Reponse

AE

Modifier prix enchére()

*

BDD

Fig.24 : Diagra mme de sequences < Négocier produit >

f. Diagra mme de sequences «Valider achat »

A la fin d'une vente, l'administrateur (qui joue le role du vendeur) peut accepter ou refuser la vente. Si celle-ci est acceptée, elle pourra etre considérée comme un contrat qui lie l'acheteur et le vendeur.

Pour payer un objet que l'acheteur a acheté, il faut entrer en contact avec le vendeur, lui demander le montant total (frais de port inclus) s'il n'est pas déjà précisé et lui envoyer

directement l'argent via un des moyens de paiement qu'il accepte. Pour contacter le vendeur, il faut utiliser l'e-mail du vendeur présenté en fin d'enchères. Le vendeur n'enverra l'objet qu'une fois le paiement recu. Une fois l'objet recu l'acheteur peut laisser une évaluation au vendeur qui en fera de même pour l'acheteur.

Note :

Litige : Un litige correspond a un non respect du contrat entre l'acheteur et le vendeur : produit non envoyé, produit envoyé défectueux, produit ne correspondant pas a celui acheté, non paiement, refus de l'achat.

sd Valider achat

AGUI

AE

AP

BDD

Informer (Gagant)

Informer_terminaison_(infos)

Detruire()

Demende payement

Chargement d'interface

Saisie_infos_banc

créer()

Transaction
bancaire

Verifier transaction ()

Supprimer produit (infos)

Demande transaction (infos)

MAJ_etat_enchére (etat=vendu)

:Client

Fig.25 : Diagra mme de sequences < Valider achat >

3.4. Diagrammes de classes

3.4.1. Conception de la base de donnees

a. Identification des classes

Apres avoir enumerer les entites que la realisation du systeme exige nous avons trouve ce qui suit :

· Entite <Client> : cette classe contient les informations sur les clients, une instance de celle ci permet de creer un nouveau client, modifier ou supprimer un ancien.

· Entite <Produit> : elle contient les informations sur les produits existant dans le catalogue de l'entreprise, Une instance de cette classe permet de creer un nouveau produit, En modifier ou en supprimer un.

· Entité <Type> : contient l'ensemble des types de produits.

b. Details des classes

Classe

Attribut |
méthode

Description

Client

pseudo mp

nom

prenom date_nais

adresse activité email

état

Ajouter() Modifier() Supprimer()

Pseudonyme

Mot de passe

Nom du client
Prénom client

Date de naissance Adresse du client Activité du client Un Email valide du client

Connecté | deconnecté

Ajouter un client Modifier un client Supprimer un client

Produit

code_prod libellé_prod prix_init

prix

date_d date_f etat_prod

Ajouter() Modifier() Supprimer() Chercher()

code du produit Libelle du produit Prix initial du produit Prix actuel

Date de mise en vente Date de fin de la vente vendu | non vendu

Ajouter un produit

Modifier un produit

Supprimer un produit

Effectuer une recherche d'un produit

Type

code_type

code du produit

Chapitre IV Analyse et conception

 

nom_type

nom du type

Tab.5 : Description des classes

c. Associations entre classes

Association

Classes incluses

Cardinalités

Acheter

Client

0..1

 

1

Inclure

Type

1..n

 

1

 

Tab.6 : Description des associations

d. Model UML

Le diagramme UML, illustre par la figure suivante, donne un apercu sur les classes citees precedemment, il presente 3 classes et 2 associations.

class BDD

Client

+ pseudo: String

+ mp: String

+ nom: String

+ prenom: String

+ date_nais: Date

+ activité: String

+ adresse: String

+ email: String

+ etat: boolean

+ Ajouter() : boolean {query}

+ Modifier() : boolean {query}

+ Supprimer() : boolean {query}

Porduit

+ code_prod: long

+ libélle_prod: String

+ prix_init: float

+ prix: float

+ date_d: Date

+ date_f: Date

+ etat_prod: boolean

+ Ajouter() : boolean {query}

+ Modifier() : boolean {query}

+ Supprimer() : boolean {query}

+ Chercher() : boolean {query}

1..*

Acheter
1 0..1

Inclure

1

Type

+ code_type: int

+ nom_type: String

Fig.26 : Diagra mme de Classe UML < Entités de la BDD>

e. Passage au model relationnel

- Client (pseudo , mp , idGprod* , nom , prenom , date_nais , adresse , activité , email , état ) - Produit (codeprod , pseudo*, mp* , codetype*, libellé_prod , prix_init , prix , date_d , date_f , etat_prod )

- Type (code_type , nom_type)

3.4.2. Classes internes du systeme

Pour ce qui suit la symbolisation des messages entres agents est donnée comme suit :

Message envoyé Message recu

a. Classe AGUI (Agent d'interface)

Cet agent recoit cinq messages et envoie deux messages.

Key* signifie que la clé est étrangere

b. Classe AC (Agent Chercheur)

Cet agent recoit un message qui contient le résultat et envoie deux messages.

c. Classe AN (Agent Négociateur)

Cet agent envoie et recoit trois messages.

d. Classe AP (Agent Principal)

L'agent principal comme son nom la plus part du travail se deroule autour de cet agent, il envoie et recoit cinq messages.

e. Classe AE (Agent d'enchère) :

L'agent d'enchere recoit deux messages et envoie cinq messages. 3.4.3. Diagra mme de classe d'agents

AE / Vendre un
produit

class Diagramme d'agent

«create»

«extends»

AP / gerer le catalogue
, responsable de
ventes

«implements»

«interface»

Protoco/Se/veur

«extends»

AC / Recherche
des produits

extends

implements

«Abstract»
Behaviour Jade

«create»

implements

«interface»
Protoco/Cfient

Agent Jade

extends

AGUI / Agent de ('interface client

extends

1 «create»

1

AN / negocier le
prix

4. Conclusion

Dans ce chapitre nous avons modélisé notre système, le but le plus important était d'introduire la notion des systèmes multi-agent dans la pratique des ventes au enchères afin d'automatisé quelque taches, Nous présenterons dans l'étape suivante a l'aspect technique de cette étude.

Chapitre V.

REALISATION

~Le privilege des grands, c'est de voir les catastrophes d'une terrasse » --Jean Giraudoux.

Résumé : Ce logiciel de la vente aux encheres via Internet traite les offres des clients et apres un certain temps et sous le protocole d'enchere anglais choisit le gagnant. Cette opération d'enchere s'appuie sur notre plateforme SIVLA.

1.Introduction

Préalablement a la réalisation du projet, nous sommes passés par une phase d'analyse et conception pour laquelle nous avons défini les besoin. Nous avons utilisé AUIVLL.

Remarque : dans ce qui passé nous avons proposé une architecture qui peut etre complete pour un systeme de vente aux encheres en ligne comprenant le paiement en ligne, mais nous avons réalisé juste la partie la plus importante dans notre sujet, qui est le processus d'enchere selon le modele anglais a base d'agents.

2.Environnement de développement

2.1. Choix de la plateforme multi-agents

JADE (cf. Annexe A) est une plateforme de développement d'agents gratuits et Open Source développée par CSELT(01) et qui résulte principalement d'une activité de recherche. JADE comprend deux composantes de base : une plate-forme agents compatible FIPA et un paquet logiciel pour le développement des agents Java, les 3 roles principaux définissant une plate-forme multi-agents sous la norme FIPA sont :

AMS (Agent Management System) : il fournit le service de nommage, assure que chaque agent possède un nom unique et représente la fabrication des agents. En effet il peut créer et tuer un agent dans un conteneur de la plate-forme.

DF (Director Facilitator) : il fournit le service dit de «page jaune». Il a pour but d'aider a la recherche d'un agent grace a son nom ou encore a ses compétences par exemple.

ACC (Agent Communication Channel) : il fournit la route (routage des messages) pour les interactions de base entre les agents dans et hors de la plate-forme.

10) Centro Studi E Laboratori Telecomunicaioni, traduit par Centre d'Etude et Laboratoire de Tilicommunication : btt p://jade.cselt.it

-Pourquoi jade ?

Nous avons utilise jade a cause de sa richesse et la puissance de son API ,

les agents developpes sous la plate-forme Jade, sont entièrement ecrits en Java,

Jade assure une communication transparente par echange de messages dans le langage normalise FIPA-ACL,

Elle g~re le cycle de vie des agents de leurs naissances jusqu'a leurs morts (creation, mort,reprise,
·).

2.2.Choix du langage de la programmation

Ce logiciel, ecrit en JAVA, et la justification c'est que :

n Les Agent developpes sous jade sont entierement ecrits en JAVA. Ce langage s'est donc impose comme etant une consequence du choix precedent,

n JAVA est un langage multiplateformes qui permet aux concepteurs, selon le principe: « write once, run every where », d'ecrire un code capable de fonctionner dans tous les environnements (quelque soit le systeme d'exploitation),

n JAVA est un langage oriente objets, simple qui reduit le risque d'erreurs et d'incoherence,

n JAVA est dote d'une riche bibliotheque de classe comprenant la gestion des interfaces graphiques (fenetre, boite de dialogue),

n Un acces simplifie aux bases de donnees, soit a travers la passerelle JDBC-ODBC ou a travers un pilote JDBC specifique au SGBD,

Après le choix du langage, nous avons deux possibilites pour developper les interfaces

du SMA, soit des applications qui s'executent dans un browser (Applets), soit des applications autonomes qui s'executent au moyen d'une machine virtuelle.

L'applet a pour avantage de ne necessiter aucune installation sur le poste de l'utilisateur ; en revanche, une Applet a un champ d'action beaucoup plus reduit pour les raisons de securite. Par ailleurs, le temps de chargement d'une applet peut etre long, les classes Java etant chargees depuis un serveur Internet. Pour ces raisons nous avons choisi de concevoir une application Java plutOt qu'une Applet.

2.3. Choix du SGBD

Nous avons choisi le SGBD , il est base sur une architecture client/serveur.

Les points forts de MySQL sont :

- implementation libre et populaire ;

- facile a mettre en oeuvre ;

Chapitre V. Realisation

- rapide à apprendre ;

- support multi-plateforme ; - fiable et rapide.

2.4. Environnement de programmation

En ce qui concerne l'environnement de développement Java, nous avons choisi NetBeans 6.5.M1 qui est un environnement de développement integre (EDI).

3. Architecture du prototype

3.1. Architecture logicielle

Fig.27 : Architecture logicielle du systeme.

3.2. Caracteristiques du Systeme

ü Portabilité : notre système est multi plateformes, c'est- à-dire qu'il peut etre execute sur plusieurs systèmes d'exploitation.

ü La veille automatique : l'agent d'enchère informe l'agent négociateur dès qu'il y ait un changement de prix actuel. Ceci permet à l'agent d'interface utilisateur d'informer le client de ce changement.

82

4. Réalisation du système

4.1. Les agents de notre système

La creation d'un agent se fait par la programmation d'une classe qui herite de la classe jade.core.Agent. Cette classe doit posseder la methode setup() qui est appelee a l'initialisation de l'agent. A la creation de l'agent, il va lui etre attribue un identificateur a l'aide de la classe jade.core.AID.

Cet objet identificateur est de la forme : < nickname > @ < platform -- name >. On peut acceder a cet identificateur grace a la methode getAID.

Afin d'importer des comportements(behavior) on utilise o import

jade.core.behaviours.Behaviour » qui sont classes en trois categories : OneShotBehaviours, CyclicBehaviour et SimpleBehaviours().(cf. Annexe A).

ü Agent principal et d'enchère dans la plateforme JADE (Serveur)

Fig.28 :AP et AE dans la plateforme jade.

ü Agent GUI , Agent de recherche , Agent de négociation (Client)

Fig.29 :AGUI,AC,AN dans la plateforrne jade

4.2. Les interfaces du systerne

4.2.1. Interface de l'authentification

C'est l'interface où l'utilisateur peut accéder a son compte en remplissant le login et le mot de passe.

Fig.30 : Interface de l'authentification

4.2.2. Interface d'inscription

Cette interface a pour but d'abonnement du client s'il ne figure déjà pas dans la BDD.

Fig.31 : Interface d'inscription.

4.2.3. Interface d'interaction client

Offre a l'utilisateur differentes possibilites pour visionner le catalogue des produits, et d'enter en negociations.

Fig.32 : Interface d'interaction client.

4.2.4. Interface pour proposer des offres

Dans cette interface le client introduit son meilleur prix pour le produit choisie ainsi que la strategie utilise pour les negociations (infos prises en compte par l'AN) , l'agent negociateur

entre a l'enchere de maniere automatique , et si le prix actuel d'enchere dépasse le prix max , le client est informé~

Fig.33 : Interface pour proposer des offres.

4.2.5. Interface pour configurer l'agent negociateur

Fig.34 : Interface pour configurer l'agent negociateur.

4.2.6. Interface de payement

Fig.35 : Interface de payement.

4.2.7. Interface pour l'administrateur :

Cette interface permet :

- Démarrer/Arreter la plateforme Jade

- de manipuler les données aux BDD, il s'agit de trois operations : ajouter, modifier et la suppression

- la configuration du Serveur BDD.

- de visionner les clients du systèmes

Fig.36 : Interface pour l'administrateur.

Ajout d'un produit

Fig.37 : Interface pour ajouter un produit.

ü Suppression d'un produit

Fig.38 : Interface pour supprimer un produit.

ü Modification d'un produit

Fig.39 : Interface pour la modification d'un produit.

ü Suppression d'un Client

Fig.40 : Interface pour supprimer un produit.

ü Visionner les categories

Fig. 41 : Interface pour visionner les categories.

5. Conclusion

Nous avons présenté dans ce chapitre le logiciel que nous avons développé en se basant sur la solution des agents intelligents afin de favoriser la coopération entre ces derniers d'une part et d'introduire indépendance dans la prise de décision de notre système d'autre part. Cette implémentation a prouvé que l'utilisation du paradigme d'agent dans le e-commerce ainsi que la théorie des enchères peut offrir une nouvelle vision. Ce qui nous a fait comprendre le fonctionnement de cette technologie et son utilisation pour aboutir aux objectifs que nous nous sommes fixés.

Conclusion

&

Perspectives

~Les batailles qui mettent en concurrence des
paradigmes ne sontpas de celles qu'on peut arbitrer a
l'aide de preuves » -- .S. Kuhn

Perspectives

Notre travail , d'un point de vue personnel, nous a permis d'acquérir une certaine rigueur méthodologique et nous a permis aussi d'approfondir nos connaissances sur les SMA, la modélisation logicielle et les technologies réseau.

Dans ce travail, nous avons présenté le domaine des agents et systèmes multi agents, défini les applications e -commerce et l'utilisation des agents dans ce domaine en particulier dans les enchères.

Afin de montrer l'apport de ce modèle dans le domaine de vente aux enchères, nous avons développé un prototype de système multi-agents pour les enchères en ligne, ou l'apparition d'interaction et la coopération d'un ensemble d'agents. Ce système est destiné a combler les points suivants :

ü Permet a l'administrateur de déposer des produits a enchérir ;

ü Permet au client de trouver le produit désiré et participer aux enchères.

ü Permet de diminuer le temps de recherche grace a l'utilisation de plusieurs agents donc diminuer le temps de connexion (répartition des taches) ;

ü Automatiser l'enchère aux niveaux de négociations (Agents dédies spécialement a l'enchère et la négociation).

ü Utilisation des stratégies de négociations [Une seul proposition (one shot bid) , 1ere position (Always first ) , Enchérir périodiquement (Periodic Bid) ].

Conclusion

Sans nous projeter davantage dans le futur, les SMA trouvent déjà des applications
dans les télécommunications, le travail collaboratif assisté par ordinateur, la robotique, la

simulation de systèmes complexes, les bases de données réparties (Recherche concurrente ), les systèmes multi -capteurs,

le commerce électronique, la bioinformatique, la planification et la supervision, l'optimisation des problèmes spatiaux etc.

Toutes ces applications montrent a quel point les SMA peuvent trouver une place dans l'industrie logicielle de demain. Ce nouveau concept de modélisation et de programmation devrait s'imposer progressivement mais des efforts sur des méthodologies de conception restent a faire afin de guider le développeur dans l'élaboration de ses futures applications distribuées.

Malgré l'intéret grandissant de la communauté scientifique et commerciale envers les SMA, il est raisonnable de prendre en compte également les problèmes engendrés par la distribution de l'informatique. Ce que l'on gagne par un traitement des taches en parallèle assuré par des

agents intelligents, on le perd par la somme considérable des informations échangées entre agents. En outre le traitement massivement parallèle induit par les SMA montre la faiblesse des architectures matérielles actuelles. Le nombre de processus sur une machine est naturellement limité. Cependant de nouvelles puces électroniques verront probablement le

jour pour palier cette complexité de traitement. A chaque problème sa solution mais le temps a toujours son mot a dire ...

Glossaire

ACL

Agent Communication Langage : Langage de communication qui combine habilement KQML et KIF. KQML est pris pour la partie administrative et KIF pour la représentation des données et /ou expressions a évaluer.

API

Application Programming Interface : Bibliothèques d'objets (dans le cas de langages objets) qui permettent au programmeur d'utiliser directement des objets. L'API réseau du Java permet d'ouvrir des sockets, mais aussi de gérer les adresses IP ainsi que les URL.

CORBA

Common 0bject Request Brocker Architecture : Une architecture définie par l'0MG qui permet l'implémentation d'objets distribués. Ces objets sont accessibles par l'intermédiaire de nombreux langages grace a la définition d'IDL.

Framework

Ensemble d'outils (de conception, d'exécution, de dégage) qui permettent de faire quelque chose, par exemple de mettre en oeuvre d'autres programmes. Ces outils peuvent êtres des programmes, des méthodes de travail, des librairie, etc.

IDL

Interface Definition Language : Un langage qui permet de définir les objets C0RBA. Une Interface IDL déclare les opération, exceptions et attributs. IDL ne permet pas d'implémenter les objets, comme son nom l'indique, il ne fait que définir les interfaces des objets.

Java / JDK

Java, langage créé en 1995 par Sun, ce langage est orienté

objet et présente le gros avantage d'être portable. JDK (Java

Développement Kit) est le kit de développement Java fournis

par Sun pour le développement de programmes Java.

KIF

Knowledge Interchange Format : Langage qui permet de coder des expressions, algorithmes ou données dans le plus pur style Lisp : 3+5 deviens (+ 3 5)

KQML

Knowledge Query Modeling Langage, ce langage est le standard de fait pour l'échange d'information entre les agents. (Pour s'en persuader, il suffit de regarder la liste des produits déjà existants).

MOM

Message 0riented Middleware : Middleware orienté message, c'est un middleware qui contrairement a C0RBA ou RMI ne permet pas l'appel de méthodes a distances, mais seulement l'échange de messages. Un M0M peut aussi contenir des services.

ORB

0bject Request Broquer : Les librairies, processus et autres infrastructures qui permettent, dans un environnement distribué C0RBA, aux objets de communiquer entre eux. L'0RB permet aux objets qui demandent des services d'entrer en contact avec les objets qui fournissent ces services.

OSI

0pen System Interconnection : Le modèle 0SI est composée de 7 niveaux. Ces niveaux sont organisés de maniere hiérarchiques. Les niveaux sont définis de telle sorte qu'une modification dans un niveau ne nécessite pas de modification dans les autres niveaux.

Proxy

0bjet et /ou programme qui permet d'accéder a des ressources qui ne sont pas accessibles directement, c'est donc un intermédiaire. L'utilisation d'un proxy est en général de protéger la ressource a laquelle on veut accéder. RMI

Remote Method Invocation est une technique qui permet a des objets Java de se servir d'objets Java distants comme s'il s'agissait d'objet local. L'équivalent en C /C++ est RPC (Remote Procedure Call). C0RBA fournis les memes fonctionnalité, mais présente l'avantage de ne pas etre réduit a un seul langage.

Socket

0bjet qui permet de communiquer sur un réseau de type TCP/IP. La création d'une socket nécessite un serveur sur lequel on se connecte et un client qui

se connecte a ce serveur. Les deux peuvent ensuite communiquer, c'est " dire, envoyer et recevoir des suites d'octets. La définition d'un protocole de

communication est donc indispensable.

Thread

Programme qui s'exécute a l'intérieur d'un autre programme : ceci permet " un programme de faire plusieurs choses en même temps. Un thread est parfois appelé tache.

UDP

User Datagram Protocol : Protocole en dessous de TCP/IP sur le modèle 0SI. Ce protocole ne garantie pas l'arrivée des données (datagrams), ni leur ordre d'arrivée.

FIPA

est une organisation a but non lucratif produisant des normes pour l'inter opérabilité des agents hétérogenes de logiciel.

www.fipa.org

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
artificial intelligence, Addison-Wesley, ISBN 0-201-36048-9, 1999.

[Maes, 1995] Maes P., Intelligent Software, Scientific American, volume 273,
numéro 3, septembre 1995, pp.84-86.

[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
agent framework", CSELT internal technical report. Part of this report has been also published in Proceedings of PAAM'99, London, pp.97-108, April 1999.

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

1. Introduction

Pour construire un système multi-agent (SMA) on utilise une plate-forme multi-agent. Une plate-forme multi-agent est un ensemble d'outils nécessaire a la construction et a la mise en service d'agents au sein d'un environnement spéci fique. Ces outils peuvent servir également ' l'analyse et au test du SMA ainsi créé. Ces outils peuvent etre sous la forme d'environnement de programmation (API) et d'applications permettant d'aider le développeur. Nous allons étudier dans cette partie la plate-forme JADE(Java Agent DEvelopment framework).

2. Bref description de JADE

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

· DF « Director Facilitor » ;

· ACC «Agent Communication Channel »;

· AMS « Agent Management System ».

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.

4. Architecture de la bibliotheque des classes

JADE est compose des packages suivantes :

- JADE.CORE : implante le noyau du systeme et possede les classes 'Agent' et'behaviours' - Le package JADE.LANG : contient un sous package' JADE.LANG.ACL' pour chaque langage de communication utilise jade.

- JADE.CONTENT : contient l'ensemble du classes qui definissent les ontologie.

- JADE.DOMAIN : contient toutes les classes java qui representent les entites agent management definies par FIPA particulierement AMS, DF.

- JADE.GUI : contient les classes utiles pour creer des GUIs,l'edition des messages et la description des agents.

- JADE.MTP : contient une interface java que chaque MIP (MESSAGE TRANSPORT PROTOCOL) doit implementer.

- JADE.PROTO : contient les classes qui modelisent les protocoles standards d'interaction, et permettre aux programmeurs d'ajouter d'autres protocoles.

5. Outils de debogage de 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 :

Performative :

type de l'acte de communication

Sender :

expéditeur du message

Receiver :

destinataire du message

reply-to :

participant de la communication

content :

contenu du message

language :

description du contenu

encoding :

description du contenu

ontology :

description du contenu

protocol :

contrôle de la communication

conversation-id :

contrôle de la communication

reply-with :

contrôle de la communication

in-reply-to :

contrôle de la communication

reply-by :

contrôle de la communication

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)

ACLMessage msg = new ACLMessage (ACLMessage.INFORM); msg.addReceiver (new AID ("Yacine", AID.ISLOCALNAME)); msg.setLanguage (" Francais ");

msg.setOntology (" match");

msg.setContent ("le match de football est terminé ");

send (msg);

8.2. Reception d'un message.

Exemple : on bloque le comportement jusqu'a l'arrive du msg.

ACLMessage msg = receive (); I f (msg! = null) {

// traiter le message

}Else { Block ();

}

. 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

1. Introduction

Les faiblesses d'UML pour la représentation des systèmes multi-agents ont conduit une équipe de chercheurs travaillant dans différentes entreprises ou universités (Siemens, University Paderborn, Intelligent Automation, Fujitsu...) a concevoir AUML. L'objectif est de mettre au point des sémantiques communes, des méta-modèles et une syntaxe générique pour les méthodologies agents. AUML est un des fruits de la coopération entre FIPA (Foundation of Intelligent Physical Agents) et l'OMG (Object Management Group). Par rapport a UML, AgentUML propose des extensions pour la représentation des agents que nous détaillerons dans cette annexe.

2. Principes sur UML

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 :

· Les cas d'utilisation : la spécification des actions que le système ou la classe peut réaliser en interaction avec les acteurs extérieurs. Ils sont souvent utilisés pour décrire comment un utilisateur communique avec son logiciel.

· Les modèles statiques : ils décrivent la sémantique statique des données et des messages d'une manière conceptuelle et d'une manière plus proche de l'implémentation (il s'agit des diagrammes de classes et de packages).

· Les modèles dynamiques : ils incluent les diagrammes d'interaction (i.e., les diagrammes de séquence et les diagrammes de collaboration), les schémas d'état et les diagrammes d'activité.

· Les modèles d'implémentation : ils décrivent la répartition des composants sur différentes plateformes (i.e., les modèles de composants et les diagrammes de déploiement).

3. Déficiences d'UML

L'idée générale d'AUML est de combler les déficiences d'UML pour la modélisation des systèmes a agents. Parmi ces déficiences, on trouve [Marc03] :

· Des relations entre classes statiques (agrégation, généralisation, et association) mais qui semblent tout de même adéquats. Il est possible d'utiliser des associations de classes et des stéréotypes pour étendre UML avec des relations spécifiques pour les agents.

· Les accointances sont des relations importantes entres agents, Il s'agit d'une relation dynamique entre des instances et UML n'est pas très adapté pour les représenter.

· Un certain nombre de concepts de haut niveau (comme les engagements, les contrats, etc.) peuvent etre relativement bien représentés avec UML mais d'autres (comme les croyances et les intentions) ne le peuvent pas.

· Il est difficile de representer l'etat interne des agents. Il faudrait un modele proposant des concepts de haut niveau o cognitif » (BDI, BC, GAP, ...).

· UML n'est pas efficace pour representer des connaissances fonctionnelles (buts, planification, processus, etc.). Pourtant beaucoup de methodologies agents utilisent les buts et la decomposition de buts en sous-buts.

· Il n'est pas evident que les approches de modelisation à etats finis soient adaptees pour les agents. Les agents ont des espaces d'etats vastes qu'il n'est pas evident de partitionner en un plus petit nombre de macro-etats de plus haut niveau. Les agents peuvent apprendre et s'adapter à differentes choses et des parametres comme les croyances interagissent pour influencer le comportement de facons subtiles. Ces systemes sont dynamiques, non lineaires et ont un comportement emergeant.

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 :

- Diagramme de classes d'agent qui est une reformulation du diagramme de classes d'objets,

- Diagramme de sequence qui permet une meilleure modelisation des interactions entre

agents,

- Diagramme de collaboration qui complemente le diagramme de sequences en proposant

une autre lecture et vision des interactions entre agents.

5. Presentation generale des extensions d'AUML 5.1. Le diagramme de classes d'agent

Une classe d'agent represente un agent ou un groupe d'agents pouvant jouer un role ou avoir un comportement determine, Une classe d'agent comporte :

-Description de la classe d'agent et des roles;

-Description de l'etat interne ;

-Actions, methodes et services fournis ;

-Messages echanges

Fig.1 : Diagramme de classe d'agent.

- Nom de la classe agent/ role1, role2,...: Un agent d'une classe donnée peut avoir plusieurs roles (un détaillent peut etre acheteur ou vendeur) .

- Description des états: Définition de variables d'instance qui refletent l'état de l'agent, - Actions (Plans): deux types d'actions peuvent etre spécifies: action pro-active exécutée

par l'agent lui meme si une pré-condition devient vraie, et ré-active résultant d'un message recu d'un autre agent. En d'autres termes les actions sont les plans qu'a un agent.

- Méthodes: Elles sont définies comme dans UML, avec éventuellement des pré-conditions, post-conditions ou invariants.

- Envoi et reception de messages: description des messages émis

et recus par l'agent en précisant les protocoles.

-Un automate : représente les changements d'état induits par les échanges de messages.

5.2. Protocoles d'interaction (AIP : Agent Interaction Protocol):

Exemple de representation :


· Un decoupage en couches :

Dans le protocole de la figure ci-dessus, aucune precision n'est donnee sur le traitement ou la construction des messages :

- La construction de la requete (par Submitter) peut etre un processus complexe decrit par un diagramme d'activites ;

- Le traitement de cette requete (par Solver) peut etre decrit par un autre diagramme d'activites ou de sequence.

- Ce decoupage en couches reifie les processus inter-agents et ceux internes a chaque agent.

La couche superieure : c'est le protocole qui est representee sous la forme de package ou de template.

- Un package agrege des morceaux de modeles pour former un ensemble conceptuel ;

- Un template est un modele ayant des parametres (Trois types de parametres : role, contraintes et actes de communication) qui sont specialises a l'instanciation.

La deuxieme couche : les echanges entre agents :

ü Diagrammes de sequences :

Nommage des acteurs : nom-agent/rOle:classe ;

- Les messages echanges ne sont plus des noms de methodes mais des actes de communication ; -Les threads d'interaction concurrents :

-emissions concurrentes : connecteur and ;

0 ou plusieurs emissions a la fois : connecteur or ;

1 seule emission parmi plusieurs candidates : connecteur xor

ü Diagrammes de collaboration :

Se construisent comme dans les modeles objets ;

Similaires aux diagrammes de sequences ;

ü Diagrammes d'activites :

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.

6. AUML et les autres methodologies

Les objectifs entre AUML et nombre de methodologies (Gaia, MaSE, etc.) orientees agent sont communs : partir de methodologies ou langages de modelisation orientes objet et les etendre au paradigme agent ;

Des representations (diagramme ou modele) entre AUML et diverses methodologies

7. Limitations d'AUML

-Les diagrammes sont desordonnes et peuvent etre mal interpretes ;

-L'expression de toutes les informations necessaires sur les protocoles peut les rendre illisibles ;

-Les cas de redondance sont difficiles a identifier et corriger ;

-La description des actions temporelles (telles que le timeout, deadline, ...) est difficile a exprimer ;

- La notion d'historique des echanges n'existe pas ;

-La terminaison des interactions n'est pas toujours specifiee.

8. Conclusion

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.






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Nous voulons explorer la bonté contrée énorme où tout se tait"   Appolinaire