107
MEMOIRE Présenté par Mr ELANDALOUSSI SIDAHMED Pour obtenir LE DIPLOME DE MAGISTER Spécialité : Informatique Option : Diagnostic, Aide à la Décision et Interaction Humain Machine Intitulé : Développement d’un WEB-MAS pour la conception et fabrication assistées par ordinateur : application à un atelier de pièces mécaniques Membres de jury : M r M.KHELFI Maître de Conférences, Université d’Oran (Président) M r B.KECHAR Maître de Conférences, Université d’Oran (Examinateur) M me M.KADDOUR Maître de Conférences, Université d’Oran (Examinateur) M r K.BOUAMRANE Maître de Conférences, Université d’Oran (Encadreur) M me N.TAGHEZOUT Maître de Conférences, Université d’Oran (Encadreur) 2012/2013

Développement d’un WEB-MAS pour la conception et ...systèmes multi-agents, leur principe ainsi que leur fonctionnement. Le chapitre 3 introduit les technologies Web en définissant

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

MEMOIRE

Présenté par

Mr ELANDALOUSSI SIDAHMED

Pour obtenir

LE DIPLOME DE MAGISTER

Spécialité : Informatique

Option : Diagnostic, Aide à la Décision et Interaction Humain Machine

Intitulé :

Développement d’un WEB-MAS pour la conception et fabrication assistées par ordinateur : application à un atelier de

pièces mécaniques

Membres de jury :

Mr M.KHELFI Maître de Conférences, Université d’Oran (Président)

Mr B.KECHAR Maître de Conférences, Université d’Oran (Examinateur)

Mme M.KADDOUR Maître de Conférences, Université d’Oran (Examinateur)

Mr K.BOUAMRANE Maître de Conférences, Université d’Oran (Encadreur)

Mme N.TAGHEZOUT Maître de Conférences, Université d’Oran (Encadreur)

2012/2013

Table des matières

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Introduction générale

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

1.1 Contexte et Problématique…………………………………………………….1 1.2 Contribution…………………………………………………………………...1 1.3 Organisation de la thèse………………………………………………….........2

Chapitre 1 Conception Assisté Par Ordinateur

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

1. Introduction………………………………………………………………………3 2. Conception………………………………………………………………………..4 3. Conception assistée……………………………………………………………….6 4. Conception assistée par ordinateur (CAO)…………………………………….….7 5. Informatique et l'aide à la conception……………………………..........................8 6. Domaine d'utilisation……………………………………………...........................9

6.1. Mécanique………………………………………………………………….…9 6.2. Électronique………………………………………………………………….12 6.3. Electrotechnique………………………………………………………...........13

7. Avantages de la CAO…………………………………………………………….14 8. Fabrication assisté par ordinateurs (FAO)………………………………...............15 8.1.Modélisation 3D……………………………………………………………...15

8.2.Élaboration des parcours-outils………………………………………............16 8.3. Génération du programme CN………………………………………………16 8.4. Simulation d'usinage…………………………………………………………17 8.5. Transfert vers la Machine-Outil à Commande Numérique………………….17

9. Conception et fabrication assistées par ordinateur……………………………….18 10. Conclusion ……………………………………………………………………….18

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Chapitre 2 Les Systèmes Multi Agent ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

1. Introduction……………………………………………………………………...19 2. Agents et systèmes multi-agents………………………………………………...19

2.1 L’intelligence artificielle distribuée………………………………………....19 2.2 Développement des réseaux et des systèmes distribués…………………….21 2.3 Agents VS Objets……………………………………………………………23

2.3.1 Définitions ………………………………………………………….23 2.3.2 Caractéristiques……………………………………………………..24

2.3.2.1 Communication……………………………………………24 2.3.2.2 L’apprentissage……………………………………………24 2.3.2.3 Activité…………………………………………………….24 2.3.2.4 Autonomie…………………………………………………24

Table des matières

2.3.2.5 Sociabilité………………………………………………….25 2.3.2.6 Réactivité…………………………………………………..25 2.3.2.7 Pro activité…………………………………………………25

2.3.3 Types d’agents……………………………………………………………25 2.3.3.1 Agents réactifs……………………………………………...25 2.3.3.2 Agents cognitifs……………………………………………..26 2.3.3.3 Agents hybrides……………………………………………..27

2.4 Systèmes multi-agents…………………………………………………….28 2.5 Interactions entre agents ………………………………………………….30 2.6 Avantage des systèmes multi-agents……………………………………...31 2.7 Domaines d’applications………………………………………………………32 2.8 Plates formes multi-agents………………………………………………...32

3 Conclusion…………………………………………………………………….…34

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Chapitre 3 Technologie Web

1. Introduction...............................................................................................…..35 2. Bases du Web………………………………………………………………..35

2.1 Architecture client serveur…………………………………………..…...35 2.2 URL………………………………………………………………….…...37 2.3 HTML………………………………………………………………….....39

3. Terminologies du Web………………………………………………………..42 3.1. Http..............................................................................................………...42 3.2. JavaScript………………………………………………………………...42 3.3. ActiveX……………………………………………………………..……42 3.4. Un plug-in…………………………………………………………..……43 3.5. Applet……………………………………………………………………43 3.6. Servelet…………………………………………………………………...43 3.7. Cookie………………………………………………………………..…..44 3.8. JSP…………………………………………………………………..…...44 3.9. PHP………………………………………………………………….…...44 4. Services Web……………………………………………………..…………..44 4.1 Les standards utilisés par les services Web……………………..………..47 4.2 XML : eXtensible Markup Language……………………………………47 4.3 SOAP : Simple Object Access Protocol…………………..……………..48 4.4 WSDL : Web Services Description Language…………………………..49 5. Conclusion………………………………………………………….……….50

Chapitre 4 Conception –––––––––––––––––––––––––––––––––––––––––––––––––––

Table des matières

1. Introduction……………………………………………………………………….51 2. Contribution ………………………………………………………………………51 3. Architecture proposée……………………………………………………………..52 4. Fonctionnement du modèle.…………………………………………………..…...53 5. Structure des agents……...………………………………………………………..55 5.1. Agent Designer…………………………………………………………..…...55 5.2. Agent évaluateur…………………………….………………………………..56 5.3. Agent Ressource……………………………………………………………...57 5.4. Agent de coordination………………………………………………………..57 6. Communication entre les agents……………………………………………….....69 6.1. Introduction…………………………………………………………………..69 6.2 Définition ACL………………………………………………….....................69 6.3. Envoie de message…………………………………………………………...60 6.4. Structure d’un message e…………………………………………………......60 7. Algorithme de coordination……………………………………………………...60 8. Conclusion………………………………………………………………………..63

Chapitre 5 Implémentation –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

1. Introduction…………………………………………………………………..64 2. Environnement de développement…………………………………………...64

2.1. Choix de langage de programmation………………………………….....64 2.2. Environnement de développement intégrant java (JBuilder)…………....64

3. Plateforme JADE…………………………………………………………......65 3.1 Bref description de JADE……………………………………………..….65

3.2 La norme FIPA…………………………………………………………...65 3.3 Architecture logiciel de la plate-forme JADE……………………………66 3.4 Langage de communication de la plate-forme JADE…………………….68 4. Comportements des agents dans la plate-forme JADE……………………...…70 5. Outils de débogage de JADE……………………………………….………….72 5.1 Agent RMA Remote Management Agent………………….……………..72 5.2 Agent Dammy………………………………………………….………...73 5.3 Agent Direcory Facilitator…………………………………….…..………74 5.4 Agent Sniffer……………………………………………………………..74 5.5 Agent Inspector…………………………………………………………..75 6. Exemple d’application…………………………………………………………….76 6.1 Création des agents…………………………………………………………...….76 6.2 Uploader des désignes de conception………………………………………...….76 6.3 Intervention Agents………………………………………………………...……77 6.3.1 Traitement des fichiers………………………………………………………...77 6.3.2 Evaluation de désignes………………………………………………………...78 6.3.3 Planification des ressources…………………………………………………...78 6.3.4 Fabrication des pièces…………………………………………………………79 6.3.5 Re-planification……………………………………………………………..…80 6.3.6 Contrôle du scénario……………………………………………………..……80 6.4 Affichage résultats clients………………………………………………..…….82 6.4.1 Détection des conflits…………………………………………………..……..82

Table des matières

7. Conclusion………………………………………………………………………83

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Conclusion Générale & Perspective………………………………………………..84

Référence bibliographiques……………………………………………………………...85

Résume……………………………………………………………………………………………..90

Abstract…………………………………………………………………………………………….91 –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Table des figures

Chapitre 1 Conception Assisté Par Ordinateur

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

FIG.1.1–– La conception …………………………………………………………….5 FIG.1.2–– La conception assistée ………………….…………………………………7 FIG.1.3–– La conception assistée par ordinateur …………………………………….8

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Chapitre 2 Les Systèmes Multi Agent ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

FIG.2.1– Un agent dans un environnement [Boissier Olivier, 2002]………………23 FIG.2.2– Un agent réactif [Boissier, 2001]…………………………………………26 FIG.2.3– Un agent cognitif [Courdier, 2005]……………………….……………....27 Figure.3.3–Architectures d’agents en couches [Jennings, 1998]……….. …………28 FIG.3.4– Représentation d’un système multi agents[TAN, 2005]……………………..29

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Chapitre 3 Technologie Web FIG.3.1–Architecture client-serveur du WEB………………………………............36 FIG.3.2–Architecture Client-Serveur du WEB……………………………….……37 FIG3.3.–Les Service WEB…………………………………………………………………46

Chapitre 4 Conception –––––––––––––––––––––––––––––––––––––––––––––––––––

FIG.4.1––Architecture générale……………………………………………………..52 FIG.4.2–– Diagramme de séquence (Scénario entre les gents)…………………...…54 FIG4.3.–– Communication entre agents……………………………………………..54 FIG.4.4 –Algorithme du designer……………………………………………………56 FIG.4.5 –– Algorithme d’évaluation………………………………………………....57 FIG.4.6 –– Structure de l’agent évaluateur………………………………………..…57 FIG.4.7 –– Structure de l’agent de coordination…………………………………..…59 FIG4.8 –– Algorithme de coordination………………………………………………62

Table des figures

Chapitre 5 Implémentation ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– FIG5.1 — Architecture logiciel de La plate-forme JADE……….…………………..67 FIG5.2 — L'interface de l'agent RMA…………………………………………...…..73 FIG5.3 — L'interface de l'agent Dammy………………………………………….…73 FIG5.4 — L'interface de l'agent DF………………………………………………….74 FIG5.5 — L'interface de l'agent Sniffer…………………………………………...…75 FIG5.6 — L'interface de l'agent Inspector…………………………………………...75 FIG5.7 — Création compte désigner………………………………………………...76 FIG5.8 — Authentification désigner………………………………………………...76 FIG5.9 — Uploader fichiers de désignes………………………………………….…77 FIG 5.10 — Interface Agent désigner………………………………………………..77 FIG5.11 — Agent évaluateur………………………………………………………...78 FIG5.12 — Agent evaluateur(Resultat d’evaluation)……………………………..…78 FIG5.13 — Agent Planification……………………………………………………...79 FIG5.14 — Agent ressource (Fabrication des pièces)…………………………….…79 FIG5.15 — Agent ressource (gestion de la panne d’une ressource)…………………80 FIG5.16 — Agent Planification (re-planification)………………………………...…80 FIG5.17 — Agent coodinateur(Etat agent)………………………………………..…81 FIG 5.18 — Agent coordinateur(Historique d’interaction)……………………….…81 FIG5.19 — Fichier envoyer au désigners……………………………........................81 FIG 5.20 — Conflit de conception…………………………………………………...82 FIG 5.21 — Conflit de ressource…………………………………………………….82

Introduction Générale

Page 1

1.1 Contexte et Problématique Considérant la complexité des produits crées dans un système de fabrication distribuée sur plusieurs sites ou plusieurs entreprises et la difficulté de l’élicitation des exigences d’un environnement multi-utilisateurs, ce qui mène souvent a une collaboration efficace entre un certain nombre de services. Les systèmes multi-agents (SMA) constituent aujourd’hui une technologie de choix pour la conception et la mise en œuvre d’applications réparties et coopératives. La dualité entre agent comme entité autonome et adaptative et système multi-agent comme organisation coopérative offre en effet un cadre tout à fait privilégié pour aborder les enjeux de l’informatique de plus en plus dynamique et distribuée des applications du futur. L'application des systèmes multi-agents dans un environnement temps réel ouvre de très intéressantes perspectives quant à l'élaboration et le développement de systèmes, réputés complexes et restreints, que sont les systèmes temps réels. Dans le cadre de la Fabrication Assistée par Ordinateur (FAO), les chercheurs ont appliqué la technologie des agents pour exécuter des tâches, par exemple la production des pièces de contrôle, soit au niveau de l’atelier ou d’une manière distribuée. Nous pouvons citer par exemple, le travail de [Lin et Solberg., 1992] où une structure à plusieurs agents autonomes a été proposée pour assurer un contrôle intégré dans un atelier de fabrication. Les auteurs dans [Sikora et Shaw., 1998] ont présenté un mécanisme de coordination pour assurer un fonctionnement ordonné et une prise de décision partagée entre les agents. D’autres études comme par exemple, celles décrites dans [Klein et Lu 1989], [Lander et al. 1991], [Werkman et al. 1990] ont proposé des modèles différents pour la conception coopérative et la résolution de problèmes. Sans oublier le travail entamé par [Nahm et Ishikawa., 2005/2006] où un système multi-agents (SMA) a été développé pour la conception de produits intégrés dans un réseau informatique orientée environnement CE. Deux types d’architecture de coordination peuvent être distinguées, à savoir les architectures centralisées et distribuées. Par rapport à l’approche distribuée, le système de contrôle centralisé semble être moins souple, plus fiable et plus facile à mettre en œuvre. Cette approche est avantageuse car elle évite de nombreuses interactions entre les agents, qui suppriment la nécessité pour chaque agent de prendre connaissance des autres agents. 1.2 Contribution Notre travail vise à répondre dans un cadre général à la fabrication dans un environnement collaboratif distribué basé sur un modèle utilisant un ensemble d’agents intelligents et interactifs qui bénéficient mutuellement de partage des ressources et redistribution des tâches entre eux. Tous ces agents interagissent de

Introduction Générale

Page 2

manière cohérente en temps réels avec un mécanisme de gestion centralisé pour réaliser la production et l’acheminement des pièces de la conception à la fabrication. Les différents agents distribués (Agent conception, Agent Design, Agent Evaluation, Agent Ressource, Agent planification) ont plusieurs fonctionnalités. Ces agents répartis géographiquement interagissent de manière cohérente et communiquent sous le contrôle d’un agent manager (Agent coordinateur), ce dernier est le noyau de notre système. 1.3 Organisation du mémoire Ce mémoire est organisé en cinq chapitres comme suit : Le chapitre 1 Donne une description globale sur le principe de conception et de la fabrication assistée par ordinateur, leurs implémentations, leurs domaines d’utilisation et les différents outils de manipulation qui leur sont associés. Le chapitre 2 Présente un état de l’art, des définitions et des concepts autour des systèmes multi-agents, leur principe ainsi que leur fonctionnement.

Le chapitre 3 introduit les technologies Web en définissant les principes, les

concepts de base, ainsi que les apports et les aspects techniques.

Le chapitre 4 est axé sur la présentation de notre contribution, nous commençons d’abord par la proposition de l’architecture de notre modèle, son fonctionnement, la structure de nos agents et la communication entre eux. Sera présenté à la fin l’algorithme général implémenté. Le chapitre 5 décrit l’implémentation de l’ensemble des concepts présentés auparavant dans ce mémoire, en exposant les principaux outils utilisés dans la conception de notre prototype, ainsi que les différentes interfaces du logiciel réalisé. La conclusion de ce mémoire nous permet de dresser le bilan des résultats obtenus et énumérer quelques perspectives futures.

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 3

1. Introduction

Depuis quelques années, nous avons assisté au développement et à la mise en marché

d'équipements essentiellement de nature informatique pour l'automatisation du travail

de bureau. Ces équipements regroupés sous le vocabulaire de bureautique s'appliquent

dans ce premier assaut du domaine des services, aux tâches les plus monotones et

répétitives, et qui se prêtent particulièrement bien à la mécanisation. Par exemple, la

comptabilité, le traitement de texte, la mise en fiches et le classement, et certaines

fonctions de gestion. Dans le domaine du génie, sont apparus les équipements de

dessin assisté par ordinateur permettant de réaliser, pour ce type de tâches, des gains

de productivité appréciables.la technologie est disponible et grâce aux progrès récents,

à des coûts abordables. Dès lors les applications et les bénéfices sont immédiats. Mais

que peut-on espérer (ou craindre) dans le travail intellectuel, secteur de services par

excellence? Est-il possible de concevoir des machines qui permettront de multiplier la

capacité du cerveau? On songe ici à ces fonctions qui nécessitent jugement,

imagination, prise de décision, analyse et intuition(Site1).

Comment pourra-t-on doter ces machines de ces caractéristiques humaines qui les

distinguent et mettent un rempart entre eux et les autres travailleurs ? Force nous est

de constater un certain poids à ces arguments. Cependant, il existe des ordinateurs

capables de battre aux échecs non pas un maître mais un très bon joueur, de poser des

diagnostiques médicaux passables dans certaines situations, d'entretenir une

conversation du style rencontre-dans-une-salle-d-attente. Ces insuccès indiquent tout

simplement que la technologie n'est pas encore prête et que l'automatisation du travail

intellectuel se fera progressivement. On abordera d'abord les tâches répétitives

(calculs), les fonctions exigeant une grande mémoire (catalogue, annuaires

téléphoniques), et l'analyse et le classement (problèmes se formulant

mathématiquement). Dans cette première étape l'ordinateur s'allie à l'homme, il

devient une extension de la mémoire de celui-ci, et de son cerveau pour ce qui a trait à

des menues tâches. Il est assez naturel que les sciences et en particulier, la génie

soient les premiers domaines d'applications.

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 4

2. Conception

La recherche d'une définition de la conception assistée par ordinateur est un exercice

plutôt futile, et nous avons préféré une explication plus proche du vécu du travail de

l'ingénieur. Il s'agit d'imaginer, de formuler des solutions pour remplir des fonctions

