Agentes y Jade - Trabajos de Grado | Ingeniería de Sistemas

Anuncio
AGENTES Y JADE
Introducción:
Los agentes pueden ser concepto de estudio de varias áreas , como lo son inteligencia
artificial, sistemas distribuidos, ingeniería de software, redes y sistemas autónomos
entre otras, lo cual hace que su definición este influenciada según sea el área en la cual
tengamos nuestro interés[JAS200], nosotros creemos que una definición apropiada de
agente es:
“Los agentes son simplemente un sistema computacional con la capacidad de tomar
acciones autónomas en un medio, para así cumplir sus objetivos”.[GW2001]
Según la anterior definición, encontramos que los agentes como tal están ligados
directamente a su medio , y por lo tanto podrán modificar este medio con la finalidad de
cumplir su objetivo (igual que las personas); También, los agentes, en ocasiones tendrán
la oportunidad de basar sus decisiones según criterios mas estructurados, como puede
ser información histórica o experiencias del agente con el medio, pero vale aclarar que
esto no es obligatorio (según la definición).
Los agentes como tal pueden comunicarse con otros agentes, formando sociedades de
agentes, que le sirven al mismo para cumplir sus tareas; al igual que lo hacen las
personas los agentes pueden delegar tareas a otros agentes o pueden competir por un
recurso, y esto hace que nazca un lenguaje o protocolo con el cual los agentes se puedan
comunicar fácilmente y sin ambigüedades de definiciones en los conceptos que quieren
dar a entender de un agente a otro(a diferencia de las personas).
El protocolo que se a definido para la comunicación entre agentes es el KQML que
sinifica “Knowledge query and manipulation language”.La estructura de este protocolo
es[GW2001]:
(KQML-performative
:sender <palabra>
(nombre agente que envía el mensaje)
:reciver <palabra>
(nombre agente que recibe el mensaje)
:language <palabra> (lenguaje en que se comunican(ejemplo prolog))
:ontology <palabra>
:content <expresión> (puede ser vació si el tipo del mensaje lo define))
ejemplo:
(Cancelar
:sender Hugo
:reciver Alejx
:language prolog
:ontology mundo-tesis
:content (esta vació ya que el mismo tipo de mensaje define la acción)).
FIPA (Foundation for intelligent Physical Agents):
Es una organización que desarrolla estándares para software de agentes para así permitir
que diferentes sistemas de agentes interactúen, mas claramente se puede ver una
definición de lo que es FIPA en su misión:
“la promoción de tecnologías y especificaciones de interoperabilidad que permitan el
trabajo interno de sistemas de agentes inteligentes dentro del comercio y la industria”.
En la siguiente figura podemos ver y aclarar lo que propone FIPA con respecto a la
construcción de plataformas de agentes:
En la figura diferenciamos cuatro(4) aspectos importantes en los cuales se debe basar
cualquier plataforma de agentes, y estos son[FAMS2002]:
AMS(Agent Management System): Es un servicio de paginas blancas, que tiene como
funciones principales:
Es el encargado de mantener un directorio de agentes y encargarse del ciclo de vida de
un agente.
Controla y supervisa el uso de la plataforma.
DF(Directory Facilitator):Es un servicio de paginas amarillas.
MTS(Message Transport System).
Existen en la actualidad muchas plataformas de agentes basadas en las especificaciones
de FIPA, pero en este articulo nos vamos a detener a ana lizar la plataforma “JADE” y
BESA.
JADE(Java Agent DEvelopment Framework):
JADE es un framework de agentes que esta basada en FIPA, y como tal debe tener unos
aspectos que debe cumplir toda plataforma de agentes que sea FIPA complaint, y estos
son el AMS, DF, agentes y la definición de un protocolo que permita intercambiar
mensajes entre agentes, estos mensajes son comúnmente llamados los ACL(agent
comunication language) que viene siendo una abstracción del tipo de mensajes que se
definieron atrás como KQML.
Como tal una plataforma jade tiene un contenedor principal llamado main en donde
residen el AMS y el DF, este contenedor main es el primero que debe arrancar en una
plataforma jade y posteriormente pueden empezar otros contenedores con sus
respectivos agentes , pero siempre teniendo en cuenta que se deben registrar los agentes
al contenedor principal (el main).Esto nos da como resultado un sistema de
comunicación P2P híbrido[FBE2003] tal y como se muestra en la figura X siguiente.
Sistema P2P híbrido Figura X
deteniéndose un poco en este punto se podría pensar que la plataforma jade tiene un
punto de falla en el contenedor principal(el main) ya que si este se cae entonces la
plataforma toda se vendría al piso, sin embargo los creadores de Jade previeron esto y
hicieron que este main, aunque es un(1) agente, puede estar en varias maquinas al
mismo tiempo, tal y como lo muestra la siguiente figura[FBE12003]:
En la plataforma del lado izquierdo solo existe un main pero jade da la opción que
puedan existir mas de un main tal y como vemos en la figura del lado derecho, así si por
ejemplo el main-container-1 no prestara mas este servicio por cualquier motivo
entonces, la plataforma quedaría de la siguiente manera [FBE12003]:
Ventajas de JADE [GRI2003]:
•
•
Es una plataforma probada y sobre la cual se han desarrollado aplicaciones.
Se tiene una extensión de jade para dispositivos móviles llamada LEAP, donde
aparentemente la extensión de agentes desarrollados para JADE normal es igual
para un agente desarrollado en LEAP.
•
•
Se tiene un contenedor principal que es donde reside el AMS , con la
flexibilidad de tenerlos en forma de cluster para así dar una plataforma que es
tolerable a fallos.
La comunicación entre agentes dentro de una misma plataforma puede ser vía
RMI o por medio de llamados locales, esta complejidad es resuelta por el
contenedor que es el que sabe donde se podría encontrar el agente, esto se hace a
través de técnicas de cache en donde cada contenedor mantiene una tabla
(cache)llamada LADP (Local Agent Descriptor Table), mientras el contenedor
principal tiene una tabla global de toda la plataforma, llamada GADP (Global
Agent Descriptor Table).
Desventajas de Jade:
•
•
no tiene desarrollado el mecanismo de guardas, que es el que nos permite darle
una mejor selección a los mensajes que llegan a un agente, por lo tanto esto es
tarea del programador a la hora de implementar cada comportamiento.
Como un agente para jade es un solo hilo que tiene su propio control, puede
darse el caso que debido a un comportamiento mal programado el agente pierda
reactividad ante el entorno.
Besa:
La arquitectura besa esta compuesta por tres niveles: nivel de agente, nivel social y
nivel del sistema. En el nivel de agente se trata todo lo referente a sus comportamientos
y a los eventos a los cuales reacciona el agente. En el nivel social se trata lo referente a
la comunicación que existe entre agentes(a través de un modelo de programación de
eventos), “una interacción se puede modelar por un evento bien definido, que se puede
asociar a una guarda”. En el nivel de sistema es donde se define el ciclo de vida de los
agentes y la administración de estos[EG2003].
Ventajas:
•
•
•
•
Es un sistema que maneja muy bien el mecanismo de guardas, lo que permite al
programador definir un nivel muy fino de granularidad a la hora de plantear los
comportamientos de un agente.
Los comportamientos corren sobre su propio hilo lo que hace que estos no
bloqueen el funcionamiento total del agente, al contrario de cómo sucede en
JADE.
Besa deja que el programador solo piense en los comportamientos de su agente
llevándolo a un nivel de abstracción mas alto.
Se puede ver como una plataforma P2P ya que la comunicación entre los agentes
es punto a punto y lo mismo pasa con los contenedores de los agentes.
Desventajas:
•
•
Usa el mecanismo de multicast para la comunicación entre contenedores, lo cual
lo limita a un dominio.
Se puede afectar el rendimiento de la red en casos en que los agentes tengan un
tiempo de vida muy corto. Esto debido al multicast que es utilizado para
•
•
mantener las tablas actualizadas del directorio de paginas blancas que tiene cada
contenedor.
La poca documentación que lo soporta.
No se a probado con muchos ejemplos como si a sucedido con otras plataformas
de agentes.
Referencias:
[GW2001]
Gerhard Weiss, “Multagent System”, 2001.
[JAS200]
Juan Ángel Sampedro Martínez, José David Ciórraga López,
Francisco Jesús Martínez Mimbrera, “AgentOS”.
[FAMS2002] www.fipa.org, “Fipa Agent management Specification” , 2002/12/03.
[FBE2003] F. Bellifemine, G. Caire, A. Poggi, G. Rimassa“Jade a white paper”,
Septiembre del 2003.
[FBE12003] F. Bellifemine, G. Caire , Tizana Trucco, “Jade administrator guide”
jade 3.1 , 15 de Diciembre del 2003.
[GRI2003]
Giovanni Rimaza , “Runtime Suport for Distributed- multi- Agent
systems” , Enero del 2003.
[EG2003]
Enrique Gonzalez, Jamir Antonio Avila y Cesar Bustacara, “Besa
Arquitectura para la construcción de sistemas Multi- Agentes”, 2003.
Descargar