Sergio Ilarri - Sistemas de Información, Mayo 2006 Tecnología de Agentes Móviles Sergio Ilarri Centro Politécnico Superior Edificio Ada Byron Área de Lenguajes.

Slides:



Advertisements
Presentaciones similares
UNIVERSIDAD PRIVADA SAN PEDRO ESCUELA INGENIERIA CIVIL
Advertisements

Agentes Móviles Oscar Huertas Lara A52807 Mario Solís Parajeles A55540.
Arquitecturas de administración de redes y sus submodelos
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Noveno Semestre UNIDEC
LOS SISTEMAS OPERATIVOS
Tecnologías para desarrollo de aplicaciones web. Un caso de uso
Introducción a servidores
SISTEMAS OPERATIVOS Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario.
ARQUITECTURA CLIENTE-SERVIDOR
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Common Object Request Broker Architecture
ASPECTOS DEL DISEÑO DE SD
Servicios Web.
Arquitectura Orientada a Servicios (SOA)
INSTITUTO TECNOLOGICO DE MINATITLAN
DSOO - María Eugenia Valencia
Introducción al software
Introducción a Remoting
Base de Datos Distribuidas
Java 2 Platform Enterprise Edition
SOA y la integración con el modelo de negocio de la empresa
Inteligencia artificial
Universidad Centroamericana
Redes P2P Dr. Víctor J. Sosa-Sosa
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Desarrollo de aplicaciones web en entorno servidor
Tecnologías para el desarrollo de aplicaciones Web
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola.
Programación Orientada a Aspectos (POA)
Instalación y configuración de servidores. 2 de 9 Servicios Internet (I) “El proyecto Apache es un esfuerzo conjunto para el desarrollo de software orientado.
SO – 1 – Reunión DAMMAD Grupo de Inteligencia Artificial Dpto. de Ciencias Experimentales e Ingeniería Universidad Rey Juan Carlos Diseño y Aplicación.
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
Programacion Web Practica 1 Estudio de la aplicación distribuida: Apache Hadoop.
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
(C) Universidad de Las Palmas de Gran Canaria
EL SISTEMA OPERATIVO.
Desarrollo de aplicaciones para ambientes distribuidos
O Funcionamiento, ventajas y alcance o ESTUDIANTE: EDWIN ARAY VÉLEZ o PROFESOR: ING. JOSÉ MEDINA o FUNDAMENTOS TECNOLÓGICOS DE INFORMACIÓN.
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Servidores Conceptos Generales.
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
Yo soy responsable de mi bienestar
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
Sistemas Distribuidos
MASIF Andrés Marín López Gestión de la Información Multimedia en Internet.
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Diagramas de Interacción.
Términos y Conceptos Básicos
(C) Universidad de Las Palmas de Gran Canaria 1 EL ADMINISTRADOR Definición de un administrador Persona responsable del mantenimiento y funcionamiento.
 El uso de sistemas de agentes móviles es el resultado de la evolución y la unión de sus los agentes, del campo de la inteligencia artificial, y del.
Cloud Computing July Palma L..
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.
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
Pontificia Universidad Javeriana Sistemas Distribuidos (2007/01)
A RQUITECTURA DE SOFTWARE. CLIENTE-SERVIDOR Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor)
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
MODELO TCP/IP.
Optativa II Carlos Quilumbaqui. ¿Qué es Big Data? Big Data son grandes en cantidad, se capturan a un índice rápido, y son estructurados o no estructurados,
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
1 Unidad I.2.- Objetivos de los Sistemas Distribuidos Ing. Luis Armando García Eliseo © Agosto 2011.
Patrón de diseño BROKER
Conociendo el modelo Cliente-Servidor
Gestión del Conocimento MBA Luis Elissondo. Definición de KM Knowledge Management Es el proceso de administrar y aprovechar de forma sistemática y activa.
Transcripción de la presentación:

Sergio Ilarri - Sistemas de Información, Mayo 2006 Tecnología de Agentes Móviles Sergio Ilarri Centro Politécnico Superior Edificio Ada Byron Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería de Sistemas

Sergio Ilarri - Sistemas de Información, Mayo 2006 Índice PRIMERA PARTE: Agentes software Agentes móviles SEGUNDA PARTE: Agentes móviles en computación móvil Sistemas basados en agentes móviles

Sergio Ilarri - Sistemas de Información, Mayo 2006 Agentes Software

Sergio Ilarri - Sistemas de Información, Mayo 2006 ¿Qué es un agente? “encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in order to meet its design objectives” (Wooldridge)