bien définies à l'intérieur d'un ensemble de contraintes. Généralement, l'atteinte d'une

solution (d'un design) n'est pas directe sauf pour des problèmes extrêmement simples.

Le processus est plutôt itératif tel qu'illustré à la figure 1.1. De façon simpliste, on

distingue d'abord le choix d'un modèle représentant le phénomène physique du

problème. Ensuite, un premier design est élaboré et, on vérifie si les contraintes sont

satisfaites. On modifie le design et on répète jusqu'à ce que le design vérifie les

contraintes.

On peut décrire la conception ou le design comme un processus itératif au cours

duquel un objet est conçu et modifié afin qu'il puisse remplir des fonctions bien

définies et se conformer à un ensemble de contraintes(Site2).

On identifie plusieurs étapes dans cette démarche:

i) création d'un modèle de l'objet,

ii) analyses, essais et simulation,

iii) construction de prototypes,

iv) modifications,

v) réalisation de l'objet.

A quelques variantes près dans l'enchaînement de ces étapes, la méthodologie est la

même que l'objet, soit un barrage, un circuit électrique, une pièce mécanique, etc.

Autres caractéristiques communes à l'ensemble des activités de conception sont les

moyens ou média utilisés par le concepteur, nous citons:

i) outils analytiques : formules empiriques et équations issues de modèles

mathématiques. Ceux-ci sont utilisés aussi bien lors de la création d'un modèle, lors

de son analyse, ou des modifications;

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 5

ii) information : propriétés et caractéristiques de toutes sortes, design antérieurs, etc.

Ces informations auxquelles l'ingénieur fait appel sont contenues dans des manuels,

dans sa propre mémoire, dans des plans, etc. Leurs formes sont variées : chiffrées,

graphiques, textuelles. On a recours aux informations également à toutes les phases du

processus de conception;

iii) communication : l'ingénieur doit communiquer ou consacrer les résultats de son

travail à l'une ou l'autre des phases. Par exemple, il lui faut communiquer la forme du

modèle pour la réalisation d'un prototype, ou bien les résultats d'un calcul de

contraintes pour réaliser certaines modifications. Les modes de communication sont

graphiques, chiffrés ou bien textuels.

FIG.1.1–– La conception (Site3)

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 6

Pris séparément, ces aspects donnent lieu à des activités quantitatives (ou non

créatives) et des activités qualitatives (créatives).L'aspect créatif de l'activité de design

se manifeste évidemment lors de la création d'un modèle, mais également tout au long

du cheminement, c'est-à-dire dans le choix d'une méthode de calcul plutôt qu'une

autre, l'appel à telle information ou l'interprétation d'un calcul, l'élaboration d'une

modification à la suite d'une simulation, etc. La coordination de toutes ces activités en

fonction d'un objectif et menant à une réalisation est le processus de design.

3. Conception assistée

À mesure que l'envergure et la complexité des projets augmentent, chacune des étapes

et des moyens mis en œuvre deviennent plus élaborés et nécessitent une certaine

spécialisation. Ainsi le concepteur ne peut plus communiquer avec un technicien à

l'aide d'un dessin fait rapidement à main levée au-delà du stade préliminaire. La

réalisation des pièces est telle que beaucoup d'information doit être transmise de façon

complète et non équivoque. Ceci a donné lieu au dessin industriel, c'est-à-dire la

codification de la Communication graphique. De façon semblable, on ne peut plus

analyser les contraintes dans une pièce mécanique ou la réponse d'un circuit par une

simple formule tirée d'un manuel. On utilise plutôt un calcul numérique par une

méthode discrète tels les éléments finis. Le concepteur communique au programme de

calcul la géométrie de la pièce (ou la topologie du circuit) sous une forme codifiée.

Donc à chacune des étapes, le concepteur fait appel à des "intermédiaires" qui

restreignent, ralentissent et augmentent le temps et le coût d'un design. Pire encore,

alors qu'il travaille avec le même objet, il le communique par différents médias à

différents "intermédiaires" (dessins ou coordonnées chiffrées).

On atteint donc le point où la coordination de ces activités dépasse la capacité d'un

seul cerveau, et ceci en grande partie à cause de certaines fonctions secondaires à

caractère non créatif. Heureusement, ces fonctions sont de nature quantitative et

peuvent être confiées à des auxiliaires (dessinateurs, programmeurs) et libérer le

concepteur pour les tâches qualitatives qui sont du niveau de ses aptitudes et de sa

formation. On atteint ainsi la conception assistée dont la nature n'a pas changé.

Seulement certaines modalités ont été modifiées. On peut schématiser cette structure

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 7

comme à la Figure 1.2. Il est important de maintenir une bonne proportion entre les

tâches créatrices et non créatrices. L'efficacité du processus global en dépend.

FIG.1.2–– La conception assistée (Site4)

4. Conception assistée par ordinateur (CAO)

La conception assistée par ordinateur (CAO) comprend l'ensemble des logiciels et

des techniques de modélisation géométrique permettant de concevoir, de tester

virtuellement à l'aide d'un ordinateur et des techniques de simulation numérique et

de réaliser des produits manufacturés et les outils pour les fabriquer comme il est

montré dans la figure1.3.

L'industrie se trouve vis-à-vis ses travailleurs intellectuels dans la même situation

qu'au début du siècle avec les travailleurs manuels. Le pari des entreprises est que la

CAO permettra une hausse semblable de la productivité des ingénieurs. Les progrès

dans le domaine de l'électronique mettent, à la disposition de l'ingénieur, une

puissance de calcul, de mémoire et du traitement énorme et ceci à bon marché.

D'autre part, la création de logiciels extrêmement évolués permet d'informatiser de

nombreuses tâches quantitatives du processus de conception tout en libérant l'esprit

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 8

pour les tâches de jugement et décisionnelles. On obtient alors des bonne résultat on

utilisant au mieux les qualités de l'homme et de l'ordinateur. La division des tâches

entre l'ingénieur et la machine n'est certes pas aisée mais déjà des systèmes existants

ont fait d'énormes progrès Vers une telle intégration. La façon dont le cerveau humain

combine des données et fait appel à des ressources en fonction de certains objectifs est

complexe et loin d'être claire. La réalisation de cet objectif constitue un des domaines

d'avenir et sa maîtrise sera l'équivalent de la révolution industrielle pour le travail

intellectuel. On utilise la capacité de calcul, de stockage et de traitement de

l'ordinateur, alliés aux capacités de reconnaissances de formes, d'évaluation, de

jugement de situations complexes (conflictuelles) et les possibilités de l'intuition de

l'humain pour imaginer de nouvelles solutions.

FIG.1.3–– La conception assistée par ordinateur (Site5)

5. Informatique et l'aide à la conception

Tout système technique est l'association de fonctions. L'agencement de ces fonctions,

leurs interactions, les incompatibilités éventuelles font partie du savoir de l'ingénieur.

Lorsque le système est affecté d'un trop grand nombre de paramètres, il devient

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 9

difficile de tout contrôler. La CAO permet de concevoir des systèmes dont la

complexité dépasse la capacité de l'être humain comme par exemple en micro ou

nano-électronique. La conception virtuelle permet l'appréciation globale du

comportement de l'objet créé avant même que celui-ci n'existe. En CAO, on ne

dessine pas, on construit virtuellement un objet capable de réagir dans son espace non

réel selon des lois régies par le logiciel. Le résultat, appelé maquette numérique qui

constitue un véritable prototype évolutif. Chaque corps de métier peut disposer d'un

outil CAO. En mécanique, on peut concevoir une pièce où chaque forme répond à un

besoin de fonctionnement ainsi qu'un mécanisme regroupant plusieurs pièces. En

électronique, on peut assembler des composants (résistances, capacités, éléments de

logique...) simulables : on pourra par exemple "construire" un nouveau micro-

processeur regroupant plusieurs millions de transistors (3,1 pour le pentium). D'une

certaine façon, la PAO s'inscrit dans cet ensemble d'outils d'aide à la conception

(création de documents). La CAO décolla dans les années 75-90, lorsque le coût de

mise en place d’un poste se rapprocha du coût annuel d’un dessinateur. La mise en

place fut un peu pénible au début en raison d’une nécessité de reprendre les plans

existants. On s’aperçut à cette occasion que statistiquement près de 10% des cotations

sur les plans existants étaient inexactes, que des références de plans existaient en

double, qu’une référence unique pouvait correspondre à plusieurs plans légèrement

différents, etc. Au bout du compte, le gain de fiabilité de l’information se révéla

constituer un argument supplémentaire important décidant à généraliser la CAO.

6. Domaine d'utilisation

6.1. Mécanique

Le domaine de la mécanique est historiquement l'un des premiers à s'être doté, dans

les années 1960. Elle permet au concepteur d'exprimer et de modéliser un grand

nombre de contraintes (fonctionnalités, matériaux, capacité d’assemblage, fabrication,

etc.) pendant la phase de conception d’un ensemble mécanique. Les logiciels

correspondants sont utilisés lors d'une ou plusieurs phases du développement (ex:

spécifications produit/processus, esquisses, dimensionnement, analyses cinématiques,

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 10

analyses dynamiques, préparation de la fabrication, ...). Les logiciels modernes

permettent une conception directe en trois dimensions et sont surtout intéressants pour

les fonctionnalités proposées : aujourd'hui une pièce de tôlerie est modélisée

directement en pliant virtuellement une tôle, un perçage est placé d'un simple clic sans

avoir à réfléchir sur le choix des formes volumiques - au sens mathématique - à

adopter pour modéliser son intention technologique. Si les premiers logiciels

proposaient un historique figé (pas de retouche possible des formes déjà définies), les

dernières versions utilisant la conception paramétrique autorisent toutes les

modifications.

Ces progrès fonctionnels et ergonomiques sont notamment dus aux évolutions des

modèles produit/processus sous-jacents, selon la progression temporelle suivante

[Année des systèmes pionniers - Année des systèmes totalement vulgarisés] :

• [1950-1970] 1ère génération de CAO 2D : "Graphic-based" (ex: système

graphique AutoCAD),

• [1960-1980] 2ème génération de CAO 2,5D : "Depth-based" (ex: systèmes de

Génie Civil MicroStation, Cadwork),

• [1970-1990] 3ème génération de CAO 3D : "Geometry-based" (ex: système

de CSG Euclid),

• [1980-2000] 4ème génération de CAO 3,5D : "Feature-based" (ex: système

paramétrique Pro/Engineer),

et de manière récente :

• [1990-2010] 5ème génération de CAO 4D1,2 : "Rule-based" (ex: système à

base de déductions Kadviser)3,

• [2000-2020] 6ème génération de CAO 5D : "Induction-based" (ex: système à

base d'inductions KAD-Office).

Ces logiciels aident non seulement à la création des pièces mécaniques, ou à la mise

en œuvre de leur fabrication, mais aussi à la simulation de leur comportement, et donc

à la validation des solutions retenues. Une fois la création terminée, l'exécution

automatique de plans, respectant les conventions de représentation et visuellement

corrects est facile. Le passage en mode 2D n'est plus ressort du dessinateur à la

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 11

différence avec le dessin assisté par ordinateur qui demande de maîtriser à la fois, et

en même temps, le fond (ce qu'on veut représenter) et la forme (le trait sur le plan),

notions qui sont indépendantes pour le logiciel.

La cotation fonctionnelle, et la cotation sur le principe de l'indépendance sont

désormais plus faciles avec les outils logiciels en conception paramétrique. Ce qui a

été pensé lors de la conception de la pièce est répercuté à la bonne cote lors de la mise

en plan automatique. Ce travail est supplémentaire pour le technicien utilisant un outil

de Dessin assisté par ordinateur (DAO).

Exemples de logiciels de CAO pour la mécanique :

• Alibre Design, édité par Alibre Inc

• CATIA, édité par Dassault Systèmes

• FreeCAD, de Juergen Riegel, logiciel multiplateforme (Linux/Windows)

distribué sous licence libre

• SOLID EDGE - Siemens PLM

• Inventor, édité par Autodesk

• Kompas 3D V10

• NX (Unigraphics)

• Pro/Engineer, édité par PTC

• pythonOCC, de Thomas Paviot, modeleur multiplateforme

(Linux/MacOSX/Windows) distribué sous licence libre

• TopSolid

• SolidWorks

• SpaceClaim LTX

• think3 thinkdesign

• Bricscad de bricsys, CAO sous Windows. Clone de AutoCAD

• zwcad5

• Boxford

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 12

6.2. Électronique

Des produits existent également pour la conception de circuits électroniques ou de

microprocesseurs. La conception d'un circuit électronique présente deux difficultés :

• la première concernant le comportement électrique ou logique souhaité, est

certainement la plus facile à traiter. On obtient un modèle informatique du

schéma construit comme sur un outil DAO. Cependant, chaque composant est

affecté d'une loi de comportement, ce qui fournit au final un modèle virtuel

permettant des tests de fonctionnement.

• l'implantation réelle des composants sur le circuit imprimé est par contre un

vrai problème technique; si les schémas simples trouvent facilement une

solution, pour les circuits complexes la CAO est un grand secours. Le tracé

des pistes doit parfois être établi sur une ou plusieurs couches.

Ces outils informatiques sont souvent appelés suite de logiciels, parce que leur

utilisation comprend des phases indépendantes : la saisie schématique du circuit (le

modèle de représentation), la simulation (modèle mathématique), le placement des

composants, et le routage (pistes conductrices).

Exemples de logiciels d'électroniques (assembleurs de composants) :

• ALTIUM DESIGNER ex Protel

• Design Architect

• Eagle

• Edwin

• gEDA

• Hyperlynx

• Kicad

• Proteus

• OrCad

• PCAD

• CR-5000 de Zuken

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 13

La conception assistée peut parfois aller plus loin encore en proposant une aide à la

création de "face" comme avec le logiciel "Front-Designer" ou "Front Panel

Designer".

6.3. Electrotechnique

Les logiciels de conception permettent la réalisation de plans de câblage électrique

pour les domaines de l’industrie, distribution d’énergie, automobile, aéronautique, …

Le logiciel de CAO permet au concepteur une prise en charge globale du projet par un

même outil, (Réalisation des plans, des liens entre composants et plans, des borniers

et connecteurs, des nomenclatures, des implantations composants, des faisceaux de

câblage, …).Les logiciels de CAO électriques facilitent également les échanges entre

les corps de métier amenés à collaborer sur certains projets tel que le bâtiment. Les

plans d'architectes réalisés dans les formats standards sont ensuite importés et utilisés

comme base par des logiciels spécialisés notamment dans les schémas d'implantation

électrique. Ce type de logiciels ne vise pas la réalisation de schémas de

fonctionnement mais permet à l'utilisateur la création d'installations électriques

domestiques ou tertiaires et de visualiser les dépendances entre appareils

(interrupteurs ↔ lampes, ...), le matériel nécessaire au projet (appareils, filerie,

gaines, ...) ainsi que des contenus détaillés de chaque gaine ou des boites de

dérivation.

Dans ce domaine deux modes de conception existent :

1. Mode symbolique : Utilisé depuis le début de la CAO électrotechnique, il

consiste à prendre les symboles des plans comme éléments principale

contenant les informations de la CAO.

2. Mode objet : Crée en Allemagne depuis 2005, il consiste à prendre les objets

(composants de nomenclature) comme éléments principale contenant les

informations de la CAO. Il permet ainsi de faire les créations et modifications

depuis tout type de représentation (ou non) en assurant une mise à jour en

temps réels sur le projet entier. (Il est possible de commencer par la

nomenclature et finir par le schéma, de modifier un appareil ou câbles sans

avoir à régénérer les nomenclatures, borniers, carnet câble, ect, …)

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 14

Exemple des logiciels en mode objet :

• Egineering Base, édité par Aucotec

• E3.series, édité par Zuken

• Eplan

Exemple des logiciels en mode symbolique :

• Electre NT, édité par Elsys

• SchemELECT, édité par FTZ

• Elec’View édité par AlgoTech

• See electrical expert, édité par IGE-XAO

• AxiomCAD, édité par assigraph

• Trace elec, édité par Trace software

• SFEACad, édité par SDProget

• AutoCad Electrical, édité par Autodesk

• D-CALC Implantation, édité par JPK Logiciel

• Caneco BT, édité par Alpi

7. Avantages de la CAO

Sous l'effet de fortes pressions provenant de la compétition, de la conjoncture

économique, de diverses contraintes du public et des organismes gouvernementaux

pour de meilleurs produits (et à meilleur marché), l'industrie est forcée de hausser la

productivité du personnel technique. Il est vite apparu qu'à l'aide de l'informatique,

des économies appréciables sont possibles pour chacune des différentes phases du

Processus de design.

i) Création d'un modèle a l'aide des systèmes CAO disponibles sur le marché, la

création géométrique d'un objet (pièce, circuit, etc.) est grandement facilitée. On peut

également étudier l'objet sous divers angles et en tirer des copies à volonté à différents

niveaux de réalisme.

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 15

ii) Analyse des caractéristiques de l'objet, une fois créé, sont immédiatement

disponibles pour des programmes d'analyse ou de simulation (éléments finis,

vibrations, réponses en fréquence..) et, en retour, l'usager reçoit les résultats de ces

calculs sous forme graphique pour évaluer si l'objet est conforme aux contraintes.

iii) Modifications suite à l'analyse ou à la simulation, des modifications sont faciles et

rapides à incorporer, au modèle informatique.

Avec un tel outil, il est possible d'envisager plusieurs solutions et de choisir la plus

adéquate. A titre d'exemple, on cite dans l'industrie de l'automobile pour la mise au

point d'un nouveau modèle. Il est évident que la CAO n'est qu'un outil, mais un outil

qui modifie l'exercice de la profession de l'ingénieur et permet de faire un meilleur

travail. Par exemple, dans le domaine des structures, les programmes d'analyses sont

devenus très précis et complets de manière à ce que le comportement d'éléments telles

les poutres, etc., peut être analysé avec beaucoup plus de fiabilité et de détails qu'avec

les formules empiriques utilisées auparavant. Il est alors envisageable d'optimiser un

design par l'utilisation itérative de ces outils et de déceler des comportements qui ne

seraient apparus que lors de la réalisation du prototype (ou pire, lors du produit fini).

Cette approche est en vigueur depuis plusieurs années dans les domaines de haute

technologie (aviation, nucléaire, électronique ...) où les méthodes traditionnelles sont

