790 likes | 1.01k Views
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
E N D
JADEJava 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 • Las tecnologías basadas en agentes: • Inmaduras • Pocos sistemas • Las herramientas existentes no se acogían a ningún estándar.
Historia • Middleware • Desarrollado por Telecom Italy Lab (TILAB) • Desarrollo de sistemas distribuidos multi-agente • Cumplen con las especificaciones 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 Multi-Agente. • 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 • 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 • 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 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
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
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. • 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()).
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
Algunas Precauciones ! • Un loop infinito en el setup antes de un comportamiento impedirá que este último se ejecute.
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