Protocolos de comunicaciónManuel Bouzas RegueraJuan Sequeiros AmeijeiraSilvia González EscuredoGrupo Avia
Protocolos de comunicaciónLa comunicación entre agentes responden a un patrón de los especificados por FIPA, denominados protocolos. Cada uno de estos protocolos establece el intercambio básico de mensajes que existe entre dos agentes para un tipo de conversación.Protocolos de comunicación JADE define dos roles, el que inicia la conversación y el que es objeto de la misma (rol Initiator y rol Responder).JADE proporciona unas clases de comportamiento prediseñadas para ambos roles. Estas clases se encuentran en el paquete jade.proto.
3.6.1 El paquete jade.protoEl paquete jade.protoagrupa todas las clases que, en forma de comportamientos, facilitan la implementación de los protocolos de comunicación definidos por FIPA. Se agrupan dentro del paquete en cuatro parejas de clases principales .A mayores de estas cuatro clases existen otras subclases que añaden valores a las principales o que las simplifican.
3.6.1 El paquete jade.proto (cont.)
Las acciones de los agentes en los protocolos FIPA se puede reducir simplemente a una máquina de estados finitos, y este es el tipo de comportamiento indicado para representar dichas máquinas.ejemplo :Pedro: Juan, ¿Tienes hora?Juan: Sí, un segundo.Juan mira el reloj.Juan: Son las seis en punto.Esta conversación sigue el modelo del protocolo FIPA-Request, es decir, hay una petición del agente Initiator y una aceptación y respuesta del agente Responder3.6.1 El paquete jade.proto (cont.)
3.6.1 El paquete jade.proto (cont.)
La acciones que se realizan en cada estado se definen mediante los manejadores (Handlers), mientras que los mensajes se preparan mediante los preparadores (Prepares). La siguiente figura muestra dicho 	funcionamiento   con claridad.3.6.1 El paquete jade.proto (cont.)
3.6.1.1 Manejadores (handle y registerHandler)Un manejador es un comportamiento que se iniciará al entrar en el estado al que esté asociado. Existen dos formas de implementar un manejador:1.Sobrecarga de métodos handle:Cada comportamiento tiene una serie de métodos handle con la forma: handleInform, handleRequest, etc. Cada uno de ellos será invocado cuando se reciba el tipo de mensaje correspondiente.
2. Registrar manejadores propios: Se podrán registrar comportamientos para que actúen como manejadores. El registro se hará a través de los métodos registerHandler que tienen la forma: registerHandleInform, registerHandleRequest, etc. En caso de registrar un comportamiento como manejador, el sistema ignorará las sobrecargas de los métodos handler y se limitará a iniciar los comportamientos registrados. 3.6.1.1 Manejadores (handle y registerHandler)(cont.)
Mensajes asociados a preformativas: Hay ciertos manejadores que serán iniciados cada vez que llegue un mensaje con determinada preformativa, pero siempre que ese mensaje llegue según lo esperado por el protocolo FIPA que corresponda.Manejadores AllResponses: Serán lanzados cuando se reciban todas las respuestas al primer mensaje enviado por el iniciador o cuando se supere el tiempo de espera, indicado en el campo reply-by de ese mensaje inicial. Proporciona acceso a todos los mensajes recibidos. Se encuentra en todos los iniciadores.3.6.1.1 Manejadores (handle y registerHandler)(cont.)
Manejadores AllResultNotifications: Serán lanzados cuando se reciban todas las respuestas finales o cuando se supere el tiempo de espera, indicado en el campo reply-by de ese mensaje inicial. Proporciona acceso a todos los mensajes recibidos. Solamente se encuentra en el iniciador AchieveRE y en el ContractNet.Manejador OutOfSequence: Este es el manejador que se encarga de actuar en el caso de que el mensaje recibido no se corresponda con el esperado según los protocolo FIPA. Es decir, funcionará con las excepciones3.6.1.1 Manejadores (handle y registerHandler)(cont.)
3.6.1.2 Preparadores (prepare y registerPrepare)Un preparador lo que hace es preparar un mensaje para ser enviado, por lo que son iniciados antes de enviar un mensaje del tipo al que estén asociadosEn el caso de registrar comportamientos habrá que guardar en el almacén de datos y con una clave determinada el mensaje que se desea enviar. Se deber tener mucho cuidado a la hora de rellenar los campos de los mensajes, pues el hecho de dejar vacío un campo puede interrumpir todo el protocolo
El almacén de datos guarda todos los mensajes que se envían o reciben durante todo el proceso de comunicación, es decir, a lo largo de la ejecución de un protocolo.3.6.1.3 El almacén de datos
3.6.2 AchieveRELa característica principal de los mensajes en FIPA-ACL es que cada uno de ellos representa un acto comunicativo, El estándar FIPA especifica para cada acto comunicativo: Precondiciones de Viabilidad (FeasibilityPreconditions)
Efecto Razonable (RationalEffect)3.6.2 AchieveREConjunto de clases AchieveRE:AchieveREInitiator
AchieveREResponder
SimpleAchieveREInitiator
SimpleAchieveREResponder
IteratedAchieveREInitiator
SSIteratedAchieveREResponderLa sesión de cada protocolo con un respondedor dado terminará si: El iniciador envía al respondedor un mensaje explicito CANCEL en lugar del siguiente mensaje de iniciación.
El respondedor responde negativamente con REFUSE, NOT_UNDERSTOOD o FAILURE.
El respondedor incluye una bandera de terminación a la notificación de resultado INFORM. Esta bandera de terminación puede detectarse usando el método isSessionTerminated().3.6.2 AchieveREAlgunos de los protocolos que implementa la clase AchieveRE son:FIPA-Request
FIPA-Query 3.6.2 FIPA-RequestEste protocolo permite a un agente solicitar a otro la realización de una acción y está identificado en el parámetro del protocolo del mensaje con el valor fipa-request.Los mensajes que se intercambian son: Request, la petición.
Agree, si acepta la petición o refuse si la rechaza.

