Your SlideShare is downloading. ×
  • Like
  • Save
La herramienta de desarrollo de agentes Jade
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

La herramienta de desarrollo de agentes Jade

  • 10,540 views
Published

¿Qué es JADE? …

¿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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • bien
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
10,540
On SlideShare
0
From Embeds
0
Number of Embeds
10

Actions

Shares
Downloads
0
Comments
1
Likes
9

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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