VI. Implémentation des agents du
système
Comme nous avons vus, notre système est composé
d'un ensemble d'agents en interaction pour résoudre le problème
soumis par l'utilisateur. La meilleure façon d'implémenter un
système multi-agents est l'utilisation d'une plateforme multi-agents.
Celle utilisée dans notre travail est JADE. (Voir annexe B).
VI.1. implémentation de l'agent
administrateur
Les principales méthodes utilisées par cet agent
sont :
Setup() : c'est la méthode principale de
chaque agent de JADE. Elle contient toutes les actions exécutées
par cet agent.
public class Agent_Administrateur
extends GuiAgent{
ArrayList<String> Idents_AS=new
ArrayList<String>();
public void setup() {
Idents_AS.add("Agent_S_Vol"); Idents_AS.add("Agent_S_Train");
Idents_AS.add("Agent_S_Bus");
// Lancement de l'agent médiateur et des agents service
// envoie des idents des agents services à l'agent
médiateur ACLMessage msg = new
ACLMessage(ACLMessage.INFORM) ; msg.addReceiver(new
AID("Agent_Mediateur",AID.ISLOCALNAME)) ; msg.setContent(Idents_AS);
send(msg) ;
}
// L'agent médiateur réagit selon le type de
l'événement(ev) // récupéré de l'interface
graphique
protected void onGuiEvent(GuiEvent ev)
{
switch(ev.getType()) {
case conect_client:
// Création et lancement d'une instance de l'agent
//client
// Lui envoyer l'identificateur de l'agent médiateur
ACLMessage msg = new ACLMessage(ACLMessage.INFORM) ;
msg.addReceiver(new
AID("Agent_Client",AID.ISLOCALNAME));
msg.setContent("Agent_Mediateur");
send(msg) ;
break;
case connect_admin:
while(non_valide_mp){
// récupération mot de passe administrateur, //
vérification mot de passe
}
// Afficher Menu système break;
OnGuiEvent() : permettant l'agent administrateur
de réagir aux différents événement capturés
depuis l'interface graphique.
VI.2. Implémentation de l'agent client
public class Agent_Client
extends GuiAgent{
public class Structure_entree_sortie{
String type_reponse;
ArrayList<String> objet_reponse;
}
if(msg_recu.getSender().equals("Agent_Mediateur")) {
}
String Ident_AM; //pour contenir l'ident de l'agent
médiateur
public void setup() {
addBehaviour(new
CyclicBehaviour(this){
public void action(){
ACLMessage msg_recu=receive();
// l'agent client agit selon le distinataire du massage
récu
if(msg_recu.getSender().equals("Agent_Administrateur"))
{
// Récuperation de l'ident de l'agent médiateur
Ident_AM=msg_recu.getContent();
Structure_entree_sortie reponse_AM=
(Structure_entree_sortie) msg_recu.getContentObject(); // Selon
le type de la réponse récupéré //(solution_trouvee
ou bien non_solution_trouvee)
// l'agent affiche les résultat à l'utilisateur
}
// L'agent médiateur réagit selon le type de
l'événement(ev) // récupéré de l'interface
graphique
protected void onGuiEvent(GuiEvent ev)
{
switch(ev.getType()) {
case Demande:
// Récuperer problème utilisateur et l'envoyer
à // l'agent médiateur
break;
case Annulation:
// Envoyer demande d'annulation à l'agent
médiateur
break;
}
}
}
L'agent client est implémenté par la classe
« Agent_Client ». Il hérite comme l'agent administrateur la
classe « jade.gui.GuiAgent » et utilise principalement les deux
méthodes suivantes : Setup() et
OnGuiEvent().
|