La herramienta de desarrollo de agentes JADE

50 %
50 %
Information about La herramienta de desarrollo de agentes JADE

Published on February 29, 2008

Author: pcuestaesei

Source: slideshare.net

Description

¿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

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

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

¿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

1. ¿Qué es JADE? J ava A gent DE velopment 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

J ava A gent DE velopment 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

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, ...)

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, ...)

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.)

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.)

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

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

Ejemplo de contenedores y plataformas

Arquitectura distribuida de la plataforma JADE En el contenedor principal es donde se crean el AMS y el DF

2. Plataforma de agentes Cumple con las especificaciones FIPA, incluye todos los componentes obligatorios para la gestión de la plataforma (ACC, AMS, DF)

Cumple con las especificaciones FIPA, incluye todos los componentes obligatorios para la gestión de la plataforma (ACC, AMS, DF)

Arquitectura interna de la plataforma de ejecución JADE Intra-Container Message Transport (Java events) White page service Agent Management System Yellow page service Directory Facilitator Agent Communication Channel Inter-Containers Message Transport (Java RMI) Inter-Platforms Message Transport (IIOP, HTTP, …) cache of agent addresses

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

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

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.

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.

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

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

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

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

Arquitectura interna de un agente JADE

6. Herramientas gráficas RMA GUI DF Dummy agent Sniffer agent Introspector agent

RMA

GUI DF

Dummy agent

Sniffer agent

Introspector agent

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, ...

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, ...

6.2. GUI DF (Directory Facilitator) 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 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

Permite al usuario interactuar con el DF:

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)

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)

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

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

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

Permite monitorizar y controlar el ciclo de vida de un agente y sus mensajes intercambiados

Muestra las colas de entrada y salida de mensajes

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)

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)

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

[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

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

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

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 "ping" responde con un mensaje INFORM con el contenido “alive" Para cualquier otro mensaje recibido, salvo NOT-UNDERSTOOD, responde con un mensaje NOT-UNDERSTOOD

Funcionamiento PingAgent:

Este agente se registra en el DF y espera recibir mensajes ACL

Si recibe un mensaje QUERY_REF con el contenido "ping" responde con un mensaje INFORM con el contenido “alive"

Para cualquier otro mensaje recibido, salvo NOT-UNDERSTOOD, responde con un mensaje NOT-UNDERSTOOD

Ejemplo: PingAgent

Add a comment

Related pages

SIN JADE 2006

•Descripción de la Herramienta de Desarrollo •Arquitectura Interna ... •Implementación de Agentes JADE •Comunicación •Control de flujo
Read more

Introducción a JADE

JADE es una herramienta de desarrollo de SMA. ... Gestor de la plataforma ... El ciclo de vida de un agente JADE sigue el ciclo de
Read more

JADE Java Agent DEvelopment Framework - Sistemas ...

... pcuestaesei/la-herramienta-de-desarrollo-de-agentes-jade-293816 ... por agentes son instancias de la clase jade.lang ... de desarrollo para la ...
Read more

Java Agent Development Framework - Wikipedia, la ...

Java Agent DEvelopment Framework, o JADE, es una plataforma software para el desarrollo de agentes, implementada en Java. La plataforma JADE soporta la ...
Read more

HERRAMIENTA PARA LA ESPECIFICACIÓN DEL ESPACIO DE ...

revisión del estado del arte de la tecnología de agentes y plataformas de agentes (JADE, ... [04] Germán E. Desarrollo de una herramienta para la
Read more

bYTEBoss Presentacion JADE A62098

Arquitectura Arquitectura Plataforma: entorno de ejecuci n en donde viven los agentes. ... Presentacion Jade A62098. Open document ...
Read more

Es una herramienta de libre distribución que facilita ...

Es una herramienta de ... Es flexible en la elección de la arquitectura del agente y su desarrollo es ... El desarrollo de un agente inteligente en JADE ...
Read more

Biblioteca JADE. Entorno FIPA. Inteligencia Artificial ...

... Se muestra el uso de JADE (Entorno de Desarrollo para agentes ... Estudiar la implementación de Agentes ... utilizando la herramienta JADE ...
Read more

Agente hostagent j2me con jade - Ensayos - Naii

Para realizar la ejecución de este agente se usa la herramienta de desarrollo JADE, ... por Ag La Plataforma de Agentes JADE Java Agents ...
Read more