presentacion jade

69
JADE Java Agent DEvelopment Framework EXPOSITOR: Francisco Javier Arias Sánchez

Upload: magdiel-espinoza

Post on 07-Jul-2015

945 views

Category:

Education


2 download

DESCRIPTION

Presentacion_JADE

TRANSCRIPT

Page 1: Presentacion jade

JADEJava Agent DEvelopment Framework

EXPOSITOR:

Francisco Javier Arias Sánchez

Page 2: Presentacion jade

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

Page 3: Presentacion jade

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

Page 4: Presentacion jade

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.

Page 5: Presentacion jade

INTRODUCCIÓN A JADE

•Concordia

•FIPA-OS

• Zeus

• Gossip

• JATLite

• Odyssey

•Aglets

• Voyager

Page 6: Presentacion jade

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.

Page 7: Presentacion jade

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

Page 8: Presentacion jade

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

Page 9: Presentacion jade

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.

Page 10: Presentacion jade

FIPA

Modelo de referencia para una plataforma de

agentes

Page 11: Presentacion jade

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

Page 12: Presentacion jade

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.

Page 13: Presentacion jade

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.

Page 14: Presentacion jade

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.

Page 15: Presentacion jade

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

Page 16: Presentacion jade

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:

Page 17: Presentacion jade

CARACTERÍSTICAS DE JADE•Plataforma de agentes

Page 18: Presentacion jade

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.

Page 19: Presentacion jade

CARACTERÍSTICAS DE JADE• Varios DFs

Page 20: Presentacion jade

CARACTERÍSTICAS DE JADE• Interfaz DF de JADE

Page 21: Presentacion jade

CARACTERÍSTICAS DE JADE•Interfaz para el registro de servicios

Page 22: Presentacion jade

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.

Page 23: Presentacion jade

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

Page 24: Presentacion jade

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

Page 25: Presentacion jade

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

Page 26: Presentacion jade

CARACTERÍSTICAS DE JADE• Interfaz grafica RMA (Remote Management Agent)

y agentes de utilidad

Page 27: Presentacion jade

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

Page 28: Presentacion jade

CARACTERÍSTICAS DE JADE• Agente Sniffer

Permite monitorizar los mensajes que un agente o un grupo de

ellos intercambian.

Page 29: Presentacion jade

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.

Page 30: Presentacion jade

CARACTERÍSTICAS DE JADE• Agente Introspector

Page 31: Presentacion jade

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.

Page 32: Presentacion jade

CARACTERÍSTICAS DE JADE•Agente Dummy

Page 33: Presentacion jade

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

Page 34: Presentacion jade

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.

Page 35: Presentacion jade

ARQUITECTURA DE JADE

Page 36: Presentacion 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.

Page 37: Presentacion jade

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.

Page 38: Presentacion jade

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.

Page 39: Presentacion jade

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

Page 40: Presentacion jade

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.

Page 41: Presentacion jade

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

Page 42: Presentacion jade

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

Page 43: Presentacion jade

MODELO DE EJECUCIÓN

Page 44: Presentacion jade

MODELO DE EJECUCIÓN

Page 45: Presentacion jade

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

Page 46: Presentacion jade

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.

Page 47: Presentacion jade

COMPARACIÓN ENTRE

PLATAFORMAS

Page 48: Presentacion jade

COMPARACIÓN ENTRE

PLATAFORMAS

Page 49: Presentacion jade

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

Page 50: Presentacion jade

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.

Page 51: Presentacion jade

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.

Page 52: Presentacion jade

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.

Page 53: Presentacion jade

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.

Page 54: Presentacion jade

ELEMENTOS DEL SISTEMA

Interfaz principal FIPA-OS

Page 55: Presentacion jade

Interfaz para agregar un nuevo agente

Page 56: Presentacion jade

Interfaz agente iotestagent

Page 57: Presentacion jade

Interfaz agente swingdfgui

Page 58: Presentacion jade

Interfaz Thread Pool Monitor

Page 59: Presentacion jade

Interfaz Task Manager

Page 60: Presentacion jade

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.

Page 61: Presentacion jade

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.

Page 62: Presentacion jade

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.

Page 63: Presentacion jade

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.

Page 64: Presentacion jade

ZEUS

Page 65: Presentacion jade

ZEUS

Page 66: Presentacion jade

http://jade.tilab.com

http://www.nortelnetworks.com/p

roducts/announcements/fipa/

Page 67: Presentacion jade

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

Page 68: Presentacion jade

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

Page 69: Presentacion jade

***Otros mas complicados

agentes y procesamiento digital de imágenes

agentes móviles

Propuestas proyectos