VI.3. Implémentation de l'agent
médiateur
public class Agent_Mediateur
extends Agent{ ArrayList<String> Idents_AS; 
public class Structure_entree_sortie{ 
String type_reponse; 
ArrayList<String> objet_reponse; 
} else { 
} 
public void setup() { 
addBehaviour(new
CyclicBehaviour(this){ 
public void action(){ 
ACLMessage msg_recu=receive(); 
// l'agent client agit selon le destinataire du massage
reçu
if(msg_recu.getSender().equals("Agent_Administrateur")) { 
// récuperer les identificateurs des agents service //
depuis le message envoyé par l'agent dministrateur
ArrayList<String> liste=(ArrayList<String>) 
msg_recu.getContentObject(); ListIterator<String> iter =
liste.listIterator(); while(iter.hasNext()) 
{ 
Idents_AS.add(iter.next()); 
} 
if(msg_recu.getSender().equals("Agent_Client")))
{ 
if(// le performatif du msg_recu== Cancel) { 
// Diffusion du message "Annuler" aux // agents service 
ACLMessage msg = new 
ACLMessage(ACLMessage.CANCEL); ListIterator<String>
iter= 
Idents_AS.listIterator();
while(iter.hasNext()) 
{ 
msg.addReceiver(new
AID(iter.next(),AID.ISLOCALNAME)); 
} 
send(msg) ; 
Cet agent est implémenté par la classe «
Agent_Mediateur » qui hérite la classe jade.core.Agent. Ces
différents actions sont regroupées au niveau de la methode
setup(). Il exploite dans cette methode la fonction «
Traiter_reponses_AS() » présentée ci-avant pour
l'élaboration d'un plan solution au problème de l'utilisateur. 
else 
{ 
// Appliquer l'algorithme de planification  
}  
} 
else // Message venant de l'un des agents
service { 
// Recuperer les réponses des agents service // dans le
vecteur "Reponses_AS" Vector<Structure_entree_sortie> Reponses_AS= 
(Vector<Structure_entree_sortie>) 
msg_recu.getContentObject(); 
// Appeler la fonction "Traiter_reponses_AS"
Vector<Structure_entree_sortie> retour_fonction=Traiter_reponses_AS 
(Reponses_AS);  
}  
}  
} 
VI.4. Implémentation de l'agent service
public class Agent_Service
extends Agent{ 
public class Structure_entree_sortie{ 
String type_reponse; 
ArrayList<String> objet_reponse; 
} 
public void setup() { 
// récuperer description OWL-S du service
représenté 
// appeler Traducteur OWL-S vers operateurs STRIPS 
addBehaviour(new
CyclicBehaviour(this){ 
public void action(){ 
// Recevoir message de l'agent médiateur ACLMessage
msg_recu=receive(); 
if(// le performatif du message est CANCEL) { 
// Arreter traitement en cours 
Cet agent est implémenté par la classe «
Agent_Service » qui hérite la classe jade.core.Agent. 
else 
{ 
// Appliquer algorithme de recherche de // solution 
// Renvoyer résultats trouvées à l'agent //
médiateur 
// (solution_trouvée, solution_non_trouvée ou //
bien nouveau_sousbut) 
} 
} 
VII. Interfaces du système
Afin de mieux exploiter notre système, nous avons
l'enrichir par un une interface graphique facilitant l'utilisation de ses
différentes fonctionnalités. 
Premièrement, le lancement du système mène
à afficher son interface d'accueil suivante, permettant à un
utilisateur de se connecter comme un client ou un administrateur. 
  
 |