devenues désuètes. La progression de ces méthodes avancées de conception est rapide

et à moyen terme, elles seront utilisées dans la plupart des entreprises.

8. Fabrication assisté par ordinateurs (FAO)

Le but de la Fabrication Assistée par Ordinateur ou FAO est d'écrire le fichier

contenant le programme de pilotage d'une machine-outil à commande numérique. Ce

fichier va décrire précisément les mouvements que doit exécuter la machine-outil

pour réaliser la pièce demandée. On appelle également ce type de fichiers :

programme ISO ou blocs ISO. Nous présentons dans ce qui suit les étapes de

fabrication assisté par ordinateur de la conception à la machine outil (Site6):

8.1. Modélisation 3D

La conception de la pièce à fabriquer est réalisée à l'aide d'un progiciel de Conception

assistée par ordinateur (CAO) : on nomme le fichier ainsi obtenu "modélisation 3D"

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 16

ou encore "DFN" pour Définition de Formes Numérisée. Cette modélisation en trois

dimensions de la pièce à réaliser est ensuite « exportée », c'est-à-dire sauvée depuis la

CAO dans un fichier intermédiaire en utilisant un standard d'échange comme IGES,

STEP, VDA, DXF ou autre. Certains outils de FAO sont capables de relire

directement les fichiers des grands fournisseurs de CAO. Dans d'autres cas, la CAO et

la FAO sont complètement intégrées et ne nécessitent pas de transfert. Pour ces

progiciels, on parle de CFAO.

8.2. Élaboration des parcours-outils

La modélisation 3D étant importée sur le progiciel de FAO puis relue par celui-ci, il

est possible de passer à la programmation des parcours outils, le cœur de l'activité de

la FAO. Le programmeur crée les parcours en respectant les choix d'outil, les vitesses

de coupe et d'avance, et les stratégies d'usinage à mettre en œuvre. Le progiciel de

FAO "plaque" les trajectoires des outils choisis sur la modélisation 3D et enregistre

celles-ci sous forme d'équations. Depuis 1990-2000, les progiciels de FAO sont

capables de reproduire graphiquement (visualisation volumique) et d'une manière

fiable, l'action des outils dans la matière, permettant ainsi au programmeur de vérifier

ses méthodes d'usinage et éviter a priori les collisions sur les machines-outil. Il est

possible désormais de modéliser entièrement la machine outil et de visualiser les

mouvements des organes mobiles de celle-ci (tête, table, axes rotatifs) lors de la

simulation d'usinage : cette possibilité est précieuse lors de la vérification et la

validation de parcours en 5 axes, où les risques de collision sont décuplés par rapport

à un usinage plus classique, en 3 axes.

8.3. Génération du programme CN

L'étape suivante consiste, depuis le programme de FAO (au format texte dit APT ou

au format binaire dit CLFile) ainsi élaboré, à générer les blocs ISO pour la machine-

outil. Ce programme de conversion est appelé un Post-Processeur. Le Post-Processeur

est développé spécifiquement pour une cinématique machine et une Commande

numérique données. Par exemple, l'utilisateur aura besoin de développer ou faire

développer un post-processeur pour convertir l'APT du logiciel de FAO CATIA vers

le Controleur Numérique SIEMENS 840D de la Machine-Outil DMG DMU60p. Le

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 17

développement peut-être fait en langage C ou VB (Post-Processeur dit "à Façon") soit

avec un Générateur de Post-Processeur. Il existe différents éditeurs de logiciel

spécialisés dans ce domaine. On peut citer par ordre alphabétique AUSTIN NC

(gPost), CENIT (cPost), ICAM (Campost), IMS (Imspost). Certains éditeurs de

logiciel de FAO proposent leur propre Générateur de Post-Processeur mais ne

fonctionnent que pour leurs propres parcours d'outils.

8.4. Simulation d'usinage

Il existe également des logiciels indépendants de simulation d'usinage permettant de

reproduire en 3D le comportement de la machine-outil en décodant directement les

blocs générés par le Post-Processeur. Ceci permet de prendre en compte le vrai

programme donné à la machine-outil et non pas le résultat de la FAO. Il existe des

acteurs au niveau international qui propose de telles solutions comme

GILDEMEISTER (Virtual Machine), ROBORIS (Eureka), SPRING

TECHNOLOGIES (Ncsimul), VERICUT (CGTech). Avec ce type de solutions, le

temps de mise au point du programme ISO sur la machine est fortement réduit voire

disparait totalement. Il n'est plus nécessaire de tester le programme "à vide" (pas de

montage dans la machine du brut à usiner), à "vitesse réduite" (l'opérateur réduit

l'avance des axes machine pour avoir le temps d'arrêter l'usinage en cas de collision)

ou sur une pièce en matériaux tendres (polyestère, résine). Pour gagner du temps ces

logiciels sont fournis pour la plupart avec des interfaces directes avec les logiciels de

FAO du marché. Par exemple, un programmeur FAO pourra exporter en quelques

clics toutes les données de TOPSOLID'CAM vers NCSIMUL ou VERICUT (les

modèles 3D de la machines, des outillages, du brut, des outils coupants ainsi que le

programme CN et les paramètres de programmation comme les origines programme).

8.5. Transfert vers la Machine-Outil à Commande Numérique

Le fichier ISO obtenu est transmis à la MOCN (Machine-Outil à Commande

Numérique) par un logiciel de DNC (Direct Numerical Control), puis exécuté par

cette machine, après la phase de réglage indispensable. Là encore plusieurs acteurs

proposent des solutions de DNC comme LMBA (GEDIX et GEFIX), LINK

PRODUCTION (SP-X), SMCOM (Cwork), TECHNILOG (Saf).

Chapitre1 Conception et Fabrication assisté par ordinateur

Page 18

9. Conception et fabrication assistées par ordinateur

La conception et fabrication assistées par ordinateur (CFAO) est la synthèse de la

CAO et de la FAO apparue dans les années 1970 avec l'introduction des machines-

outils à commande numérique. L’idée est qu'un système de CAO dispose précisément

de toutes les informations nécessaires pour créer le programme d'une machine-outil à

commande numérique et que dans ces conditions traiter les deux questions

séparément représenterait une perte de temps et d'argent, sans compter les risques

d'erreur de transcription. Au départ, la CFAO visait surtout à commander les

machines-outils pour la réalisation des maquettes et prototypes, mais la fiabilité du

procédé fait aujourd'hui intervenir l'ordinateur sur tout le cycle de production. Les

maquettes sont au passage devenues virtuelles également. Des interfaces d'exportation

comme IGES, VDA, SET, STEP permettent également l'importation des schémas, des

plans, des solides dans la documentation technique des objets fabriqués.

10. Conclusion

Ce chapitre donne une description globale sur le principe de conception et de la

fabrication assistées par ordinateur, leurs implémentations et leurs différents outils de

manipulation qui existent sur le marché. Le chapitre suivant est un descriptif sur les

systèmes multi-agents.

Chapitre2 Systèmes multi-agents

Page 19

1. Introduction

La conception, l’implémentation et la validation des systèmes multi-agents

soulèvent de nombreuses questions de recherche qui leur sont spécifiques. Elles

incluent la mise en œuvre de stratégies de coordination qui permettent effectivement à

des groupes d’agents de résoudre des problèmes; de mécanismes de négociation qui

permettent d’amener un ensemble d’agents dans un état global acceptable ; de

techniques pour détecter les conflits et les résoudre; de protocoles par l’intermédiaire

desquels les agents peuvent communiquer et raisonner sur leurs communications ; et

enfin de mécanismes par lesquels les agents peuvent maintenir leur autonomie tout en

contribuant au fonctionnement général du système.

Ce chapitre présente les systèmes multi-agents, les différentes sections proposées

permettent d’introduire les notions d’agents, d’interactions entre les agents et des

protocoles de communication entre les agents.

2. Agents et systèmes multi-agents

Le domaine des systèmes multi-agents (SMA) est en pleine expansion. De nombreux

travaux éclosent quotidiennement et brassent des domaines plus ou moins connexes

tels que l’intelligence artificielle distribuée, la vie artificielle, la modélisation

cognitive, les systèmes distribués, la robotique, etc. Les SMA visent l’élaboration, la

conception, la simulation et/ou la compréhension de systèmes coopératifs ou

compétitifs, distribués, et ouverts pouvant intégrer des agents humains et/ou

artificiels. Essayons de préciser chacun des termes:

2.1 L’intelligence artificielle distribuée

Après l’essor connu par les systèmes experts au début des années soixante-dix, les

chercheurs du domaine se sont vite retrouvés confrontés au problème suivant: les

systèmes experts sont monolithiques et présentent des limitations certaines dues

Chapitre2 Systèmes multi-agents

Page 20

essentiellement à la quantité croissante des connaissances (par exemple problèmes

d’inférence, problème d’acquisition et d’évolutivité des connaissances, etc.) ainsi

Qu’à l’inadéquation d’un contrôle centralisé pour des applications de plus en plus

distribuées. Ainsi sont apparus les premiers travaux en IAD dont la préoccupation

majeure était la distribution de systèmes à base de connaissances. Motivée

essentiellement par un souci d’efficacité, la distribution a porté sur les connaissances

(factuelles et/ou opératoires), ainsi que sur le contrôle. En effet, contrairement à

l’intelligence artificielle classique (IA) qui cherche à modéliser/simuler le

comportement « intelligent » d’un seul agent, l’intelligence artificielle distribuée

(IAD) s’intéresse à des comportements intelligents qui sont le « produit » de l’activité

coopérative de plusieurs agents. A ce titre, on peut citer les travaux qui se sont

développés dans les années 1980 autour des systèmes multi experts, des systèmes à

base de tableaux noirs (blackboard systems), etc. Pour résumer, l’intelligence

artificielle distribuée visait :

- Une meilleure structuration et organisation des connaissances factuelles et

Opératoires ;

- La traduction d’un ensemble d’expertises sous une forme unifiée, c’est-à-dire la

Gestion du pluralisme et l’intégration de plusieurs points de vue.

-La distribution de l’expertise sur un ensemble d’entités qui communiquent pour

atteindre un objectif global ; Elle peut être de deux types:

1) Une distribution descendante qui consiste à diviser le problème en sous problèmes

et à les affecter aux différentes entités. Cette hypothèse n’est pas toujours aisée car

beaucoup de problèmes ne peuvent être partitionnés.

2) Une distribution ascendante : l’atteinte d’un objectif global nécessite la synergie

(connaissances, compétences, expertises, etc.) de plusieurs entités et dans ce cas, il

faut être en mesure de gérer les incompatibilités, incohérences, contradictions, etc. Par

conséquent, l’intégration multi-expertise a soulevé un autre problème qui est celui de

la coopération entre plusieurs entités et leur coordination. Ainsi une extension des

systèmes d’IAD est proposée : les entités doivent être capables de raisonner sur les

connaissances et les capacités des autres dans le but d’une coopération effective. Pour

Chapitre2 Systèmes multi-agents

Page 21

ce faire, ils doivent être dotés de capacités de perception et d’action sur

l’environnement et doivent posséder une certaine autonomie de comportement, on

parle alors d’agents et par conséquent de système multi-agent.

2.2 Développement des réseaux et des systèmes distribués

La généralisation des réseaux, la coopération entre plusieurs composants logiciels au

sein d’environnements hétérogènes et distribués et le développement d’Internet ont

ouvert la voie à de nouvelles applications SMA. Dans le cas des réseaux, on retrouve

les travaux autour de la gestion de réseaux, les réseaux intelligents, etc. Dans le

domaine d’Internet, les agents intelligents sont de plus en plus utilisés pour offrir de

meilleurs services aux utilisateurs (par exemple recherche intelligente, assistance,

commerce électronique, etc.). On peut citer également toutes les applications liées à la

coopération des logiciels, des composants distribués, etc.

Plusieurs travaux dans le domaine des systèmes distribués introduisent des concepts

d’IAD tels que la répartition du contrôle, le concept de connaissance distribuée (telle

que définie dans [Fagin et al, 1995]), etc. Pour la conception d’applications réparties

et coopératives, Cet intérêt pour les SMA est dû essentiellement au fait qu’une telle

approche permet:

- la décomposition et la répartition des connaissances et des mécanismes de traitement

dont l’unité de base est l’agent.

- la dynamicité du contrôle de résolution d’un problème distribué caractérisée par

l’organisation dynamique et l’affectation des tâches modifiables en cours de

résolution.

- l’aptitude à traiter des problèmes simultanés et potentiellement corrélés avec des

optimisations éventuelles.

- l’adaptabilité et la possibilité d’apprentissage des agents qui leur confèrent la

capacité de résister à des environnements évolutifs et/ou instables.

Chapitre2 Systèmes multi-agents

Page 22

2.3 Agents VS Objets

Les deux grandes branches de l’informatique ‘moderne’ sont sans doute la

programmation orientée objets (POO) et la programmation orientée agents (POA).

Voici les principales différences entre les deux approches [Adam Emmanuel, 2008].

-Un agent est un objet qui est adaptatif, rationnel, autonome, capable de communiquer

Et d’agir.

-Un agent logiciel est de préférence créé sous forme d’un objet ayant les

caractéristiques d’un processus.

-Un objet O1 peut appeler une méthode existante d’un objet O2 qui doit l’exécuter.

-Un agent A1 peut demander l’exécution d’une méthode à l’agent A2 qui est libre de

L’exécuter ou pas.

-Un agent agit en fonction de son but, de ses contraintes et de ses capacités. Ces

points font la différence entre agents et objets, et c’est sur ces bases que se fait le

choix de l’approche à utiliser selon la problématique.

2.3.1 Définitions des agents

Plusieurs définitions d’agents existent, le terme « Agent » est utilisé de manière assez

vague, cependant quelques définitions précises existent dont voici quelques unes :

-Un agent est un système informatique situé dans un environnement qu’il peut

percevoir et sur lequel il peut agir de manière autonome comme il est montré dans la

figure 2.1 [Boissier Olivier, 2002].

Chapitre2 Systèmes multi-agents

Page 23

FIG.2.1– Un agent dans un environnement [Boissier Olivier, 2002]

-Un agent est une entité logicielle ou physique à qui est attribuée une certaine mission

Qu’elle est capable d’accomplir de manière autonome ou en coopération avec d’autres

agents [Briot, 2001].

-Un agent est une entité physique ou virtuelle [Ferber et al, 1995].

-capable d’agir dans un environnement,

-pouvant communiquer directement avec d’autres agents,

- Régie par un ensemble de tendances (sous la forme d’objectifs individuels ou d’une

fonction de satisfaction, voire de survie, qu’elle cherche à optimiser),

-possédant des ressources propres,

-capable de percevoir (mais de manière limitée) son environnement

-Ne disposant que d’une représentation partielle de cet environnement (et

éventuellement aucune)

-possédant des compétences et offrant des services

-pouvant éventuellement se reproduire

-dont le comportement tend à satisfaire ses objectifs, en tenant compte des ressources

et des compétences dont il dispose, et en fonction de sa perception, de ses

représentations.

-Une entité devient un agent aussitôt qu’elle est capable d’exercer un contrôle local

sur ses processus de perception, de communication, d’acquisition de connaissances,

de raisonnement, de prise de décision ou d’exécution [Picard, 2004].

Chapitre2 Systèmes multi-agents

Page 24

2.3.2 Caractéristiques

Nous retrouvons parmi les caractéristiques des agents,quelques caractéristiques de

base telles que la communication ainsi que d’autres caractéristiques bien particulières

aux agents, telles que la sociabilité, la réactivité….etc.

2.3.2.1 Communication

La communication est une caractéristique essentielle des agents. Un agent peut

demander un service auprès d’un autre agent en lui envoyant des messages [Barika,

2003]Cette caractéristique est la base du comportement social des agents. Cependant,

des difficultés majeures existent en termes de standards et langage de communication

…etc.

2.3.2.2 L’apprentissage

Les agents ont la capacité d’apprendre tout au long de leur existence. Cet

apprentissage leur permet d’évoluer et même de changer leurs comportements

[Boissier, 2001].

2.3.2.3 Activité

L’agent s’exécutant dans un processus à part est toujours actif, et il n’a pas besoin

d’une intervention humaine pour l’exécuter [Boissier, 2001].

2.3.2.4 Autonomie

L’agent doit être autonome, il doit agir seul et seulement en fonction des signaux qu’il

reçoit des autres agents ou de l’environnement. Il gère son état interne en fonction de

ces informations [Picard, 2004].

Chapitre2 Systèmes multi-agents

Page 25

2.3.2.5 Sociabilité

Généralement les agents sont organisés en communautés. Une communauté impose

des relations entres ses constituants. De ce fait, les agents sont amenés à négocier,

coopérer pour la résolution de problèmes. La sociabilité est basée sur des interactions

entres agents, qui se font grâce à des standards de communication qui seront détaillés

par la suite [Briot, 2001].

2.3.2.6 Réactivité

Cette propriété se résume au fait que l’agent réagit en fonction de ce qui se passe dans

Son environnement. L’agent possède des capteurs (senseurs) lui permettant de

recevoir des informations de l’environnement ou des autres agents, et en fonction de

ces informations il peut agir via des actionneurs (effecteurs).Voir figure 2.2.

2.3.2.7 Pro activité

Un agent peut également réagir en fonction de ce qu’il doit accomplir, ce type

d’agents est doté d’une certaine intelligence et connu sous le nom d’agents cognitifs et

sera détaillé par la suite.

2.3.3 Types d’agents

En fonction de ce que perçoit l’agent comme situations, il peut réagir. S’il s’agit d’une

situation familière pour l’agent, pour laquelle il connait ‘parfaitement’ l’action à

effectuer il s’agit d’un agent réactif.Par contre, si cette situation est familière pour

l’agent mais il lui faut un certain ‘raisonnement’ pour la résoudre, il s’agit dans ce cas

là d’un agent cognitif [Dastani, 2003].

2.3.3.1Agents réactifs

Ce type d’agents se caractérise par le fait qu’il n’on pas de représentation de leur

Environnement, ni du monde auquel ils appartiennent. Ces agents sont les plus

simples à mettre en œuvre du fait qu’ils se comportent selon le stimulus. L’agent sera

Chapitre2 Systèmes multi-agents

Page 26

programmé sous forme de couples « Stimulus/Réponse » [Picard,

2004].Généralement les agents réactifs sont considérés comme non ou peu

intelligents, et nous considérons que l’intelligence émerge de la coopération des

différents agents. Ces derniers sont de plus bas niveau et n’ont qu’un protocole et un

langage de communication réduit [Briot, 2001].

FIG.2.2– Un agent réactif [Boissier, 2001]

Selon les défenseurs de cette approche, il n’est pas nécessaire que les agents soient

intelligents pour que le système ait un comportement global intelligent. Les meilleurs

exemples de ce genre de systèmes constitués d’entité de faible intelligence mais dont

la coopération conduit à des systèmes très intelligents, sont les sociétés d’insectes

(Fourmies).

2.3.3.2 Agents cognitifs

A l’inverse des agents réactifs, les agents cognitifs sont en général dotés d’une

certaine intelligence et une parfaite représentation de l’environnement et du monde

auquel ils appartiennent. Les sociétés d’agents cognitifs sont généralement constituées

d’un petit nombre d’agents. Ces agents sont semblables à des systèmes experts et sont

des agents communicants [Demazeau, 1993]Ces agents ont une représentation très

précise de leur environnement. Chaque agent possède des connaissances comprenant

des informations et du savoir faire. Les agents cognitifs sont dit intentionnels car ils

ont des buts à accomplir, avec une certaine intelligence artificielle et une capacité

d’apprentissage et d’adaptation.

Chapitre2 Systèmes multi-agents

Page 27

FIG.2.3– Un agent cognitif [Courdier, 2005]

Les agents cognitifs sont donc intéressants individuellement et collectivement pour

leur intelligence. Par contre l’intérêt des agents réactifs est uniquement l’interaction

avec les autres agents, et l’exécution de tâches précises et élémentaires [Picard,

2004].

2.3.3.3 Agents hybrides

Les sections précédentes ont présenté deux types d’architectures : réactive et

délibérative (cognitif). Chacune de ces architectures est appropriée pour un certain

type de problème. Pour la majorité des problèmes cependant, ni une architecture

complètement réactive, ni une architecture complètement délibérative n’est

appropriée. Comme pour les humains, les agents doivent pouvoir réagir très

rapidement dans certaines situations (comportement réflexe), tandis que dans d’autres,

ils doivent avoir un comportement plus réfléchi. Dans ce cas, une architecture

conciliant à la fois des aspects réactifs et délibératifs est requise. On parle alors

d’architecture hybride, dans laquelle on retrouve généralement plusieurs couches

logicielles. Les couches peuvent être arrangées verticalement (seulement une couche a

accès aux capteurs et aux effecteurs) ou horizontalement (toutes les couches ont accès

aux entrées et aux sorties) (voir Figure 3.3). Dans ce type d’architecture, les couches

sont arrangées de manière hiérarchique. Les différents niveaux de la hiérarchie traitent

Chapitre2 Systèmes multi-agents

Page 28

les informations provenant de l’environnement à différents niveaux d’abstraction. La

plupart des architectures considèrent que trois couches suffisent amplement [Chaib-

Draa, 2001]. Ainsi, au plus bas niveau de l’architecture, on retrouve habituellement

une couche purement réactive, qui prend ses décisions en se basant sur des données

brutes en provenance des capteurs. La couche intermédiaire fait abstraction des

données brutes et travaille plutôt avec une vision qui se situe au niveau des

connaissances de l’environnement. Finalement, la couche supérieure se charge des

aspects sociaux de l’environnement. Dans cette dernière couche, on retrouve

généralement une représentation des autres agents (leurs buts, leurs croyances, etc.).

Pour produire le comportement global de l’agent, ces trois couches interagissent

ensemble. Ces interactions varient beaucoup d’une implémentation à une autre, et

c’est la raison pour laquelle elles ne sont pas décrites ici.

Figure.3.3–Architectures d’agents en couches [Jennings, 1998]

2.4 Systèmes multi-agents

L’utilisation d’un agent individuellement ne répond souvent pas aux attentes. En effet,

des problèmes plus complexes nécessitent l’utilisation de divers agents , chacun ayant

un objectif. Une autre contrainte est le fait que des problèmes sont de manière

inhérente distribués (ex : gestion décentralisée d’un réseau électrique), et donc seule

une solution distribuée peut résoudre ce genre de problèmes[Ricordel, 2001]. Un

Chapitre2 Systèmes multi-agents

Page 29

système multi-agents est assimilable à un système distribué composé d’agents. On

appelle système multi-agent (SMA), un système composé des éléments suivants:

-Un environnement E, c’est -à- dire un espace disposant généralement d’une métrique.

-Un ensemble d’objets O. Ces objets sont situés, c’est -à-dire que, pour tout objet, il

est possible, à un moment donné, d’associer une position dans E. Ces objets sont

passifs, ils peuvent être perçus, créés, détruits et modifiés par les agents.

- Un ensemble A d’agents, qui sont des objets particuliers (A ⊆ O), lesquels

représentent les entités actives du système.

-Un ensemble de relations R qui unissent des objets entre eux.

-Un ensemble d’opérations Op permettant aux agents de A de percevoir , produire,

consommer, transformer et manipuler des objets de O.

-Des opérateurs chargés de représenter l’application de ces opérations et la réaction de

l’ensemble des constituants du SMA à cette tentative de modification, que l’on

appellera les lois de l’univers multi agents

FIG.3.4– Représentation d’un système multi agents[TAN, 2005]

Cette définition des systèmes multi agents a été donnée par Ferber en 1995, elle n’a

pas été remise en cause depuis ce temps[Ferber, 1995].L’équipe de recherche

MAGMA a donné une approche simple pour la conception des systèmes multi-agents

connue sous le nom d’approche voyelles[Tandabany, 2005]

Chapitre2 Systèmes multi-agents

Page 30

-Agent: Les agents sont les composants les plus élémentaires d’un SMA.

-Environnement: L’espace regroupant les agents.

-Interaction : Tout les mécanismes de communications (langages, protocoles et

infrastructures) permettant une interaction entres les agents.

-Organisation : La structure des agents en définissant les liens hiérarchiques et les

relations entre agents.Voir figure 3.4.

L’approche voyelle est régie par trois principes :

-Principe déclaratif: Qui est la décomposition précédente des SMA en quatre

briques(SMA = A U E U O U I).

-Principe fonctionnel: Qui regroupe les fonctionnalités des agents considérés

individuellement, auxquelles on rajoute les fonctionnalités résultantes des interactions

entre ces derniers.

-Principe de récursion: Les SMA peuvent être considérés dans un niveau d’abstraction

supérieur comme des entités multi agents. Cette approche voyelle est la plus utilisée

pour sa simplicité et son organisation hiérarchique.

2.5 Interactions entre agents

Les systèmes multi-agents ont surtout l’avantage de faire intervenir des schémas

d’interaction sophistiqués. Ils peuvent ainsi coexister, être en compétition ou

coopérer. S’ils ne font que coexister, alors chaque agent ne considère les autres agents

que comme des composants de l’environnement, au même titre que tous les autres

composants.

Si les agents ont une représentation physique, les autres agents ne seront vus que

comme des obstacles que l’agent doit éviter. Il s’ensuit qu’il n’y a aucune

Chapitre2 Systèmes multi-agents

Page 31

communication directe entre les agents. En fait, il peut y avoir une certaine forme de

communication indirecte parce que les agents peuvent se percevoir les uns les autres.

Le but visé n’est toutefois pas de communiquer avec l’autre. Ces informations ne

servent qu’à mieux éviter les autres agents. Par exemple, si l’on considère une

personne marchant dans une foule d’étrangers, elle communique avec les autres à

l’aide de gestes ou de mouvements, mais uniquement dans le but de pouvoir circuler

sans accrocher tout le monde.

S’ils sont en compétition, alors le but de chaque agent est de maximiser sa propre

satisfaction, ce qui se fait généralement aux dépens des autres agents. La situation de

compétition la plus fréquente se produit lorsque plusieurs agents veulent utiliser ou

acquérir la même ressource. Les agents doivent donc pouvoir communiquer entre eux

pour résoudre le conflit. Cette communication prend habituellement la forme d’une

négociation. Les agents se transmettent des propositions et des contre-propositions

jusqu’à ce qu’ils arrivent à une entente ou qu’ils se rendent compte qu’une entente est

impossible. Ce type de communication demande un protocole de négociation et un

langage de communication de haut niveau du type de KQML [Finin , 1994] ou

FIPA-ACL [FIPA, 2000] pour permettre une certaine structure dans la négociation.

S’ils sont en coopération, alors le but des agents n’est plus seulement de maximiser sa

propre satisfaction mais aussi de contribuer à la réussite du groupe. Les agents

travaillent ensemble à la résolution d’un problème commun. Dans ce type de système,

les agents communiquent ensemble, à l’aide de messages plus ou moins sophistiqués,

dans le but d’améliorer la performance du groupe. Ils peuvent s’échanger des

informations sur l’environnement pour augmenter leurs perceptions individuelles, ou

bien se transmettre leurs intentions pour que les agents puissent avoir une idée de ce

que les autres font. Comme toute, les communications servent aux agents à améliorer

leur coordination, c’est-à-dire à organiser la résolution du problème de telle sorte que

les interactions nuisibles soient évitées et/ou que les interactions bénéfiques soient

exploitées.

2.6 Avantage des systèmes multi-agents L’utilisation des systèmes multi-agents (SMA) est quelques fois obligatoire. Quand

on se retrouve face à des problèmes qui imposent un tel choix. Cependant, nous

pouvons choisir d’utiliser des SMA pour les raisons suivantes [Drogoul, 2005].

Chapitre2 Systèmes multi-agents

Page 32

-Les SMA reflètent la réalité : la majorité des problèmes qui sont distribués et

s’adapte facilement aux SMA.

-Diversité : Les SMA peuvent avoir parmi ces agents celles qui constituants une

grande diversité, ce qui donne la possibilité aux concepteurs d’intégrer différents

agents (réactifs, cognitifs …etc.).

-Coopération : Les systèmes peuvent coopérer entre eux pour la résolution de

problèmes plus complexes.

-Modularité: Le grand nombre d’agents permet de découper les problèmes en

sous problèmes ‘simples’, cette approche est l’extension du découpage modulaire de

la POO à la POA.

2.7 Domaines d’applications

Malgré leur jeune âge, les systèmes multi-agents sont présents dans plusieurs

domaines. Ces systèmes sont complexes, distribués, et ont permis le développement

de solutions très performantes et très prometteuses. Des systèmes tels que : les

systèmes boursiers, les systèmes de commandes et de contrôle en temps réel …etc.

ont été le point de départ pour cette nouvelle technologie. Ensuite le domaine

d’application des systèmes multi-agents s’est étendu et nous avons remarqué une

présence des SMA dans les systèmes suivants : Réseaux d’échange P2P, les

télécommunications, les systèmes coopératifs, les systèmes distribués, l’E-commerce.

2.8 Plates formes multi-agents

Plusieurs plates formes existent permettant de développer et d’exécuter des systèmes

multi-agents conformément aux normes précédemment évoquées. Les plates formes

offrent des classes d’abstractions pour les agents, ainsi que des classes de

Chapitre2 Systèmes multi-agents

Page 33

communication permettant des interactions entre agents tout en respectant les

standards (Fipa-ACL, KQML …etc). Voici quelques unes des plates formes multi-

agents les plus connues :

-AgentBuilder(Site5):AgentBuilder est une suite d’outils intégrés permettant de

construire des agents intelligents.Développée par Reticular Systems Inc. Cet outil est

remarquable car il allie à la fois un logiciel de grande qualité et un modèle sous-jacent

qui a fait ses preuves au niveau académique. La méthodologie globale est documentée

dans l’AgentBuilder User’s Guide[Ricordel, 2001].

-Jack(Site6):Jack est décrit comme étant un environnement pour construire, exécuter

et intégrer des systèmes multi-agents commerciaux, écrits en Java et utilisant une

approche orientée composants. Il est développé par la société australienne Agent

Oriented Software Pty. Ltd.

Jack s’intéresse principalement à l’étape de développement. Les outils logiciels sont

le JDE(Jack Development Environment) : un environnement de programmation

graphique, le compilateur du Jack Agent Language (JAL), qui traduit les programmes

écrits en JAL en Java pur, et la librairie de classes permettant l’exécution des agents,

appelée Jack Agent Kernel.

-MadKit(Site7):MadKit est une plate-forme multi-agents écrite en Java basée sur un

modèle organisationnel.Elle est développée par Olivier Gutknecht et Jacques Ferber

du LIRMM (Laboratoire d’Informatique, de Robotique et de Micro-électronique de

Montpellier).MadKit est avant tout une plate-forme d’exécution de systèmes multi-

agents, utilisant unmicro-noyau agent. Le modèle organisationnel sous-jacent est le

modèle Aalaadin. [Ricordel, 2001].

-Zeus(Site8):Zeus est un environnement intégré pour la construction rapide

d’applications à base d’agents collaboratifs. Il est développé par l’Agent Research

Program du British Telecom Intelligent System Research Laboratory. La

documentation de Zeus est abondante, et insiste particulièrement sur l’importance des

aspects méthodologiques de Zeus [Ricordel, 2001].

Chapitre2 Systèmes multi-agents

Page 34

-Jade(Site9):Jade permet le développement et l’exécution de systèmes multi-agent

conformes aux normes FIPA, cette plate forme offre :Un service de nommage, un

service de pages jaunes, des mécanismes de transport de messages, un service

d’analyse Et une bibliothèque des protocoles d’interactions de FIPA. Cette plateforme

est : Entièrement implémentée en JAVA, conforme aux spécifications FIPA,open

Source et distribuée avec licence LGPL, modifiable en cours d’exécution (mobilité

des agents) [Tandabany, 2005].Cette plate forme sera détaillée d’avantage dans

l’annexe II , et sera utilisée pour l’implémentation de notre propre système multi-

agents.

3. Conclusion

Les tendances actuelles ainsi que les besoins croissants et les contraintes grandissantes

ont conduit à l’émergence d’une nouvelle branche de l’intelligence artificielle qui est

vite devenue l’un des axes les plus importants de l’informatique moderne. Les

systèmes multi-agents ont apporté une nouvelle vision des choses et une nouvelle

façon de concevoir des solutions à des problèmes qui auparavant était impossible ou

extrêmement difficiles à résoudre. Les agents, un nouveau concept de programmation

se caractérisent par leur autonomie, activité, réactivité, pro activité …etc.

Nous avons vu qu’il existe deux types d’agents: les agents cognitifs qui tentent

d’accomplir un but donné et les agents réactifs qui sont un ensemble de

stimulus/réactions (agissent en fonction des événements). Quand les agents sont

disposés dans des sociétés, ils sont amenés à coopérer, communiquer et doivent faire

face à des contraintes telles que le partage des ressources. Nous avons abordé par la

suite, les technologies WEB et leurs implémentations dans notre système.

Chapitre 3 Technologie Web

Page 35

1. Introduction

L’internet s’étend tous les jours aussi bien du point de vue du nombre de serveurs

connectés que du point de vue de la quantité d’information disponible sur ces serveurs

et du nombre de clients qui se connectent. Les principaux services responsables de cet

engouement sont le World Wide Web et l’e-mail. Le 3W, le WWW, le World Wide

Web ou en un mot le Web qui désigne en anglais la toile d'araignée représente donc la

toile d'araignée couvrant le monde entier. En effet, ses concepteurs ont eu

l'intelligence d'englober les principaux outils déjà existant à l'époque où il fut inventé

(ex: Gopher, les News, ftp, telnet et d'autres) ce qui a enlevé tous les freins à son

acceptation et a largement contribué à amorcer l'explosion de son utilisation. Mais au

delà de l'activité de consultation, la force du Web et le secret de son expansion sont le

fait que tout le monde peut y participer. Ce chapitre tente d’explorer les concepts de

base et les notions les plus essentielles a l’intégration de ce type de technologie.

2. Bases du Web

Le Web fait appel à un certain nombre de concepts de base. Nous verrons les trois

plus importants dans cette première partie.

2.1 Architecture client serveur

Le World Wide Web s'appuie sur la notion d'architecture client serveur. Un serveur

est une machine en général assez puissante qui fournit un ou plusieurs services (accès

à des sources de données, applications…). Pour fournir ces services elle fait tourner

en permanence des programmes que l’on appelle aussi des serveurs en l’occurrence ce

sont des serveurs Web ou serveurs HTTP. De l’autre coté les utilisateurs font tourner

sur leur machine (machine cliente) un programme client qui, comme son nom

l’indique va être demandeur de services, en l’occurrence ce client est un navigateur

Web qui va demander des pages Web à un serveur Web. Le dialogue entre le client et

le serveur se compose donc de requêtes émises par le client et de réponses données

par le serveur comme il est montré dans la figure 3.1

Chapitre 3 Technologie Web

Page 36

FIG.3.1–Architecture client-serveur du WEB (Site14)

Le client est couramment appelé un navigateur (ou encore browser, fureteur ou

butineur). Les navigateurs les plus connus étant Netscape, Internet Explorer, Lynx,

Mosaic, Opera, Kfm. Les plus courant acceptent des extensions (Plug-In) permettant

d'étendre leurs capacités (lire des vidéo, recevoir du son ou des films en flot continu,

…). Ils connaissent aussi fréquemment des langages évolués (JAVA, Java-script,

VRLM…) permettent d'élargir le champ des possibilités de l'utilisation des pages

Web. Les navigateurs sont des logiciels soigneusement étudiés pour faciliter et

assister la navigation sur le Web. Ils proposent en standard des fonctionnalités

d'historique pour revenir sur ses pas, une gestion des signets pour pouvoir garder ses

pages préférées bien organisées et facilement accessibles, et plusieurs autres fonctions

utilitaires et outils d'assistance.

Un serveur est une machine qui est capable de ‘servir’ d’autres machines en fonction

de leur requête, ces dernières sont appelées ‘clients’. Pour cela elle doit toujours être

connectée au réseau et exécuter le démon (daemon) correspondant au service rendu.

On appelle démon un programme qui tourne en tâche de fond sur une machine et le

cas échéant répond à des requêtes qui lui sont adressées ou déclenche des actions en

réponse à des événements ou un planning. Sur le Web les documents s’échangent

selon le protocole HTTP (HyperText Transfer Protocol) et le démon qui se charge de

