Documentos de Académico
Documentos de Profesional
Documentos de Cultura
http://jade.tilab.com
Para trabajar con agentes JADE se debe crear una clase para el agente que
herede de la clase jade.core.Agent e implemente como mínimo el método
setup()
Como recordamos setup() contendrá el código necesario para la
inicialización del agente; en nuestro caso se trata de un mensaje de
bienvenida acompañado de la identificación del agente:
Añadir una clase nueva para el agente con Archivo > Archivo nuevo y
seleccionar el tipo Java Class. Es recomendable no colocar las clases Java en
el paquete predeterminado así que podemos elegir para el paquete de clases
el mismo nombre que para el proyecto:
Ojo, al cerrar la ventana que captura los datos la ejecución del agente
vendedor finaliza y abandona la plataforma de agentes... ¿por qué
ocurre esto?
Trata de evitarlo modificando el código. Pista: la ejecución de un
agente finaliza cuando se invoca su método doDelete()
Queremos implementar un acto comunicativo del tipo Call for Proposal tal y
como especifica el protocolo de interacción fipa-contract-net de FIPA:
El comprador envía CFP a los posibles vendedores para preguntar por
ofertas del libro que busca
La performativa PROPOSE puede ser usada para los mensajes
portando las ofertas del vendedor
Si el vendedor no tiene el libro enviará la performativa REFUSE
La performativa ACCEPT_PROPOSAL puede ser usada para llevar los
mensajes de aceptación de compra
Cuando el vendedor ha recibido el ACCEPT_PROPOSAL, bien enviará
un INFORM si la compra se puede llevar a cabo o un FAILURE si hay
algún problema
Usaremos para ello los comportamientos RequestPerformer ,
OfferRequestsServer y PurchaseOrdersServer indicados en la sección anterior
Como observamos podemos añadir tantos receptores como deseemos (de momento
conocemos la identidad de los receptores, posteriormente consultaremos en el DF
sus identidades)
ISLOCALNAME es un valor booleano de la clase AID para indicar si el nombre de
agente es local o no a la plataforma de agentes
Para asegurarnos que el mensaje que queremos recuperar de la cola de mensajes es del
tipo CFP haremos uso de las plantillas disponibles en jade.lang.acl.MessageTemplate
cambia a: