développement d’un web-mas pour la conception et ...systèmes multi-agents, leur principe ainsi...
TRANSCRIPT
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é.