répondre aux requêtes des autres machines se nomme HTTPD (HyperText Transfer

Protocol Daemon). De la même façon un serveur offrant des fichiers via FTP est une

machine sur laquelle tourne un serveur FTP encore appelé démon FTPD (File

Transfer Protocol Daemon), de même pour l’e-mail, etc...

Chapitre 3 Technologie Web

Page 37

FIG.3.2–Architecture Génerale Client-Serveur du WEB (Site14)

Il y a deux cas : soit l'utilisateur cherche à visualiser une page disponible sur sa

machine auquel cas le navigateur obtient le fichier par simple lecture directe sur un

disque de la machine sur laquelle il s’exécute, soit l'utilisateur souhaite accéder à une

page disponible sur une machine distante auquel cas le navigateur doit se connecter au

serveur publiant cette page à travers le réseau. On se rappelle qu'Internet est

l’infrastructure internet (interconnected networks = réseaux interconnectés) d'un

réseau informatique mondial. Ce réseau mondial se compose de réseaux d’ordinateurs

locaux interconnectés et dont les échanges suivent les protocoles TCP, UDP et IP

(Transmission Control Protocol and Internet Protocol) chaque ordinateur connecté

étant adressé par un numéro IP ou un nom symbolique / nom de domaine.

L'architecture client-serveur du Web repose sur ces bases en ce sens que le

programme client (navigateur) se connecte au programme serveur (serveur Web)

grâce aux protocoles TCP/IP et ainsi met en place une connexion bidirectionnelle

fiable qu'il va utiliser pour obtenir les informations souhaitées (document, image et

autres fichiers).

2.2 URL

Pour accéder à une page Web il faut d'abord pouvoir décrire où elle se trouve. Pour

repérer un document, un fichier, une source de données …on a développé la notation

URL (Universal/Uniform Resource Locator). Un URL peut désigner un serveur ftp,

Chapitre 3 Technologie Web

Page 38

un fichier sur votre disque,un serveur gopher, une image, une adresse courrier, un

serveur de News, un serveur telnet et bien sûr une page Web publiée par un serveur

http, c'est-à-dire un serveur de Web. En particulier, dans ce dernier cas l'URL contient

le nom du protocole d’accès au fichier (HTTP, SHTTP), le nom du serveur (adresse

IP ou nom symbolique), le chemin d’accès au fichier et bien sûr le nom du fichier :

Les noms d'URL utilisent les lettres de l'alphabet en général en minuscule, les chiffres

sont autorisés, certains caractères / . : # ont une signification particulière et sont donc

réservés, enfin certains caractères sont dit non sûrs dans la mesure où ils sont

interprétés ou interprétables différemment : les blancs, les étoiles, etc.

Les trois caractères / . : sont des séparateurs simples, le ? Est un séparateur

introduisant une requête qui en général demande au serveur d'exécuter un programme

(CGI,…) pour générer la réponse. Il exemple typique est celui des moteurs de

recherche où ce type d'URL est utilisé pour envoyer vos mots clefs à un programme

qui génère la page des réponses. Exemple: si vous lancez une requête sur le mot clef

'vin' sous Yahoo! l'URL est :

http://fr.search.yahoo.com/search/fr?p=vin

Cela signifie que votre requête appelle un programme de recherche dans l'annuaire de

Yahoo! avec le paramètre 'vin'.

On trouve d'autres types d’URL, chacun représentant un service donné, un certain

nombre d'exemples vous sont donnés dans le tableau ci-dessous la forme la plus

complexe d'un URL étant :

<service>:[//][nom utilisateur][:mot de passe][@]<serveur>:<port>/<chemin>

Chapitre 3 Technologie Web

Page 39

2.3 HTML

Le langage HTML (HyperText Markup Language) est utilisé sur le système de

partage de l’information mondial WWW (World Wide Web) depuis 1990. Ce langage

se compose d’un ensemble d’annotations, appelées étiquettes ou balises, qui

permettent de créer et formater un document hypertexte. Un fichier HTML est un

fichier texte ce qui a l'avantage de le rendre facilement lisible sur n'importe quelle

plate-forme/ordinateur. Les balises du HTML sont insérées dans le texte du document

et guident son affichage. Le navigateur interprète les commandes HTML contenues

dans le document et en déduit le format d'affichage du document.

HTML est le langage standard d'édition de pages hypertexte pour le Web. Il existe

plusieurs versions les plus communes et les plus supportées sont les versions 2.0 et

3.2. La toute dernière étant la version 4. Une page Web peut être crée directement

avec un simple éditeur de texte en tapant des commandes HTML ou en utilisant un

éditeur de page Web qui très souvent vous permettra de créer votre document de

façon très conviviale et générera pour vous le code HTML correspondant sans que

vous ayez à connaître ce langage.

Le HTML n'est pas un langage de programmation, c'est un langage d'édition de

documents. Une balise est un mot clé, une commande du langage insérée dans le

corps du document pour introduire un effet particulier (début de mise en gras, fin de

mise en gras, début de tableau…). Une balise commence toujours par un signe "<" et

se finit toujours par un signe ">". La plupart des balises doivent être ouvertes et

fermées pour délimiter leur zone d'influence. La balise fermante contient la même

commande que la balise ouvrante, mais précédée d'un caractère /

Par exemple pour mettre un texte en gras la commande est B (comme "Bold" en

anglais qui veut dire "en gras") la balise ouvrante est <B> et la balise fermante est

</B>. Donc si dans la phrase "Je suis étudiant à l'Université." je veux mettre le mot

Chapitre 3 Technologie Web

Page 40

'étudiant' en gras comme ceci "Je suis étudiant à l'Université.", le code HTML

correspondant sera :

Je suis <B>étudiant</B> à l'Université.

Les balises peuvent utiliser des attributs, pour paramètrer leur effet. Prenons pour

deuxième exemple de changer la taille du texte, on pourra alors taper le code suivant :

Le résultat ressemblera à :petit texte texte agrandi petit texte

Les balises disponibles en HTML vont vous permettre de formater votre document,

insérer des objets (images,…) et surtout le concept central de l'hypertexte : éditer des

liens. Un lien permet de créer une référence vers une autre page en utilisant l'URL de

celle-ci. Si je reprends la phrase "Je suis étudiant à l'Université." et que je ne veux

plus du mot en gras mais je veux créer un lien partant du mot 'Université' et pointant

sur la page http:// www.unice.fr/, de façon à ce qu'une personne cliquant sur le mot

'Université' se voit transférée sur la page de l'Université de Nice, le code HTML

correspondant sera alors :

Je suis étudiant à l'<A HREF="http://www.unice.fr/">Université</A>.

Sa réalisation à l'écran sera probablement "Je suis étudiant à l'Université." le

soulignement étant par défaut la façon la plus répandue de signaler un lien. Si

quelqu'un promène alors sa souris au-dessus de "Université" il la verra sûrement

changer de forme par exemple une main pour lui indiquer qu'il peut cliquer sur ce

mot car c'est un lien.

Comme dans tous les langages il y a un minimum d'informations à donner dans le

fichier HTML. Le fichier HTML minimum ressemble à ceci :

Nom de la commande Paramètres s’il y en a / et le nom de la commande

Balise de début de bloc Bloc de texte concerné

Balise de fin de bloc

petit texte <FONT SIZE+=2> texte agrandi </FONT> petit texte

Chapitre 3 Technologie Web

Page 41

<HTML>

<HEAD>

<TITLE> Document bonjour </TITLE>

</HEAD>

<BODY>

Bonjour.

</BODY>

</HTML>

Les balises <HTML> et </HTML> stipulent que ce fichier texte est formaté selon le

langage HTML et délimitent le contenu à interpréter.

Les balises <HEAD> et </HEAD> viennent du mot HEADER (Entête) et délimitent

l’en-tête du document contenant son titre et des informations sur son contenu.

Les balises <BODY> et </BODY> délimitent le corps du document contenant le

texte, son formatage les objets et les liens qu’il inclut.

Vous pouvez taper ce petit exemple dans un éditeur de texte, le sauver (par habitude,

les fichiers HTML ont pour extension .html ou .htm exemple : bonjour.html ou

bonjour.htm) et l’ouvrir grâce à l’option 'ouvrir un fichier' du menu fichier de votre

navigateur.

Comme nous le disions au début, pour que l'édition de grands documents ne soit pas

fastidieuse, on peut utiliser un éditeur HTML cependant il faut savoir que toutes les

subtilités du langage ne sont pas forcément disponibles au travers d'un tel logiciel et

que le code généré n'est pas toujours de bonne qualité. Enfin insistons sur le fait que

le HTML n’est pas un langage de programmation en lui même et que de plus il n’y a

pas de compilation car tout se fait sur le principe de l’interprétation du document tel

qu’il est décrit dans le fichier texte. L’aspect programmation n’apparaît qu’au travers

Titre du document En-tête du document

Corps du document

Chapitre 3 Technologie Web

Page 42

de l’utilisation du Java, du JavaScript, des CGI,… et ces domaines sont à eux seuls

très complexes et ne seront pas abordés ici.

3. Terminologies du Web

3.1. HTTP

Le protocole de base du World Wide Web est HTTP (HyperText Transfer Protocol)

qui peut être utilisé pour n'importe quelle application client-serveur impliquant de

l'hypertexte. Ce protocole est capable d'assurer le transfert de texte, hypertexte,

fichiers audio, images ou tout autre type d'information pouvant se mettre sous la

forme d'un fichier.

Le scénario de dialogue classique entre un navigateur et un serveur Web est le

suivant. Le navigateur Web client établit une connexion TCP avec le serveur Web qui

contient la page qui l'intéresse. Une fois la connexion établie, le client émet une

requête HTTP contenant une commande, une URL, et parfois d'autres informations.

Lorsque le serveur Web reçoit la requête il essaie d'exécuter la commande qu'elle

contient. Il retourne ensuite comme réponse le résultat obtenu qui peut être des

données, un message d'erreur, et d'autres informations. Une fois que le client a reçu sa

réponse la connexion est fermée et détruite.

3.2. JavaScript

JavaScript est un langage léger, mais relativement complexe et puissant, qui apporte

des fonctions dynamiques à HTML dans les navigateurs. Malgré son nom, il est très

différent du langage Java et pas vraiment orienté objet (pas d’héritage…).

3.3. ActiveX

Ce sont des composants logiciels inclus dans une page HTML et téléchargés par le

navigateur en même temps que celle-ci. Ils sont dérivés du modèle de composant

Chapitre 3 Technologie Web

Page 43

COM (Component Object Model) popularisé avec Visual Basic. Ce modèle permet

d’ajouter des fonctionnalités à Windows en enregistrant des composants compilés

dans la base des registres. Ces composants deviennent alors disponibles et

exploitables par toutes les applications Windows.

3.4. Un plug-in

est un programme téléchargé et installé automatiquement par le navigateur lorsque

son usage est requis pour la première fois. Le principe est relativement simple :

Lorsque le navigateur est confronté à un type de données inconnu, il fait appel au

plug-in concerné pour le traiter.Les plug-in les plus utilisés à l’heure actuelle sont

ceux qui permettent de profiter de fonctionnalités multimédia ou de mises en page non

supportées par HTML. Ils sont généralement gratuits et téléchargeables depuis le site

Web de leur auteur.

3.5. Applet

Une applet est un programme Java dont le code est téléchargé sur le poste client

depuis le serveur web et s’exécute ensuite dans le navigateur en utilisant un

interpréteur Java (la machine virtuelle, ou JVM, qui est intégrée dans la plupart des

navigateurs). Le modèle de sécurité des applets est très strict mais évolutif depuis Java

2 (utilisation des certificats).

3.6. Servelet

Programme Java qui s'exécute dynamiquement sur le serveur Web et permet

l'extension des fonctions de ce dernier, typiquement : accès à des bases de données,

transactions d'e-commerce, etc. Un servlet peut être chargé automatiquement lors du

démarrage du serveur Web ou lors de la première requête du client. Une fois chargés,

les servlets restent actifs dans l'attente d'autres requêtes du client.

Chapitre 3 Technologie Web

Page 44

3.7. Cookie

est un petit ensemble d’informations qu’un serveur peut demander à un client de

garder, pour lui demander de les restituer par la suite. Une application web peut par

exemple utiliser un cookie transitoire pour que le serveur suive la trace d’un

navigateur client particulier, tout au long de son parcours parmi les pages du site web.

Quant aux cookies permanents, ils servent souvent de tickets d’entrée virtuels évitant

au client de ressaisir ses informations d’accès personnelles.

3.8. JSP

Extension de la technologie Java Servlet de Sun qui permet de programmer

simplement l'affichage de contenus dynamiques sur le Web. JSP consiste en une page

HTML incluant du code Java qui s'exécutera soit sur le serveur Web, soit sur le

serveur d'application. Le langage HTML décrit la manière dont s'affiche la page, le

code Java servant à effectuer un traitement, par exemple récupérer les informations

nécessaires pour effectuer une requête dans une base de données.

3.9. PHP

Technologie libre utilisée pour créer des pages dynamiques. Reprenant des éléments

de syntaxe des langages C, Java et Perl, le code PHP est inclus dans les pages HTML

pour être exécuté sur le serveur. On se sert habituellement de PHP pour extraire du

contenu d'une base de données et l'afficher sur une page Web.

4. Services Web

Un service en général (et plus particulièrement un service Web) représente une

fonctionnalité qui peut être facilement réutilisée sans avoir à connaître ni les détails ni

la façon dont le service est construit. Puisque les protocoles du web sont

Chapitre 3 Technologie Web

Page 45

complètement indépendants des fournisseurs, des plateformes et des langages de mise

en œuvre, les applications résultant de la mise en œuvre des technologies de services

web sont à la fois intégrables dans l’environnement de business, et suffisamment

flexibles pour faire face aux modifications potentielles dans un monde très évolutif tel

que celui du e-commerce.

Les applications construites en se basant sur les services Web offrent les mêmes

fonctionnalités que celles qui sont mises en œuvre selon une architecture

monolithique mais en plus on peut constater les bénéfices suivants : [Papazoglou,

2003], [Cardoso et al, 2004]

Une extension plus facile pour les règles de business afin de les appliquer aux

nouvelles fonctionnalités "coopératives ".

La flexibilité de modifications sans avoir besoin de reconstruire la structure de base.

La réduction du coût d’intégration en utilisant des protocoles de référence.

Un service web est un composant logiciel autonome possédant un URI (Uniform

Resource Identifier) unique, et fonctionnant sur Internet. Les avantages des

architectures services Web ont été bien utilisés dans le domaine des applications de

type Business-To-Business (B2B) pour l'intégration d'applications d’entreprise et

même dans des scénarios de type Business-To-Customer (B2C) [Alonso et al, 2004].

Les services web sont des processus métiers ou des données accessibles via Internet

par n’importe quel client. Ils permettent aux applications d’interagir entre elles via le

Web. On peut envisager grâce aux services web de segmenter les applications en

plusieurs composants ou services partagés, qui peuvent résider sur des machines

différentes et de nature complètement hétérogènes. La communication entre les

différents acteurs se fait via les langages XML et le protocole HTTP.

L'architecture des services web s'est imposée grâce à sa simplicité, à sa lisibilité et à

ses fondements normalisés. Le concept des services web s’appui sur trois éléments

essentiels, SOAP, WSDL et UDDI (Chauvet, 2002) : un protocole léger fondé sur

XML est utilisé pour échanger des informations (SOAP) ; les paramètres du service

Web sont décrits avec un langage WSDL toujours basé sur XML ; une architecture

répartie détient la description des services fournis (UDDI).

Chapitre 3 Technologie Web

Page 46

Un service web est un service d’application (c’est-à-dire une fonction accessible

depuis le réseau) qui peut être consulté en utilisant des protocoles standards du web.

Les services web indiquent entre autres l’ensemble des standards qui assurent

l’interopérabilité entre les différents services. Le concept de service web inclut les

caractéristiques suivantes : [Cardoso et al, 2004].

L’accessibilité depuis l’Internet : les services web communiquent via des protocoles

liés au web, indépendants d’une plateforme ce qui facilite l’intégration entre des

environnements hétérogènes.

Les standards des services web définissent une interface et un protocole de

communication permettant l’enregistrement de ces services sur un serveur, pour

faciliter l’invocation de leurs fonctionnalités par une application cliente.

Le langage de définition de services web WSDL (Web Services Definition Language)

met en place une couche d’abstraction entre l’implémentation et l’interface,

fournissant une application configurable. Ceci garantit la flexibilité de l’application

résultante.

L’avantage premier de l’approche basée sur les services Web est l’adoption à une

large échelle de ses technologies. Cela permet aux entreprises d’effectuer une

transition incrémentale vers une architecture orientée service avec des risques

minimaux et donc de limiter les coûts.

FIG3.3.–Les Service WEB (Site15)

Chapitre 3 Technologie Web

Page 47

4.1 Les standards utilisés par les services Web

Les services web sont bâtis en se basant sur des standards ouverts et largement

adoptés comme http et eXtensible Markup Language (XML). Ces standards sont

maintenus par des organisations indépendantes sans but lucratif. Il en résulte des

standards ouverts et gratuits selon lesquels des applications et des outils compatibles

avec les services web sont construits. Quelques groupes majeurs de standardisation de

services web sont cités dans [Curbera et al, 2002]

W3C (World Wide Web Consortium) : Consortium majeur gérant la plupart des

standards largement adoptés dans le domaine de service web, incluant

l’implémentation de patrons de code et de standards comme HTML.

OASIS (Organization for the Advancement of Structured Information Standards) :

Source originale de la spécification concernant l’évolution de XML. Cette

organisation gère actuellement les spécifications de XML et UDDI (Universal

Description, Discovery and Integration) [OASIS, 2005].

WS-I (Web Services Interoperability Organization) : Groupe dont l’objectif est

d’assurer l’interopérabilité entre les implémentations diverses des standards de

services web.

Dans les paragraphes suivants, nous allons introduire les standards qui jouent un rôle

vital dans l’environnement des services Web.

4.2 XML : eXtensible Markup Language

XML concerne les spécifications liées à la customisation des types de documents, en

utilisant des formats lisibles par l’Homme. Les spécifications de XML renforcent les

règles de construction des documents. XML permet aux développeurs de créer leurs

propres balises, permettant la définition, la transmission, la validation, et

l’interprétation de données entre les applications et les organisations.

Les services web communiquent en utilisant XML (interfaces et messages de XML

interprétables facilement par les applications) pour décrire leurs interfaces et encoder

leurs messages et en s’appuyant sur les protocoles standards de web comme les

Chapitre 3 Technologie Web

Page 48

protocoles SOAP (Simple Object Access Protocol), UDDI (Universal Description,

Discovery and Integration), et WSDL (Web Services Description Language) pour

réaliser l’interaction. Ces standards utilisent également XML [Girard and Crusson,

2001].

4.3 SOAP : Simple Object Access Protocol

SOAP est un standard qui représente une « enveloppe » légère contenant la charge

utile "payload" des messages échangés entre les producteurs et consommateurs de

services. C’est un standard basé sur XML qui décrit le contenu du message échangé

ainsi que la façon de traiter ce contenu. Ce protocole permet en outre une association

avec les protocoles de transport. SOAP offre aussi un groupe de règles d’encodage

pour exprimer les instances des types de données définies par les applications et une

convention pour représenter les invocations à distance et les réponses des

applications. Voici les éléments principaux de ce standard [Curbera et al, 2002],

[SOAP, 2007] :

L’enveloppe de SOAP (SOAP Envelop) décrit le contenu du message et la façon de

traiter ce contenu. Il contient en outre des détails supplémentaires ainsi que les

informations liées à la sécurité ou à la destination finale du message.

Le cadre d’association avec le transport (SOAP Transport Binding Framework) est un

cadre abstrait pour l’échange des « enveloppes » en utilisant un protocole de

communication sous-jacent comme HTTP.

Le cadre de sérialisation (SOAP Serialization Framework) est constitué par un groupe

de règles pour exprimer les instances des types de données définies par les

applications (ainsi que les chiffres et le texte).

La représentation des appels des procédures à distance (SOAP Remote Procedure

Calling Representation) est une convention pour représenter les invocations et les

réponses des applications à distance [OMG, 2005].

Chapitre 3 Technologie Web

Page 49

4.4 WSDL : Web Services Description Language

WSDL est un langage au format de type XML utilisé pour la description des services

offerts sur un réseau. Ce langage décrit les interfaces des messages contenants des

information orientées documents ou orientées procédures. Les opérations et les

messages sont décrits de manière abstraite. Ces descriptions sont ensuite couplées au

système de transport (spécifiant le format des messages et les protocoles réseau) pour

définir les points de connexion aux services afin de définir une extrémité. Les

messages sont associés au protocole SOAP et au protocole de transport HTTP. La

nature abstraite de WSDL (défini comme un outil de description pour les services)

fournit la flexibilité nécessaire pour décrire des applications complexes des services

web. Un document WSDL utilise les éléments suivants pour la définition des services

[Curbera et al, 2002] :

Types : conteneur pour la définition de type de données comme XSD (XML Schema

Definition).

Message : définition typée abstraite des données communiquées.

Opération : description abstraite pour une action supportée par le service

Type de port : groupe d’opérations abstraites supportées par une ou plusieurs

extrémités.

Association : protocole concret ainsi qu’une spécification pour un format de donnée

dédié à un type de port précis.

Port : extrémité définie comme une combinaison d’une association avec une adresse

réseau.

Service : collection des extrémités reliées.

Chapitre 3 Technologie Web

Page 50

5. Conclusion

Pendant les dernières années le WEB est devenu une partie importante est

culturellement acceptée de l’analyse d’information, de collection, de diffusion, de

livraison et de stockage d’environnement des individus, des entreprises, des

gouvernements et d’autres organisations.

Tout au long de ce chapitre, nous avons décrit de manière générale les technologies

Web avec leur principe de fonctionnement vu qu’elle a émergé comme un mécanisme

puissant pour intégrer les systèmes d’information distribués. Dans ce qui suit nous

allons présenter notre approche qui s’inscrit dans le contexte décrit précédemment.

Chapitre4 Conception

Page 51

1. Introduction

Le développement des systèmes à base d'agents est un secteur important de la

recherche qui bénéficie des caractéristiques des agents telles que la délégation,

l’autonomie et la communication. Notre travail vise à répondre dans un cadre général

à la fabrication collaborative, distribuée et basée sur un modèle utilisant un ensemble

d’agents intelligents et interactifs qui bénéficient mutuellement de partage des

ressources et redistribution des tâches entre eux. Tout d’abord, nous allons présenter

l’architecture générale de notre modele, cette dernière combine entre la technologie

Web et les agents pour aider les concepteurs se trouvant géographiquement distribués

à valider leurs conceptions pour entamer une éventuelle fabrication. Par la suite, nous

passerons à définir la structure des différents agents et les algorithmes qui permettent

de résoudre quelques problématiques de la gestion de production, par la suite.

2. Contribution

Considérant la complexité des produits créés dans un scénario de fabrication répartie,

ce qui exige souvent une collaboration efficace entre un certain nombre de services,

dans notre étude nous décrivons un modèle à base d’agents pour le développement

d’un système de fabrication répartie en temps réel avec un mécanisme de gestion

centralisé. Les différents agents distribués ont plusieurs fonctionnalités. Ces agents

interagissent de manière cohérente pour réaliser la production et l’acheminement des

pièces pour faciliter la production de la conception assistée par ordinateur (CAO) à la

fabrication proprement dite. Les agents répartis géographiquement communiquent

sous le contrôle d’un agent manager (coordinateur), ce dernier est le noyau de notre

système. Notre travail aborde le problème d’une gestion de production distribuée sur

plusieurs sites ou plusieurs entreprises et l’élicitation des exigences pour un

environnement multi-utilisateurs.

Chapitre4 Conception

Page 52

3. Architecture proposée

L'objectif de l'architecture proposée est de fournir une plateforme qui aide les

concepteurs travaillant d’une manière distribuée a envoyer des données de conception

(‘design’) et recevoir des conceptions validées ainsi que des orientations pour leur

concrétisation c'est-à-dire la fabrication proprement dite. Tous les agents

communiquent sur internet via un paquet de requêtes et un langage de communication

entre agents (FIPA-ACL)[] afin de transférer des données entre eux ; Quand un

message est transmis entre les agents, il est transcrit par le FIPA-ACL dans un format

standard. L'agent de destination peut le décomposer et récupérer le message

incorporé. Le langage d'agent (AL) est élaboré afin de traduire le message pour être

compréhensible par l’agent qui le reçoit et exécute la tâche spécifiée dans le message.

Le schéma présenté dans la Figure 4.1 donne un aperçu général sur l’architecture

globale de notre approche.

FIG.4.1––Architecture générale

Notre système est composé des éléments suivants :

Designers : Cette partie constitue l’entrée de notre système.

Chapitre4 Conception

Page 53

SMA : Englobe l’agent désigner(AD), l’agent évaluateur(AE), l’agent ressource(AR),

l’agent de planification(AP) et l’agent de coordination(AC). Ce dernier est le noyau

de notre architecture.

Ateliers : ces ateliers sont dispersés géographiquement et contiennent les différentes

ressources utilisées dans le processus de fabrication.

4. Fonctionnement du modèle

Les designers dispersés géographiquement vont charger les fichiers de conception sur

le serveur FTP via leurs pages web. L’agent désigner va traiter les fichiers par priorité

est par type avec un nombre de tentative maximale limité a 3.Dans le cas ou le

nombre de tentatives est inferieure a 3, l’agent désigner va demander a l’agent

évaluateur d’entamer l’analyse lexicale et syntaxique et une estimation du temps

d’exécution de la tache a réaliser en passant toujours par l’agent coordinateur qui

vérifie a chaque fois la disponibilité des agents afin d’autoriser la connectivité. Le

résultat est soit un succès d’évaluation soit un déclenchement de conflit de

conception, dans le cas de succès d’évaluation et après une mise à jour de la base des

ressources effectué par l’agent ressource, l’agent évaluateur va recevoir une demande

de réévaluation de l’agent coordinateur afin de valider ses conceptions sur les

modèles de ressources, le résultat de cette réévaluation est soit un succès de

réévaluation soit déclenchement de conflit de ressource. En cas de succès, l’agent

coordinateur va vérifier la disponibilité de l’agent planification afin de lancer la

planification de fabrication, l’agent désigner va concevoir la pièce pour le designer

qui transmet sa décision de fabrication par la suite a l’agent ressource. Le

fonctionnement du modèle est résumé de 2 manières différentes, la première est

représentée sous forme d’un diagramme de transition UML (figure 4.2) et la seconde

est visualisée par un scénario montrant les différentes étapes de communication entre

les différents agents (figure 4.3).

Chapitre4 Conception

Page 54

Le schéma suivant représente une vue globale de la communication entre les agents :

FIG4.3.–– Communication entre agents

1 : Chargement des fichiers de conception dans le serveur de stockage par les

différents

designers enregistrés.

2 : L’agent designer filtre les designs par type, priorité et vérifie certaines conditions

afin

d’envoyer la demande du traitement a l’agent évaluateur.

3’ :Erreur de conception générer par l’agent évaluateur Apres analyse lexical et

syntaxique.

4 : Succès d’évaluation et demande de recherche et mise à jour des modèles des

pièces approprient.

5 : Sélection et mise à jour des pièces finis.

6’: Déclenchement d’un conflit de fabrication pour des différents raisons.

6’’: Lancement de la planification.

Chapitre4 Conception

Page 55

7: Génération d’un planning de fabrication.

8: Conception de la pièce par l’agent désigner.

9: Décision de fabrication.

10: Demande de fabrication.

5. Structure des agents

5.1. Agent Designer

Cet agent est le premier agent intervenant dans notre système, il traite les différents

designs réceptionnées provenant dans des files d’attente, chacune correspond a un

degré de priorité (élevée, moyen, faible) relative au cout, il se compose des éléments

suivants :

-Module d’interaction: L’interface de cet agent contient des informations sur les

différents ‘designs’ reçus (Référence, priorité, Nom du fichier….), ainsi que l’état du

design et la décision de fabrication (Accepter ou Refuser).

-Base de données (BD): Elle contient les informations sur l’agent, sa tâche, son

historique d’interaction, ainsi que les informations sur les ‘designs’ reçus.

-Module de Filtrage : permet le classement et le filtrage des designs réceptionnés.

-Module de traitement : Effectue les traitements sur la base de données et sur la base

de connaissances.

La figure 4.4 donne les grands lignes sur le fonctionnement de l’agent désigner

Chapitre4 Conception

Page 56

FIG.4.4 –Algorithme du designer

5.2. Agent évaluateur

Cet agent manipule les informations en entrée par les designers et traités par l’agent

designer, il évalue (analyse lexicale et syntaxique) ces entrées avant de les revalider

sur les modèles des pièces, le principe de fonctionnement est donné dans la figure4.5.

Est il comporte les éléments suivants (Voir figure 4.6):

-Module Interface

-Module Traitement

-Base de donnée(BD)

-Module Analyse : Ce module consiste à analyser les paramètres et les données

d’entrée on se basant sur un compilateur.

-Module de détection : Ce module permet à notre système de détecter les différents

conflits possibles.

-Module de communication : permet de générer les messages pour permettre aux

agents de communiquer entre eux.

Debut 1-Réception des désignes ; 2-Repeter Filtrage des désigns selon extension Tri par priorité Tri par ordre d’arrivé Jusqu’a aucun désign est disponible 3-Demande du traitement du désign par ordre(FIFO) et priorité selon la liste candidate. Fin.

Chapitre4 Conception

Page 57

FIG.4.5 –– Algorithme d’évaluation

FIG.4.6 –– Structure de l’agent évaluateur

5.3. Agent Ressource

Cet agent agit directement sur les ressources, sa base de données contient les

informations sur chaque ressource, en utilisant son module de traitement il peut

ajouter, modifier, supprimer n’importe quelle ressource.

5.4. Agent de coordination

Cet agent est le noyau central de notre architecture, son rôle principal est de surveiller

les agents et la communication entre eux, gérer la priorité, accéder à la base de

Module Interface

Module Traitement

BD BC

Module Communication

Module Analyse

Module Détection

Debut 1-Lancer l’analyse syntaxique du fichier. 2-Vérifier les paramètres du fichier 3-Si résultat-analyse=succès alors Demande de mise a jour de la base de donnée Sinon résultat-analyse=échec alors Conflit de Conception Fin.

Chapitre4 Conception

Page 58

données centrale et résoudre les différents types de conflits qui peuvent apparaitre

dans le système. Sa structure interne est composée des modules suivants (Figure2) :

-Module Interface : C’est une interface graphique qui nous permet d’interconnecter

avec le système et de visualiser les différentes opérations de l’agent.

-Module du traitement : Il assure le bon fonctionnement de l’agent, la gestion de la

base de connaissances et de toutes les données.

-Module de coordination : son rôle est de filtrer les messages réceptionnés des

différents agents et les adapter au format requis par les agents destinataires. Ce

module permet aussi de traiter les tâches de résolution des conflits liées à la

coordination entre les agents.

-Module de supervision : ce module vérifie la disponibilité des agents par l’envoi

des requêtes de test de connectivité en cas où un agent ne répond pas après un certain

temps écoulé.

-Base de données (BD) : Cette base contient les différentes informations concernant

l’agent, sa tâche et son historique d’intervention.

-Base de Connaissances (BC) : Cette base est un pool de stockage d’une expertise

qui est mise en oeuvre en utilisant le langage de programmation JAVA comme la

règle ' 'if / then ", elle contient aussi les différentes connaissances que l’agent peut

manipuler.

Chapitre4 Conception

Page 59

FIG.4.7 –– Structure de l’agent de coordination

6. Communication entre les agents

6.1. Introduction

Un langage de communication est conçu pour l’échange d’informations, de

connaissances ou encore de services [Koning et Pesty, 2001] entre les agents. Dans

notre architecture, les agents sont munis d’un ACL leur permettant de communiquer à

propos des besoins de l’utilisateur et de construire des contenus de messages

exprimant des informations à propos de leurs capacités [Charif et Sabouret, 2004].

6.2 Définition ACL

Les ACL (Agent Communication Langage) prennent place dans une couche

logiquement supérieure à celle des protocoles de transfert (TCP/IP,HTTP,IIOP).Ils se

différencient donc des mécanismes de la théorie de l'information non seulement par

leur structure et leur syntaxe plus complexe, faisant appel à des interprétations

sémantiques "mentalistes", mais aussi par leurs spécifications générique et précises

qui permettent aux systèmes développés d'être théoriquement ouverts. Les deux ACL

les plus connus sont KQML et FIPA-ACL.Nous allons particulièrement nous

intéresser dans notre travail à l'ACL de la FIPA (the Foundation for Intelligent

Physical Agents).

