Professional Documents
Culture Documents
Tomado: http://twit88.com/blog/wp-content/uploads/2007/12/rma.gif
INTRODUCCIÓN:
La FIPA especifica una arquitectura para la construcción de un sistema multiagente que contiene 3
componentes: el Agent Management System (AMS) encargado del ciclo de vida de los agentes, de
los recursos locales, los canales de comunicación y proporciona un servicio de paginas blancas para
buscar los agentes por el nombre; el Directory Facilitator (DF) que presta un servicio de páginas
amarillas ubicando a los agentes por su servicio; el Agent Communication Channel(ACC) encargado
de gestionar el paso de mensajes entre los diferentes agentes [2] .
Figura 1: Arquitectura abstracta FIPA
JADE especifica el estándar FIPA incluyendo la noción de contenedor que es una instancia del
entorno de ejecución donde es posible albergar un número indeterminado de agentes y donde debe
existir por lo menos uno solo que recibirá el nombre de Main-Container [3].
Todo agente en JADE comienza por la creación de una clase que hereda de la clase Agent, que se
encuentra ubicado en el paquete jade.core. Se debe implementar como mínimo el método void
setup(), el cual realiza todas las tareas necesarias para que el agente pueda comenzar su ejecución,
para el paso de mensajes se utiliza la clase ACLMessage que se encuentra en el paquete
Jade.lang.acl, que luego se transformara en un flujo de bits para representar la estructura de
mensajes FIPA [5]
Implementación
Para la implementación se recomienda utilizar la versión 3.7 de JADE la cual puede ser descargada
de la página http://jade.tilab.com/ , al hacer la descarga JADE-bin-3.7.zip y descomprimirlo presenta
el siguiente árbol de archivos y directorios:
JADE
o Demo
CalendarBean
Demo.mf
MeetingScheduler
MeetingScheduler
runDemo
o Lib
Commons-codec
commons-codec-1.3
LICENSE
RELEASE-NOTES
http
iiop
jade
jadeTools
o ChangeLog
o License
o README
META-INF
Este árbol debe ser ubicado en la ruta c:\\jade y para poder crear el agente RMA y ver el entorno
gráfico que ofrece JADE es necesario añadir a la variable Classpath los archivos .jar que se
encuentran en el directorio lib.
Debido a que JADE presenta una serie de librerías ya creadas para la construcción de agentes, un
agente básico en JADE es muy sencillo de implementar para ello se necesita el siguiente código:
Este agente aunque no tiene definido un comportamiento puede ser ejecutado, supervisado y puede
recibir mensajes desde el agente RMA, primero debe compilarse el archivo *.java y luego ejecutarse
junto con el entorno gráfico de JADE:
Este agente se encuentra dentro del contenedor Main-Container con la posibilidad de recibir
Mensajes:
Para establecer la comunicación por paso de mensajes entre dos agentes es necesario que un
agente se coloque en la disposición de Recibir el mensaje, dicho agente puede llamarse AgRecibe e
implementa una estructura cliente servidor donde el servidor en este caso el AgRecibe, se encuentra
en posición espera a que otro agente le envíe un mensaje, para desarrollar esta implementación se
ejecutaran los dos agentes simultáneamente, donde el nombre del agente que recibe el mensaje es
el parámetro del agente que lo envía.
Figura 8: Ejecución del agente juan de la clase AgRecibe y del agente manuel de la clase
AgEnviaMensaje en JADE
Lo primero que ocurre es la identificación del agente manuel quien será el agente que envía el
mensaje, quien operara como cliente en la comunicación.
Figura 9:Identificación del agente manuel
El método doWait, permite definir un tiempo suspendido en el cual el agente manuel enviara el
mensaje al agente juan, este será dado en un valor entero en el cual cada valor de 1000 será
equivalente a un segundo.
Automáticamente en el momento en que le llega el mensaje al agente juan, el agente sniffer registra
dicho suceso presentando la línea de comunicación que se establece entre el agente manuel y el
agente juan.
Figura 14:Llegada de menaje
El agente juan presenta la dirección de donde le llego el mensaje que en esta situación debe
coincidir con el agente manuel.
La implementación termina presentando el correcto paso de mensaje entre estos agentes, visible en
la implementación que realiza el agente sniffer y en la comunicación que presenta tanto el agente
juan como el agente manuel.
Esta corta implementación permite especificar y estructurar de manera funcional el uso de los
agentes y la autonomía que deben tener frente a la interacción con el entorno.
BIBLIOGRAFÍA
[1] Russell and Norving, Artificial Intelligence: A Modern Approach, Prentice Hall,
2004.
http://platon.escet.urjc.es:8080/foros/AgentesInteligentes_2003_2004/1082414149/1082495069/Jade
.pdf