Estructura Curso de doctorado: Conceptos y Ejemplos de aplicación Agentes Inteligentes Tecnología: Java Agentes Móviles Requisitos de Sistema de Agentes Móviles Juan Pavón Mestras Dep. de Sistemas Informáticos y Programación Arquitectura de Sistema de Agentes Móviles Evaluación de sistemas http://grasia.fdi.ucm.es Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 2 Conceptos Agente Entidad autónoma proactiva y reactiva Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 3 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Móvil Capacidad de migrar por nodos de una red de computadores Agentes Móviles 4 Conceptos Agentes móviles y Agentes inteligentes Conceptos Agente móvil Los agentes inteligentes son capaces de ofrecer un comportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la capacidad de moverse por distintos nodos de una red (una o más veces) • Para la comunidad de IA la movilidad no es un atributo de los agentes • Para la comunidad de AM la movilidad es el atributo principal • buscando información en beneficio de su propietario • o negociando y cerrando tratos en su nombre • o utilizando servicios remotos perspectiva de sistema distribuido tratamos los aspectos tactiles: movilidad, persistencia y (en parte) de sociabilidad: comunicación y colaboración NO vemos los aspectos cognitivos (adaptación, aprendizaje y planificación) Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Taxonomía del código móvil Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Sistema remoto Sistema local Código Sistema remoto Evaluación remota Código + Datos Agentes móviles autónomos (migración) Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Sistema de Agentes A Agentes Móviles 6 Dependiente de la aplicación Código Sistema local Agentes Móviles Taxonomía del código móvil Código bajo demanda Puede moverse a uno o más servidores Es una extensión del modelo cliente-servidor • Los clientes envían parte de ellos al servidor (o a varios servidores) para ejecutarse 5 Agentes Móviles Un agente móvil tiene capacidad para decidir a qué servidores moverse • Hay instrucciones explícitas para que el agente pueda parar su ejecución, migrar a otro nodo (preservando su estado), y continuar su ejecución Hoy hablaremos de agentes móviles: Agente que realiza sus tareas no sólo en la computadora de su propietario, sino también en otras en la red Código + Datos Sistema de Agentes B Sistema de Agentes C 7 applet aplicación cargada por la red para ejecutar localmente servlet agente que es cargado en un lugar remoto donde será activado como un servidor extlet agente que es cargado en un lugar remoto para extender las capacidades del receptor deglet agente en el que se delega la autoridad para realizar una tarea determinada (acabada la tarea, desaparece) netlet agente en el que se delega la autoridad para realizar una tarea permanente (esto es, nunca termina) piglet agente malicioso que supone riesgo de seguridad Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 8 AM vs. RPC AM vs. RPC Paradigmas de programación distribuida Llamada a procedimiento remoto (RPC) Arquitecturas cliente-servidor clásicas: Sockets RPC, Java RMI Middleware: DCE, CORBA, DCOM Programación remota Ejecución remota de trabajos (IBM Remote Job Entry, años 70) Telecarga de funciones a bases de datos (funciones a los datos) Compartición de recursos, balance de carga, etc. Java applets Agentes mó móviles Juan Pavón Mestras Facultad de Informática UCM, 2005-06 petición respuesta Cliente Juan Pavón Mestras Facultad de Informática UCM, 2005-06 La red pasa todo el procedimiento como un Agente El cliente define el procedimiento (no tiene que acordarse por adelantado) La respuesta regresa como un Agente (o como mensaje) 10 código + estado Entorno del servidor La red lleva menos mensajes Mejor cuanto más trabajo se haga en el servidor Mejor cuanto mayor latencia/inestabilidad de red Adaptación al cliente Cliente Agentes Móviles Eficiencia Entorno del cliente Servidor Agentes móviles: ventajas Programación remota ... petición respuesta 9 Agentes Móviles Entorno del servidor Entorno del cliente AM vs. RPC La red pasa cada petición por separado, ... y devuelve una respuesta por separado Hay acuerdo en los procedimientos, sus parámetros y tipo de resultados Puede ocasionar mucho tráfico de red El cliente puede extender la funcionalidad del servidor Fácil instalación • No se requiere instalación de servidor • No se acuerdan los procedimientos • Instalación dinámica del procedimiento del cliente en el servidor Servidor petición respuesta Cliente Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 11 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 12 Agentes móviles: ventajas Agentes móviles: ventajas Ejecución asíncrona de tareas El agente controla la ejecución de la tarea El cliente puede terminar o continuar haciendo otras cosas Reducción del tráfico en la red y de la capacidad de cómputo del cliente Cliente Servidor Cliente Agente Servidor Interesante para entornos de bajo ancho de banda y clientes sencillos Realiza las interacciones localmente en el sistema objetivo (servidores potentes) Recuperación y filtrado de la información en su origen Sólo se devuelven los resultados definitivos (mediante migración del agente o usando mensajes/RPC) Lanza Petición Petición Resultado migra Resultado Termina Cliente Petición Petición Resultado Resultado Red Sistema A Juan Pavón Mestras Facultad de Informática UCM, 2005-06 13 Agentes Móviles Agentes móviles: ventajas Cliente Sistema de Agentes A Sistema B Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Cliente Sistema de Agentes B Red 14 Agentes Móviles Agentes móviles: ventajas Robusto: reducción de la dependencia de la disponibilidad de la red y del cliente/servidor Servidor Servidor Automatización del proceso de tareas distribuidas los Agentes Móviles migrados al sistema servidor no se ven afectados por los fallos del cliente o de la red Los Agentes Móviles realizan tareas específicas en lugares diferentes Haz esto Cliente Servidor Servidor Cliente Sistema A Red Sistema B Sistema de Agentes A Cliente Red Servidor Agenda: Haz esto en B; Haz eso en C; Vuelve. Sistema de Agentes B Sistema de Agentes A Sistema de Agentes B Haz eso Servidor Sistema de Agentes C Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 15 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 16 Agentes móviles: ventajas Agentes móviles: ventajas Proceso de tareas local/descentralizado mayor eficiencia, fiabilidad, seguridad, etc. Sistemas de usuario final flexibles Dependiendo del sistema del usuario final (PDA, NC, PC, WS), se pueden cargar los componentes de servicio apropiados para su uso Controlador Cliente Servidor Controlador Sistema de Agentes A A Comp. Cliente Servidor Agentes Móviles 17 Autenticación del usuario Autenticación del servidor o entorno de ejecución de agentes Sistema Proveedor del Servicio Agentes Móviles 18 Gestión de fallos Eficiencia (el código interpretado suele ser lento) Heterogeneidad de sistemas de AM Sobrecarga de la transferencia del código Derechos de ejecución de agentes de un usuario en un servidor Capacidad del agente para pagar por los servicios utilizados Detección de virus la localización y el estado de un agente pueden ser desconocidos • Teleclicks (General Magic) C Comp. Control de ejecución de las tareas • ¿Pueden ejecutarse los agentes? ¿Qué funciones pueden realizar? WS Agentes móviles: cuestiones • ¿No caerá el agente en una trampa? Comp. Juan Pavón Mestras Facultad de Informática UCM, 2005-06 • ¿Quién envía el agente móvil? PC en red Comp. Sistema de Agentes Proveedor del Servicio Seguridad NC B B Comp. Agentes móviles: cuestiones A Sistema de Agentes C Sistema C STB Controlador Cliente Servidor Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Sistema de Agentes Cliente Sistema de Agentes B Sistema B Sistema A Sistemas del cliente Cliente Servidor Controlador ¿Quién detecta los fallos? tiene que compararse con las interacciones Acceso a servicios existentes (Internet, CORBA, etc.) • ¿Se puede confiar en el agente? Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 19 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 20 Aplicaciones Servicios de información en Internet Conexiones intermitentes y bajo ancho de banda Procesamiento paralelo Gestión de procesos (workflow) Juegos (agentes que representan jugadores) Agentes Móviles Sistema de AM Juan Delegación de tareas 21 Aplicaciones: Telecomunicaciones Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Sistema de AM Jefe Sistema de AM Director Agentes Móviles 22 Aplicaciones: Telecomunicaciones Gestión de red crea El autor del mensaje puede recibir comentarios de los otros tres Algunos usuarios pueden ver comentarios de los anteriores en el itinerario agente de correo (revisión documento) Flexibilidad de la distribución Provisión de servicios bajo demanda Descentralización del control y gestión de redes Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Todos los usuarios tienen un sistema de agentes A un agente de correo electrónico inteligente se le puede dar un mensaje(puede ser un documento) y un itinerario El agente sigue el itinerario, y puede ser modificado en su camino • • Mercado de servicios electrónico Negociación Redes públicas de telecomunicaciones Ejemplo: Documentos activos de servicios Equipos móviles y PCs en el hogar Recuperación y extracción de información de múltiples lugares Búsqueda y filtrado de la información Control de cambios Personalización Difusión de información Comercio electrónico Aplicaciones: Internet Ejemplo: Descubrir la configuración de la red Gestión de red Ejemplos de gestión de red basada en netlets • Detección y corrección de fallos • Control del rendimiento Sistema de Operaciones migrar ERROR clonar Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 23 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 24 Aplicaciones: Tiempo Real Interacción tiempo real con servidor Si la latencia de la red es alta comparada con las restricciones de tiempo real de un equipo externo • Caso extremo: aplicaciones espaciales Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 25 Requisitos plataforma AM 26 Modelo de ciclo de vida Todo agente software está definido por: • • • • Agentes Móviles Modelo de Agentes Móviles Requisitos del modelo de agentes: Modelo Modelo Modelo Modelo de ciclo de vida computacional de seguridad de comunicación y los agentes móviles añaden: Requisitos genéricos • • • • • • Agentes Móviles Define 2 tipos de agentes: Agentes persistentes • Pueden salvar su contexto de ejecución, de forma que pueden re-iniciarse más tarde (posiblemente en otro lugar) Rendimiento y eficiencia Portabilidad Abierto Integración y soporte de sistemas propietarios Escalabilidad Mantenibilidad Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Describe los servicios de gestión de agentes: Servicios de factoría: • Creación, iniciación, suspensión, arranque, parada, eliminación de agentes • Modelo de navegación Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes basados en tareas • Se reinician desde el mismo punto en cada ocasión y lugar • No guardan el contexto 27 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 28 Modelo de Agentes Móviles Modelo de Agentes Móviles Modelo de ciclo de vida Modelo computacional iniciar Describe las capacidades de computación de los agentes: ¿Cómo se ejecutan los agentes? Primitivas que pueden afectar la ejecución del agente • Como procesos separados, como hilos de ejecución, etc. Inicialización parar • Creación, control de ejecución, eliminación de agentes • Parar, migrar y continuar el agente • Manipulación de datos arrancar Arrancando Parando Plataforma de sistema de agentes Nombrado, direccionamiento, localización • Dominios concluir arrancar Acabando Juan Pavón Mestras Facultad de Informática UCM, 2005-06 29 Agentes Móviles Modelo de Agentes Móviles Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Modelo de Agentes Móviles Modelo de seguridad Elementos básicos Agentes Agentes En dos sentidos: Lugar Problemas de seguridad: Infraestructura de comunicaciones Sistema Operativo Agentes Móviles Cómo pueden acceder los agentes a los recursos de la red Cómo se puede acceder a los agentes ¿Agente = Virus? seguras? Lugar Sistema de Agentes Juan Pavón Mestras Facultad de Informática UCM, 2005-06 30 Agentes Móviles 31 ¿Plataforma segura? ¿Comunicaciones Adquisición o alteración no autorizada de datos Uso no autorizado de recursos Ataque malicioso a datos o recursos (o a otros agentes) Duplicación de agentes Confidencialidad Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 32 Modelo de Agentes Móviles Modelo de Agentes Móviles Modelo de seguridad Autenticación entre sistemas de agentes Modelo de comunicación y colaboración Autenticación mutua de los sistemas origen y destino • - Knowledge Query Manipulation Language (KQML) Mediante autenticadores • - FIPA ACL • Un autenticador es un algoritmo que determina la autenticidad de un agente • Los autenticadores tienen tipos que están registrados con una autoridad de nombres • Pueden ser válidos para un salto o para múltiples saltos • RPC, CORBA Autenticar la autoridad del agente Criptografiado en la transmisión de los agentes Protección contra inundación Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles distintos tipos de comunicación: • • • • Soporte de la infraestructura de comunicaciones lenguajes de comunicación entre agentes: • Específicos de agentes Autenticación de agentes Entre agentes 33 Modelo de Agentes Móviles Punto a punto Difusión Punto a multipunto Pizarra compartida Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Modelo de navegación Entre agentes y otras entidades Transporte de un agente (con o sin estado) entre dos entidades computacionales residentes en distintos lugares: Itinerario de un agente móvil Con los usuarios • usuarios finales • gestor del sistema de agentes Con recursos locales al sistema visitado Con la plataforma de ejecución de agentes 34 Modelo de Agentes Móviles Modelo de comunicación y colaboración Agentes Móviles • a través de agentes/servicios del sistema de agentes local • a través de agentes/servicios del sistema de agentes local Servicios y protocolos de transferencia de agentes Cómo se especifica el itinerario Puede modificarse el itinerario Seguimiento del agente • Servicio de localización • Rastro del agente Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 35 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 36 Sistema de Agentes Móviles Sistema de Agentes Móviles Capacidades del sistema de agentes básico Funciones Entorno seguro para operaciones de agente Permitir que varios agentes puedan coexistir y ejecutarse simultáneamente Prevenir que los agentes interfieran unos con otros Transferencia de agentes negociar el intercambio de agentes detener un agente y transferirlo a otro sistema de agentes recibir un agente transferido por otro sistema de agentes y continuar su ejecución Creación de agentes Localizar los agentes móviles Seguridad Importación Proporcionar nombres de agentes únicos Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 37 Autoridad + Identidad + Tipo de sistema de agente Globalmente único e inmutable Valores que determinan qué hacer cuando la ejecución del agente continúe en el sistema de agentes destino TCL C/C++ Agentes Móviles 38 39 D’Agents, SMIA Omniware Otros Dirección del lugar (y sistema de agentes) donde reside el agente Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles La mayoría de los sistemas Localización Comunicación Java Exportación Lenguajes para programar agentes móviles Estado Gestión Sistema de Agentes Móviles Nombre Execution Execution Ejecución Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Caracterización de un agente móvil Directorio Almacenamiento Sistema de Agentes Móviles Sistema de Agentes B Sistema de Agentes A Telescript Lisp, Scheme, propietarios, etc. Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 40 Java Java Java facilita la realización de Agentes Móviles Movilidad de código Seguridad en distintos niveles: Seguridad de bajo nivel • Applets, Servlets, Jini • Máquina virtual Java disponible en casi todo HW/S.O. • Diseño del lenguaje (eliminación de punteros) • Comprobaciones en tiempo de compilación (uso de tipos, violación de acceso, desbordamientos de pila,etc.) • Verificación de bytecode al cargar y durante ejecución (límites de arrays, etc.) Facilidades de comunicación de Java • sockets, datagramas , Java RMI • serialización de objetos • Internet: ftp, http, URL Seguridad Java chips Seguridad de alto nivel configurable • La aplicación instancia un gestor de seguridad de los archivos de clase locales • Verificador de bytecode, Java Security, Java Card • • El cargador de clases obliga a la separación del espacio de nombres • permitirá la utilización de agentes móviles en sistemas empotrados Juan Pavón Mestras Facultad de Informática UCM, 2005-06 41 Agentes Móviles Cuidado: un posible atacante podría intentar cambiar las clases del sistema Java Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 42 Java Seguridad Seguridad RED Clases Clasesjava java (.java) (.java) javac bytecodes (.class) Juan Pavón Mestras Facultad de Informática UCM, 2005-06 bytecode externo Clases .class Security Sandbox Verificador Cargador de clases bytecode empotrado + JDK Cargador de sistema de ficheros Agentes Móviles Clases firmadas archivos .jar Gestor de Seguridad Clases locales archivos .jar .zip .class 43 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Las clases cargadas desde la red tienen restricciones: * No pueden acceder al sistema local de archivos * Acceso de red sólo al nodo de origen * No pueden acceder a las propiedades del sistema * No pueden acceder a código nativo Las clases firmadas pueden tener algunas restricciones eliminadas Las clases cargadas localmente (biblioteca estándar) no tienen restricciones Agentes Móviles 44 Java Implementación de AM con Java Serialización Arquitectura básica Serializar Agente residente 0111010101110 Interfaz del agente Visitante Clases Objetos Lugar Archivo o Stream Lugar encuentro Sistema de Agentes Lugar Java RMI Sistema de Agentes MVJ Máquina Virtual Java 0111010101110 Deserializar Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 45 Implementación de AM con Java Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Sistema de agentes Toda clase que implemente un agente móvil debe heredar de una clase genérica MobileAgent, que ofrece los siguientes métodos (ciclo de vida) que pueden redefinirse: inicializar() arrancar() • se llama una sola vez, al crear el agente parar() concluir() • se lama cada vez que se va a transferir, almacenar, o antes de eliminarlo • se llama sólo una vez, cuando el agente se destruye Asimismo, un Agente Móvil tiene una identidad, que puede implementarse como una clase AgentIdentity y ofrece un objeto AgentInterface para comunicarse con otros Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles Ofrecerá una interfaz remota con métodos para transferir agentes: import java.rmi.Remote; import java.rmi.RemoteException; interface SistemaAgentes extends Remote { public boolean permisoTransferencia (AgentIdentity agentid, SistemaAgentes servidor) throws ...; public void empiezaTransferencia (AgentIdentity agentid) throws ...; public void finTransferencia (AgentIdentity agentid) throws ...; public void transferenciaArchivoRecursos (AgentIdentity agentid) throws ...; public void transferenciaArchivoDatos (AgentIdentity agentid) throws ...; } • se llama cada vez que se arranca el agente (por ejemplo, al llegar a un lugar) 46 Implementación de AM con Java Clase Agente Móvil Agentes Móviles 47 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 48 Evolución de Agentes Móviles La idea básica de AM (código móvil/programación remota) no es nueva: Remote Job Entry (años 70) Enviar funciones a los datos (bases de datos) Compartición de recursos, reparto de carga Las tecnologías actuales son de finales de los ‘90 Telescript de General Magic Agent Tcl (ahora D’Agents) del Darmouth College Java de SUN (como tecnología de soporte) • Aglets, Voyager, Concordia, Mole, CyberAgents, ... Los distintos sistemas de AM difieren en capacidades, arquitectura e implementación: Hace falta una normativa de interoperación: • La estandarización comenzó a finales de 1996 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 49 Sistemas de AM comerciales General Magic: Telescript y Odyssey IBM: Aglets Una lista más extensa en Mitsubishi Electric: Concordia ObjectSpace: Voyager • http://www.objectspace.com/Voyager • http://www.meitca.com/HSL/Projects/Concordia D’Agents NOMADS KAoS Agents for Remote Action (ARA) Mole Sumatra ... • http://www.trl.ibm.co.jp/aglets Agentes Móviles 50 Sistemas de AM académicos • http://www.genmagic.com/agents Juan Pavón Mestras Facultad de Informática UCM, 2005-06 IKV++: Grasshopper • http://www.ikv.de www.informatik.uni-stuttgart.de/ipvr/vs/projekte/mole/mal/mal.html Oracle: Mobile Agents Ad Astra Engineering: Jumping Beans • http://www.oracle.com/products/networking/mobile_agents.html • http://www.jumpingbeans.com Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 51 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 52 Telescript y Odyssey Telescript y Odyssey Modelo de agentes móviles General Magic Telescript: primer sistema comercial de AM • Propuesta de patente por General Magic en 1993 (aprobada en 1997) Odyssey: Tabriz MagicCap Viaje implementación basada en Java soporta Java RMI, CORBA IIOP, y DCOM Principal aplicación: mercado electrónico RED Primera aplicación Telescript: sistema de comunicaciones (e-mail, fax, teléfono, etc.) personal de AT&T y America Online (usando el PDA Magic Link de Sony) Lugar directorio Aplicación de compra Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 53 Telescript Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Lugares • Centro comercial electrónico Agentes Móviles 54 Reuniones • si están en el mismo lugar, dos agentes pueden comunicarse invocando procedimientos uno del otro • instrucción meet Desaparece la distinción entre cliente y servidor Conexiones Autoridades Agentes • los agentes se pueden conectar si están en distintos lugares • móviles o estacionarios • independientes, se ejecutan concurrentemente Lugar Floristería Componentes (cont.) • donde los agentes pueden estar, trabajar y proporcionar servicios a otros agentes • Tanto clientes como servidores pueden ofrecer lugares Lugar billetes Agentes Telescript Componentes Reunión • permiten identificar de quién es y de dónde viene un agente • un lugar puede denegar la entrada a un agente que no esté autorizado Viajes • instrucción go para moverse de un lugar a otro en medio de su ejecución Permisos • las autoridades limitan lo que pueden hacer agentes y lugares dándoles permisos • Execute: un agente puede tener permiso para crear otro agente • Use: un agente puede tener permiso para usar algún recurso Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 55 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 56 Telescript Telescript Lenguaje de programación de agentes Engine Para escribir agentes y las superficies de los lugares que visitan • Completo • Orientado a objetos Ejecuta o interpreta los agentes Ofrece un API para acceder a: • clase base Agent • Dinámico: al moverse un agente, puede que tenga que moverse con él su definición de clase • Persistencia • Portable: máquina virtual (Engine) • Seguro: control de acceso a recursos • Centrado en las comunicaciones: go, meet, communicate Transporte Almacenamiento Aplicaciones externas Agentes Engine Transporte Juan Pavón Mestras Facultad de Informática UCM, 2005-06 57 Agentes Móviles Telescript Almacenamiento Agentes Móviles 58 Odyssey Protocolos Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Aplicaciones externas Gestionan la comunicación entre Engines Permiten transportar agentes Pueden ejecutarse sobre varios protocolos (p.ej. TCP/IP) Ofrecen servicios de autenticación y seguridad Disponible en Windows y Unix, sobre JDK 1.1 (100% pure Java) Soporta varios protocolos para transportar agentes: Java RMI, CORBA IIOP, DCOM Acceso a objetos remotos con CORBA y bases de datos relacionales con JDBC Mecanismo de depuración de agentes distribuidos (audit trail) Agentes Codificación de agentes Engine Transporte Aplicaciones externas Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles Almacenamiento 59 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 60 Aglets Aglets Arquitectura Aglets Workbench http://sourceforge.net/projects/aglets/ Aglet Desarrollado por IBM Tokyo Research Labs (1996-2002) aglet = agent + applet Aglet Proxy Aglet Context Aglet Context Demonio Aglet + ATP Servidor de aglets: Tahiti Constructor visual de aglets: Tazza Lanzador de aglets para la WWW: Fiji Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles Máquina Virtual Java Transporte 61 Aglets Java Runtime Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Almacenamiento 62 Agentes Móviles Aglets Ciclo de vida agletsd Aglet Aglet Proxy Aglet Proxy Armazón (framework) basado en Java para construir aplicaciones distribuidas usando el paradigma de AM + Herramientas: Aglet El demonio de aglets (agletsd) se puede ejecutar como Applet o como aplicación Arranca el servidor de aglets Tahiti Proporciona una interfaz gráfica de gestión del servidor Creación onCreation() onDisposal() onArrival() onDispatching() onReverting() Clone Persistencia Demonio Aglet + ATP Start Movilidad Created onClone() Dispatched Arrived Máquina Virtual Java Transporte Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Java Runtime Almacenamiento Agentes Móviles Disposed 63 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles End 64 Aglets Aglets Ejemplo (modificado del JAAPI WhitePaper) Ejemplo (continuación) import aglet.*; import java.net.URL; public void run() { if (!remoto_) { System.out.println(“Arrancando”+donde()); System.out.println(“Dispatching EjemploAglet...”); try { String servidor=getAgletContext().getHostingURL().toString(); URL destino= new URL((String)getAgletContext().getProperty(“destino”); dispatch(destino); System.out.println(“Esto no debería verse”); } catch (Exception e) { /* tratamiento */ } } else { System.out.println(“Arrancando “+donde()); // ... } } public class EjemploAglet extends Aglet { private boolean remoto_ = false; private String donde() { return “EjemploAglet”+(remoto_ ? “ (remoto) “ : “ (origen)”); } public boolean onDispatching(URL url) { System.out.println(“en Dispatching”+donde()); } public boolean onArrival() { remoto_ = true; // el lugar donde llega el aglet es remoto System.out.println(“en Arrival”+donde()); } Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 65 Aglets: movilidad débil Juan Pavón Mestras Facultad de Informática UCM, 2005-06 66 NOMADS Los aglets proporcionan movilidad débil Movilidad fuerte sería lo siguiente: Implementación de movilidad fuerte Reimplementa la MV de Java: AROMA VM public class Example extends MobileAgent { public static void main (String[] args) { System.out.println (“En origen”); go (destino); System.out.println (“En destino”); } } Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles Agentes Móviles Compatible JDK 1.2.2 (sin AWT/Swing) Permite capturar el estado del sistema, para recuperarlo posteriormente en otra MV • De toda la MV (todos los threads, clases y objetos): 1,5 MB aprox. • De un thread (su pila y los objetos alcanzables): 4 KB aprox. También controla el uso de recursos • • • • 67 Uso de CPU, acceso a disco y red Control de agentes maliciosos (que gastan demasiado) Priorización de agentes (más prioridad, más recursos) Contabilidad: facturación Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 68 Agents TCL Agents TCL Sistema de AM desarrollado en el Darmouth College http://agent.cs.dartmouth.edu/ Características: Ahora denominado : Arquitectura D’Agents Arquitectura en capas que soporta: Servidor de Nombres • Varios lenguajes: Tcl, Java, Scheme • Varios mecanismos de transporte (el principal es TCP/IP) Migración de agentes incluyendo un sistema de atraque (docking) Comunicación de agentes Sistema de atraque Tcl 69 Agentes Móviles Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Sistema de atraque (Docking system) 4. detecta reconexión Máquina 3 P1 Máquina 2 muelle_portátil3 Agentes Móviles 1. agent_jump~P1 5. notifica conexión Red de conectividad permanente Máquina 1 muelle_portátil1 muelle_portátil2 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 70 Agentes Móviles Agents TCL Sistema de atraque (Docking system) Portátil 2 e-mail TCP/IP Agents TCL Portátil 1 Scheme Servidor Seguridad Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Java • Paso de mensajes y flujos (streams) • RPC Monitor de red 6. transferencia de agentes en espera Portátil 3 2. transfiere agente M1 muelle_P1 M3 3. atraca el agente Cola de agentes esperando a saltar a M1 71 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Cola de agentes esperando a saltar a P1 Agentes Móviles 72 Estandarización Grasshopper Grasshopper-2, IKV++ OMG MASIF (Mobile Agent System Interoperability Facilities) Interoperabilidad de sistemas de agentes Define interfaces IDL para mover agentes entre plataformas Plataforma de agentes móviles compatible con OMG MASIF Servicios de comunicación FIPA (Foundation for Intelligent Physical Agents) Especificaciones de mecanismos y aplicaciones Gestión de la plataforma Juan Pavón Mestras Facultad de Informática UCM, 2005-06 73 Agentes Móviles Grasshopper Region MAF Agent System Actualmente está descatalogado y no está disponible al público Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Management un marco abierto para la implantación y personalización de servicios en red capacidad de desarrollar nuevos servicios (luego nuevas posibilidades de negocios en la red) Communication 74 • siguiendo un modelo antropomórfico (fácil de modelar) • comercio electrónico integral Communication Place Management Potencian al usuario individual MA Persistence MA Registration Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles Los AM ofrecen Agency MAF Agent System A través de una interfaz gráfica: consola de Agencia y consola de Registro Conclusiones Region Registry Core Agency Múltiples protocolos: Java RMI, sockets, SSL, CORBA Varios modos de comunicación: síncrono, asíncrono, multicast Security SA especialmente en entornos como Internet el usuario gana en capacidad de cómputo, automatización de tareas distribuidas (por ejemplo, búsqueda y filtrado de información), menor dependencia del acceso a la red MA Transport Agentes Móviles 75 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 76 Conclusiones Enlaces La tecnología de AM es viable Java es lo más estándar para realizar plataformas de AM Los aspectos de seguridad pueden apoyarse en las facilidades de Java (verificación de bytecode, Java Security, Java Card) Grupos de normalización (OMG, FIPA) han abordado el problema de la heterogeneidad de plataformas Cetus Links Lista de plataformas de agentes móviles Conferencia MATA (Mobile Aware Technologies and Applications) http://www.cetus-links.org/oo_mobile_agents.html http://mole.informatik.uni-stuttgart.de/mal/preview/preview.html http://www.informatik.uni-trier.de/~ley/db/conf/mata/index.html El gran problema es la implantación de platformas de soporte de agentes móviles en internet Además, la mayor parte de las aplicaciones que se pueden realizar con agentes móviles también se pueden realizar con middleware cliente-servidor, que es una solución más probada, sencilla, y extendida Su aplicación hoy día parece concretarse en dominios concretos Redes ad-hoc Redes activas Documentos activos Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 77 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 78