Module Traitement

BD BC

Module Interface

Module Coordination

Module Supervision

Chapitre4 Conception

Page 60

6.3. Envoie de messages

Tous nos messages doivent passées par l’agent coordinateur, tel que chaque agent

envoi un message dans le cas ou il exécute une action dont les effets consistent en

l’envoi d’un ou plusieurs messages, alors il construit ces messages et les envois au (x)

destinataire(s) spécifié(s) en passant par l’agent coordinateur.

6.4. Structure d’un message envoyé

les messages échangés dans le WEB-MAS ont conçus en utilisant le langage de

communication FIPA-ACL [18] selon la syntaxe suivante :

a) performative : l’acte de communication du message.

b) Sender : le nom de l’agent qui envoie le message.

c) receiver : le nom de l’agent qui reçoit le message.

d) content : le contenu du message.

e) language : le langage dans lequel le contenu est exprimé.

f) protocol : le protocole utilisé pour envoyé les messages ACL.

g) conversation-id : l’identificateur de conversation (expression) qui est utilisé

pour la suite d’actes de communication qui constitue la conversation.

h) reply-with : l’expression qui est utilisée par l’agent répondant pour identifier

ce message.

i) in-reply-to : l’expression qui fait référencer à l’action précédente au quel ce

message répond.

7. Algorithme de coordination

Le principe donné à la figure 4.8 de cet algorithme est résumé dans les étapes

suivantes :

Chapitre4 Conception

Page 61

1. L’agent designer reçoit les différents ‘designs’ classés dans des files d’attente

spécifiques, il demande leurs évaluations à l’agent de coordination après un certain

traitement.

2. L’agent coordinateur vérifie l’état de l’agent évaluateur, dans le cas où il est occupé

il avise l’agent designer afin de temporiser.

3. Dans le cas où l’évaluation est déclenchée, l’agent évaluateur effectue une première

analyse, la sortie de cette analyse est soit une demande de recherche des modèles de

l’agent ressource ou bien une détection du conflit de conception (demande de

modification de ‘design’).

4. En cas de succès d’évaluation, l’agent ressource recherche les modèles appropriés

et les transmet à l’agent évaluateur en passant toujours par l’agent coordinateur.

5. Une réévaluation est effectuée par l’agent évaluateur afin de valider les paramètres

de ‘designs’ par les modèles filtrés, la sortie de cette réévaluation est soit une

demande de déclenchement de planification soit la détection du conflit ressource.

6. Une fois la tâche est planifiée, le designer reçoit le calendrier de production et le

‘design’ qui sera transmis par la suite au designer spécifié pour la validation de

production.

Chapitre4 Conception

Page 62

FIG4.8 –– Algorithme de coordination

Debut Etape1: Récuperation status des agents pour(i=1,i<=6,i++) T[i]=St-Agenti; Etape2: Activation agent d’évaluation

si St-AD=attente-evaluation & St-AE=libre & M[j]<>null alors St-AE=evaluation; Sinon Aller a Etape1; Etape3: Vérification des conflits Si résultat-évaluation=erreur alors Informer designer; St-AE=libre; Aller a Etape1; Etape4: Recherche des modèles Si St-AR=Libre alors St-AR=chercher-modèle; St-AE=Libre; Sinon Aller a Etape4; Etape5: Activer Réévaluation/Vérification Conflits Si résultat-recherche=succès alors St-AR=Libre; St-AE=réévaluation; Sinon Informer designer; St-AE=Libre; St-AR=Libre; Etape6:Activer Planification Si résultat-réévaluation=succès & St-AP=Libre alors St-AP=Occupé; St-AE=Libre; Si resultat-revaluation=erreur alors Aller à Etape1 ; Sinon Aller à Etape5; Etape6:Activer la production Si résultat-plan=succès & St-AR=Libre alors St-AP=Libre; St-AR=Occupé; Sinon

Aller a Etape6 Fin.

