Environnements de développement SMA
Environnements de développement SMA
de
développement
des SMA
Bases de l’Intelligence Artificielle Distribuée
Mr.
KHEB-
BACHE
Mohib Environnements de développement des SMA
Eddine
POA
plates-
formes Mr. KHEBBACHE Mohib Eddine
SMA
JADE
2016/2017
[email protected]
1 / 46
Environnements
de
développement
des SMA Plan
Mr.
KHEB-
BACHE
Mohib 1 POA
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
2 / 46
Environnements
de
développement
des SMA Plan
Mr.
KHEB-
BACHE
Mohib 1 POA
Eddine
POA
JADE
JADE sous
Eclipse
2 / 46
Environnements
de
développement
des SMA Plan
Mr.
KHEB-
BACHE
Mohib 1 POA
Eddine
POA
JADE
2 / 46
Environnements
de
développement
des SMA Plan
Mr.
KHEB-
BACHE
Mohib 1 POA
Eddine
POA
JADE
2 / 46
Environnements
de
développement
des SMA Plan
Mr.
KHEB-
BACHE
Mohib 1 POA
Eddine
POA
JADE
3 / 46
Programmation orientée agents
Historique sur les méthodes de programmation
Environnements
de
développement
des SMA
4 / 46
Programmation orientée agents
Historique sur les méthodes de programmation
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE Programmation Orientée composants :Objets distribués,
Mohib
Eddine réutilisables, configurables, Interchangeables, évolutifs, mo-
biles, surveillable à chaud : Conteneur (EJB)
POA
5 / 46
Programmation orientée agents
Historique sur les méthodes de programmation
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
La programmation orientée agents a été proposée par Yoav
Mohib
Eddine
Shoham en 1993 comme un nouveau paradigme de program-
mation,
POA
plates-
voir comme une spécialisation de la programmation orientée
formes
SMA
objets, où les agents sont les éléments centraux du langage
JADE mis l’accent sur la dimension sociale des agents dont les pro-
JADE sous grammes développés, plusieurs agents peuvent interagissent
Eclipse
Le langage de programmation proposé par Shoham comme
démonstration de ce nouveau paradigme s’appelle AGENT0.
6 / 46
Programmation orientée agents
Programmation Orientée Objets versus Programmation Orientée Agents
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
7 / 46
Programmation orientée agents
Langages de programmation des agents
Environnements
de
développement
des SMA une fois L’architecture de l’agent est décidée, on peut utiliser
Mr. n’importe quel langage de programmation pour implémenter
KHEB-
BACHE l’agent
Mohib
Eddine vue l’introduction de l’approche de la programmation orientée
POA agents
plates-
formes
Les chercheurs ont proposé de nombreux langages pour la
SMA programmation des agents
JADE
chaque langage favorisant une vision particulière de la notion
JADE sous
Eclipse d’agent intelligent.
On ne peut pas dire qu’il y ait actuellement un tel langage
généralement accepté.
un langage de programmation agent peut être intégré dans
une plate-forme multi-agent
8 / 46
Programmation orientée agents
Langages de programmation des agents
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
Les langages concurrents orientés objets peuvent être considérés
POA comme un premier pas vers la programmation des agents :
plates-
formes
Actors, ABCL. . . .
SMA
Langages pour les agents mobiles : TELESCRIPT, Agent-Tcl,
JADE
JADE sous
Aglets
Eclipse
9 / 46
Environnements
de
développement
des SMA Plan
Mr.
KHEB-
BACHE
Mohib 1 POA
Eddine
POA
JADE
10 / 46
plates-formes SMA
Environnements
de
développement
des SMA
Mr.
KHEB- Pour construire un SMA il est préférable d’utiliser une plate-
BACHE
Mohib forme multi-agent
Eddine
qui offre un ensemble d’outils utilisé pour la construction,
POA l’analyse, le test et la mise en service d’agents au sein d’un
plates- environnement spécifique.
formes
SMA Ces outils peuvent être sous la forme d’environnement de
JADE programmation (API) et d’applications
JADE sous permettant d’aider le développeur à la programmation d’un
Eclipse
SMA ainsi que son débogage.
Il existe de nombreuses plates-formes pour le développement
de SMA : JACK, Jadex, Madkit, JADE...etc.
11 / 46
plates-formes SMA
Critères pour l’étude comparative de plates-formes SMA
Environnements
de Caractéristiques générales
développement
des SMA
Environnements
de
développement
des SMA
CORMAS : (COmmon Resources Multi-Agent System)
Mr.
KHEB- est un framework de développement de systèmes multiagents,
BACHE
Mohib open-source et basé sur le langage de programmation orientée
Eddine
objet SmallTalk. Il est centré sur des problématiques de re-
POA
cherche en sciences du développement et de négociation entre
plates-
formes acteurs.
SMA
AnyLogic : Logiciel de simulation multi-agents et multiméthode
JADE
13 / 46
plates-formes SMA
Exemples
Environnements
de
développement
des SMA
Mr.
JADE(Java Agent DEvelopment) : est un framework de
KHEB-
BACHE
développement de systèmes multi-agents, open-source et basé
Mohib
Eddine
sur le langage Java. Il offre en particulier un support avancé
de la norme FIPA-ACL, ainsi que des outils de validation syn-
POA
taxique des messages entre agents basé sur les ontologies.
plates-
formes Jason : est un environnement open source de développement
SMA
JADE
d’agents dans le formalisme AgentSpeak, et développé en
JADE sous
Java.
Eclipse
MadKit : est une plate-forme multi-agents modulaire écrite
en Java et construite autour du modèle organisationnel Agent/Gro
C’est une plateforme libre basée sur la licence GPL/LGPL
développée au sein du LIRMM.
14 / 46
Environnements
de
développement
des SMA Plan
Mr.
KHEB-
BACHE
Mohib 1 POA
Eddine
POA
JADE
15 / 46
plate forme JADE :http ://jade.tilab.com/
caractéristiques
Environnements
de
développement
JADE est une plate-forme multi-agent crée par le laboratoire
des SMA
TILAB.
Mr.
KHEB- C’est un framework qui permet le développement de systèmes
BACHE
Mohib multiagents et d’applications conformes aux normes FIPA (Foun-
Eddine
dation for Intelligent Physical Agents).
POA
Elle mis en œuvre dans le langage Java et fonctionne sous
plates-
formes tous les systèmes d’exploitation
SMA
JADE
JADE contient :
JADE sous
Runtime Environment : environnement d’exécution, où les
Eclipse agents peuvent vivre, qui doit être actif avant qu’un agent(s)
peuvent être exécutées sur un hôte donné.
librairie de classes : que les développeurs utilisent pour
écrire leurs agents
suite d’outils graphiques : qui facilitent la gestion et la
supervision (le dépoilement et le débogage) de la plateforme
des agents : rma (Remote agent Management) GUI
16 / 46
plate forme JADE :http ://jade.tilab.com/
rma (Remote agent Management) GUI
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
17 / 46
plate forme JADE :http ://jade.tilab.com/
caractéristiques
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib une plateforme est constituée par un ensemble de conteneurs
Eddine
19 / 46
plate forme JADE :http ://jade.tilab.com/
caractéristiques
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
20 / 46
plate forme JADE :http ://jade.tilab.com/
caractéristiques
Environnements
de
En plus la plateforme JADE contient des agents outils prés-implantés
développement
des SMA
tels que :
Mr.
KHEB- l’agent Dummy qui permet d’envoyer / recevoir des
BACHE
Mohib messages personnalisés, pour les stimuler.
Eddine
L’agent Sniffer qui permet l’inspection des conversa-
POA tions entre agents,
plates-
formes L’agent Introspector or Debugger ou Agent débogueur
SMA
qui permet d’inspecter le fonctionnement interne d’un agent
JADE
(par exemple, les tâches qu’il est en cours d’exécution)
JADE sous
Eclipse L’agent Log Manager le gestionnaire de journaux qui
permet de changer les niveaux de classes de journaux à l’exécution
21 / 46
plate forme JADE :http ://jade.tilab.com/
architecture logicielle
Environnements
de
développement
des SMA
Mr.
KHEB-
JADE fournit une couche homogène qui cache complètement
BACHE
Mohib
la complexité et la diversité du réseau des agents
Eddine
Un système basé JADE peut être distribué sur plusieurs ma-
POA chines indépendamment de OS de celles-ci.
plates- 1 JVM (machine virtuelle) par machine
formes
SMA plusieurs conteneurs principaux dans le réseau =⇒
JADE plates-formes différentes
JADE sous
la configuration peut être
Eclipse contrôlée via une interface graphique à distance remote
GUI .
changée au moment de l’exécution par la mobilité des
agents d’une machine à une autre
22 / 46
plate forme JADE :http ://jade.tilab.com/
plate forme distribuée
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
23 / 46
plate forme JADE :http ://jade.tilab.com/
Configuration
Environnements
de
développement 1 Installation de JDK :
des SMA
Mr.
http ://java.sun.com/
KHEB-
BACHE
2 Installation de JADE :
Mohib
Eddine
http ://jade.tilab.com/
Extraction du package
POA
JADE-ALL-x.x.x.ZIP téléchargé
plates- Extraction de sous fichiers :
formes
SMA JADE-doc : Document
JADE JADE-src : Code Source (api)
JADE sous JADE-bin : Binary Code
Eclipse JADE-example : Code source
d’Examples
3 Réglage de classpath.
4 Installation de l’IDE : eclipse or
NetBeans
24 / 46
plate forme JADE :http ://jade.tilab.com/
Configuration(Réglage de classpath)
Environnements
de
Pour manipuler JADE sur ligne de commande, vous aurez besoin
développement
des SMA
d’ajouter la variable d’environnement ”classpath”.
Dans la zone variables système, es-
Mr.
KHEB- sayez de trouver ou créer la variable
BACHE
Mohib
d’environnement qui porte le nom
Eddine CLASSPATH
POA sa valeur est la concaténation
plates-
des chemins des quatre fichiers
formes jar : http.jar, iiop.jar, jade.jar,
SMA
jadeTools.jar
JADE
Attention : les chemins
JADE sous doivent être séparés par des
Eclipse
points Virgule( ;)
Dans la même zone, vérifier la
variable d’environnement ”JAVA-
HOME” ayant comme valeur le
chemin de jdk
Exp :”C :
25 / 46 Program Files
plate forme JADE :http ://jade.tilab.com/
Démarrage de la plateforme Jade
26 / 46
plate forme JADE :http ://jade.tilab.com/
Démarrage de la plateforme Jade
Environnements
de
développement
des SMA
Mr.
KHEB- Lancer Jade et la GUI
BACHE
Mohib java jade.Boot –gui
Eddine
POA
Lancer un agent au démarrage
plates-
formes java jade.Boot –gui < nomdel0 agent >:< classedel0 agent >
SMA
JADE
27 / 46
plate forme JADE :http ://jade.tilab.com/
Démarrage de la plateforme Jade
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
28 / 46
plate forme JADE :http ://jade.tilab.com/
Agent Jade
Environnements
de Création d’un agent
développement
des SMA
Mr.
Etendre la classejade.core.Agent
KHEB-
BACHE
import jade.core.agent ;
Mohib public class monAgent extends Agent . . . ;
Eddine
Chaque agent est identifie par un AID
POA
Methode getAID() //pour récupérer l’AID
plates-
formes Dans la méthode setup() (Obligatoire)
SMA
JADE
Enregistrer les langages de contenu
Enregistrer les Ontologies
JADE sous
Eclipse Enregistrer les Services auprès du DF
Démarrer les Comportements (behaviors)
Environnements
de
développement
des SMA Identification des agents
Mr.
KHEB-
BACHE
Le nom d’un agent :
Mohib
Eddine
enregistré dans la plateforme auprès de l’AMS
de la forme :
POA < nom − local − agent > @ < nom − plate − f orme >
plates- Doit être globalement unique
formes
SMA objet de la classe jade.core.AID
JADE Plate-forme par défaut :
JADE sous
Eclipse
< main − host >:< main − port > /JADE
< main − host > : nom de domaine ou adresse IP
30 / 46
plate forme JADE :http ://jade.tilab.com/
Agent Jade
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Méthodes de la classe Agent
Mohib
Eddine
Méthode getArguments() pour obtenir les arguments d’un
POA agent
plates-
formes Méthode doDelete() pour tuer (détruire) un agent
SMA
JADE
Methode takeDown() appelée Avant que l’agent soit détruit
JADE sous
Eclipse Note
la redéfinition des méthodes, définit le cycle de vie de l’agent
31 / 46
plate forme JADE :http ://jade.tilab.com/
Agent Jade(cycle de vie d’un agent JADE)
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
32 / 46
plate forme JADE :http ://jade.tilab.com/
Agent Jade(cycle de vie d’un agent JADE)
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
33 / 46
Environnements
de
développement
des SMA Plan
Mr.
KHEB-
BACHE
Mohib 1 POA
Eddine
POA
JADE
34 / 46
JADE sous Eclipse
Mise en place de l’application sous Eclipse(Création d’agent)
Environnements
de
développement Ouvrir eclipse et créer un nouveau
des SMA
projet (MyFirstAgent par exemple)
Mr.
KHEB-
BACHE
dans l’onglet Libraries, cliquer sur :
Mohib
Eddine
add external JARs
Ajoutez les quatre jar : ”http.jar”
POA
plates-
”iiop.jar” ”jade.jar” ”jade-
formes Tools.jar” ;
SMA
JADE
on peut aussi ajouter ces fichiers
JADE sous
comme suit :
Eclipse 1 Effectuer un clic droit sur le
nom du projet. Puis choisisser
propriétés.
2 Cliquer sur java build path >>
Libraries >> add external
JARs
35 / 46
JADE sous Eclipse
Mise en place de l’application sous Eclipse(Création d’agent)
Environnements
de
développement
des SMA
dans le projet créé :
Mr.
KHEB- ajouter un package (firstAgent)
BACHE
Mohib dans ce package, créer une nouvelle classe appelée
Eddine
HelloWorldAgent.
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
36 / 46
JADE sous Eclipse
Mise en place de l’application sous Eclipse(Compilation et exécution de l’agent)
Environnements
de
développement
des SMA On peut aussi créer et lancer un agent en utilisant la console
Mr.
KHEB-
graphique (GUI) de gestion.
BACHE
Mohib
Faites un clic droit sur le conteneur principal.
Eddine Dans le menu contextuel sélectionnez l’option Démarrer un
nouveau Agent(Start New Agent) .
POA
Tapez le nom de l’agent et le nom de classe entièrement
plates-
formes qualifié
SMA
JADE
JADE sous
Eclipse
38 / 46
JADE sous Eclipse
conception d’un agent avec une interface graphique
Environnements
de
développement
des SMA
Mr. Dans Java, une interface graphique fonctionne sur son propre
KHEB-
BACHE thread
Mohib
Eddine gérer et réagir rapidement à des événements générés lorsque
un utilisateur interagit avec l’interface graphique via un
POA
composant
plates-
formes
SMA
d’autre part, un programme d’agent fonctionne sur son propre
JADE
fil d’exécution qui lui permet de gérer ses comportements.
JADE sous JADE a fourni un mécanisme approprié pour gérer les inter-
Eclipse
actions entre les deux threads (interface graphique avec un
agent).
Le mécanisme est simplement basé sur le passage de l’événement.
39 / 46
JADE sous Eclipse
conception d’un agent avec une interface graphique
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE interaction agent et l’interface graphique (GUI) :
Mohib
Eddine GUI implémente l’interface ActionListener
POA
puis enregistre tous les composants interactifs de votre
interface graphique via la méthode addActionListener()
plates-
formes Lorsque votre programme d’agent interagit avec l’interface
SMA graphique
JADE une ActionEvent est générée par le composant de source,
JADE sous qui appelle la méthode actionPerformed()
Eclipse
l’implémentation de cette méthode permet à l’interface
graphique de traiter l’événement
40 / 46
JADE sous Eclipse
conception d’un agent avec une interface graphique
Environnements
de
Puisque cette méthode appartient à la classe de GuiAgent, vous
développement
des SMA
devez fournir à votre
Mr.
KHEB-
interaction interface graphique (GUI) et agent :
BACHE JADE a fourni classe abstraite ”GuiAgent” qui étend la
Mohib
Eddine classe ”Agent”
pour gérer les interactions entre une interface utilisateur et
POA
un programme de l’agent
plates- le programme d’agent doit étendre la classe GuiAgent
formes
SMA pour utiliser les deux méthodes postGuiEvent() et
JADE
onGuiEvent()
JADE sous
la méthode postGuiEvent() utilisée par l’interface graphique
Eclipse pour envoyer et poster les événements capturés vers l’agent
la méthode onGuiEvent() utilisée par l’agent pour recevoir et
traiter les événements qui sont affichés par la GUI.
Pour poster un événement à l’agent, l’interface graphique
crée simplement un objet GuiEvent, ajoute les paramètres
requis et passe en argument à la méthode postGuiEvent ().
la GUI doit avoir une référence à la classe d’agent sur lequel
41 / 46 le GUI peut invoquer cette méthode.
JADE sous Eclipse
conception d’un agent avec une interface graphique(Exemple)
Environnements
de
développement comme illustrer dans l’exemple précédent, créer une classe
des SMA
Mr.
d’agent ”HelloWorldAgent”
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
42 / 46
JADE sous Eclipse
conception d’un agent avec une interface graphique(Exemple)
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib puis créer la classe de l’interface
Eddine
graphique ”HelloWorldAgentGui”
POA
dans le même package cliquer
plates- droit, sélectionner new >>
formes
SMA other
JADE Aller dans windowbuilder >>
JADE sous swing desginer >> JFrame
Eclipse
pour créer une nouvelle classe
graphique.
43 / 46
JADE sous Eclipse
conception d’un agent avec une interface graphique(Exemple)
Environnements
de
développement implémenter la classe d’interface graphique d’agent ”Hello-
des SMA
Mr.
WorldAgentGui”
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
44 / 46
JADE sous Eclipse
conception d’un agent avec une interface graphique(Exemple)
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
45 / 46
JADE sous Eclipse
conception d’un agent avec une interface graphique(résultat)
Environnements
de
développement
des SMA
Mr.
KHEB-
BACHE
Mohib
Eddine
POA
plates-
formes
SMA
JADE
JADE sous
Eclipse
46 / 46