Sma presentacion 0910

24
Manuel Bouzas Reguera Juan Sequeiros Ameijeira Silvia González Escuredo Grupo Avia

Transcript of Sma presentacion 0910

Page 1: Sma presentacion 0910

Manuel Bouzas RegueraJuan Sequeiros AmeijeiraSilvia González Escuredo

Grupo Avia

Page 2: Sma presentacion 0910

La comunicación entre agentes responden a un patrón de losespecificados por FIPA, denominados protocolos. Cada unode estos protocolos establece el intercambio básico demensajes que existe entre dos agentes para un tipo deconversación.

Protocolos de comunicación JADE define dos roles, el queinicia la conversación y el que es objeto de la misma (rolInitiator y rol Responder).

JADE proporciona unas clases de comportamientoprediseñadas para ambos roles. Estas clases se encuentran enel paquete jade.proto.

Page 3: Sma presentacion 0910

El paquete jade.proto agrupa todas las clases que, en formade comportamientos, facilitan la implementación de losprotocolos de comunicación definidos por FIPA.

Se agrupan dentro del paquete en cuatro parejas de clasesprincipales .

A mayores de estas cuatro clases existen otras subclases queañaden valores a las principales o que las simplifican.

Page 4: Sma presentacion 0910

3.6.1 El paquete jade.proto (cont.)

Comportamientos Protocolos FIPA

AchieveREInitiator

AchieveREResponder

o SimpleAchieveREInitiator

o SimpleAchieveREResponder

o IteratedAchieveREInitiator

o SSIteratedAchieveREResponder

FIPA-Request

FIPA-Query

FIPA-Recruiting

FIPA-Request-When

FIPA-Brokering

ContractNetInitiator

ContractNetResponder

o SSContractNetResponder

FIPA-Contract-Net

SubscriptionInitiator

SubscriptionResponder

FIPA-Subscribe

FIPA-Request-Whenever

ProposeInitiator

ProposeResponderFIPA-Propose

Page 5: Sma presentacion 0910

Las acciones de los agentes en los protocolos FIPA se puedereducir simplemente a una máquina de estados finitos, y estees el tipo de comportamiento indicado para representardichas 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 unaaceptación y respuesta del agente Responder

Page 6: Sma presentacion 0910
Page 7: Sma presentacion 0910

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.

Page 8: Sma presentacion 0910

Un manejador es un comportamiento que seiniciará 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étodoshandle con la forma: handleInform, handleRequest, etc.Cada uno de ellos será invocado cuando se reciba eltipo de mensaje correspondiente.

protected void handleInform(ACLMessageinform) {

System.out.println(“Inform recibido”);}

Page 9: Sma presentacion 0910

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.

Page 10: Sma presentacion 0910

Mensajes asociados a preformativas: Hay ciertosmanejadores que serán iniciados cada vez que llegue unmensaje con determinada preformativa, pero siempreque ese mensaje llegue según lo esperado por elprotocolo FIPA que corresponda.

Manejadores AllResponses: Serán lanzados cuando sereciban todas las respuestas al primer mensaje enviadopor el iniciador o cuando se supere el tiempo deespera, indicado en el campo reply-by de ese mensajeinicial. Proporciona acceso a todos los mensajesrecibidos. Se encuentra en todos los iniciadores.

Page 11: Sma presentacion 0910

Manejadores AllResultNotifications: Serán lanzadoscuando se reciban todas las respuestas finales o cuandose supere el tiempo de espera, indicado en el camporeply-by de ese mensaje inicial. Proporciona acceso atodos los mensajes recibidos. Solamente se encuentraen el iniciador AchieveRE y en el ContractNet.

Manejador OutOfSequence: Este es el manejador que seencarga de actuar en el caso de que el mensaje recibidono se corresponda con el esperado según los protocoloFIPA. Es decir, funcionará con las excepciones

Page 12: Sma presentacion 0910

Un preparador lo que hace es preparar un mensajepara ser enviado, por lo que son iniciados antes deenviar un mensaje del tipo al que estén asociados

En el caso de registrar comportamientos habrá queguardar en el almacén de datos y con una clavedeterminada el mensaje que se desea enviar.

Se deber tener mucho cuidado a la hora de rellenarlos campos de los mensajes, pues el hecho dedejar vacío un campo puede interrumpir todo elprotocolo

Page 13: Sma presentacion 0910

El almacén de datos guarda todos losmensajes que se envían o reciben durantetodo el proceso de comunicación, es decir, alo largo de la ejecución de un protocolo.

