Download WORD - Trabajos de Grado de la facultad de Ingeniería de Sistemas

Document related concepts
no text concepts found
Transcript
DOCUMENTO DE INVESTIGACION SOBRE LAS HERRAMIENTAS PARA IMPLEMENTACION
DE SISTEMAS MULTIAGENTES
PROYECTO:
“CONCURRENCIA EN SISTEMAS MULTIAGENTE: IMPLEMENTACIÓN DE UN SIMULADOR
DE TRÁFICO URBANO”
DIRECTOR:
ENRIQUE GONZALEZ GUERRERO
ESTUDIANTES:
DANIEL FERNANDO RODRIGUEZ NIÑO
GERMAN OCTAVIO ARDILA DIAZ
PROYECTO DE INVESTIGACIÓN II
PONTIFICIA UNIVERSIDAD JAVERIANA
BOGOTA, 2002
TABLA DE CONTENIDO
TABLA DE CONTENIDO ________________________________________________________________ 2
HERRAMIENTAS Y CRITERIOS DE SELECCION __________________________________________ 3
HERRAMIENTAS QUE SE RECHAZARON SEGÚN LOS CRITERIOS DE ACEPTACIÓN
DEFINIDOS ___________________________________________________________________________ 4
AGENT DEVELOPMENT KID ________________________________________________ 4
APRIL AGENT PLATAFORM _________________________________________________ 4
HERRAMIENTAS ACEPTADAS SEGÚN LOS CRITERIOS DEFINIDOS ________________________ 5
JADE: ______________________________________________________________________ 5
Características básicas: ______________________________________________________________ 5
Arquitectura: ______________________________________________________________________ 5
Características tenidas en cuenta para el diseño de JADE con respecto a la teoría de agentes: ________ 6
Detalle del sistema de comunicaciones: __________________________________________________ 6
El modelo de Ejecución: _____________________________________________________________ 6
Concurrencia en Jade: _______________________________________________________________ 6
ZEUS _______________________________________________________________________ 7
Características Básicas: ______________________________________________________________ 7
Arquitectura: ______________________________________________________________________ 7
Características tenidas en cuenta para el diseño de ZEUS con respecto a la teoría de agentes: ________ 8
Comunicaciones: ___________________________________________________________________ 8
Esquema de manejo de la comunicación _________________________________________________ 8
Esquema de Arranque: _______________________________________________________________ 9
Coordinación:_____________________________________________________________________ 10
FIPA-OS ___________________________________________________________________ 10
Arquitectura: _____________________________________________________________________ 10
Diseño de los agentes según la definición de agentes: ______________________________________ 12
Estructura del Agente: ______________________________________________________________ 12
Esquema de manejo de la comunicación ________________________________________________ 13
CONCLUSIONES _____________________________________________________________________ 15
HERRAMIENTAS Y CRITERIOS DE SELECCION
En total se revisarón las características de varias plataformas de agentes, entre las cuales se
encuentran las siguientes:
o
o
o
o
o
JADE
AGENT DEVELOPMENT KID
APRIL AGENT PLATAFORM
FIPA-OS
ZEUS
Los criterios para escoger las que serían evaluadas son los siguientes:
Criterio
Cumple con el estándar FIPA.
Que posea algún mecanismo
de interoperabilidad.
Ha sido desarrollada por una
organización conocida o de
renombre.
Es
de
licencia
preferiblemente.
Es
de
código
preferiblemente.
libre
Justificación
Este es un estándar que están
adoptando
múltiples
plataformas
de
agentes
reconocidas.
Es importante que posean
mecanismos
de
interoperabilidad
entre
plataformas,
bien
sea
determinado por el lenguaje de
programación
o
por
un
mecanismo como CORBA.
La
plataforma
debe
ser
reconocida con casos exitosos
o debe ser desarrollada por una
entidad con cierto prestigio.
Bajar los costos del proyecto.
abierto En caso de que se necesite
realizar
modificaciones
o
adaptaciones de acuerdo al
tema de estudio.
Tiene
documentación
de Al
interactuar
con
una
técnica detallada y posee herramienta desconocida es
manuales de usuario.
necesario
tener
buena
documentación para ver como
se
alinea
con
el
direccionamiento del proyecto.
Lenguaje de desarrollo sea A modo informativo.
preferiblemente
(no
necesariamente) Java.
La filosofía de plataforma debe Por la naturaleza del proyecto
manejar agentes móviles, tanto la herramienta debe manejar
en Internet como en sistemas agentes móviles por lo menos
distribuidos.
en el ámbito de Sistemas
Distribuidos.
Identificador
FIPA
Interoperabilidad.
Proveedor Reconocido.
Licencia Libre.
Código Abierto.
Documentación.
Lenguaje
Agentes Móviles
Criterios
Herrami
enta
AGENT
DEVELO
PMENT
KID
APRIL
AGENT
PLATAF
ORM
JADE
ZEUS
FIPA-OS
FIPA
X
Interope Proveed Licencia Código
rabilidad
or
Libre
Abierto
Reconoc
ido
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Docum Lengua Agent Acepta
entació
je
es
da
n.
Movib
les
Java
X
No
X
X
X
C
X
No
Java
Java
Java
X
X
X
Si
Si
Si
Después de evaluar las características básicas de las herramientas con respecto a los criterios de
evaluación como se ve en la tabla se escogieron las siguientes para estudiaras mas
profundamente:
o
o
o
JADE (Java Agent DEvelopment Framework)
ZEUS
FIPA-OS
HERRAMIENTAS QUE SE RECHAZARON SEGÚN LOS
CRITERIOS DE ACEPTACIÓN DEFINIDOS
A continuación se presentan algunas de las características de las herramientas estudiadas y que
se rechazaron teniendo en cuenta los criterios de aceptación definidos:
AGENT DEVELOPMENT KID
o
o
o
o
o
Desarrollado por una casa de software llamada Tryllan.
Su licencia es comercial.
Cumple con los estándares FIPA.
Esta demasiado orientado a agentes móviles en Internet.
Todo el desarrollo de la plataforma esta basado en JAVA y XML.
APRIL AGENT PLATAFORM
o
o
o
o
o
o
Opera Solo sobre UNIX, Linux y MacOS.
Cumple los estándares FIPA.
Esta desarrollada en lenguaje C.
Esta orientada a agentes móviles.
Desarrollado por Fujitsu.
No se consigue fácilmente la documentación referente a la herramienta.
HERRAMIENTAS ACEPTADAS SEGÚN LOS CRITERIOS
DEFINIDOS
JADE:
Características básicas:
o
o
o
o
o
Esta desarrollada 100% en JAVA.
Es de licencia libre y código abierto.
Cumple con los estándares FIPA.
Maneja agentes móviles.
Puede interactuar con Java Expert System Shell.
Arquitectura:
Como se observa en la gráfica la arquitectura básica de jade se compone de:
o
En un modulo de administración de los agentes, el cual es como un directorio de páginas
blancas, este permite a los agentes ubicar a otros agentes.
o
Un modulo de administración de servicios, el cual es como un directorio de paginas
amarillas y que permite a los agentes, ubicar servicios provistos por otros agentes.
o
Un canal de comunicación entre agentes que se encuentran en un mismo contenedor de
agentes, esta canal se maneja a través de eventos Java.
o
Entre contenedores la comunicación se realiza a través de paso de mensajes, mas
específicamente utilizando RMI.
o
La comunicación entre agentes que se encuentran en diferentes maquinas se realiza a
través del protocolo IIOP.
Características tenidas en cuenta para el diseño de JADE con respecto
a la teoría de agentes:
o
o
o
Los Agentes son Autónomos: Para cumplir esta regla que determina la definición de
agente, en JADE los agentes son objetos activos.
Los agentes son entidades sociales: La concurrencia de agentes internos es requerida.
Los Mensajes son actos de Habla, no son invocaciones: Requiere paso de mensajes no
sincrónicos.
Detalle del sistema de comunicaciones:
o
o
o
o
Todo agente posee una cola de mensajes ACL.
El costo de la comunicación depende de la ubicación del agente al que se le quiere enviar
un mensaje.
Cada contenedor de agentes maneja un despachador de mensajes RMI, una tabla de
descripción global de los agentes y una tabla de referencia a sus propios agentes.
El protocolo para manejo de mensajes interplataforma es IIOP.
El modelo de Ejecución:
o
o
o
El agente es capaz de manejar concurrencia. Soporta múltiples conversaciones a la vez.
El agentes es autónomo en su totalidad y tiene la capacidad de decidir cuando lea su cola
de mensajes recibidos y cuando envía.
Para el modelamiento del comportamiento de los agentes, jade provee sus propias librerías
de comportamientos y mecanismos, para determinarlos, como un administrador de
comportamientos y un administrador de ciclo de vida.
Concurrencia en Jade:
o
El manejo de la concurrencia entre diferentes contenedores de agentes se realiza a través
de la maquina virtual de Java.
o
El manejo de concurrencia entre agentes en el mismo contenedor se realiza a traves de
primitivas multithread, administradas por la maquina virtual de JAVA.
ZEUS
Características Básicas:
o
o
o
Cumple con los estándares FIPA.
Es de licencia publica y de código abierto
Provee acceso a bases de datos.
Arquitectura:
Agent Name Server
Address
Book
request
Co mmon Message Format (Language)
Shared mesage content
representation and ontology
reply
Agent
Facilitator
B
A
D
MESSAGE
Transport Protocol
C
o
o
o
o
Agent
Agent
Agent
Perform
Task A
Perform
Task C
Perform
Task D
Posee un motor para la administración de la coordinación entre agentes.
Permite modelar distintos tipos de sociedades de Agentes.
Posee un mecanismo de inteligencia basado en metas.
Provee Servicios de búsqueda de agentes por nombre a través de la red.
Abilit ies
Database
External
program
o
Provee directorios de paginas amarillas para la ubicación de servicios.
Características tenidas en cuenta para el diseño de ZEUS con respecto
a la teoría de agentes:
o
o
o
El comportamiento de los agentes puede ser modelado a través mecanismos, libres,
orientados a metas, o racionales.
Los agentes son autónomos como objetos activos.
Los agentes son autónomos.
Comunicaciones:



