JADE Java Agent Development Framework EXPOSITOR: Melvin Fallas CascanteA62098.

Slides:



Advertisements
Presentaciones similares
U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
Advertisements

METODOLOGÍA ORIENTADA A OBJETOS CARACTERISTICAS DEL PROCESO
TEMA 1 Introducción a la Programación Concurrente
Sistemas Peer-To-Peer La plataforma JXTA
DIAGRAMA DE ACTIVIDAD Roberto Certain Leonardo Molina.
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Tomado de:
INTRODUCCIÓN A JAVA.
Servicios de red e Internet
Servicios Web.
Arquitectura Orientada a Servicios (SOA)
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
"java del lado del servidor" Servlet y JSP Java Server Pages.
Fundamentos de Ingeniería de Software
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
Construcción de un sistema multiagente mediante Jade
RMI Remote Method Invocation
UNIVERSIDAD LATINA (UNILA) INTRODUCCION A LA PROGRAMACIÓN
Java 2 Platform Enterprise Edition
Presentación del estado del arte
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Modificadores.
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Ingeniero Anyelo Quintero
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Un hilo es un único flujo de ejecución dentro de un proceso. Un proceso es un programa ejecutándose dentro de su propio espacio de direcciones. Los.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Jorge Villalobos Jorge Arias Darío Correal
Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.
Una java servlet es un programa que se ejecuta en un servidor. Por lo general son aplicaciones Java que corren en un entorno de servidor web. Los Java.
Ingeniería de Software
Arquitectura de una aplicación
Correo electrónico Internet
Desarrollo de aplicaciones para ambientes distribuidos
Hilos En La Computación. (THREADS).
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
CASOS DE USO Ing. Sonia Godoy H..
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Sistemas Distribuidos
TEMA 10: DIAGRAMA DE: OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
PROGRAMACION OOP Ing. Miguel Jaime IBM ACE Certificación.
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Estructura de los Sistemas Operativos
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Clasificación de Diagramas
Unidad 2 – Gestión de Procesos
Introducción WWW y estándares web Jesús Torres Cejudo.
Sistemas MultiAgentes. Definiciones Un agente percibe de su entorno a través de sensores y actúa en su entorno mediante efectores. Propiedades: Autónomo.
Protocolos de comunicación TCP/IP
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Fundamentos de Ingeniería de Software
SOFTWARE DE COMPUTADORAS
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Conociendo el modelo Cliente-Servidor
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Transcripción de la presentación:

JADE Java Agent Development Framework EXPOSITOR: Melvin Fallas CascanteA62098

Agenda IntroducciónIntroducción HistoriaHistoria El estándar FIPAEl estándar FIPA CaracterísticasCaracterísticas Conceptos BásicosConceptos Básicos ArquitecturaArquitectura EjemplosEjemplos ConclusionesConclusiones

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

Permite la interoperabilidad entre plataformas de diferentes empresas y organizaciones. 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. 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. 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. 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). 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. 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. 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. 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. 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

Agentes Agentes Comportamientos Comportamientos Comunicación Comunicación Ontologías 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

Transiciones de Estado

Código Mínimo de un Agente

Conceptos 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 (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

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 jade.content.onto.Ontology 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 RMA Dummy Agent Dummy Agent Sniffer Agent Sniffer Agent DF y AMS 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., Juan Francisco Garamendi Bragado. Agentes Inteligentes: JADE

REFERENCIAS BIBLIOGRAFICAS Escuela de primavera de agentes. Tutorial Basico de JADE, jade.htmlhttp://proyectojadeud.blogspot.com/2007/12/02-arquitectura- jade.html desarrollo-de-agentes-jade http:// desarrollo-de-agentes-jade