You are on page 1of 11

Guía No.

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].

En el momento de ejecutarse la plataforma JADE se crea un agente RMA (Remote Monitoring


Agent), que permite controlar al resto de agentes en la plataforma permitiendo una interfaz gráfica
que facilita las funciones de monitorización y control. Solo puede existir un agente RMA por
container, aunque puede haber varios por plataforma [4].

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.

Figura 2: Adecuación variable classpath

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:

Figura 3: Compilación de AgBasico.java

Figura 4: Ejecuación de AgBasico en JADE


Para lograr que se ejecute el entorno gráfico de JADE, se utiliza la instrucción en java jade.Boot – gui
y se le agrega el nombre que tendrá el agente por ejemplo “Juan” especificando los paquetes y
subpaquetes donde está la clase que define al agente, en este caso examples.agclase.AgBasico, y
se obtendrá lo siguiente:

Figura 5: El agente Juan en el Main- Container

Este agente se encuentra dentro del contenedor Main-Container con la posibilidad de recibir
Mensajes:

Figura 6: Envió de mensaje al agente Juan


Figura 7: Supervisión del agente Juan desde el agente sniffer

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.

Figura 10:implementación método doWait.

El método setContent, se encarga de almacenar el mensaje que le enviara manuel a juan.

Figura 11:implementación método setContent.

De esta manera se encuentran los dos agentes ubicados en el Main-Container


Figura 12:Agentes en el Main-Container

Para poder validar el envió del mensaje se ejecuta el agente sniffer.

Figura 13:Agente Sniffer ejecutándose

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.

Figura 15:presentación de Agente que envía

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.

[2] Díez,Sancho,García y Campo. Diseño de una plataforma de agentes


Compatible con FIPA para dispositivos limitados disponible en:
http://www.it.uc3m.es/celeste/papers/jitel2003.pdf

[3] Botía, Juan. Tutorial básico de JADE disponible en:


http://scalab.uc3m.es/~docweb/swagent/jade_texto.pdf

[4] Garamendi, Juan. Agentes Inteligentes, disponible en:

http://platon.escet.urjc.es:8080/foros/AgentesInteligentes_2003_2004/1082414149/1082495069/Jade
.pdf

[5] Gomez y Botía. Tecnologías y Plataformas de Agentes, disponible en:


http://ants.dif.um.es/staff/juanbot/page_files/uimp2002.pdf

You might also like