Sma presentacion

  • 1.
    Protocolos de comunicaciónManuelBouzas RegueraJuan Sequeiros AmeijeiraSilvia González EscuredoGrupo Avia
  • 2.
    Protocolos de comunicaciónLacomunicación entre agentes responden a un patrón de los especificados por FIPA, denominados protocolos. Cada uno de estos protocolos establece el intercambio básico de mensajes que existe entre dos agentes para un tipo de conversación.Protocolos de comunicación JADE define dos roles, el que inicia la conversación y el que es objeto de la misma (rol Initiator y rol Responder).JADE proporciona unas clases de comportamiento prediseñadas para ambos roles. Estas clases se encuentran en el paquete jade.proto.
  • 3.
    3.6.1 El paquetejade.protoEl paquete jade.protoagrupa todas las clases que, en forma de comportamientos, facilitan la implementación de los protocolos de comunicación definidos por FIPA. Se agrupan dentro del paquete en cuatro parejas de clases principales .A mayores de estas cuatro clases existen otras subclases que añaden valores a las principales o que las simplifican.
  • 4.
    3.6.1 El paquetejade.proto (cont.)
  • 5.
    Las acciones delos agentes en los protocolos FIPA se puede reducir simplemente a una máquina de estados finitos, y este es el tipo de comportamiento indicado para representar dichas máquinas.ejemplo :Pedro: Juan, ¿Tienes hora?Juan: Sí, un segundo.Juan mira el reloj.Juan: Son las seis en punto.Esta conversación sigue el modelo del protocolo FIPA-Request, es decir, hay una petición del agente Initiator y una aceptación y respuesta del agente Responder3.6.1 El paquete jade.proto (cont.)
  • 6.
    3.6.1 El paquetejade.proto (cont.)
  • 7.
    La acciones quese realizan en cada estado se definen mediante los manejadores (Handlers), mientras que los mensajes se preparan mediante los preparadores (Prepares). La siguiente figura muestra dicho funcionamiento con claridad.3.6.1 El paquete jade.proto (cont.)
  • 8.
    3.6.1.1 Manejadores (handley registerHandler)Un manejador es un comportamiento que se iniciará al entrar en el estado al que esté asociado. Existen dos formas de implementar un manejador:1.Sobrecarga de métodos handle:Cada comportamiento tiene una serie de métodos handle con la forma: handleInform, handleRequest, etc. Cada uno de ellos será invocado cuando se reciba el tipo de mensaje correspondiente.
  • 9.
    2. Registrar manejadorespropios: Se podrán registrar comportamientos para que actúen como manejadores. El registro se hará a través de los métodos registerHandler que tienen la forma: registerHandleInform, registerHandleRequest, etc. En caso de registrar un comportamiento como manejador, el sistema ignorará las sobrecargas de los métodos handler y se limitará a iniciar los comportamientos registrados. 3.6.1.1 Manejadores (handle y registerHandler)(cont.)
  • 10.
    Mensajes asociados apreformativas: Hay ciertos manejadores que serán iniciados cada vez que llegue un mensaje con determinada preformativa, pero siempre que ese mensaje llegue según lo esperado por el protocolo FIPA que corresponda.Manejadores AllResponses: Serán lanzados cuando se reciban todas las respuestas al primer mensaje enviado por el iniciador o cuando se supere el tiempo de espera, indicado en el campo reply-by de ese mensaje inicial. Proporciona acceso a todos los mensajes recibidos. Se encuentra en todos los iniciadores.3.6.1.1 Manejadores (handle y registerHandler)(cont.)
  • 11.
    Manejadores AllResultNotifications: Seránlanzados cuando se reciban todas las respuestas finales o cuando se supere el tiempo de espera, indicado en el campo reply-by de ese mensaje inicial. Proporciona acceso a todos los mensajes recibidos. Solamente se encuentra en el iniciador AchieveRE y en el ContractNet.Manejador OutOfSequence: Este es el manejador que se encarga de actuar en el caso de que el mensaje recibido no se corresponda con el esperado según los protocolo FIPA. Es decir, funcionará con las excepciones3.6.1.1 Manejadores (handle y registerHandler)(cont.)
  • 12.
    3.6.1.2 Preparadores (preparey registerPrepare)Un preparador lo que hace es preparar un mensaje para ser enviado, por lo que son iniciados antes de enviar un mensaje del tipo al que estén asociadosEn el caso de registrar comportamientos habrá que guardar en el almacén de datos y con una clave determinada el mensaje que se desea enviar. Se deber tener mucho cuidado a la hora de rellenar los campos de los mensajes, pues el hecho de dejar vacío un campo puede interrumpir todo el protocolo
  • 13.
    El almacén dedatos guarda todos los mensajes que se envían o reciben durante todo el proceso de comunicación, es decir, a lo largo de la ejecución de un protocolo.3.6.1.3 El almacén de datos
  • 14.
    3.6.2 AchieveRELa característicaprincipal de los mensajes en FIPA-ACL es que cada uno de ellos representa un acto comunicativo, El estándar FIPA especifica para cada acto comunicativo: Precondiciones de Viabilidad (FeasibilityPreconditions)
  • 15.
    Efecto Razonable (RationalEffect)3.6.2AchieveREConjunto de clases AchieveRE:AchieveREInitiator
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
    SSIteratedAchieveREResponderLa sesión decada protocolo con un respondedor dado terminará si: El iniciador envía al respondedor un mensaje explicito CANCEL en lugar del siguiente mensaje de iniciación.
  • 21.
    El respondedor respondenegativamente con REFUSE, NOT_UNDERSTOOD o FAILURE.
  • 22.
    El respondedor incluyeuna bandera de terminación a la notificación de resultado INFORM. Esta bandera de terminación puede detectarse usando el método isSessionTerminated().3.6.2 AchieveREAlgunos de los protocolos que implementa la clase AchieveRE son:FIPA-Request
  • 23.
    FIPA-Query 3.6.2 FIPA-RequestEsteprotocolo permite a un agente solicitar a otro la realización de una acción y está identificado en el parámetro del protocolo del mensaje con el valor fipa-request.Los mensajes que se intercambian son: Request, la petición.
  • 24.
    Agree, si aceptala petición o refuse si la rechaza.