Sergio Ilarri - Sistemas de Información, Mayo 2006 ¿Qué es un agente? “encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in order to meet its design objectives” (Wooldridge) control sobre el estado interno y comportamiento

Sergio Ilarri - Sistemas de Información, Mayo 2006 ¿Qué es un agente? “encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in order to meet its design objectives” (Wooldridge) control sobre el estado interno y comportamiento “siente” el entorno (sensores) y actúa sobre él (actuadores)

Sergio Ilarri - Sistemas de Información, Mayo 2006 ¿Qué es un agente? “encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in order to meet its design objectives” (Wooldridge) control sobre el estado interno y comportamiento “siente” el entorno (sensores) y actúa sobre él (actuadores) reactivo: responde a cambios en el entorno

Sergio Ilarri - Sistemas de Información, Mayo 2006 ¿Qué es un agente? “encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in order to meet its design objectives” (Wooldridge) control sobre el estado interno y comportamiento “siente” el entorno (sensores) y actúa sobre él (actuadores) reactivo: responde a cambios en el entorno proactivo: actúa para conseguir sus objetivos

Sergio Ilarri - Sistemas de Información, Mayo 2006 Orígenes Agentes y sistemas multiagentes: Conceptos con origen en la Inteligencia Artificial Auge en los 90 de los sistemas multiagentes y los agentes móviles:  paradigma de software adecuado para el desarrollo y explotación de entornos altamente distribuidos y abiertos (ej.: Internet) La idea de agentes y sistemas multiagentes parece emerger o fusionarse en múltiples dominios de aplicación El área de los sistemas multiagentes está influenciada e inspirada por muchos otros campos:  Teoría de juegos, lógica, ecología, ciencias sociales, economía, filosofía...

Sergio Ilarri - Sistemas de Información, Mayo 2006 Tecnologías padre Inteligencia artificial Ingeniería del software Sistemas distribuidos Ciencia de las organizaciones Bases de datos Economía Teoría de juegos Vida artificial

Sergio Ilarri - Sistemas de Información, Mayo 2006 Agentes inteligentes Son programas: Autónomos Actúan en representación de alguien Tienen una agenda de objetivos “Inteligentes”, aprenden Pueden también ser: Cooperativos Móviles Nuevo paradigma de diseño de software: AOSE = Agent Oriented Software Engineering

Sergio Ilarri - Sistemas de Información, Mayo 2006 ¿Son éstos agentes? Web crawler = spider = ant Cliente de Virus Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents. Stan Franklin and Art Graesser. Proceedings of the Third International Workshop on Agent Theories, Architectures, and Languages, Springer-Verlag, 1996.

Sergio Ilarri - Sistemas de Información, Mayo 2006 Metáfora de los agentes Representante del usuario Énfasis en comunicación Autonomía Persistencia

Sergio Ilarri - Sistemas de Información, Mayo 2006 Utilidad de los agentes Capacidad de operación en un entorno dinámico, abierto, impredecible Potencial para explotar Internet Interacción con software legado Modelado de entornos complejos Potencial para software más inteligente Nivel de abstracción natural, modularidad, división de problemas …

Sergio Ilarri - Sistemas de Información, Mayo 2006 Los agentes no son Asistentes Lenguajes de script Lenguajes de programación Redes neuronales Sistemas basados en reglas Sistemas expertos Objetos Autónomos: mismo método, distintas respuestas Comportamiento proactivo, reactivo y social Hilo de control

Sergio Ilarri - Sistemas de Información, Mayo 2006 Características de los agentes

Sergio Ilarri - Sistemas de Información, Mayo 2006 Clasificación Jennings/Wooldridge

Sergio Ilarri - Sistemas de Información, Mayo 2006 Sistemas multiagente Red de agentes software que interactúan para resolver problemas que van más allá de las capacidades individuales o del conocimiento de cada uno (K. Sycara) Capaces de desarrollar acciones autónomas para la realización de sus tareas Capaces de interaccionar (cooperar, coordinar, negociar) con otros para realizar sus tareas Comunicación: ACLs: KQML, FIPA-ACL, … Intercambio de conocimiento

Sergio Ilarri - Sistemas de Información, Mayo Akira Agent Factory Bee-gent Framework Cougaar Excalibur Jadex BDI JATLite Java Communicating Agents JACK JESS MAP OAA PRS SIM_AGENT Zeus Agent UML BB1

Sergio Ilarri - Sistemas de Información, Mayo 2006 Agentes Móviles

Sergio Ilarri - Sistemas de Información, Mayo 2006 Agentes móviles: definición Agentes software: Se mueven de ordenador a ordenador A petición del usuario, autónomamente Ejemplo: gestión de viajes

