Transcript

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

top related