La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IA54 – Communication FIPA ACL UTBM – A2011 Mickael ADELINE Kévin LE ROY Paul TALAGRAND.

Présentations similaires


Présentation au sujet: "IA54 – Communication FIPA ACL UTBM – A2011 Mickael ADELINE Kévin LE ROY Paul TALAGRAND."— Transcription de la présentation:

1 IA54 – Communication FIPA ACL UTBM – A2011 Mickael ADELINE Kévin LE ROY Paul TALAGRAND

2 Plan : Sujet et objectifs Résultats obtenus Architecture de la gestion des messages ACL ▫Diagrammes UML ▫Utilisation de la librairie ▫Décodage & encodage des données Architecture des protocoles ▫Diagrammes UML ▫Protocole Request ▫Utilisation du Protocole Request ▫Protocole CNP ▫Utilisation du Protocole CNP Conclusion & améliorations possibles 1

3 Sujet et objectifs : Fournir le support des messages ACL dans Janus Permettre l’utilisation de protocoles d’interaction dans Janus Développer une démo d’agents communicatifs 2

4 Résultats obtenus : Support des messages ACL dans Janus : ▫En accord avec les normes de la FIPA. ▫Se limite à la représentation en String. Implémentations de protocoles d’intéraction : ▫Request Interaction Protocol ▫CNP : Contract Net Interaction protocol Démos d’agents communicatifs : ▫Démo 1 : simple usage des messages ACL ▫Démo 2 : communication de 2 agents via le Protocole Request ▫Démo 3 : communication de 3 agents via CNP 3

5 Architecture de la librairie ACL : Structure d’un ACL Message : 4

6 Architecture de la librairie ACL : ACL Agent gérant les messages ACL : 5

7 Architecture de la librairie ACL : Utilisation de la librairie (Démo 1) : Côté « Sender » : ▫ACLMessage message = new ACLMessage(“Hey!”, Performative.PROPOSE); ▫sendACLMessage(message, agentAddressReceiver); Côté « Receiver » : ▫ACLMessage aMsg = getACLMessage(); 6

8 Architecture de la librairie ACL : Envoi d’un ACL Message : 7

9 Architecture de la librairie ACL : Réception d’un ACL Message : 8

10 Architecture des protocoles (Overview) : 9

11 Architecture des protocoles : 10 Utilisation des protocoles : ▫protocolManager = new FipaConversationManager(this); ▫AbstractFipaProtocol protocol = protocolManager.createConversation(EnumFipaProtocol.FIPA_REQUEST, "First request protocol"); ▫Côté initiateur : protocol.initiate(getAddress(), participant); ▫Côté participant : protocol.initiateAsParticipant();

12 Request Interaction Protocol : 11 Rôle REQUESTER : ▫case SENDING_REQUEST:  requestProtocol.request( "friend" ); ▫case WAITING_ANSWER:  answer = requestProtocol.getAnswer();  if (answer.getPerformative().compareTo(Perfor mative.REFUSE) == 0)  return State.REFUSED;  Else  return State.WAITING_RESULT; ▫case WAITING_RESULT:  result = requestProtocol.getResult(); ▫case DONE:  leaveMe();

13 Request Interaction Protocol : 12 Rôle ANSWERER: ▫case WAITING_REQUEST:  request = requestProtocol.getRequest(); ▫case SENDING_ANSWER:  if( request.getContent().toString().equalsIgnore Case("friend") )  requestProtocol.agree("yeah!");  return State.SENDING_RESULT;  else  requestProtocol.refuse("no");  return State.DONE; ▫case SENDING_RESULT:  requestProtocol.informDone("Let's meet!");  return State.DONE; ▫case DONE:  leaveMe();

14 Contract Net Protocol : 13 Rôle REQUESTER : ▫case SENDING_CALL_FOR_PROPOSAL:  contractNetProtocol.callForProposal("I wanna..."); ▫case WAITING_ALL_PROPOSALS:  proposals = contractNetProtocol.getAllProposals();  contractNetProtocol.acceptProposals(selectedParticip ants, "thanks"); ▫case WAITING_ALL_RESULTS:  results = contractNetProtocol.getResults();  return State.DONE; ▫case DONE:  leaveMe();

15 Contract Net Protocol : 14 Rôle ANSWERER : ▫case WAITING_CALL_FOR_PROPOSAL:  callForProposal = contractNetProtocol.getCallForProposal(); ▫case SENDING_PROPOSAL:  if( callForProposal.getContent().toString().equalsIgnoreCase("I wanna...") )  contractNetProtocol.propose("120");  Else  contractNetProtocol.refuse("not interested"); ▫case WAITING_PROPOSAL_ANSWER:  ProtocolResult result = contractNetProtocol.getAnswerToCallForProposal(); ▫  if (result.getPerformative().compareTo(Performative.ACCEPT_PROPOSAL) == 0)  return State.SENDING_RESULT;  else if (result.getPerformative().compareTo(Performative.REJECT_PROPOSAL) == 0)  return State.REJECTED; ▫case SENDING_RESULT:  contractNetProtocol.informResult("task completed"); ▫case REJECTED:  leaveMe(); ▫case DONE:  leaveMe();

16 Conclusion & améliorations possibles : Objectifs atteints. ▫Retouches à effectuer, mais l’essentiel des fonctionnalités ont été développées. Améliorations possibles : ▫Gérer l’encodage/décodage en BitEfficient et en XML. ▫Certains attributs des messages ACL ne sont pas exploités :  Reply-by, In-reply-to, Reply-with, Reply-to. ▫Certaines méthodes de la classe ACLAgent devraient être en protected et non pas en public. 15


Télécharger ppt "IA54 – Communication FIPA ACL UTBM – A2011 Mickael ADELINE Kévin LE ROY Paul TALAGRAND."

Présentations similaires


Annonces Google