Sergio Ilarri - Sistemas de Información, Mayo 2006 Caracterización de la movilidad Código móvil Compuación móvil Estado móvil RPC, RSH, RMI, servlets, procedimientos almacenados Instalación remota, applets Checkpointing Movilidad débil Movilidad fuerte Migración de procesos Adaptado de una transparencia de Niranjan Suri

Sergio Ilarri - Sistemas de Información, Mayo 2006 Agentes móviles Programa que se ejecuta en un cierto contexto de ejecución o place, y viaja de place a place Capaces de transportarse a sí mismos entre ordenadores Necesita cierta infraestructura (plataforma de agentes) Agentes móviles  código móvil Alternativa a RPC

Sergio Ilarri - Sistemas de Información, Mayo 2006 Agentes Móviles Espera un poco… Toma el resultado Usando conexión inalámbrica

Sergio Ilarri - Sistemas de Información, Mayo 2006 Modelo de Agentes Móviles (I) Agente móvil: programa que puede cambiar de ordenador (código+ datos+ estado) para llevar acabo su tarea Entorno de ejecución El entorno comprueba sus credenciales Se ejecuta autónomamente Para realizar su tarea: trasladarse a otras máquinas, usar recursos locales/remotos, interactuar con otros agentes, crear nuevos agentes y diseminarlos, etc.. Una vez realizada su tarea, el agente lleva o envía los resultados al cliente, u otro servidor, destinatario, etc...

Sergio Ilarri - Sistemas de Información, Mayo 2006 Modelo de Agentes Móviles (II) Algunas características interesantes Autonomía: no/mínima interacción con el creador Interoperabilidad: hardware, SO, etc. Reactividad: cambios/eventos del entorno Cooperación: objetivo común “Inteligencia” (especialistas) Movilidad Agentes móviles en particular (sinergia)

Sergio Ilarri - Sistemas de Información, Mayo 2006 Modelo de Agentes Móviles (III) Ventajas: Evitan instalaciones innecesarias “Salvan” la latencia de red: comm. local Encapsulan protocolos (BDs, etc.) Asíncronos/autónomos: desconexiones Adaptativos: Reaccionar entorno Moverse: balanceado de carga, localidad datos Integración de sistemas heterogéneos Robustez/tolerancia a fallos

Sergio Ilarri - Sistemas de Información, Mayo 2006 Modelo de Agentes Móviles (IV) Aplicaciones: Recuperación de información distribuida Procesamiento paralelo Asistente personal Diseminación de información E-commerce Gestión de red  heterogeneidad, monitorización, personalización, enrutamiento. Aplicaciones de worflow Brokering Entornos distribuidos: entornos móviles, pervasivos, inteligentes, P2P,......

Sergio Ilarri - Sistemas de Información, Mayo 2006 Modelo de Agentes Móviles (V) Apropiados para computación inalámbrica: Desconexiones:  Breve conexión: enviar agente a red fija  Antes de desconexión: coger agente de red fija Descarga de trabajo del cliente Contribuyen a limitar el uso de las comunicaciones inalámbricas:  Reducir los datos a intercambiar por el enlace inalámbrico  Evitar interacciones entre cliente y servidor  Sólo comunicar agente y resultado

Sergio Ilarri - Sistemas de Información, Mayo 2006 Movilidad: cómo funciona Los agentes móviles se crean en places Viajan entre places moveTo(newHost) Se interrumpe la ejecución del thread Se serializa el código, datos y (quizá) el estado del agente El agente se reconstruye en el place destino y continúa su ejecución Movilidad fuerte/débil