Para la comunicación entre agentes sea o no interplataforma utiliza protocolos como TCP/IP
sockets.
Permite el Manejo de Ontologías.
La comunicación entre agentes e maneja a través de KQML adaptado a los estándares FIPA
ACL
Esquema de manejo de la comunicación
Si encontró
dirección.
Libreta local
de
direcciones.
No encontró
dirección.
Nuevo
socket
Almacena
Mensaje en turno
de buffer Espera
Manejador de mensajes
Mailbox (Basado en Sockets) FIFO
Thread que maneja la Entrada
Buffer de Entrada
Thread que administra la salida
Buffer de Salida
Cada agente tiene una libreta local de direcciones, cuando recibe una petición de comunicación de
otro agente, procede a revisar en su libreta local de direcciones para ver si conoce al agente que
esta tratando de establecer comunicación. En caso de que no lo conozca almacena el mensaje en
un buffer de espera mientras solicita al agente servidor de nombres la dirección del agente que
esta tratando de comunicarse. Cuando el agente servidor de nombres responde con la dirección
del agente, esta es registrada en la libreta local de direcciones, después de esto se saca el
mensaje del buffer de espera y se atiende; como la dirección del agente emisor ya esta registrada
en la libreta local de direcciones el agente receptor procede a establecer un nuevo socket para
comunicarse con el agente emisor.
Esquema de Arranque:
Como se observa el primer agente que se ejecuta al inicializar un sistema multiagente en Zeus es
el agente servidor de nombres, donde posteriormente los demás agentes que se creen registraran
sus nombres incluido el agente Facilitador y el agente que permite el monitoreo de la plataforma.
Posteriormente el agente facilitador solicita las direcciones de los agentes que existan, una vez el
agente servidor de nombres le entrega los datos de las direcciones el agente facilitador solicita a
los agentes existentes en la plataforma que informen sus habilidades, de esta manera el agente
facilitador conoce todas las habilidades de los agentes existentes en una plataforma.
Por ultimo la operación de la plataforma es monitorieada por el agente visualizador debido a que
este solicita a todos los agentes existentes que le envíen copia de los mensajes que manden.
Coordinación:
Soporta tres tipos de coordinación:
o
o
o
La coordinación se realiza a través de un protocolo contract-net.
Coordinación por esquemas tradicionales de IA; en este tipo se puede manejar
coordinación centralizada e individual.
Por esquemas de negociación basados en actos de habla.
FIPA-OS
Características Básicas:
o
o
o
o
o
Desarrollado 100% en JAVA.
Puede realizar interacción con bases de datos.
Es de licencia libre.
Cumple los estándares FIPA.
Puede interactuar con Java Expert System Shell.
Arquitectura:
La siguiente figura muestra el esquema interno de una plataforma:
Como se aprecia la arquitectura básica esta compuesta por tres módulos Básicos:
o
o
o
o
Administrador de Agentes: Es te modulo permite tener un control sobre los agentes
existentes en el sistema, prácticamente es homologo al modulo de paginas blancas
utilizado en JADE.
Directorio Facilitador: Igual que en JADE los servicios que puede prestar cada agente se
buscan en un directorio de paginas amarillas, en FIPA este modulo es conocido como el
directorio facilitador.
Servicio de Transporte de mensajes: El servicio de transporte de mensajes se realiza
internamente a alto nivel a través de mensajes ACL mas a bajo nivel entre agentes en la
misma maquina se realiza mediante el uso de primitivas RMI.
Para comunicación externa entre plataformas, FIPA-OS maneja una diversa pila de
protocolos de RED como los que se pueden apreciar en la gráfica.
En la plataforma FIPA-OS no existe el concepto de contenedor de agentes, cada maquina
ayuda como contenedor de agentes.
Mas a fondo la estructura de un agente como tal se maneja como se presenta en la figura anterior,
las capas más importantes a destacar en este modelo son:
o
o
o
Administrador de Tareas: Esta capa tiene la capacidad de partir la tarea correspondiente a
un agente en unidades más pequeñas, que tienen la capacidad de intercambio de
mensajes y operan como para parte del agente.
Administrador de Conversación: Provee los mecanismos para verificar el estado de las
conversaciones, manejar la comunicación punto a punto y la comunicación de grupos y se
encarga de validar que se cumplan las reglas del protocolo de comunicación utilizado.
Servicio de Transporte de Mensajes se encarga de enviar y recibir mensajes de diferentes
protocolos como HTTP, IIOP, ACL y otros.
Diseño de los agentes según la definición de agentes:
o
o
Los agentes son autónomos mediante el esquema de objetos activos.
Son entes sociales y están en capacidad de manejar sus comunicaciones a su voluntad ( la
comunicación no es sincrónica).
Estructura del Agente:
Capa del Agente
Agente
Capa de Tareas
Capa de Conversación
Mensajería
Capa de Mensajería (MTS)
Perfiles
Conversión
Parses
Fipa-Os divide el Agente en tres grandes capas:
Agente que se compone por la capa Agente o Shell del agente y la capa de tareas. La capa de
Agente provee las instrucciones para ser utilizadas por el programador. La Capa de Tareas divide
toda la funcionalidad del agente en tareas pequeñas que desarrolla el agente. El agente debe estar
desarrollado en forma de tareas pequeñas, algunas de ellas que se puedan realizar en paralelo. En
las tareas se tiene la habilidad de enviar y recibir mensajes. Éstas por ser ejecutadas como tareas
pueden ejecutarse simultáneamente.
Mensajería se compone por la capa Conversión y la capa Mensajería. La capa conversación se
encarga de agrupar los mensajes que hagan parte de una misma conversación entre agentes. La
capa de Mensajería (MTS: Message Transport Service) provee la habilidad de envío y recepción de
mensajes. Actualmente se trabaja sobre RMI y CORBA.
La parte de Conversión esta en desarrollo. Permitirá tener una interfaz para poder compartir
información con otras bases de datos de agentes. La Capa “parses” proveerá un mecanismo de
cambio de mensajes entre distintas plataformas de agentes, donde los mensajes se expresan por
la semántica de la información y no por su implementación, haciendo transparente para el
desarrollador el intercambio de mensajes entre distintas plataformas.
Envío y Recepción de Mensajes:
Existen tres primitivas para enviar y recibir mensajes. Hay que recordar que estas primitivas se
manejan en forma de tareas, es decir en paralelo, ya que pueden ocurrir en cualquier momento y
concurrentemente.