Page 14: Sma presentacion 0910

La característica principal de los mensajes en FIPA-ACL es que cada uno de ellos representa un actocomunicativo, El estándar FIPA especifica para cadaacto comunicativo:

• Precondiciones de Viabilidad (FeasibilityPreconditions)

• Efecto Razonable (Rational Effect)

Page 15: Sma presentacion 0910

Conjunto de clases AchieveRE:

• AchieveREInitiator

• AchieveREResponder

• SimpleAchieveREInitiator

• SimpleAchieveREResponder

• IteratedAchieveREInitiator

• SSIteratedAchieveREResponder

La sesión de cada protocolo con un respondedor dadoterminará si:

• El iniciador envía al respondedor un mensaje explicito CANCELen 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 lanotificación de resultado INFORM. Esta bandera de terminaciónpuede detectarse usando el método isSessionTerminated().

Page 16: Sma presentacion 0910

Algunos de los protocolos que implementala clase AchieveRE son:

• FIPA-Request

• FIPA-Query

Page 17: Sma presentacion 0910

Este protocolo permite a un agente solicitar a otro larealización de una acción y está identificado en el parámetrodel 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.

• En caso de que el mensaje anterior fuera un agree: Failure siocurrió algún error en el proceso, inform-done si se realizócorrectamente e inform-result si además se tiene quecomunicar el resultado.

Ejemplo

Page 18: Sma presentacion 0910

Este protocolo permite a un agente solicitar a otro un objetoo una comprobación que devuelva un valor de verdad, y enfunción de que tipo de petición sea será un Query-if(comprobación de verdad) o un Query-ref (cuando sepregunta por algún objeto).

Los mensajes que se intercambian son los siguientes:

• Query-If o Query-Ref, la solicitud.

• Agree si se acepta o refuse si se rechaza.

• Si se aceptó: Failure si ocurrió algún error en el proceso,Inform-T/F con la respuesta si la consulta era un Query-If oInform-Result si la consulta fue un Query-Ref.

Ejemplo

Page 19: Sma presentacion 0910

Las clases ContractNet implementan elcomportamiento del protocolo del mismo nombre:

• Funcionamiento

• Los mensajes que se intercambian son:

1. CFP (Call For Proposal)

2. Los respondedores pueden enviar unRefuse, un Not-Understood o un Propose

3. El iniciador evalúa propuestas envía Reject-Proposal o un Accept-Proposal.

4. Los respondedores envían un Failure ,unInform-Done, o un Inform-Result.

Page 20: Sma presentacion 0910

El agente iniciador (ContractNetInitiator) posee dosmétodos importantes:

• handlePropose

• handleAllResponses

Y el agente respondedor posee los métodos:

• handleAcceptProposal

• handleRejectProposal

Ejemplo

Page 21: Sma presentacion 0910

Implementa un comportamiento que consiste en que eliniciador le pide permiso al respondedor para realizar unaacción, y si éste acepta la realiza y si no, no. Los mensajesintercambiados en la ejecución de este protocolo son:

• Propose, con la propuesta de acción por parte deliniciador.

• Un Reject-Proposal o un Accept-Proposal en función desi acepta la propuesta o no.

Page 22: Sma presentacion 0910

La clase del respondedor (ProposeResponder) no dispone de métodos handle, solamente dispone de un prepareResponse() que maneja la respuesta al Propose recibido, un registerPrepareResponse(), un createMessageTemplate() y algunos métodos reset().

Ejemplo.

Page 23: Sma presentacion 0910

El iniciador le solicita al respondedor permiso parasuscribirse, el respondedor procesa esa solicitud yla acepta o la rehecha. Si la acepta envía unmensaje con las condiciones de suscripción, y lohace de forma continua hasta que sufre un fallo yenvía un failure o hasta que el iniciador cancela elenvío.

Ejemplo

Page 24: Sma presentacion 0910

Los mensajes que se intercambian son:

• Subscribe, solicitando la suscripción.

• El respondedor envía un Refuse si no acepta la propuesta de

suscripción, un Agree si la acepta y un Not-Understood si

hubo algún fallo.

• Si la aceptó, después envía un Inform-Result con las

condiciones que establezca para la suscripción.

• Para detener el envío, o bien sufre un fallo el respondedor y

envía un Failure o bien envía un Cancel el iniciador.

• Si el proceso se detuvo porque el iniciador envió un Cancel, el

respondedor manda un Inform-Done si todo se realizó

exitosamente, o un Failure si algo no funcionó correctamente.

Ejemplo