Sistemas Multiagente
5º curso: Ingeniería Informática

       Pedro Cuesta Morales
 Área de Linguaxes e Sistemas Informáti...
JADE
1.   ¿Qué es JADE?
2.   Plataforma de agentes
3.   Servicio de transporte de mensajes
4.   Modelo de comunicación
5. ...
1. ¿Qué es JADE?
Java Agent DEvelopment Framework
  Herramienta de desarrollo de sistemas
  multiagente
  Totalmente imple...
1. ¿Qué es JADE?
Objetivo: simplificar la implementación de
sistemas multiagente (MAS)
Puede considerarse un “middleware” ...
2. Plataforma de agentes
Plataforma de agentes puede ser distribuida
entre diferentes host (pueden tener diferente
SO) y l...
2. Plataforma de agentes
Cada instancia del entorno de ejecución JADE se
llama contenedor, y puede albergar diferentes
age...
Ejemplo de contenedores y plataformas




           Pedro Cuesta Morales - LSI
Arquitectura distribuida de
              la plataforma JADE




En el contenedor principal es donde se crean el AMS y el ...
2. Plataforma de agentes
      Cumple con las especificaciones
      FIPA, incluye todos los componentes
      obligatorio...
Arquitectura interna de la
        plataforma de ejecución JADE


    Agent              Directory
  Management           ...
2. Plataforma de agentes
AMS – Agent Management System:
  • Garantiza que cada agente en la plataforma tenga un
    único ...
3. Servicio de transporte de mensajes
La arquitectura de comunicación ofrece un
mecanismo de paso de mensajes flexible y e...
4. Modelo de comunicación
Los agentes envían/reciben objetos java que
representan mensajes ACL, dentro del
alcance de los ...
5. Agentes JADE
El agente es autónomo
 • Se implementa como un hilo de ejecución propio
 • Decide por si mismo cuando leer...
Arquitectura interna de un agente JADE




             Pedro Cuesta Morales - LSI
6. Herramientas gráficas

                                   RMA
                                   GUI DF
               ...
6.1. RMA (Remote Monitoring Agent)
Permite de manera remota la gestión, monitorización
y el control del estado de los agen...
6.2. GUI DF (Directory Facilitator)
  Permite al usuario interactuar con el DF:
                                   • Ver l...
6.3. Dummy Agent
                                Es una herramienta
                                útil para inspeccionar...
6.4. Sniffer Agent
Es un agente que muestra los mensajes intercambiados en una
plataforma de agentes JADE
El usuario decid...
6.5. Introspector agent
Permite monitorizar y controlar el ciclo de vida de un
agente y sus mensajes intercambiados
Muestr...
7. ¿Cómo ejecutar JADE?
Los agentes Jade se ejecutan dentro de contenedores
gestionados por la plataforma.
  • A través de...
7. ¿Cómo ejecutar JADE?
[AgentSpecifier list] es una lista de string
separada por espacios donde cada string:

  NombreAge...
Ejemplo: PingAgent
Prompt>java jade.Boot –gui
  Lanza la plataforma Jade y el contenedor principal (RMA, ams, df)
Prompt>j...
Ejemplo: PingAgent
Funcionamiento PingAgent:
 • Este agente se registra en el DF y espera
   recibir mensajes ACL
 • Si re...
Ejemplo: PingAgent




   Pedro Cuesta Morales - LSI
Upcoming SlideShare
Loading in …5
×

La herramienta de desarrollo de agentes Jade

11,655 views

Published on

¿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

Published in: Technology
1 Comment
9 Likes
Statistics
Notes
No Downloads
Views
Total views
11,655
On SlideShare
0
From Embeds
0
Number of Embeds
2,081
Actions
Shares
0
Downloads
0
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

La herramienta de desarrollo de agentes Jade

  1. 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. 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. 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. 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. 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. 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
  7. 7. Ejemplo de contenedores y plataformas Pedro Cuesta Morales - LSI
  8. 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. 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. 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. 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. 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. 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. 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
  15. 15. Arquitectura interna de un agente JADE Pedro Cuesta Morales - LSI
  16. 16. 6. Herramientas gráficas RMA GUI DF Dummy agent Sniffer agent Introspector agent Pedro Cuesta Morales - LSI
  17. 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. 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. 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. 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. 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. 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. 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. 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. 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
  26. 26. Ejemplo: PingAgent Pedro Cuesta Morales - LSI

×