Enviar: Public void send(Message msg)
Recibir: Public void handle Message(Message msg)
Errores: Public voId handleError(Message msg)
Un error que se puede presentar es el fallo en el envío de un mensaje.
Esquema de manejo de la comunicación
En el momento existe intercambio de mensajes con RMI
o CORBA, es decir, utilizan un broker para realizar la comunicación entre agentes. Cada
plataforma posee su broker, medio por el cual una plataforma puede comunicar sus agentes con
agentes de la otra plataforma.
En el momento no existe un mecanismo de Broadcast o Multicast para que una plataforma se
anunciePlataforma
en la red. 1Antes de iniciar Plataforma
la comunicación
es necesario que las plataformas sepan que
2
existen otras. Ya que éstas no se anuncian, es necesario registrar las plataformas que se han
iniciado. A la plataforma 1 se le indica que existe la plataforma 2 en determinada máquina. Luego
se le informa a la plataforma 2 que existe la plataforma 1 en otra máquina. Después de esto ellas
intercambian información acera de los agentes que tienen disponibles.
RMI
/
CORBA
RMI
/
CORBA
Cuando un agente desea enviar un mensaje a otro agente en otra plataforma, lo realiza con la
primitiva send, el agente no sabe y no le interesa si el agente esta un la misma plataforma o en
otra. La plataforma recibe la petición de envio de mensaje, revisa si el agente de destino esta en su
plataforma, si no lo esta revisa en las plataformas que tiene registrada, si lo encuentra envía el
mensaje a la otra plataforma y espera confirmación o error. Si no encuentra la agente devuelve un
mensaje de error al remitente.
CONCLUSIONES
Ventajas de Utilizar una plataforma para desarrollo de Sistemas Multiagentes.





