JADE Java Agent DEvelopment Framework EXPOSITOR: Francisco Javier Arias Sánchez
JADEJava Agent DEvelopment Framework
EXPOSITOR:
Francisco Javier Arias Sánchez
PLAN DE TEMAS
• Introducción a JADE
• El estándar FIPA
• Características de JADE
• Arquitectura JADE y subsistema de comunicación
• Modelo de ejecución
• Comparación entre Plataformas
• Conclusiones
PLAN DE TEMAS
• Introducción a JADE
• El estándar FIPA
• Características de JADE
• Arquitectura JADE y subsistema de comunicación
• Modelo de ejecución
• Comparación entre Plataformas
• Conclusiones
INTRODUCCIÓN A JADE
Las tecnologías basadas en agentes aun están
inmaduras y pocos sistemas basados en agentes
han sido realizados.
Anteriormente se habían creado herramientas de
desarrollo que hacen mas fácil el trabajo, pero no
se acogían a ningún estándar para la
interoperabilidad.
INTRODUCCIÓN A JADE
•Concordia
•FIPA-OS
• Zeus
• Gossip
• JATLite
• Odyssey
•Aglets
• Voyager
INTRODUCCIÓN A JADE
JADE es un middleware desarrollado por Telecom
Italy Lab (TILAB), antes llamado CSELT, para el
desarrollo de aplicaciones distribuidas multi-agente
que cumplen con las especificaciones FIPA para la
interoperabilidad de sistemas multi-agente.
INTRODUCCIÓN A JADEJADE proporciona:
•Entorno de desarrollo para la creación de
aplicaciones basadas en agentes.
•Entorno de ejecución para que los agentes vivan
y se comuniquen.
• Arquitectura peer-to-peer (P2P)
• Interoperabilidad: especificaciones FIPA
• Portabilidad: realizado en JAVA
PLAN DE TEMAS
• Introducción a JADE
• El estándar FIPA
• Características de JADE
• Arquitectura JADE y subsistema de comunicación
• Modelo de ejecución
• Comparación entre Plataformas
• Conclusiones
FIPA
Permite la interoperabilidad entre plataformas de
diferentes empresas y organizaciones, FIPA
especifica la normatividad que se debe llevar a
cabo para la construcción de plataformas Multi-
Agente.
Estas especificaciones no restringen la tecnología
usada para la implementación de plataformas.
FIPA
Modelo de referencia para una plataforma de
agentes
FIPA
Agent Managment System (AMS)
•Encargado de la supervisión y control sobre el
acceso y uso de la plataforma.
• Responsable de la autenticación de los agentes
residentes y control de registros (ANS).
FIPA
Agent Communication Channel (ACC)
•Proporciona la ruta para el contacto básico entre
agentes dentro y fuera de la plataforma.
• Método por defecto de comunicación que ofrece
un servicio confiable, ordenado y exacto.
•También soporta IIOP para la interoperabilidad
entre agentes en diferentes plataformas.
FIPA
Directory Facilitator (DF)
•Proporciona el servicio de paginas amarillas.
• En el se registran los servicios que ofrecen los
agentes; y de igual forma se pueden buscar dichos
servicios.
FIPA
KQML FIPA ACL
El lenguaje de comunicación KQML, que era muy
comúnmente usado fue reemplazado por uno
nuevo, mas corto y preciso: ACL.
La principal ventaja de ACL es que al acortar su
tamaño posee una semántica bien definida,
eliminando ambigüedades.
PLAN DE TEMAS
• Introducción a JADE
• El estándar FIPA
• Características de JADE
• Arquitectura JADE y subsistema de comunicación
• Modelo de ejecución
• Comparación entre Plataformas
• Conclusiones
CARACTERÍSTICAS DE JADE
Para simplificar el desarrollo mientras se asegura
el cumplimiento del estándar FIPA, JADE ofrece
al programador las siguientes características:
CARACTERÍSTICAS DE JADE•Plataforma de agentes
CARACTERÍSTICAS DE JADE
•Plataforma de agentes distribuidas
La plataforma de agentes puede estar distribuida
en diferentes host, y solo una Virtual Machine
por host estará corriendo. Cada agente es
implementado como un Hilo de Java.
CARACTERÍSTICAS DE JADE• Varios DFs
CARACTERÍSTICAS DE JADE• Interfaz DF de JADE
CARACTERÍSTICAS DE JADE•Interfaz para el registro de servicios
CARACTERÍSTICAS DE JADE• Mecanismo de transporte
JADE proporciona un mecanismo de transporte
de mensajes utilizando Remote Method
Invocation (RMI). El programador únicamente
se preocupa por implementar la clase
ACLMessage y el mecanismo de transporte es
oculto al programador.
CARACTERÍSTICAS DE JADE• Protocolo IIOP*
JADE proporciona un protocolo para realizar la
comunicación entre diferentes plataformas. El
programador únicamente se preocupa por
implementar la clase ACLMessage y el
mecanismo de transporte es oculto al
programador.
*Internet Inter-Orb Protocol. Orb: Object Request Broker
CARACTERÍSTICAS DE JADE• Librerías de protocolos de interacción FIPA
JADE facilita un conjunto de librerías de
protocolos de interacción listas para ser usadas.
FIPA_QUERY
FIPA_RECRUITING
FIPA_REQUEST
FIPA_REQUEST_WHEN
FIPA_SUBSCRIBE
FIPA_BROKERING
FIPA_DUTCH_AUCTION
FIPA_ENGLISH_AUCTION
FIPA_PROPOSE
FIPA_CONTRACT_NET
FIPA_ITERATED_CONTRACT_NET
CARACTERÍSTICAS DE JADE
•Registro automático y servicio de nombres
Cada vez que un agente es creado, e instanciado
se realiza un registro automático de su nombre
con el AMS, que presta el servicio de servidor de
nombres. El nombre se registra usando la
siguiente sintaxis:
<nombre_agente>@<nombre_plataforma>
donde <nombre_plataforma> esta compuesto por
<nombre_equipo>:<puerto que utiliza jade>/JADE.
Por ejemplo: comercializador@Hogar:1099/JADE
CARACTERÍSTICAS DE JADE• Interfaz grafica RMA (Remote Management Agent)
y agentes de utilidad
CARACTERÍSTICAS DE JADE• Interfaz grafica RMA
Permite controlar el resto de agentes en una
plataforma. La interfaz grafica permite:
-Terminar la ejecución de un agente o de todos los de
un container, incluyendo el RMA.
-Terminar con la ejecución de la plataforma en la que se
encuentra.
-Comenzar, Detener, Continuar, Migrar o Clonar un
agente.
-Mandar un mensaje a un agente seleccionado
CARACTERÍSTICAS DE JADE• Agente Sniffer
Permite monitorizar los mensajes que un agente o un grupo de
ellos intercambian.
CARACTERÍSTICAS DE JADE• Agente Introspector
Permite monitorizar la ejecución de un agente y
los mensajes intercambiados por este, así como la
de sus comportamientos y su ejecución paso a
paso.
CARACTERÍSTICAS DE JADE• Agente Introspector
CARACTERÍSTICAS DE JADE• Agente Dummy
Permite interactuar con otros agentes.
Proporciona una interfaz grafica que nos permite
construir mensajes
ACL, mandarlos, almacenarlos y verlos en detalle.
CARACTERÍSTICAS DE JADE•Agente Dummy
PLAN DE TEMAS
• Introducción a JADE
• El estándar FIPA
• Características de JADE
• Arquitectura JADE y subsistema de comunicación
• Modelo de ejecución
• Comparación entre Plataformas
• Conclusiones
ARQUITECTURA DE JADE
Definiciones Básicas
Plataforma: entorno de ejecución en donde los
agentes “viven”. Una plataforma puede tener uno o
mas contenedores.
Contenedor: Es una Instancia del entorno de
ejecución de JADE. En esta es posible albergar un
número indeterminado de agentes. Cada contenedor
debe poseer un “Message Dispatcher”.
Contenedor principal: Es donde se alojan el AMS,
DF y ACC. Debe haber uno y solo uno por
plataforma.
ARQUITECTURA DE JADE
SUBSISTEMA DE COMUNICACIÓN
•El contenedor principal mantiene una tabla de todos
los contenedores con su referencia hacia el objeto
RMI de cada uno de estos. Además, una tabla
descriptora global de agentes es mantenida para
relacionar cada nombre del agente con sus datos
AMS y con su referencia RMI del contenedor.
•Cuando el contenedor principal se comienza a
ejecutar, crea un registro RMI interno en el host
actual escuchando usuarios por el puerto TCP/IP,
luego se ejecutan el ACC, AMS Y DF.
SUBSISTEMA DE COMUNICACIÓN
•Cuando un contenedor se comienza a
ejecutar, busca el registro RMI del contenedor
principal para registrarse, también notifica al
contenedor principal cuando un agente es creado o
terminado, para mantener la tabla descriptora global
de agentes actualizada.
•Para mejorar el desempeño, cada contenedor guarda
en cache la referencia de otro contenedor tan pronto
como un mensaje es enviado a ellos. Esto evita
buscar en la tabla de agentes cada vez que un mensaje
debe ser enviado.
SUBSISTEMA DE COMUNICACIÓN
Cuando un agente JADE envía un mensaje, puede
presentarse los siguientes casos:
1) Agentes en el mismo contenedor: No se utiliza
RMI, el método clone() es llamado para enviar un
objeto ACL Message.
2) Agentes en la misma plataforma, pero en
diferente contenedor, con cache: Se realiza una
sola llamada RMI. El objeto ACL Message es
serializado y desserializado por el RMI.
SUBSISTEMA DE COMUNICACIÓN3) Agentes en la misma plataforma, pero en
diferente contenedor, sin cache: Se realizan dos
llamadas RMI. La primera para actualizar el cache de
la tabla descriptora global de agentes y la segunda
para enviar el mensaje como en la anterior.
4) Agentes en diferentes plataformas (ambas
JADE): Se realiza una llamada directa al ACC, esto
implica una invocación CORBA, una doble
transformación desde un objeto java a un String java
y desde este a un flujo de bytes IIOP para el que
envía, y para el que recibe lo hace al contrario. Luego
para entregar el mensaje desde el ACC del agente que
recibe se puede usar 1), 2) o 3).
SUBSISTEMA DE COMUNICACIÓN
5) Agentes en diferentes plataformas (no JADE):
Se realiza el mismo procedimiento que el caso
anterior hasta la invocación IIOP. Lo que suceda en
el lado del agente que recibe depende de la
implementación de la otra plataforma.
PLAN DE TEMAS
• Introducción a JADE
• El estándar FIPA
• Características de JADE
• Arquitectura JADE y subsistema de comunicación
• Modelo de ejecución
• Comparación entre Plataformas
• Conclusiones
MODELO DE EJECUCIÓN
JADE usa la abstracción de Behavior o comportamiento
para modelar las tareas que un agente debe realizar.
JADE usa el modelo de concurrencia de hilo-por-agente
en lugar de hilo-por-comportamiento para mantener
pocos hilos en concurrencia.
Cada agente posee un programador de comportamientos
que implementa una política “round-robin non-
preemptive”.
Se utilizan dos métodos para manejar la cola de
comportamientos de agente: addBehabiour(Behaviour) y
removeBehaviour(behaviour).
MODELO DE EJECUCIÓN
MODELO DE EJECUCIÓN
PLAN DE TEMAS
• Introducción a JADE
• El estándar FIPA
• Características de JADE
• Arquitectura JADE y subsistema de comunicación
• Modelo de ejecución
• Comparación entre Plataformas
• Conclusiones
COMPARACIÓN ENTRE
PLATAFORMAS• Para comparar el desempeño de las plataformas
JADE, ZEUS y SKELETONAGENT se realizo un
sistema multi-agente que recupera noticias en la
WEB, desde ciertos portales especificados.
COMPARACIÓN ENTRE
PLATAFORMAS
COMPARACIÓN ENTRE
PLATAFORMAS
PLAN DE TEMAS
• Introducción a JADE
• El estándar FIPA
• Características de JADE
• Arquitectura JADE y subsistema de comunicación
• Modelo de ejecución
• Comparación entre Plataformas
• Conclusiones
CONCLUSIONES• La razón fundamental para el uso de JADE, es porque
es un middleware que oculta una arquitectura distribuida
donde va a residir la aplicación, permitiendo al
desarrollador centrarse solo en el aspecto lógico dejando
de lado el desarrollo de las comunicaciones entre los
diferentes hosts.
•JADE simplifica la comunicación y la cooperación entre
los agentes, que tienen de forma distribuida la lógica de
control para alcanzar el objetivo de la aplicación.
• JADE cumple con la especificación de FIPA, luego
puede comunicarse con agentes realizados en otros
entornos que sigan FIPA.
CONCLUSIONES
•Es código abierto. Multitud de personas colaboran en la
realización y mantenimiento de JADE. La evolución de
JADE es controlada por el JADE Governing Board, para
que su crecimiento no se realice de forma desordenada.
•Los agentes JADE pueden controlar su propio ciclo de
vida, y pueden ser programados para que dejen de
funcionar o empiecen a hacerlo dependiendo del estado
del sistema y de la función que debe realizar el agente.
• Los agentes JADE pueden correr en las diferentes
versiones de Java: J2EE, J2SE y J2ME.
CONCLUSIONES
•Proporciona un plug-in para implementar agentes en
dispositivos móviles. Es una versión de jade mas
ligera, teniendo en cuenta las capacidades de memoria de
este dispositivo.
•El API proporcionado por JADE es intuitivo, fácil de
aprender y sencillo de usar, haciendo que el desarrollo se
produzca de manera mas rápida que si no se utilizase.
• Permite una fácil integración con otras librerias para la
implementación de razonamientos y con PROTÉGÉ
para el desarrollo de ontologías. Además, es posible
comunicar JADE con aplicaciones realizadas en java.
REFERENCIAS BIBLIOGRAFICAS• Fabio Bellifemine, Agostini Poggi, Giovanni Rimassa. JADE – A
FIPA compliant agent framework. 1999.
• Juan Francisco Garamendi Bragado. Agentes Inteligentes: JADE.
Abril de 2004.
• Escuela de primavera de agentes. Tutorial Basico de JADE. 19 de
Febrero de 2005.
• Giovanni Caire. JADE TUTORIAL. Jade programming for
beginners. 4 de Diciembre de 2003.
• Fabio Bellifemine, Giovanni Rimessa, Tiziana Trucco, Giovanni
Caire. JADE PROGRAMMER’S GUIDE. 2 de marzo de 2005.
• David Camacho, Ricardo Aler, César Castro, Jose M. Molina.
Performance Evaluation of ZEUS, JADE and
SKELETONAGENT Frameworks. 2002.
ELEMENTOS DEL SISTEMA
Interfaz principal FIPA-OS
Interfaz para agregar un nuevo agente
Interfaz agente iotestagent
Interfaz agente swingdfgui
Interfaz Thread Pool Monitor
Interfaz Task Manager
ZEUS
ZEUS define una metodología de diseño de
sistemas Multi-agente y lo soporta mediante un
entorno visual para capturar las especificaciones de
los agentes. Estas especificaciones son luego
utilizadas para generar el código fuente en Java.
ZEUS
Análisis del dominio. Se orienta a obtener el
modelo de roles. El modelo de roles se compone
de diagramas de clases (UML) para representar
roles, diagramas UML de colaboración para indicar
qué mensajes se intercambian y fichas para describir
los roles.
ZEUS
Diseño del agente. Consiste en determinar qué
necesita cada agente para poder desempeñar su
cometido. Esto incluye revisar las tecnologías y
disciplinas relacionadas con el diseño de agentes y
desarrollar un conjunto de modelos propuestos.
ZEUS
Implementación de los agentes o realización y
soporte en tiempo de ejecución. Se trata de
utilizar la herramienta ZEUS para trasladar los
conceptos de diseño dentro de la plataforma que
ZEUS tiene ya implementada. El resultado es un
modelo ejecutable del sistema.
ZEUS
ZEUS
http://jade.tilab.com
http://www.nortelnetworks.com/p
roducts/announcements/fipa/
SMA para simular un proceso de negociación (cualquier
mercado diferente al de energía) con subastas tipo:
-Brokering
-fipa Contract-Net
-fipa Iterated-Contract-Net
-holandesa
-inglesa
-Recruiting
-yanqui
Simulación de un Carrito de compras (Agentes para tomar
pedido, Agentes para recolectar pedido, agente para cancelar
pedido ....)
Propuestas proyectos
Recuperación de información web (teniendo en cuenta el perfil
del usuario).
-Mercados de libros.
-Información de diversos temas en periódicos (recordar
ejemplo).
-....
Sistemas distribuidos para recuperar información desde diversos
servidores (demostrar la mejora en los tiempos de respuesta)
Propuestas proyectos
***Otros mas complicados
agentes y procesamiento digital de imágenes
agentes móviles
Propuestas proyectos