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.
|