La ventaja de utilizar una herramienta de agentes en el desarrollo del proyecto es que esta ya
tiene implementados y validados los mecanismos de comunicación y coordinación necesarios
para el correcto funcionamiento de un sistema multiagente.
Debido al tipo de problema que se quiere estudiar y de la manera como se piensa aplicar un
enfoque distribuido al mismo, son importante las capacidades para movilidad de agentes entre
maquinas que brindan estas herramientas.
Las herramientas de agentes que utilizan el estándar FIPA, brindan una arquitectura que
puede ser aprovechada en el desarrollo del simulador ya que brindan una servidor de nombres
y un directorio de servicios, lo cual sería útil en el desarrollo del simulador si se tiene en cuenta
que cada agente en el simulador debe conocer la ubicación de otros agentes y de sus
servicios. Supongamos que el simulador se modela de la siguiente forma existe un agente
carro entra a una calle, este necesita saber como se llama el cruce o semáforo que existe en la
calle y como consultar si esta en verde rojo, etc.
Las herramientas estudiadas, utilizan mecanismos conocidos de comunicación distribuida
como RMI o CORBA, que están alineadas con diseño distribuido que se pretende dar al
simulador.
La mayoría de las plataformas estudiadas, no poseen mecanismos de broadcast o de
multicasting, aunque se pueden implementar usando las mismas primitivas brindadas por la
herramientas, e incluso en algunas como Zeus esto se facilitaría bastante debido a que poseen
un directorio local de direcciones.
Desventajas de Utilizar una plataforma para desarrollo de Sistemas Multiagentes.

Después de analizar las arquitecturas estudiadas y los esquemas de comunicación manejados
en cada una de las herramientas podemos determinar que una de las desventajas de
implementar el simulador con una de estas herramientas, es la sobrecarga que tendrían para el
sistema los procesos de administración de mensajería en cada agente, esto podría afectar
alguna de las variables que se tratan de medir en este proyecto.