Sergio Ilarri - Sistemas de Información, Mayo 2006 Movilidad fuerte public class AgenteMovFuerte extends Agente { public static void main(String[] args) { System.out.println(“En ordenador origen”); moveTo(destino); System.out.println(“En ordenador destino”); } -No Java estándar -Múltiples threads -Ficheros abiertos, etc.

Sergio Ilarri - Sistemas de Información, Mayo 2006 Movilidad débil (Aglets) public class AgenteMovDebil extends Aglet { boolean enRemoto = false; public void onCreation (Object init) { addMobilityListener ( new MobilityAdapter() { public void onArrival (MobilityEvent e) { enRemoto = true; } ); } public void run() { if (! enRemoto) { System.out.println (“En ordenador origen”); dispatch(destination); } else { System.out.println (“En ordenador destino”); }

Sergio Ilarri - Sistemas de Información, Mayo 2006 Movilidad débil (Voyager) public class AgenteMovDebil extends Agent { public void metodoDestino (Object init) { System.out.println (“En ordenador destino”); } public void move(String destino) { Iagent proxy = Agent.of(this); System.out.println (“En ordenador origen”); proxy.moveTo(destino, “metodoDestino”); } public static void main(String[] args) { Voyager.startup("8000"); String serverClass = "AgenteMovDebil"; AgenteMovDebil ag = new AgenteMovDebil(); ag.move("tcp://fargo.sdsu.edu:8000"); }

Sergio Ilarri - Sistemas de Información, Mayo 2006 Control de los saltos Problemas con el moveTo (red, permisos, etc.) excepción place origen (política de reintentos) Notificación de movimiento (Ej: Voyager, SPRINGS) preDeparture()  En el origen, antes de iniciar el viaje preArrival()  En el destino, antes de la reconstrucción postArrival()  En el destino, agente reconstruido correctamente, justo antes del callback postDeparture()  En el origen, en paralelo con el callback del destino

Sergio Ilarri - Sistemas de Información, Mayo 2006 Utilizando agentes móviles Robustez frente a desconexiones Mejor diseño: delegación de tareas Facilidad de programación  Plataformas de agentes Interoperabilidad Fiabilidad Escalabilidad Eficiencia?  RPC 0,1 M 0,2 M 0,45 M 1 M 2 M 4 M 8 M 16 M 33 M

Sergio Ilarri - Sistemas de Información, Mayo 2006 Soporte software para los agentes móviles (I) Agencia: entorno de ejecución Sistema de agentes móviles: conjunto de agencias en una aplicación Toolkit: implementación concreta Plataforma de agentes móviles Place (contexto)

Sergio Ilarri - Sistemas de Información, Mayo 2006 Soporte software para los agentes móviles (II) Soporte para movilidad Soporte para comunicación RPC vs. paso de mensajes (ACLs) Transparencia de localización:  Tracking: fuerza bruta, cadena de punteros, actualización  Servicio de nombres Seguridad

Sergio Ilarri - Sistemas de Información, Mayo 2006 Plataformas de agentes móviles (Toolkits) Aglets Buen API para agentes móviles JDK 1.1  código abierto  Java 2 Mono-thread, bloqueo mensajes síncronos, no transp. localiz. Voyager CORBA + agentes móviles, encadenamiento de proxies El ataque de los clones, viajes infinitos con DNS,... Bugs, escalabilidad Transp. localiz.: regiones Miles de agentes (en la misma máquina) Lento, basado en eventos, mono-thread, no transp. localiz. Otros: Jade, Tracy, Mole, SeMoa, etc… … … …

Sergio Ilarri - Sistemas de Información, Mayo 2006 Motivación Las plataformas existentes no van bien: problema de escalabilidad Facilitar la vida al programador Transparencia de localización:  Llamadas: proxies dinámicos  Movimientos Reintentos automáticos Prevención de livelock

Sergio Ilarri - Sistemas de Información, Mayo 2006 Proxies Dinámicos Proxy a Agente1 Contexto C1 Contexto C4 Contexto C2 Contexto C3 C1 Estoy en C2 C2 Estoy en C3 C3

Sergio Ilarri - Sistemas de Información, Mayo 2006 Problema de Livelock Proxy a Agente1 Contexto C1 Contexto C4 Contexto C2 Contexto C3 C1 Estoy en C2 C2 ERROR

Sergio Ilarri - Sistemas de Información, Mayo 2006 Problema de Livelock Contexto C1 Contexto C4 Contexto C2 Contexto C3 -Primero actualizar proxies, luego reanudar agente -Retardar agentes muy rápidos

Sergio Ilarri - Sistemas de Información, Mayo 2006 Evaluación en Entorno Dinámico Ciclo de vida de un agente: 1) Elegir agente destino (al azar) 2) Moverse al azar a otro contexto 3) Llamar al agente destino 4) Si (num. iteraciones = 50), tarea terminada 5) Repetir hasta que todos los agentes terminen

Sergio Ilarri - Sistemas de Información, Mayo 2006 Escalabilidad

Sergio Ilarri - Sistemas de Información, Mayo 2006 Comparativa Todos acaban 4600, acaban , acaban , acaban , acaban 1

Sergio Ilarri - Sistemas de Información, Mayo 2006 Estándares de agentes (móviles) Mobile Agent System Interoperability Facility - MASIF (OMG) Interoperabilidad entre sistemas de agentes Foundation for Intelligent Physical Agents - FIPA ( Interacción humanos/agentes, control y gestión de agentes, seguridad, movilidad, comunicación, etc.. FIPA ACL (derivado de KQML)

Sergio Ilarri - Sistemas de Información, Mayo 2006 Gracias por su atención