Chapitre4 Conception

Page 63

8. Conclusion

Nous nous sommes intéressés dans ce chapitre à définir l’architecture générale de

notre système ainsi que la structure de nos agents et quelques algorithmes qui

permettent de faciliter les taches de nos agents tel que l’algorithme de coordination.

Dans ce chapitre, nous avons également présenté l’ACL utilisé par les agents pour

qu’ils puissent à la fois communiquer mais aussi gérer directement les besoins de

désigner avec lequel ils interagissent. Dans le chapitre suivant, nous allons proposer

des scénarios d’exécution de notre approche sur un atelier de fabrication des pièces

mécaniques.

Chapitre Implémentation

Page 64

1. Introduction

Apres avoir décrit notre Approche tout au long du précédent chapitre, nous venons par

le présent chapitre a spécifier l’environnement d’implémentation pour l’illustrer par la

suite par un scenario d’exécution.

2. Environnement de développement

Le développement de notre application requiret un langage de programmation, un

système de gestion de base de données et une plateforme supporte des interactions qui

régissent nos agents.

2.1. Choix de langage de programmation

Le langage de programmation Java surgit sur la grande scène d’internet et obtient

immédiatement un énorme succés.la prétention de java est de constituer la colle

universelle capable de connecter les utilisateurs aux informations, que celles-ci

proviennent de serveurs web, de base de données, de fournisseurs d’informations ou

de toute autre source imaginable.java se trouve en bonne position pour accomplir ce

pari. Il s’agit d’un langage de conception très performant qui a été adopté par la

majorité des fournisseurs de logiciels.ses caractéristiques intégrées de sécurité offrent

un sentiment de confiance au programmeurs comme aux utilisateurs des applications,

de plus java incorpore des fonctionnalités qui facilitent grandement certaines taches

de programmation avancées comme la gestion des réseaux, la connectivités des base

de données ou le développement d’application multitâches.

2.2. Environnement de développement intégrant java (JBuilder)

JBuilder a été édité par la société Borland. JBuilder est un environnement

d'entreprise qui vise à construire rapidement des applications JAVA. Les applications

crées via JBuilder peuvent être orientées client ou serveur. De plus, JBuilder est

compatible avec différents systèmes d'exploitation Windows, Unix, Mac OS, Solaris.

Chapitre Implémentation

Page 65

3. Plateforme JADE

Le meilleur moyen pour construire un système multi-agent(SMA) est d'utiliser une

plate-forme multi-agent. Une plate-forme multi-agent est un ensemble d'outils

nécessaire à la construction et à la mise en service d'agents au sein d'un

environnement spécifique. Ces outils peuvent servir également à l'analyse et au test du

SMA ainsi créé. Ces outils peuvent être 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).

3.1 Bref description de JADE

JADE (Java Agent DEvelopement framework) est une plate-forme multi-agent créé

par le laboratoire TILAB et décrite par Bellifemine et al. Dans [Bellifemine, 1999]

[Bellifemine, 2000] . JADE permet le développement de systèmes multi-agents et

d'applications conformes aux normes FIPA [FIPA, 2000][FIPA, 2002]. Elle est

implémentée en JAVA et fournit des classes qui implémentent « JESS » pour la

définition du comportement des agents. JADE possède trois modules principaux

(nécessaire aux normes FIPA).

• DF « Director Facilitor » fournit un service de « pages jaunes» à la plate-

forme ;

• ACC «Agent Communication Channel » gère la communication entre les

agents ;

• AMS « Agent Management System » supervise l'enregistrement des agents,

leur authentification, leur accès et l'utilisation du système.

Ces trois modules sont activés à chaque démarrage de la plate-forme.

3.2 La norme FIPA

La FIPA (Foundation for Intelligent Physical Agents) est une organisation à but non

lucratif fondée en 1996 dont l'objectif est de produire des standards pour

l'interopération d'agents logiciels hétérogènes. Par la combinaison d'actes de langages,

de logique des prédicats et d'ontologies publiques, la FIPA cherche à offrir des

moyens standardisés permettant d'interpréter les communications entre agents de

Chapitre Implémentation

Page 66

manière à respecter leur sens initial, ce qui est bien plus ambitieux que XML, qui ne

standardise que la structure syntaxique des documents. Afin d'atteindre ce but, le

FIPA émet des standards couvrant :

• Les applications (applications nomades, agent de voyage personnel,

applications de diffusion audiovisuelles, gestion de réseaux, assistant

personnel…) ;

• Les architectures abstraites, définissant d'une manière générale les

architectures d'agents ;

• Les langages d'interaction (ACL), les langages de contenu (comme SL, CCL,

KIF ou RDF) et les protocoles d'interaction ;

• La gestion des agents (nommage, cycle de vie, description, mobilité,

configuration);

• Le transport des messages : représentation (textuelle, binaire ou XML) des

messages ACL, transport (par IIOP, WAP ou HTTP) de ces messages.

Ces standards évoluent, et sont régulièrement mis à jour, ainsi que de nouveaux

standards qui sont nouvellement proposés. Les standards qu'édicte la FIPA ne

constituent pas vraiment une plate-forme de construction multi-agents. Ce n'est pas

non plus l'objectif que s'est fixé la FIPA. Tout au plus, la FIPA normalise une plate-

forme d'exécution standardisée dans un but d'interopérabilité. Ces normes s'appliquent

donc pour la plupart en phase de déploiement. Elles n'abordent pas les phases

d'analyse ni de conception. Elles peuvent cependant guider certains choix

d'implémentation.

3.3 Architecture logicielle de la plate-forme JADE

JADE reprend donc l'architecture de l'Agent Management Reference Model proposé

par FIPA. Les différents modules présentés dans la figure suivante sont présentés sous

forme de services. Les services de base proposés sont le Directory Facilitator (DF) et

l'Agent Management System (AMS). Il est possible de lui demander de tenir en plus

le service de Message Transport Service (MTS) pour communiquer entre plusieurs

plates-formes. Mais ce service sera chargé à la demande pour ne conserver par défaut

que les fonctionnalités utiles à tout type d'utilisation. L'agent est l'acteur fondamental

Chapitre Implémentation

Page 67

de la plate-forme, un Agent Identifier (AID) identifie un agent de manière unique. Le

DF est un composant qui fait office d'annuaire. C'est un service de « pages jaunes »

qui permet de mettre en relation les agents avec leurs compétences. Un agent peut

enregistrer ses compétences dans le DF ou interroger le DF pour connaître les

compétences proposées par les autres agents. L'AMS est un autre composant

important car il contrôle l'accès et l'utilisation de la plate-forme et maintient un

répertoire contenant les adresses de transport des agents de la plate forme. Ce service

est plus un service de type « pages blanches » qui effectue la correspondance entre

l'agent et l'AID.Chaque agent doit s'enregistrer à un AMS pour avoir un AID. Il n'y a

qu'un AMS par plate-forme. Le MTS est une méthode par défaut de communication

entre agents de différentes plates-formes. Cela permet l'interconnexion entre systèmes

hétérogènes ou tout au moins de système ne communicant pas de la même façon.

L'Agent Platform (AP) constitue l'infrastructure physique sur laquelle se déploient les

agents. Il contient le DF, l'AMS et le MTS. Lorsqu'on parle de AP, on inclut souvent

le matériel électronique, l'OS, le software et les composants cités ci-dessus avec les

agents. Enfin, l'Agent Identifier (AID) est un identifiant précis d'un agent. On lui

donne plusieurs paramètres tels que l'adresse de transport, l'adresse de service de

résolution de nom, … Un exemple est : name@HAP (Home Agent Platform)

FIG5.1 — Architecture logiciel de La plate-forme JADE

Dans la plate-forme JADE, deux méthodes sont fournies par la classe Agent afin

d'obtenir l'identifiant de l'agent DF par défaut et celui de l'agent AMS :

getDefaultDF() et respectivement getAMS(). Ces deux agents permettent de maintenir

Chapitre Implémentation

Page 68

une liste des services et des adresses de tous les autres agents de la plate-forme. Le

service DF propose quatre méthodes afin de pouvoir :

• Enregistrer un agent dans les pages jaunes (register).

• Supprimer un agent des pages jaunes (deregister).

• Modifier le nom d'un service fourni par un agent (modify).

• Rechercher un service (search).

Le service AMS s'utilise généralement de manière transparente (chaque agent créé est

automatiquement enregistré auprès de l'AMS et se voit attribué une adresse unique).

Ces deux services fournissent donc les annuaires qui permettent à n'importe quel

agent de trouver un service ou un autre agent de la plate-forme.

3.4 Langage de communication de la plate-forme JADE

Le langage de Communication de la plate-forme JADE 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 :

Actions Syntaxe Définition - Sens

Accept

Proposal

accept-

proposal

Communication de l'accord de l'expéditeur d'effectuer

une action qui lui a été préalablement soumise.

Agree Agree Communication de l'accord de l'expéditeur pour

effectuer une action, sans doute dans le futur.

Cancel cancel

Communication de l'annulation de l'accord donnée

préalablement par l'expéditeur pour effectuer une

action.

Chapitre Implémentation

Page 69

Call for

Proposal cfp

Communication par l'expéditeur d'une demande

d'effectuer une certaine action.

Confirm confirm

Communication par l'expéditeur de la confirmation de

