¿Qué es JADE?
Plataforma de agentes
Servicio de transporte de mensajes
Modelo de comunicación
Agentes JADE
Herramientas gráficas
¿Cómo ejecutar JADE?
Campos de aplicación
Guia Basica para bachillerato de Circuitos Basicos
La herramienta de desarrollo de agentes Jade
1. Sistemas Multiagente
5º curso: Ingeniería Informática
Pedro Cuesta Morales
Área de Linguaxes e Sistemas Informáticos
Departamento de Informática
Escola Superior de Enxeñería Informática
Universidade de Vigo
2. JADE
1. ¿Qué es JADE?
2. Plataforma de agentes
3. Servicio de transporte de mensajes
4. Modelo de comunicación
5. Agentes JADE
6. Herramientas gráficas
7. ¿Cómo ejecutar JADE?
8. Campos de aplicación
Pedro Cuesta Morales - LSI
3. 1. ¿Qué es JADE?
Java Agent DEvelopment Framework
Herramienta de desarrollo de sistemas
multiagente
Totalmente implementada en JAVA
Cumple con las especificaciones FIPA
Lenguaje de comunicación empleado
FIPA-ACL
Software libre distribuido por TILAB en
código fuente bajo LPGL
Pedro Cuesta Morales - LSI
4. 1. ¿Qué es JADE?
Objetivo: simplificar la implementación de
sistemas multiagente (MAS)
Puede considerarse un “middleware” de
agentes que implementa:
• Una plataforma de agentes (entorno ejecución)
• Un framework de desarrollo (librería de clases)
Servicios de agentes: ciclo de vida, páginas
blancas, páginas amarillas, transporte de
mensajes,...
Conjunto de herramientas gráficas que
soportan la depuración y ejecución de
agentes (RMA, sniffer, ...)
Pedro Cuesta Morales - LSI
5. 2. Plataforma de agentes
Plataforma de agentes puede ser distribuida
entre diferentes host (pueden tener diferente
SO) y la configuración puede controlarse a
través de una interfaz gráfica de usuario
remota
La configuración puede incluso cambiarse en
tiempo de ejecución moviendo agentes de
una máquina a otra cuando se necesite
JADE + librerías LEAP plataforma de
agentes compatible con entornos Java
móviles (J2ME-CLDC MIDP 1.0.)
Pedro Cuesta Morales - LSI
6. 2. Plataforma de agentes
Cada instancia del entorno de ejecución JADE se
llama contenedor, y puede albergar diferentes
agentes
El conjunto de contenedores activos forman una
plataforma
En cada plataforma debe haber siempre activo un
contenedor principal
• Debe ser el primer contenedor en ejecutarse
• El resto de contenedores se registran en él al comenzar su
ejecución
El primer contenedor que arranca en una plataforma
debe ser el contenedor principal
Pedro Cuesta Morales - LSI
8. Arquitectura distribuida de
la plataforma JADE
En el contenedor principal es donde se crean el AMS y el DF
Pedro Cuesta Morales - LSI
9. 2. Plataforma de agentes
Cumple con las especificaciones
FIPA, incluye todos los componentes
obligatorios para la gestión de la
plataforma (ACC, AMS, DF)
Pedro Cuesta Morales - LSI
10. Arquitectura interna de la
plataforma de ejecución JADE
Agent Directory
Management Facilitator
System
White page Yellow page
service service
cache of
Agent Communication Channel agent addresses
Intra-Container Inter-Containers Inter-Platforms
Message Transport Message Transport Message Transport
(Java events) (Java RMI) (IIOP, HTTP, …)
Pedro Cuesta Morales - LSI
11. 2. Plataforma de agentes
AMS – Agent Management System:
• Garantiza que cada agente en la plataforma tenga un
único nombre
• Encargado de proporcionar los servicios de páginas
blancas y ciclo de vida, y de mantener el directorio de los
identificadores de agentes (AID: Agent Identifier) y su
estado.
• Cada agente debe registrarse con el AMS para obtener un
AID válido
DF – Directory Facilitator:
• Agente que proporciona el servicio de páginas amarillas.
Un agente puede encontrar otros agentes que
proporcionan los servicios que requiere para cumplir sus
objetivos
ACC – Agent Communication Channel:
• Software que controla el intercambio de mensajes
Pedro Cuesta Morales - LSI
12. 3. Servicio de transporte de mensajes
La arquitectura de comunicación ofrece un
mecanismo de paso de mensajes flexible y eficiente
• JADE crea y gestiona una cola de mensajes de entrada
privados a cada agente
• Los agentes acceden a su cola a través de una
combinación de diferentes modos (blocking, polling,
timeout and pattern matching based)
El protocolo de transporte se adapta (es como un
camaleón) a cada situación eligiendo
transparentemente el mejor protocolo disponible:
• Usados actualmente: Java RMI, event-notification, HTTP, y
IIOP.
• Otros protocolos pueden añadirse a través de las
interfaces MTP y IMTP JADE.
Pedro Cuesta Morales - LSI
13. 4. Modelo de comunicación
Los agentes envían/reciben objetos java que
representan mensajes ACL, dentro del
alcance de los protocolos de interaccion.
JADE proporciona una librería con la mayoría
de los protocolos de interacción definidos por
FIPA
• Los usuarios sólo necesitan implementar los
manejadores de métodos
También se han implementado SL y gestión
de ontologías de agentes, así como el
soporte para lenguajes de contenido y
ontologías definidos por el usuario
Pedro Cuesta Morales - LSI
14. 5. Agentes JADE
El agente es autónomo
• Se implementa como un hilo de ejecución propio
• Decide por si mismo cuando leer los mensajes y
qué mensajes leer
Los agentes pueden necesitar concurrencia
• Pueden entablar varias conversaciones
simultaneas
• Pueden ejecutar varias tareas concurrentes
Pedro Cuesta Morales - LSI
17. 6.1. RMA (Remote Monitoring Agent)
Permite de manera remota la gestión, monitorización
y el control del estado de los agentes, permitiendo
por ejemplo:
• Iniciar la ejecución de un agente
• Parar y reiniciar agentes
• Enviar mensajes, ...
Pedro Cuesta Morales - LSI
18. 6.2. GUI DF (Directory Facilitator)
Permite al usuario interactuar con el DF:
• Ver las descripciones de
agentes registrados
• Registrar y desregistrar
agentes
• Modificar la descripción de
agentes registrados
• Buscar descripciones de
agentes
• Federar el DF con otros
DF’s y crear una red de
dominios y subdominios
de páginas amarillas
Pedro Cuesta Morales - LSI
19. 6.3. Dummy Agent
Es una herramienta
útil para inspeccionar
los mensajes
intercambiados entre
agentes.
Permite editar,
componer y enviar
mensajes ACL a
agentes
Recibir y visualizar
mensajes de otros
agentes
(almacenar/recuperar
los mensajes)
Pedro Cuesta Morales - LSI
20. 6.4. Sniffer Agent
Es un agente que muestra los mensajes intercambiados en una
plataforma de agentes JADE
El usuario decide que agentes o grupo de agentes “husmear”
Estos mensajes se pueden visualizar o almacenar para su
posterior recuperación
Pedro Cuesta Morales - LSI
21. 6.5. Introspector agent
Permite monitorizar y controlar el ciclo de vida de un
agente y sus mensajes intercambiados
Muestra las colas de entrada y salida de mensajes
Pedro Cuesta Morales - LSI
22. 7. ¿Cómo ejecutar JADE?
Los agentes Jade se ejecutan dentro de contenedores
gestionados por la plataforma.
• A través de los contenedores se les proporcionan los servicios
básicos (ciclo de vida, transporte de mensajes, ...)
Ejecutar:
java jade.Boot [options] [AgentSpecifier list]
Opciones principales:
• -container (si es distinto del principal)
• -host (nombre del host)
• -port (puerto, por defecto es el 1099)
• -name (nombre de la plataforma)
• -gui (lanza el RMA)
Pedro Cuesta Morales - LSI
23. 7. ¿Cómo ejecutar JADE?
[AgentSpecifier list] es una lista de string
separada por espacios donde cada string:
NombreAgente:ClaseAgente (Argumentos)
NombreAgente nombre del agente en la
plataforma
ClaseAgente nombre cualificado de la clase que
implementa el agente
Argumentos lista de argumentos que se pasan al
agente en su construcción
Pedro Cuesta Morales - LSI
24. Ejemplo: PingAgent
Prompt>java jade.Boot –gui
Lanza la plataforma Jade y el contenedor principal (RMA, ams, df)
Prompt>java jade.Boot –container
agenteping:examples.PingAgent.PingAgent
Lanza en la plataforma principal otro contenedor con agenteping
Pedro Cuesta Morales - LSI
25. Ejemplo: PingAgent
Funcionamiento PingAgent:
• Este agente se registra en el DF y espera
recibir mensajes ACL
• Si recibe un mensaje QUERY_REF con el
contenido quot;pingquot; responde con un mensaje
INFORM con el contenido “alivequot;
• Para cualquier otro mensaje recibido, salvo
NOT-UNDERSTOOD, responde con un
mensaje NOT-UNDERSTOOD
Pedro Cuesta Morales - LSI