Title: JADE Java Agent Development Framework
1JADEJava Agent Development Framework
EXPOSITOR Melvin Fallas Cascante A62098
2Agenda
- Introducción
- Historia
- El estándar FIPA
- Características
- Conceptos Básicos
- Arquitectura
- Ejemplos
- Conclusiones
3Introducción
4Introducción
- Las tecnologías basadas en agentes
- Inmaduras
- Pocos sistemas
- Las herramientas existentes no se acogían a
ningún estándar.
5Historia
6Historia
- Middleware
- Desarrollado por Telecom Italy Lab (TILAB)
- Desarrollo de sistemas distribuidos multi-agente
- Cumplen con las especificaciones FIPA
7Estándar FIPA
8Estándar FIPA
- Permite la interoperabilidad entre plataformas
de diferentes empresas y organizaciones. - 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.
9Estándar FIPA
- Agent Managment System (AMS)
- 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).
10Estándar 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.
11Estándar 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.
12Característicasde JADE
13Características
- Entorno de desarrollo para la creación de
aplicaciones basadas en agentes. - Entorno de ejecución para que los agentes vivan
y se comuniquen.
14Características
- Plataforma distribuida
- Herramientas de debugging
- Movilidad de agentes inter-plataforma
- Soporta ejecución paralela de múltiples agentes
- Transporte de mensajes ACL dentro de la
plataforma - Servicio de nombres
- Interface para aplicaciones externas
15Características
- Arquitectura peer to peer (P2P)
- Interoperabilidad
- Especificaciones FIPA
- Portabilidad
- Realizado en JAVA
16Conceptos Básicos
17Conceptos Básicos
- Agentes
- Comportamientos
- Comunicación
- Ontologías
18Conceptos Básicos
- Agentes
- Un agente es un programa autónomo que constituye
las plataformas de agentes y que tienen
características propias - Entre ellas identidad, prestación de servicios y
una dirección que le permite recibir mensajes de
parte de otros agentes
19Agentes (Características)
- Tienen un nombre único en el entorno de
ejecución - Se implementan como un único hilo a ejecutar
(single-threaded) - Tienen un método de inicio (setup)
- Tienen un método de fin (takeDown)
20El método Setup
- Sirve para inicializar el agente incluyendo
instrucciones que especificarán la ontología a
utilizar y los comportamientos asociados al
agente - Se invoca al comenzar la ejecución del agente
21El método takeDown
- Sirve para liberar recursos antes de la
eliminación del agente - Es invocado cuando se realiza una llamada al
método doDelete(), que es el que realmente da por
finalizada la ejecución del agente
22Agentes (Características)
- Un agente define en su implementación una clase
interna por cada uno de los comportamientos
asociados al agente - Estos comportamientos se utilizan básicamente
para el envío y recepción de mensajes, aunque
también se pueden utilizar para realizar otras
tareas
23La Clase Agent
- Es una superclase común que permite a los
usuarios crear software de agentes - Los programadores de aplicaciones basadas en
agentes deben escribir sus propios agentes como
subclases de Agent - Se debe añadir tantos comportamientos
específicos como sean necesarios y explotando las
capacidades de la clase Agent
24La Clase Agent
- Suministra métodos que permiten ejecutar las
tareas básicas de los agentes - Mensajes con objetos ACLMessage
- Soporte para el ciclo de vida de un agente
- Planificación y ejecución de múltiples
actividades concurrentes
25Ciclo de Vida de un Agente
- Estados de un Agente
- Iniciado
- Activo
- Suspendido
- En espera
- Desconocido
- Tránsito
26Estado de Inicio
- El objeto Agente está creado pero todavía no se
ha registrado en el AMS - No tiene nombre ni dirección y tampoco se puede
comunicar con otros agentes
27Estado Activo
- El Agente está registrado en el AMS
- Tiene un nombre, una dirección y puede acceder a
todas las opciones de JADE
28Estado Suspendido
- El Agente está interrumpido
- Su hilo de ejecución está detenido y no ejecuta
ningún Comportamiento
29Estado en Espera
- El Agente está bloqueado esperando por algo
- Su hilo de ejecución está dormido en un monitor
de java y se despertará cuando se cumpla una
cierta condición - (Cuando reciba un mensaje)
30Estado de Desconocido
- El Agente ha sido eliminado
- El hilo de ejecución ha terminado y se ha
eliminado del registro del AMS
31Estado en Tránsito
- Un Agente móvil entra en este estado mientras
está migrando a una nueva localización. - El sistema sigue guardando los mensajes en el
buffer hasta que el agente vuelve a estar activo
32Transiciones de Estado
33Transiciones de Estado
34Código Mínimo de un Agente
35Conceptos Básicos
- Comportamientos (Behaviours)
- Son métodos que permiten realizar acciones en
hilos de ejecución - Funcionalidad que incorpora el agente
- Dan soporte al agente para realizar varias
tareas y establecer los tiempos de ejecución de
cada una
36Comportamientos (Behaviours)
- Son útiles para atender peticiones de forma
ordenada - Por ejemplo recibiendo mensajes de un solo
emisor - Deben heredar de la clase Behaviour
37Métodos de un Comportamiento
- Existen dos principales
- Action
- Done
38El método Action
- Define la acción a ser realizada cuando se
ejecute el comportamiento - Es invocado cuando se produce el evento asociado
al comportamiento
39El método Action
- Es recomendable que los métodos action() no
tengan un tiempo de ejecución alto ya que
mientras que se ejecutan no pueden ser
interrumpidos por otro comportamiento
40El método Done
- Es invocado cuando finaliza la ejecución del
método action() - Determina si el comportamiento ha sido
completado o no - Devuelve un booleano (true si ha terminado o
false en caso contrario) - Si el comportamiento ha finalizado, éste se
elimina de la cola de comportamientos activos. - Se puede utilizar una marca que se activa cuando
se quiere que finalice el comportamiento (se
evalúa su valor en el método done()).
41El método Done
- Devuelve un booleano
- true si ha terminado
- false en caso contrario
- Si el comportamiento ha finalizado, éste se
elimina de la cola de comportamientos activos - Se puede utilizar una marca que se activa cuando
se quiere que finalice el comportamiento
42Tipos de Comportamientos
- Simples
- Cíclicos
- De recepción y envío de mensajes
- Los que ejecutan tareas al despertar de un
bloqueo o en segmentos de tiempo
43El comportamiento CyclicBehaviour
- Es el más fácil de usar
- Ejecuta una tarea de forma cíclica, deteniéndola
algunos segundos si así se le indica
44Código del comportamiento CyclicBehaviour
45Algunas Precauciones !
- Un loop infinito en el setup antes de un
comportamiento impedirá que este último se
ejecute.
46Esquema Conceptual
47Flujo de Control de un Agente
48Conceptos Básicos
- Comunicación
- Fundamental para poder conseguir la potencia
propia de los sistemas multiagente - Para que los agentes se puedan comunicar deben
usar el mismo lenguaje de comunicación
49Conceptos Básicos
- Comunicación
- Un lenguaje de comunicación define los tipos de
mensaje - Las conversaciones entre agentes se rigen por una
serie de protocolos de interacción
50ACL
- Lenguaje de Comunicación de Agentes
- Permite transmitir una serie de conocimiento que
vendrá expresado en un lenguaje de contenido
51ACL
- Los términos del lenguaje de contenido que
representen conocimiento pertenecen a un
vocabulario común a los distintos agentes que se
llama ontología.
52Intercambio de Mensajes
- Se realiza mediante mensajes FIPA-ACL
- Mecanismo
- Paso asíncrono de mensajes
- Cada agente tiene una cola de mensajes entrantes
- La lectura efectiva de los mensajes es a
voluntad del agente
53Intercambio de Mensajes
- Un agente puede
- Leer el primer mensaje en la cola
- Leer el primer mensaje que satisfaga un
requisito - La cola de mensajes es única para cada agente y,
por lo tanto, es compartida por todos los
comportamientos
54Intercambio de Mensajes
- Cada vez que se coloca un mensaje en la cola el
agente receptor es avisado - Un comportamiento puede ser bloqueado en espera
de la recepción de un mensaje - Sincronización
- Los mensajes intercambiados por agentes son
instancias de la clase jade.lang.acl.ACLMessage
55Mecanismo de paso de Mensajes
56Conceptos Básicos
- Ontologías
- Conjuntos de elementos que definen la estructura
de los predicados, las acciones de los agentes y
conceptos relevantes al dominio del problema.
57Conceptos Básicos
- Ontologías
- Una ontología es una instancia de la clase
jade.content.onto.Ontology en la cual se definen
los Schemas - Especifican la semántica de las relaciones
58Conceptos Básicos
- Ontologías
- Conjuntos de elementos que definen la estructura
de los predicados, las acciones de los agentes y
conceptos relevantes al dominio del problema.
59Elementos de una Ontología
- Predicados
- Expresiones sobre el estado de mundo
- Acciones de los agentes
- Expresiones que indican acciones que pueden
realizar los agentes.
60Elementos de una Ontología
- Conceptos
- Expresiones que representan objetos, representan
una estructura con varios atributos. - No aparecen aislados en los mensajes sino
incluidos en otros elementos. - Otros elementos primitivas, agregaciones,
expresiones, variables, entre otros
61El Modelo de Contenido
62Ejemplo de Ontología
63Arquitectura
64Arquitectura
Plataforma entorno de ejecución en donde
viven los agentes. Una plataforma puede tener uno
o mas contenedores.
65Arquitectura
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.
66Arquitectura
Contenedor principal Es donde se alojan el
AMS, DF y ACC. Debe haber uno y solo uno por
plataforma.
67Agentes Auxiliares
- RMA
- Dummy Agent
- Sniffer Agent
- DF y AMS
68Agentes Auxiliares RMA
69Agentes Auxiliares Agente Dummy
70Agentes Auxiliares Agente Sniffer
71Agentes Auxiliares DF
72Ejemplos
73Conclusiones
74Referencias
75REFERENCIAS BIBLIOGRAFICAS
- Giovanni Caire. JADE TUTORIAL. Jade
programming for beginners., 2003. - http//programacionjade.wikispaces.com/
- Juan Francisco Garamendi Bragado. Agentes
Inteligentes JADE. 2004. - http//jade.tilab.com/
76REFERENCIAS BIBLIOGRAFICAS
- http//es.scribd.com/doc/44652685/Programacion-Ja
de - Escuela de primavera de agentes. Tutorial Basico
de JADE, 2005. - http//proyectojadeud.blogspot.com/2007/12/02-arqu
itectura-jade.html - http//www.slideshare.net/pcuestaesei/la-herramien
ta-de-desarrollo-de-agentes-jade-293816
77GRACIAS POR SU ATENCIÓN!