JADEJADEJava Agent Development Java Agent Development
FrameworkFramework
EXPOSITOR:
Melvin Fallas CascanteA62098
AgendaAgenda• IntroducciónIntroducción• HistoriaHistoria• El estándar FIPAEl estándar FIPA• CaracterísticasCaracterísticas• Conceptos BásicosConceptos Básicos• ArquitecturaArquitectura• EjemplosEjemplos• ConclusionesConclusiones
IntroducciIntroducciónón
IntroducciónIntroducción
Las tecnologías basadas en agentes:• Inmaduras• Pocos sistemas
Las herramientas existentes no se acogían a ningún estándar.
HistoriaHistoria
HistoriaHistoria
• Middleware
• Desarrollado por Telecom Italy Lab (TILAB)
• Desarrollo de sistemas distribuidos multi-agente
• Cumplen con las especificaciones FIPA
Estándar Estándar FIPAFIPA
Estándar FIPAEstándar FIPA• Permite la interoperabilidad entre Permite la interoperabilidad entre plataformas de diferentes empresas y plataformas de diferentes empresas y organizaciones.organizaciones.
• Especifica la normatividad que se Especifica la normatividad que se debe llevar a cabo para la debe llevar a cabo para la construcción de plataformas Multi-construcción de plataformas Multi-Agente.Agente.
• Estas especificaciones no restringen Estas especificaciones no restringen la tecnología usada para la la tecnología usada para la implementación de plataformas.implementación de plataformas.
Estándar FIPAEstándar FIPA
Agent Managment System (AMS)Agent Managment System (AMS)
• Supervisión y control sobre el Supervisión y control sobre el acceso y uso de la plataforma.acceso y uso de la plataforma.
• Responsable de la autenticación de Responsable de la autenticación de los agentes residentes y control de los agentes residentes y control de registros (ANS).registros (ANS).
Estándar FIPAEstándar FIPA
Agent Communication Channel Agent Communication Channel (ACC)(ACC)
• Proporciona la ruta para el contacto Proporciona la ruta para el contacto básico entre agentes dentro y fuera básico entre agentes dentro y fuera de la plataforma.de la plataforma.
• Método por defecto de Método por defecto de comunicación que ofrece un servicio comunicación que ofrece un servicio confiable, ordenado y exacto.confiable, ordenado y exacto.
Estándar FIPAEstándar FIPA
Directory Facilitator (DF)Directory Facilitator (DF)
• Proporciona el servicio de paginas Proporciona el servicio de paginas amarillas.amarillas.
• En el se registran los servicios que En el se registran los servicios que ofrecen los agentes; y de igual forma ofrecen los agentes; y de igual forma se pueden buscar dichos servicios.se pueden buscar dichos servicios.
CaracterístCaracterísticasicas
de JADEde JADE
CaracterísticasCaracterí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ísticasCaracterí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ísticasCaracterísticas
• Arquitectura peer to peer (P2P)
• Interoperabilidad: • Especificaciones FIPA
• Portabilidad: • Realizado en JAVA
Conceptos Conceptos BásicosBásicos
Conceptos BásicosConceptos Básicos
• AgentesAgentes• ComportamientosComportamientos• ComunicaciónComunicación• OntologíasOntologías
Conceptos BásicosConceptos Básicos
AgentesAgentes
• 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)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 SetupEl 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 takeDownEl 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)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 AgentLa 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 AgentLa 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 Ciclo de Vida de un AgenteAgente
Estados de un AgenteEstados de un Agente• Iniciado• Activo• Suspendido• En espera• Desconocido• Tránsito
Estado de InicioEstado 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 ActivoEstado Activo
• El Agente está registrado en el AMS
• Tiene un nombre, una dirección y puede acceder a todas las opciones de JADE
Estado SuspendidoEstado Suspendido
• El Agente está interrumpido
• Su hilo de ejecución está detenido y no ejecuta ningún Comportamiento
Estado en EsperaEstado 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 DesconocidoEstado 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ánsitoEstado 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 EstadoTransiciones de Estado
Transiciones de EstadoTransiciones de Estado
Código Mínimo de un Código Mínimo de un AgenteAgente
Conceptos BásicosConceptos Básicos
Comportamientos 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 Comportamientos (Behaviours)(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 Métodos de un ComportamientoComportamiento
• Existen dos principales:
• Action• Done
El método ActionEl 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 ActionEl 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 DoneEl 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 DoneEl 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 Tipos de ComportamientosComportamientos
• 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 El comportamiento CyclicBehaviourCyclicBehaviour
• 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 Código del comportamiento comportamiento CyclicBehaviourCyclicBehaviour
Algunas Precauciones !Algunas Precauciones !
• Un loop infinito en el setup antes de un comportamiento impedirá que este último se ejecute.
Esquema ConceptualEsquema Conceptual
Flujo de Control de un Flujo de Control de un AgenteAgente
Conceptos BásicosConceptos Básicos
ComunicaciónComunicació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ásicosConceptos Básicos
ComunicaciónComunicació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
ACLACL
•Lenguaje de Comunicación de Agentes
• Permite transmitir una serie de conocimiento que vendrá expresado en un lenguaje de contenido
ACLACL
• 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 MensajesIntercambio 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 MensajesIntercambio 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 MensajesIntercambio 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 Mecanismo de paso de MensajesMensajes
Conceptos BásicosConceptos Básicos
OntologíasOntologí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ásicosConceptos Básicos
OntologíasOntologí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ásicosConceptos Básicos
OntologíasOntologí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 Elementos de una OntologíaOntología
• Predicados: • Expresiones sobre el estado de mundo
• Acciones de los agentes:• Expresiones que indican acciones que pueden realizar los agentes.
Elementos de una Elementos de una OntologíaOntologí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 ContenidoEl Modelo de Contenido
Ejemplo de OntologíaEjemplo de Ontología
ArquitectuArquitecturara
ArquitecturaArquitectura
Plataforma: entorno de ejecución en donde viven los agentes. Una plataforma puede tener uno o mas contenedores.
ArquitecturaArquitectura
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.
ArquitecturaArquitectura
Contenedor principal: Es donde se alojan el AMS, DF y ACC. Debe haber uno y solo uno por plataforma.
Agentes AuxiliaresAgentes Auxiliares
• RMARMA• Dummy AgentDummy Agent• Sniffer AgentSniffer Agent• DF y AMSDF y AMS
Agentes Auxiliares: RMAAgentes Auxiliares: RMA
Agentes Auxiliares: Agentes Auxiliares: Agente DummyAgente Dummy
Agentes Auxiliares: Agentes Auxiliares: Agente SnifferAgente Sniffer
Agentes Auxiliares: DFAgentes Auxiliares: DF
EjemplosEjemplos
ConclusionConclusioneses
ReferenciaReferenciass
REFERENCIAS REFERENCIAS BIBLIOGRAFICASBIBLIOGRAFICAS
• 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 REFERENCIAS BIBLIOGRAFICASBIBLIOGRAFICAS
• 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-arquitectura-jade.html
•http://www.slideshare.net/pcuestaesei/la-herramienta-de-desarrollo-de-agentes-jade-293816