la validité (selon les règles de l'agent) de la proposition

préalablement reçue.

Disconfirm disconfirm

Communication par l'expéditeur de la confirmation de

la non validité (selon les règles de l'agent) de la

proposition préalablement reçue.

Failure failure Communication par l'expéditeur de l'échec d'une action

essayée.

Inform inform Communication par l'expéditeur d'une proposition,

pensée vrai par celui-ci.

Inform If inform-if

Communication par l'expéditeur d'une proposition

(pensée vrai par celui-ci), et demande au receveur une

confirmation ou une non-confirmation.

Macro-action impliquant l'usage de "request".

Inform Ref inform-ref

Communication par l'expéditeur d'une demande de

l’objet qui correspond à une description envoyée.

Macro-action impliquant l'usage de "request".

Not

Understood

not-

understood

Communication par l'expéditeur d'une non

compréhension d'une action effectuée par le

destinataire.

Propagate propagate

Communication par l'expéditeur d'un message à

propager à des agents dont la description est fournie.

Le destinataire du message traite le sous-message à

propager comme s'il lui était directement destiné et

envoie le message "propate" au agent qu'il a identifié

Chapitre Implémentation

Page 70

Propose propose

Communication par l'expéditeur d'une proposition

d'action conditionnée à certaines préconditions

données.

Query Ref query-ref Communication par l'expéditeur d'une demande par

l'expéditeur de l'objet réferrencé par une expression.

Refuse refuse Communication par l'expéditeur de son refus

d'effectuer une action donnée, et en donne les raisons.

Reject

Proposal

reject-

proposal

Communication, pendant une négociation, par

l'expéditeur de son refus d'effectuer des actions.

Request request Communication par l'expéditeur d'une demande au

destinataire d'effectuer une action.

Request

When

request-

when

Communication par l'expéditeur d'une demande, au

destinataire, d'effectuer une action quand une

proposition donnée devient vrai.

Request

Whenever

request-

whenever

Communication par l'expéditeur d'une demande, au

destinataire, d'effectuer une action dès qu'une

proposition donnée devient vrai, et à chaque fois que

celle-ci redevient vrai.

Tous les attributs de la classe ACL Message peuvent être obtenus et modifiés par les

méthodes set/get(). Le contenu des messages peut être aussi bien du texte que des

objets car la sérialisation Java est supportée.

4. Comportements des agents dans la plate-forme JADE

Un agent doit être capable de gérer plusieurs tâches de manière concurrente en

réponse à différents évènements extérieurs. Afin de rendre efficace cette gestion

Chapitre Implémentation

Page 71

chaque agent de JADE est composé d'un seul thread et chaque comportement qui le

compose est en fait un objet de type Behaviour. Des agents multi-thread peuvent être

créés mais il n'existe pour l'heure actuelle aucun support fournis par la plate-forme

(excepté la synchronisation de la file des messages ACL).Afin d'implémenter un

comportement, le développeur doit définir un ou plusieurs objets de la classe

Behaviour, les instancier et les ajouter à la file des tâches « ready »de l'agent. Il est à

noter qu'il est possible d'ajouter des comportements et sous-comportements à un agent

ailleurs que dans la méthode setup().Tout objet de type Behaviour dispose d'une

méthode action() (qui constitue le traitement à effectuer par celui-ci) ainsi que d'une

méthode done() (qui vérifie si le traitement est terminé). Dans les détails,

l'ordonnanceur exécute la méthode action() de chaque objet Behaviour présent dans la

file des tâches de l'agent. Une fois cette méthode terminée, la méthode done() est

invoquée. Si la tâche a été complétée alors l'objet Behaviour est retiré de la file.

L'ordonnanceur est non-préemptif et n'exécute qu'un seul comportement à la fois, on

peut donc considérer la méthode action() comme étant atomique. Il est alors

nécessaire de prendre certaines précautions lors de l'implémentation de cette dernière,

à savoir éviter des boucles infinies ou des opérations trop longues. La façon la plus

classique de programmer un comportement consiste à le décrire comme une machine

à états finis. L'état courant de l'agent étant conservé dans des variables locales.

Enfin, il existe également quelques méthodes supplémentaires afin de gérer les objets

Behaviour :

• reset() qui permet de réinitialiser le comportement;

• onStart() qui défini des opérations à effectuer avant d'exécuter la méthode

action();

• onEnd() qui finalise l'exécution de l'objet Behaviour avant qu'il ne soit retiré

de la liste des comportements de l'agent;

La plate-forme JADE fournit sous forme de classes un ensemble de comportements

ainsi que des sous-comportements prêt à l'emploi. Elle peut les exécuter selon un

schéma prédéfini, par exemple la classe SequentialBehaviour est supportée et exécute

des sous-comportements de manière séquentielle. Toutes les classes prédéfinies dans

JADE hérite de la classe Abstraite Behaviour. On peut les citer :

Chapitre Implémentation

Page 72

• Classe SimpleBehaviour (abstraite): modélise un comportement simple. Sa

méthode reset() n'effectue aucune opération.

• Classe CompositeBehaviour (abstraite) : modélise un comportement composé.

Les actions effectuées par cette classe sont définies dans les comportements

enfants.

• Classe FSMBehaviour : Cette classe hérite de CompositeBehaviour et éxecute

des comportements enfants suivant un automate à états finis défini par

l'utilisateur. Lorsqu'un comportement enfant termine, sa valeur de fin

retournée par la fonction onEnd() indique le prochain état à atteindre. Le

comportement correspondant à cet état sera exécuté à la prochaine exécution

de la classe. Elle se termine lorsque qu'un comportement associé à un état final

à été exécuté.

• Classe SenderBehaviour : elle étend la classe OneShotBehaviour et encapsule

une unité atomique qui effectue une opération d'envoie de message.

• Classe ReceiverBehaviour : Elle encapsule une unité atomique qui effectue

une opération de reception de message. Ce comportement s'arrête dés qu'un

message a été reçu. S'il n'y a pas de message dans la file d'attente de l'agent ou

que le message ne correspond pas au MessageTemplate du constructeur de

cette classe, alors il se met en attente.

• On peut aussi citer d'autres classes par exemples : Classe WakerBehaviour

(abstraite), ParrallelBehaviour, SequentialBehaviour, CyclicBehaviour.

(abstraite), OneShotBehaviour (abstraite).

5. Outils de débogage 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 à distance d'une autre

Chapitre Implémentation

Page 73

plate-forme. Plusieurs RMA peuvent être lancés sur la même plate-forme du moment

qu'ils ont des noms distincts.

FIG5.2 — L'interface de l'agent RMA

5.2 Agent Dammy

L'outil DummyAgent permet aux utilisateurs d'interagir avec les agents JADE d'une

façon particulière. L'interface permet la composition et l'envoi de messages ACL et

maintient une liste de messages ACL envoyés et reçus. Cette liste peut être examinée

par l'utilisateur et chaque message peut être vu en détail ou même édité. Plus encore,

le message peut être sauvegardé sur le disque et renvoyé plus tard.

FIG5.3 — L'interface de l'agent Dammy

Chapitre Implémentation

Page 74

5.3 Agent Direcory Facilitator

L'interface du DF peut être lancée à 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'interface peut être juste vue sur l'hôte où la plate-forme est

exécutée. En utilisant cette interface, l'utilisateur peut interagir avec le DF.

FIG5.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. L'utilisateur peut voir et enregistrer tous les messages, pour

éventuellement les analyser plus tard. L'agent peut être lancé du menu du RMA ou de

la ligne de commande suivante : Java jade.Boot sniffer:jade.tools.sniffer.sniffer

Chapitre Implémentation

Page 75

FIG5.5 — L'interface de l'agent Sniffer

La figure 5.5 représente une capture sur l’agent sniffer qui montre les messages

échangés entre nos agents durant une opération de fabrication avec succès.

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.

FIG5.6 — L'interface de l'agent Inspector

Chapitre Implémentation

Page 76

6. Scénario d’exécution

6.1 Création des agents

Au niveau de Jade, nous avons crée cinq types d’agents : Agent désigner, Agent

évaluateur, Agent ressource, Agent coordinateur, Agent planificateur. Chacun a un

rôle important pour le déroulement de notre application. Ces agents ce lancent comme

étant des serveurs et communiquent via des paquets internet, entre temps du coté

clients se trouve les différents designers.

6.2 Chargement des différents désignes de conception

Les clients ou bien les designers uploade leurs fichiers de conception via des pages

Web après authentification sur le système comme le montre les fenêtres : FIG5.7,

FIG5.8 et FIG5.9.

FIG5.7 — Création compte désigner

FIG5.8 — Authentification Client

Chapitre Implémentation

Page 77

FIG5.9 — Chargement des fichiers de désignes

La figure 5.9 présente les différents désigns chargés par le client enregistré dans la

figure 5.8.

6.3 Intervention des Agents

6.3.1 Traitement des fichiers

Apres avoir reçu les différents désignes l’agent désigner sera le premier à intervenir

dans notre système, puisqu’il il effectue un pré sélection et un filtrage sur les désignes

déjà reçus, comme le montre la figure 5.10.

FIG 5.10 — Interface Agent désigner

Chapitre Implémentation

Page 78

6.3.2 Evaluation de désigne

La deuxième étape consiste à lancer l’évaluation sur le fichier sélectionné par l’agent

désigner comme le montre la figure 5.11.

FIG5.11 — Agent évaluateur

Le résultat d’évaluation est montré dans la figure 5.12.

FIG5.12 — Agent evaluateur(Resultat d’evaluation)

6.3.3 Planification des ressources

Cette étape consiste à organiser nos tâches sur les ressources disponibles de telle

manière à optimiser la durée de fabrication.(Voir figure 5.13).

Chapitre Implémentation

Page 79

FIG5.13 — Agent Planification

6.3.4 Fabrication des pièces

L’agent ressource est chargé de gérer les ressources des ateliers (lancer la fabrication

sur les machines des ateliers, la mise à jour, gestion de la panne) comme il est montré

ci-dessous :

FIG5.14 — Agent ressource (Fabrication des pièces)

La figure 5.15 présente la gestion d’une panne de ressource, dans notre cas c’est la

machine fraiseuse2 de l’atelier1 qui est tombée en panne. L’agent ressource va

récupérer tous les désignes et demande une re-planification par l’agent planificateur

afin de démarrer la production.

Chapitre Implémentation

Page 80

FIG5.15 — Agent ressource (gestion de la panne d’une ressource)

6.3.5 Re-planification

La re-planification va être lancée par l’agent planificateur suite à la détection d’une

panne par l’agent ressource. Comme cela est montré à la figure 5.16.

FIG5.16 — Agent Planification (re-planification)

6.3.6 Contrôle du scénario

Le contrôle de toutes les interactions dans notre système est assuré par l’agent

coordinateur. Ce contrôle se fait à plusieurs niveaux :

-Pour visualiser l’état d’un agent voir FIG 5.17.

-Pour garder une trace de toutes les interactions voir FIG 5.18.

-Pour visualiser la liste de taches terminées (FIG 5.19).

Chapitre Implémentation

Page 81

FIG5.17 — Agent coodinateur(Etat agent)

FIG 5.18 — Agent coordinateur(Historique d’interaction)

FIG5.19 — Fichier envoyer au désigners

Chapitre Implémentation

Page 82

6.4 Affichage résultats clients

6.4.1 Détection des conflits

Notre système possède deux types de conflits, le premier suite a une erreur de

conception et le deuxième reviens a un problème sur les ressources comme il est

montré dans les deux figure FIG 5.20 et FIG 5.21 ci-dessous :

FIG 5.20 — Conflit de conception

FIG 5.21 — Conflit de ressource

Chapitre Implémentation

Page 83

7. Conclusion

Le développement d'un SMA est une tâche lourde, complexe qui requiert un

investissement très important. A cet effet, nous avons présentés au terme de ce

chapitre, les différents outils appliqués dans la réalisation de notre approche. Nous

avons opté à utilisé une plateforme Multi Agents existante que nous avons adapté à

nos besoins. Notre choix s’est porté pour la plate forme SMA Jade. Notre base de

données est gérée par un SGBD orienté WEB (MySQL), notre modèle est développé

sous l’API JBbuilder. Afin d’illustrer notre application, nous avons déroulé un

scénario d’éxécution a travers quelques imprimes écran pris du logiciel ainsi

développé.

Conclusion Générale & Perspectives

Page 84

Dans ce mémoire, nous avons développé un modèle qui vise à répondre dans un cadre général aux besoins réels d’une conception assistée par ordinateur (CAO) pour la fabrication des produits en temps réel. Pour répondre aux besoins d’une gestion de production distribuée en temps réel en partant de la conception assistée par ordinateur dans un environnement multi-utilisateurs jusqu’à la validation des prototypes des concepteurs ‘ designers’, une nouvelle approche est proposée dans ce contexte.

En effet, l’outil réalisé permet de combiner entre la technologie WEB et les agents afin d’aider les concepteurs géographiquement dispersés d’envoyer des données de conception via le WEB et de recevoir des résultats de fabrication par l’intermédiaire d’un système multi-agents.

L’incorporation d’agent dans un système en général lui offre l’opportunité de participer directement à l’implémentation des décisions.

Les différents agents ont plusieurs fonctionnalités comme par exemple, l’agent désigner, l'agent d'évaluation, l'agent des ressources, l'agent de planification et l’agent coordinateur. Tous ces agents interagissent de manière cohérente pour réaliser la production et l’acheminement des pièces.

L’architecture centralisée de notre système a nécessité la mise en place d’un agent chargé de la coordination, ce dernier peut contrôler toutes les interactions et prendre des décisions efficaces et rapides pouvant rendre le système plus flexible. En outre, toute perturbation ou anomalie d'un agent n’affecte pas les fonctions des autres agents.

Comme perspectives de recherche, de nouvelles fonctions peuvent être ajoutées à notre système, nous pouvons citer : - Proposition d’une extension permettant une architecture totalement hybride pour pallier aux inconvénients de la gestion centralisée. - Intégration des agents mobiles dans notre système. - Traitement des redondances de certains traitements.

Références Bibliographiques

Page 85

[S.Elandaloussi, N.Taghzout, K.Bouamrane, 2011], Proposition d’un WEB-

MAS pour une gestion de production distribué : cas d’un atelier de fabrication des pièces mécanique.Dans le procedding de ICIST 2011 2eme international conference on information Systems and technologies, mars 24-26 2012,Sousse tunisie,ISBN

[N. Taghezout, Abdelkader Adla, 2011], WEB –Based Multi-Agent System for

collaborative decision-making: Application to a Boiler Combustion Management System. Dans le procedding de ICCMS 2011 3 international Conference on Computer Modelling and Simulation, Janvier 7-9 2011, Mumbia, India, ISBN 9 78-1-4244-9243-5, pp 227-231.

[Chaib-Draa, 2001] : CHAIB-DRAA B., JARRAS I., MOULIN B., « Systèmes multiagents : Principes généraux et applications », BRIOT J. P., DEMAZEAU Y., Eds., Agent et systèmes multiagents,Hermès, 2001.

[Jennings, 1998] :JENNINGS N., SYCARA K., WOOLDRIDGE M., « A Roadmap of Agent Research and Development », Autonomous Agents and Multi-Agent Systems, vol. 1, n°1, p. 7 - 38, July 1998.

[Finin , 1994] :FININ T., FRITZSON R., « KQML — A Language and Protocol for Knowledge and Information Exchange », Proceedings of the 13th International Workshop on Distributed Artificial Intelligence, Seattle, WA, p. 126-136, 1994.

[Briot, 2001] :J.P. Briot et Y. Demazeau. Principes et architecture des systèmes multi-agents. Hermès Science Publications, 2001.

[Adam Emmanuel, 2008] : Emmanuel ADAM, Systèmes multi-agents : éléments introductifs, Universitéde Valenciennes et du Hainaut-Cambrésis France, 2008.

[Briot, 2001] :Jean-Pierre BRIOT, Yves DEMAZEAU, Introduction aux agents : Principes et architecture des systèmes multi-agents , Collection IC2, Hermès, 2001

[Picard, 2004] : Noémy PICARD, Université de Mont-Saint-Aignan, Mémoire de stage, 2004

[Barika , 2003] :Farah Abdel Majid BARIKA,Vers un IDS Intelligent à base d’Agents Mobiles , Université de Tunis, 2003

[Boissier, 2001] :Olivier BOISSIER,Systèmes multi-agents (coordination), ENS Mines Saint-Etienne, 2001.

[Dastani , 2003]:Mehdi DASTANI, Amal El Fallah SGHROUCHNI, Progra-mming Multi Agents Systems, First International Workshop, ProMAS, 2003.

Références Bibliographiques

Page 86

[Demazeau , 1993] :Y.DEMAZEAU, La plate forme PACO et ses applications, 2iem journéenationale du PRC-IA sur les systèmes multi-agents, Montpellier, 1993.

[Courdier, 2005] :Rémy COURDIER,Systèmes multi-agents : Intelligence artifi-cielle et intelligence collective ,2005,

[Ricordel, 2001] :Pierre-Michel RICORDEL, Programmation Orientée Multi-Agents - Développement et Déploiement de Systèmes Multi-Agents Voyelles , InstitutNational Polytechnique de Grenoble, 2001.

[Tandabany S, 2005] :Sattisvar TANDABANY, Méthode de programmation orienté Agent , 2005.

[Drogoul, 2005] :A. DROGOUL,Systèmes multi-agents, Université de Paris-6, 2005.

[Papazoglou, 2003] : Papazoglou, M. (2003). Web services and business transactions. Technical Report 6, Infolab, Tilburg University, Netherlands. [Alonso et al, 2004] : Alonso, G., Casati, F., Kuno, H., and Machiraju, V. (2003). Web Services. Concepts, Architectures and Applications. Springer Verlag. [Curbera et al, 2002] : Carbera, F., Copeland, G., Cox, B., Freund, T., Klein, J., Story, T., and Thatte, S. (2002b). Web service transaction, ws-transaction..

[OASIS, 2005] : OASIS UDDI (2005). Universal Description, Discorvry and Integ-ration version 3.0.

[Blecker T. and Graf G, 2003] ‘Multi agent systems in internet based production environments-an enabling infrastructure for mass customization’, Paper presented at the Second Interdisciplinary World Congress on Mass Customization and Personalization (pp.1–27).

[Francisco P.M. and Douglas H.N., 1996] ‘Multi-agent mediator architecture for distributed manufacturing’, J. of Intelligent Manufacturing, Vol. 7, pp.257–270.

[Jia H.Z., Fuh J.Y.H., Nee, A.Y.C. and Zhang, Y.F., 2002] ‘Web-based multi-functional scheduling system for a distributed manufacturing environment’, Int. J. of Concurrent Engineering: Research and Application, Vol. 10, pp.27–39.

[Nahm Y.E. and Ishikawa H., 2005] ‘A hybrid multi-agent system architecture for enterprise integration using computer networks’, Int. J. of Robotics and Computer-Integrated Manufacturing, Vol. 21, pp.217–234.

[M. MAHESH, S. K. ONG* and A. Y. C. NEE, 2006]; A web-based multi-agent system for distributed digital manufacturing. In International Journal of Manufacturing Research, Vol. 1, No. 1, (2006), 59 -- 82.

Références Bibliographiques

Page 87

[Zhang, Y.F., Fuh, J.Y.H. and Wang, G.J., 2002], Agent-based manufacturing resource planning. Proceedings of the International Manufacturing Leaders Forum, Adelaide, Australia, 2002, pp. 136–141.

[Li, L., Fuh, J.Y.H., Zhang, Y.F. and Nee, A.Y.C., 2002], Application of genetic algorithm to computer-aided process planning in distributed manufacturing systems. Proceedings of the International Conference on Manufacturing Automation: Rapid Response Solutions to Product Development, Hong Kong, 2002, pp. 281–290 (Professional Engineering Publishing: UK).

[Klein, M. and Lu, S.C.Y., 2006], Conflict resolution in cooperative design. Artificial Intelligence in Engineering, 1989, 4, 168–180.

[Jiao, J.R., You, X. and Kumar, A., 2006], An agent-based framework for

collaborative negotiation in the global manufacturing supply chain network. Robot. Comput. Integr. Mfg, 2006, 22, 239–255.

[john s. kinnebrew, daniel l. c. mack, 2006], coordination of planning and scheduling techniques for a distributed, multi-level, multi-agent system

[Kinnebrew, J. S., 2009]. Global Sensor Web Coordination and Control in a Multi-agent System. In Proceedings of the AAAI Doctoral Consortium (at IJCAI ’09).

[Lin, G. and Solberg, J., 1992], Integrated shop floor control using autonomous agents. IIE Trans., 1992, 24, 57–71.

[Sikora, R. and Shaw, M.J., 1998], A multi-agent framework for the coordination and integration of information systems. Mgmt Sci., 1998, 44, 65–78.

[Klein, M. and Lu, S.C.Y., 1989 ], Conflict resolution in cooperative design. Artificial Intelligence in Engineering, 1989, 4, 168–180.

[Bellifemine, 2000] Bellifemine F., Giovani C., Tiziana T. Rimassa G., "Jade Programmer's Guide" Jade version 2.6 , 2000.

[Bellifemine, 1999] 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.

[JADE, 2002] JADE P.G., Bellifemine F., Caire G., Trucco T., Rimassa G., "JADE : Programmer's Guide", Février 2002.

[JADE, 2000] Java Agent DEvelopment framework. 2000.

[RIM, 2000] Rimassa G., Bellifemine F., Poggi A., "JADE - A FIPA Compliant Agent Framework", PMAA`99, p. 97-108, Londres, Avril 1999.

Références Bibliographiques

Page 88

[Sassi et chaib-draa, 1992] Sassi M, Chaib-draa B., "Stratégie de négociation entre agents dans le domaine du transport". Internal raport, Département d'informatique, faculté des sciences et de Génie, Université de Laval, Canada, 1992.

[SMI, 1980] Smith R.G., Davis R., "Framework for cooperation in distributed problem solving". IEEE Transactions on System, Man and Cybernetics, SMC, Vol. 11 No.161-70. 1980.

[HUANG G. Q., SHI J. and MAK K. L, 2000] , Failure mode and effect analysis (FMEA) over the WWW. International Journal of Advanced Manufacturing Technology, 16, 603–608.

[JIANG T. H. and NEVILL G. E., 2002], Conflict cause identification in Web-based concurrent engineering design system. Concurrent Engineering: Research and Applications, 10,15–26.

[LEONG H. V., HO, K. S. and LAM W., 2001], Web-based workflow framework with CORBA.Concurrent Engineering: Research and Applications, 9, 120–129.

[NIDAMARTHI S., ALLEN R. H. and SRIRAM, R. D., 2001], Observations from supplementing the traditional design process via Internet-based collaboration tools. International Journal of Computer Integrated Manufacturing, 14, 95–107.

[SZYKMAN S., RACZ J., BOCHENEK C. and SRIRAM R. D., 2000], A Web-based system for design artefact modeling. Design Studies, 21, 145–164.

[TAY F. E. H. and CHEN M, 2001], A shared multi-media design environment for concurrent engineering over the Internet. Concurrent Engineering: Research and Applications, 9,55–63.

[Sheng J. and M. W. Spong, 2004] “Model predictive control for bilateral teleoperation systems with time delays”, Canadian Conference on Electrical and Computer Engineering, , v.4, p.1877--1880, Tampa, Florida, U.S.A.

[STAAB S., VAN DER AALST W., BENJAMINS V. R., SHETH A.,

MILLER J. A.,BUSSLER C., MAEDCHE A., FENSEL D., GANNON D., 2003], « Web Services : Been There,Done That ? », IEEE Intelligent Systems : volume 18, p. 72-85.

[XUE, D. and XU, Y., 2003], Web-based distributed system and database modeling for concurrent design. Computer-Aided Design, 35, 433–452.

[JIN T., GOSCHNICK S., 2003], « Utilizing Web Services in an Agent Based Transaction Model (ABT) », Workshop on Web services And Agent-based ingineering, Melbourne,Australia,.

Références Bibliographiques

Page 89

[BOOTH D., HAAS H., MCCABE F., NEWCOMER E., 2003], « Web Services Architecture », aout 2003, http ://www.w3.org/TR/2003/WD-ws-arch-20030808/.

Références webliographiques (Site1)Consulter le 20-06-2011 (Site2) Consulter le 11-07-2011 (Site3) Consulter le 11-07-2011 (Site4) Consulter le 11-07-2011 (Site5) Consulter le 11-07-2011 (Site7)http://www.agentbuilder.com/ (Site8)http://www.agent-software.com.au/ (Site9)http://www.madkit.org/ (Site10)http://www.labs.bt.com/projects/agents.htm (Site11)http://jade.tilab.com (Site12)www.wikipedia.org (Site13)www.fipa.org (Site14)http://fr.wikipedia.org/wiki/Client-serveur (Site15)http://fr.wikipedia.org/wiki/Service_Web (Site16)http://sharon.cselt.it/projects/jade/

Résumé

Page 90

Dans notre Travail, nous décrivons une approche multi-agent à base de WEB

(WEB-MAS) pour le développement d’un système de fabrication répartie en temps

réel avec un mécanisme de gestion centralisé. Notre architecture est composée des

agents suivants : Agent Designer, Agents d’Evaluations, Agent Ressource, Agent

Planification et l’Agent coordination. Ce dernier est le noyau de notre système, il

joue un rôle important et assure la communication entre tous les agents pour faciliter

la production de la conception assisté par ordinateur à la fabrication proprement dite.

Afin de tester la faisabilité de notre approche, notre système a été expérimenté sur un

atelier de fabrication des pièces mécaniques.

Mots clés : Système multi-agent, agents Evaluation, Coordination centralisée, fabrication répartie, prototype de coordination,

Abstract

Page 91

In our work, we describe a multi-agent approach based WEB for a development of a

real-time centralized system. Our architecture is composed to the following agents:

Designer agent, Evaluation agent, resource agents, planning agent and coordination

agent. The coordinator agent plays an important role and ensures communication

between all agents to facilitate the actual production computer-assisted design. It is

the core of our system. We addresses in this work to the distributed management

problem on multiple sites or companies and a multi-user environment requirements

elicitations. To test the feasibility of our approach, our system has been tested on a

mechanical parts manufacturing shop floor.

Key Words: Multi-agent system, agent Evaluation, centralized coordination, distributed manufacturing,

Thème : Développement d’un WEB-MAS pour la conceptionet fabrication assistées par ordinateur :

application à un atelier de pièces mécaniques

Résumé :

Dans notre Travail, nous décrivons une approche multi-agent à base de WEB

(WEB-MAS) pour le développement d’un système de fabrication répartie en temps

réel avec un mécanisme de gestion centralisé. Notre architecture est composée des

agents suivants : Agent Designer, Agents d’Evaluations, Agent Ressource, Agent

Planification et l’Agent coordination. Ce dernier est le noyau de notre système, il

joue un rôle important et assure la communication entre tous les agents pour faciliter

la production de la conception assisté par ordinateur à la fabrication proprement dite.

Afin de tester la faisabilité de notre approche, notre système a été expérimenté sur un

atelier de fabrication des pièces mécaniques.

Mots clés :

Système Multi-Agent; Evaluation; Coordination Centralisée; Fabrication Répartie;

Prototype De Coordination; Agent Conception; Technologie Web; Planification;

Conception Assistée; Fabrication Assisté.