JADE Java Agent DEvelopment Framework

Download Report

Transcript JADE Java Agent DEvelopment Framework

JADE
Java Agent Development Framework
EXPOSITOR:
Melvin Fallas Cascante
A62098
Agenda
•
•
•
•
•
•
•
•
Introducción
Historia
El estándar FIPA
Características
Conceptos Básicos
Arquitectura
Ejemplos
Conclusiones
Introducción
Introducción
Las tecnologías basadas en agentes:
• Inmaduras
• Pocos sistemas
Las herramientas existentes no se acogían a ningún
estándar.
Historia
Historia
• Middleware
• Desarrollado por Telecom Italy Lab (TILAB)
• Desarrollo de sistemas distribuidos multi-agente
• Cumplen con las especificaciones FIPA
Estándar
FIPA
Está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 MultiAgente.
• Estas especificaciones no restringen la
tecnología usada para la implementación de
plataformas.
Está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).
Está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.
Está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.
Características
de JADE
Caracterí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.
Caracterí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
Características
• Arquitectura peer to peer (P2P)
• Interoperabilidad:
• Especificaciones FIPA
• Portabilidad:
• Realizado en JAVA
Conceptos
Básicos
Conceptos Básicos
•
•
•
•
Agentes
Comportamientos
Comunicación
Ontologías
Conceptos 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
Agentes (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)
El 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
El método takeDown
• Sirve para liberar
eliminación del agente
recursos
antes
de
la
• Es invocado cuando se realiza una llamada al
método doDelete(), que es el que realmente da
por finalizada la ejecución del agente
Agentes (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
La 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
La 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
Ciclo de Vida de un Agente
Estados de un Agente
• Iniciado
• Activo
• Suspendido
• En espera
• Desconocido
• Tránsito
Estado 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
Estado Activo
• El Agente está registrado en el AMS
• Tiene un nombre, una dirección y puede acceder
a todas las opciones de JADE
Estado Suspendido
• El Agente está interrumpido
• Su hilo de ejecución está detenido y no ejecuta
ningún Comportamiento
Estado 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)
Estado de Desconocido
• El Agente ha sido eliminado
• El hilo de ejecución ha terminado y se ha
eliminado del registro del AMS
Estado 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
Transiciones de Estado
Transiciones de Estado
Código Mínimo de un Agente
Conceptos 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
Comportamientos (Behaviours)
• Son útiles para atender peticiones de forma
ordenada
• Por ejemplo recibiendo mensajes de un solo
emisor
• Deben heredar de la clase Behaviour
Métodos de un Comportamiento
• Existen dos principales:
•
•
Action
Done
El 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
El 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
El 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.
El 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
Tipos 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
El 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
Código del comportamiento
CyclicBehaviour
Algunas Precauciones !
• Un loop infinito en el setup antes de un
comportamiento impedirá que este último se
ejecute.
Esquema Conceptual
Flujo de Control de un Agente
Conceptos 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
Conceptos 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
ACL
•Lenguaje de Comunicación de Agentes
• Permite transmitir una serie de conocimiento
que vendrá expresado en un lenguaje de
contenido
ACL
• 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.
Intercambio 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
Intercambio 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
Intercambio 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
Mecanismo de paso de Mensajes
Conceptos 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.
Conceptos 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
Conceptos 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.
Elementos de una Ontología
• Predicados:
• Expresiones sobre el estado de mundo
• Acciones de los agentes:
• Expresiones que indican acciones que pueden
realizar los agentes.
Elementos 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
El Modelo de Contenido
Ejemplo de Ontología
Arquitectura
Arquitectura
Plataforma: entorno de ejecución en donde viven
los agentes. Una plataforma puede tener uno o mas
contenedores.
Arquitectura
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.
Arquitectura
Contenedor principal: Es donde se alojan el AMS,
DF y ACC. Debe haber uno y solo uno por
plataforma.
Agentes Auxiliares
•
•
•
•
RMA
Dummy Agent
Sniffer Agent
DF y AMS
Agentes Auxiliares: RMA
Agentes Auxiliares:
Agente Dummy
Agentes Auxiliares:
Agente Sniffer
Agentes Auxiliares: DF
Ejemplos
Conclusiones
Referencias
REFERENCIAS 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/
REFERENCIAS BIBLIOGRAFICAS
• http://es.scribd.com/doc/44652685/Programacion-Jade
• Escuela de primavera de agentes. Tutorial Basico de JADE, 2005.
•http://proyectojadeud.blogspot.com/2007/12/02-arquitecturajade.html
•http://www.slideshare.net/pcuestaesei/la-herramienta-dedesarrollo-de-agentes-jade-293816