500 likes | 682 Views
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 silarri@unizar.es http://webdiis.unizar.es/~silarri/. Índice. PRIMERA PARTE: Agentes software
E N D
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 silarri@unizar.es http://webdiis.unizar.es/~silarri/ 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 flexibleautonomous 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 email • 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 2006
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 www.multiagent.com 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
RPC, RSH, RMI, servlets, Movilidad Migración procedimientos almacenados Movilidad fuerte de procesos débil móvil Compuación Código Instalación remota, applets móvil Estado móvil Checkpointing Caracterización de la movilidad Adaptado de una transparencia de Niranjan Suri (nsuri@ai.uwf.edu) 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"); } Callback 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
0,1 M 0,2 M 0,45 M 1 M 2 M 4 M 8 M 16 M 33 M 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 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
C1 C2 C3 Estoy en C2 Proxies Dinámicos Proxy a Agente1 Contexto C1 Estoy en C3 Contexto C2 Contexto C4 Contexto C3 Sergio Ilarri - Sistemas de Información, Mayo 2006
ERROR C1 C2 ERROR Estoy en C2 Problema de Livelock Proxy a Agente1 Contexto C1 Contexto C2 Contexto C4 Contexto C3 Sergio Ilarri - Sistemas de Información, Mayo 2006
Problema de Livelock Contexto C1 Contexto C2 Contexto C4 -Primero actualizar proxies, luego reanudar agente -Retardar agentes muy rápidos Contexto C3 Sergio Ilarri - Sistemas de Información, Mayo 2006
Evaluación en Entorno Dinámico Ciclo de vida de un agente: • Elegir agente destino (al azar) • Moverse al azar a otro contexto • Llamar al agente destino • Si (num. iteraciones = 50), tarea terminada • Repetir hasta que todos los agentes terminen Sergio Ilarri - Sistemas de Información, Mayo 2006
Escalabilidad Sergio Ilarri - Sistemas de Información, Mayo 2006
Todos acaban 4600, acaban 89 2600, acaban 0 2040, acaban 33 600, acaban 1 Comparativa 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 (www.fipa.org) • 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 http://webdiis.unizar.es/~silarri/ Sergio Ilarri - Sistemas de Información, Mayo 2006