Curso de doctorado:
Agentes Inteligentes
Agentes Móviles
Juan Pavón Mestras
Dep. de Sistemas Informáticos y Programación
http://grasia.fdi.ucm.es
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 2
Estructura
Conceptos yEjemplos de aplicación
Tecnología:Java
Requisitos deSistema de
Agentes Móviles
Evaluación desistemas
Arquitectura deSistema de
Agentes Móviles
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 3
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 4
Conceptos
Agente Móvil
Entidadautónomaproactivay reactiva
Capacidad de migrar por nodos de una red de computadores
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 5
Conceptos
� Agentes móviles y Agentes inteligentes
� 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
� Hoy hablaremos de agentes móviles:
� 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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 6
Conceptos
� Agente móvil
� Agente que realiza sus tareas no sólo en la computadora de su propietario, sino también en otras en la red
• buscando información en beneficio de su propietario
• o negociando y cerrando tratos en su nombre
• o utilizando servicios remotos
� 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
� 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
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 7
Taxonomía del código móvil
Sistema deAgentes A
Código+
Datos
Sistema deAgentes B
Sistema deAgentes C
Código+
Datos
Agentes móviles autónomos(migración)
Sistema local
Código
Sistema remoto
Evaluación remota
Sistema local
Código
Sistema remoto
Código bajo demanda
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 8
Taxonomía del código móvil
� Dependiente de la aplicación� applet
aplicación cargada por la red para ejecutar localmente
� servletagente que es cargado en un lugar remoto donde seráactivado como un servidor
� extletagente que es cargado en un lugar remoto para extender las capacidades del receptor
� degletagente en el que se delega la autoridad para realizar una tarea determinada (acabada la tarea, desaparece)
� netletagente en el que se delega la autoridad para realizar una tarea permanente (esto es, nunca termina)
� pigletagente malicioso que supone riesgo de seguridad
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 9
AM vs. RPC
Paradigmas de programación distribuida
� 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 mAgentes móóvilesviles
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 10
AM vs. RPC
� Llamada a procedimiento remoto (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
Entorno del cliente
Cliente
Entorno del servidor
Servidor
petición
respuesta...
petición
respuesta
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 11
AM vs. RPC
� Programación remota
� 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)
Entorno del cliente
Cliente
Entorno del servidor
Servidor
peticiónrespuesta
Cliente
código+
estado
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 12
Agentes móviles: ventajas
� Eficiencia
� 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
� 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
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 13
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
Cliente Servidor
Petición
Resultado
Petición
Resultado
Agente Servidor
Petición
Resultado
Petición
Resultado
Cliente
Lanza
Termina
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 14
Agentes móviles: ventajas
� Reducción del tráfico en la red y de la capacidad de cómputo del cliente� 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)
Sistema A Sistema B
Cliente Servidor
Red Sistema de
Agentes A
Sistema de
Agentes B
Servidor
Red
migra
Cliente Cliente
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 15
Agentes móviles: ventajas
� Robusto: reducción de la dependencia de la disponibilidad de la red y del cliente/servidor
� los Agentes Móviles migrados al sistema servidor no se ven afectados por los fallos del cliente o de la red
Sistema de
Agentes A
Sistema de
Agentes B
Servidor
RedSistema A Sistema B
Cliente Servidor
Red
Cliente Cliente
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 16
Agentes móviles: ventajas
� Automatización del proceso de tareas distribuidas
� Los Agentes Móviles realizan tareas específicas en lugares diferentes
Agenda:
Haz esto en B;
Haz eso en C;
Vuelve.
Sistema de
Agentes A
Sistema de
Agentes B
Servidor
Sistema de
Agentes C
Servidor
Haz esto
Haz eso
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 17
Agentes móviles: ventajas
� Proceso de tareas local/descentralizado
� mayor eficiencia, fiabilidad, seguridad, etc.
Sistema de
Agentes A
Sistema de
Agentes BSistema B
Sistema A
Controlador
Sistema C
Cliente
Servidor
Sistema de
Agentes C
Controlador
Controlador
Controlador
Cliente
Servidor
Cliente
Servidor
Cliente
Servidor
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 18
Agentes móviles: ventajas
� 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
Sistemas del clienteNC PC en redSTB WS
Sistema Proveedor del Servicio
Sistema de Agentes
Cliente
Comp.
A
Comp.
B
C
Comp.
A
Comp.
B
Comp.
Sistema de Agentes
Proveedor del Servicio
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 19
Agentes móviles: cuestiones
� Seguridad
� Autenticación del usuario
• ¿Quién envía el agente móvil?
� Autenticación del servidor o entorno de ejecución de agentes
• ¿No caerá el agente en una trampa?
� Derechos de ejecución de agentes de un usuario en un servidor
• ¿Pueden ejecutarse los agentes? ¿Qué funciones pueden realizar?
� Capacidad del agente para pagar por los servicios utilizados
• Teleclicks (General Magic)
� Detección de virus
• ¿Se puede confiar en el agente?
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 20
Agentes móviles: cuestiones
� Control de ejecución de las tareas
� la localización y el estado de un agente pueden ser desconocidos
� Gestión de fallos
� ¿Quién detecta los fallos?
� Eficiencia (el código interpretado suele ser lento)
� Heterogeneidad de sistemas de AM
� Sobrecarga de la transferencia del código
� tiene que compararse con las interacciones
� Acceso a servicios existentes (Internet, CORBA, etc.)
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 21
Aplicaciones
� Servicios de información en Internet� Recuperación y extracción de información de múltiples lugares� Búsqueda y filtrado de la información� Control de cambios� Difusión de información
� Comercio electrónico� Mercado de servicios electrónico� Negociación
� Equipos móviles y PCs en el hogar� Conexiones intermitentes y bajo ancho de banda
� Redes públicas de telecomunicaciones� Provisión de servicios bajo demanda� Descentralización del control y gestión de redes
� Procesamiento paralelo
� Gestión de procesos (workflow)
� Juegos (agentes que representan jugadores)
Personalización
de servicios
Flexibilidad de
la distribución
Delegación
de tareas
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 22
Aplicaciones: Internet
� Ejemplo: Documentos activos
� 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
• 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)
Sistema de AM
Juan
Sistema de AM
Director
crea
Sistema de AM
Jefe
��
�
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 23
Aplicaciones: Telecomunicaciones
� Gestión de red
� Ejemplo: Descubrir la configuración de la red
clonar
migrar
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 24
Aplicaciones: Telecomunicaciones
� Gestión de red
� Ejemplos de gestión de red basada en netlets
• Detección y corrección de fallos
• Control del rendimiento
ERRORSistema
de
Operaciones
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 25
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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 26
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 27
Requisitos plataforma AM
� Requisitos del modelo de agentes:
� Todo agente software está definido por:
• Modelo de ciclo de vida
• Modelo computacional
• Modelo de seguridad
• Modelo de comunicación
� y los agentes móviles añaden:
• Modelo de navegación
� Requisitos genéricos• Rendimiento y eficiencia
• Portabilidad
• Abierto
• Integración y soporte de sistemas propietarios
• Escalabilidad
• Mantenibilidad
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 28
Modelo de Agentes Móviles
Modelo de ciclo de vida
� Describe los servicios de gestión de agentes:
� Servicios de factoría:• Creación, iniciación, suspensión, arranque, parada,
eliminación de agentes
� 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)
� Agentes basados en tareas• Se reinician desde el mismo punto en cada ocasión y
lugar
• No guardan el contexto
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 29
Modelo de Agentes Móviles
Modelo de ciclo de vida
Inicialización
Arrancando Parando
Acabando
concluir
arrancar
arrancar
parar
iniciar
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 30
Modelo de Agentes Móviles
Modelo computacional
� Describe las capacidades de computación de los agentes:� ¿Cómo se ejecutan los agentes?
• Como procesos separados, como hilos de ejecución, etc.
� Primitivas que pueden afectar la ejecución del agente• Creación, control de ejecución, eliminación de agentes
• Parar, migrar y continuar el agente
• Manipulación de datos
� Plataforma de sistema de agentes• Dominios
� Nombrado, direccionamiento, localización
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 31
Modelo de Agentes Móviles
Sistema Operativo
Infraestructura
de comunicaciones
Sistema de Agentes
Lugar Lugar
AgentesAgentes
Elementos básicos
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 32
Modelo de Agentes Móviles
Modelo de seguridad
� En dos sentidos:� Cómo pueden acceder los agentes a los recursos de la red
� Cómo se puede acceder a los agentes
� Problemas de seguridad:
¿Agente = Virus? ¿Plataforma segura? ¿Comunicaciones seguras?
� 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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 33
Modelo de Agentes Móviles
Modelo de seguridad
� Autenticación entre sistemas de agentes
� Autenticación mutua de los sistemas origen y destino
� Autenticación de agentes
� Mediante autenticadores
• 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
� Soporte de la infraestructura de comunicaciones
� Autenticar la autoridad del agente
� Criptografiado en la transmisión de los agentes
� Protección contra inundación
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 34
Modelo de Agentes Móviles
Modelo de comunicación y colaboración
� Entre agentes
� lenguajes de comunicación entre agentes:
• Específicos de agentes• - Knowledge Query Manipulation Language (KQML)
• - FIPA ACL
• RPC, CORBA
� distintos tipos de comunicación:
• Punto a punto
• Difusión
• Punto a multipunto
• Pizarra compartida
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 35
Modelo de Agentes Móviles
Modelo de comunicación y colaboración
� Entre agentes y otras entidades
� Con los usuarios• usuarios finales
• gestor del sistema de agentes
� Con recursos locales al sistema visitado• a través de agentes/servicios del sistema de agentes local
� Con la plataforma de ejecución de agentes• a través de agentes/servicios del sistema de agentes local
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 36
Modelo de Agentes Móviles
Modelo de navegación
� Transporte de un agente (con o sin estado) entre dos entidades computacionales residentes en distintos lugares:� Servicios y protocolos de transferencia de agentes
� Itinerario de un agente móvil� Cómo se especifica el itinerario
� Puede modificarse el itinerario
� Seguimiento del agente• Servicio de localización
• Rastro del agente
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 37
Sistema de Agentes Móviles
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
� Proporcionar nombres de agentes únicos
� Localizar los agentes móviles
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 38
Sistema de Agentes Móviles
Capacidades del sistema de agentes básico
ExportaciónImportación
Almacenamiento
Seguridad
Execution
Comunicación
Directorio Gestión
ExecutionEjecución
Sistema
de Agentes A
Sistema de
Agentes B
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 39
Sistema de Agentes Móviles
Caracterización de un agente móvil
� Nombre� Autoridad + Identidad + Tipo de sistema de agente
� Globalmente único e inmutable
� Estado� Valores que determinan qué hacer cuando la ejecución del
agente continúe en el sistema de agentes destino
� Localización� Dirección del lugar (y sistema de agentes) donde reside el
agente
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 40
Sistema de Agentes Móviles
Lenguajes para programar agentes móviles
� Java
� La mayoría de los sistemas
� TCL
� D’Agents, SMIA
� C/C++
� Omniware
� Otros
� Telescript
� Lisp, Scheme, propietarios, etc.
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 41
Java
� Java facilita la realización de Agentes Móviles
� Movilidad de código
• Applets, Servlets, Jini
• Máquina virtual Java disponible en casi todo HW/S.O.
� Facilidades de comunicación de Java
• sockets, datagramas , Java RMI
• serialización de objetos
• Internet: ftp, http, URL
� Seguridad
• Verificador de bytecode, Java Security, Java Card
� Java chips
• permitirá la utilización de agentes móviles en sistemas empotrados
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 42
Java
� Seguridad en distintos niveles:
� Seguridad de bajo nivel
• 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.)
� Seguridad de alto nivel configurable
• La aplicación instancia un gestor de seguridad de los archivos de clase locales
• Cuidado: un posible atacante podría intentar cambiar las clases del sistema
• El cargador de clases obliga a la separación del espacio de nombres
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 43
Java
Seguridad
Clases java
(.java)
Clases java
(.java)
bytecodes
(.class)
javac
bytecode
externo
Verificador
bytecodeempotrado+ JDK
Cargador
de clases
Cargador de sistemade ficheros
Gestor de
Seguridad
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 44
Java
RED
Security Sandbox
Clases .class
Clases firmadasarchivos .jar
Clases localesarchivos .jar .zip
.class
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 (bibliotecaestándar) no tienen restricciones
Seguridad
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 45
Java
Serialización
Clases Objetos
0111010101110
Serializar
Archivoo Stream
0111010101110
Deserializar
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 46
Implementación de AM con Java
Arquitectura básica
Máquina Virtual Java
Sistema de Agentes
Agente residente
Visitante
Lugar Lugar encuentro
MVJ
Sistema de Agentes
Lugar
Java RMI
Interfazdel agente
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 47
Implementación de AM con Java
Clase Agente Móvil
� 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()
• se llama una sola vez, al crear el agente
� arrancar()
• se llama cada vez que se arranca el agente (por ejemplo, al llegar a un lugar)
� parar()
• se lama cada vez que se va a transferir, almacenar, o antes de eliminarlo
� concluir()
• 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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 48
Implementación de AM con Java
Sistema de agentes� 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 ...;}
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 49
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 50
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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 51
Sistemas de AM comerciales
� General Magic: Telescript y Odyssey• http://www.genmagic.com/agents
� IBM: Aglets• http://www.trl.ibm.co.jp/aglets
� Mitsubishi Electric: Concordia• http://www.meitca.com/HSL/Projects/Concordia
� ObjectSpace: Voyager• http://www.objectspace.com/Voyager
� IKV++: Grasshopper• http://www.ikv.de
� Oracle: Mobile Agents• http://www.oracle.com/products/networking/mobile_agents.html
� Ad Astra Engineering: Jumping Beans• http://www.jumpingbeans.com
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 52
Sistemas de AM académicos
� D’Agents
� NOMADS
� KAoS
� Agents for Remote Action (ARA)
� Mole
� Sumatra
� ...
� Una lista más extensa en www.informatik.uni-stuttgart.de/ipvr/vs/projekte/mole/mal/mal.html
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 53
Telescript y Odyssey
General Magic
� Telescript: primer sistema comercial de AM• Propuesta de patente por General Magic en 1993 (aprobada en 1997)
� Tabriz
� MagicCap
� Odyssey:
� implementación basada en Java
� soporta Java RMI, CORBA IIOP, y DCOM
� Principal aplicación: mercado electrónico� 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)
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 54
Telescript y Odyssey
Modelo de agentes móviles
Aplicación de compra
Centro comercial electrónico
REDLugar
directorioLugar billetes
Lugar Floristería
AgentesReuniónViaje
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 55
Telescript
� Componentes
� Lugares
• donde los agentes pueden estar, trabajar y proporcionar servicios a otros agentes
• Tanto clientes como servidores pueden ofrecer lugares
• Desaparece la distinción entre cliente y servidor
� Agentes
• móviles o estacionarios
• independientes, se ejecutan concurrentemente
� Viajes
• instrucción go para moverse de un lugar a otro en medio de su ejecución
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 56
Telescript
� Componentes (cont.)
� Reuniones
• si están en el mismo lugar, dos agentes pueden comunicarse invocando procedimientos uno del otro
• instrucción meet
� Conexiones
• los agentes se pueden conectar si están en distintos lugares
� Autoridades
• 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
� 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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 57
Telescript
� Lenguaje de programación de agentes
� Para escribir agentes y las superficies de los lugares que visitan
• Completo
• Orientado a objetos
• 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
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 58
Telescript
Engine
� Ejecuta o interpreta los agentes
� Ofrece un API para acceder a:� Transporte� Almacenamiento� Aplicaciones externas
TransporteAplicaciones
externasAlmacenamiento
Engine
Agentes
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 59
Telescript
Protocolos� 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
TransporteAplicaciones
externasAlmacenamiento
Agentes
EngineCodificaciónde agentes
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 60
Odyssey
� Disponible en Windows y Unix, sobre JDK 1.1 (100% pureJava)
� 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 (audittrail)
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 61
Aglets
Aglets Workbenchhttp://sourceforge.net/projects/aglets/
� Desarrollado por IBM Tokyo Research Labs (1996-2002)
aglet = agent + applet
� Armazón (framework) basado en Java para construir aplicaciones distribuidas usando el paradigma de AM
+ Herramientas:
� Servidor de aglets: Tahiti
� Constructor visual de aglets: Tazza
� Lanzador de aglets para la WWW: Fiji
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 62
Aglets
Arquitectura
Transporte Java Runtime Almacenamiento
Máquina Virtual Java
Demonio Aglet + ATP
Aglet Context
Aglet Proxy
Aglet
Aglet Proxy
Aglet
Aglet Context
Aglet Proxy
Aglet
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 63
Aglets
agletsd� 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
Transporte Java Runtime Almacenamiento
Máquina Virtual Java
Demonio Aglet + ATP
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 64
Aglets
Ciclo de vida
� Creación
� onCreation()
� onDisposal()
� Movilidad
� onArrival()
� onDispatching()
� onReverting()
� Clone
� onClone()
� Persistencia
Created
Dispatched Arrived
Disposed
Start
End
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 65
Aglets
Ejemplo (modificado del JAAPI WhitePaper)
import aglet.*;import java.net.URL;
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 remotoSystem.out.println(“en Arrival”+donde());
}
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 66
Aglets
Ejemplo (continuación)
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());// ...
}}
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 67
Aglets: movilidad débil
� Los aglets proporcionan movilidad débil
� Movilidad fuerte sería lo siguiente:
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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 68
NOMADS
� Implementación de movilidad fuerte
� Reimplementa la MV de Java: AROMA VM
� 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
• 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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 69
Agents TCL
� Sistema de AM desarrollado en el Darmouth College
http://agent.cs.dartmouth.edu/
� Ahora denominado : D’Agents� Características:
� Arquitectura en capas que soporta:• 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• Paso de mensajes y flujos (streams)
• RPC
� Seguridad
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 70
Agents TCL
Arquitectura
TCP/IP e-mail
Servidor
Tcl Java Scheme
Servidor de
NombresAgentes
Sistema de
atraque
Monitor de
red
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 71
Agents TCL
Sistema de atraque (Docking system)
Red de conectividad
permanente
Máquina 3
Máquina 2
Máquina 1
Portátil 1
Portátil 3
Portátil 2
muelle_portátil1muelle_portátil2
muelle_portátil3
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 72
Agents TCL
Sistema de atraque (Docking system)
M3M1P1muelle_P1
Cola de agentes
esperando a saltar a M1Cola de agentes
esperando a saltar a P1
1. agent_jump~P1
2. transfiere agente
4. detecta reconexión
3. atraca el agente
5. notifica conexión
6. transferencia de agentes en espera
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 73
Estandarización
� OMG MASIF (Mobile Agent System InteroperabilityFacilities)
� Interoperabilidad de sistemas de agentes
� Define interfaces IDL para mover agentes entre plataformas
� FIPA (Foundation for Intelligent Physical Agents)
� Especificaciones de mecanismos y aplicaciones
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 74
Grasshopper
Grasshopper-2, IKV++
� Plataforma de agentes móviles compatible con OMG MASIF
� Servicios de comunicación� Múltiples protocolos: Java RMI, sockets, SSL, CORBA
� Varios modos de comunicación: síncrono, asíncrono, multicast
� Gestión de la plataforma� A través de una interfaz gráfica: consola de Agencia y
consola de Registro
� Actualmente está descatalogado y no está disponible al público
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 75
Grasshopper
Region
Agency
Place
MA
MA
MA
SA
Core Agency Communication
Management
MAFAgent System
Persistence
Registration
Security
Transport
Region Registry
MAFAgent System
Management
Communication
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 76
Conclusiones
� Los AM ofrecen
� un marco abierto para la implantación y personalización de servicios en red
• siguiendo un modelo antropomórfico (fácil de modelar)
� capacidad de desarrollar nuevos servicios (luego nuevas posibilidades de negocios en la red)
• comercio electrónico integral
� Potencian al usuario individual
� 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
Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 77
Conclusiones
� 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
� 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 MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 78
Enlaces
� Cetus Links
� http://www.cetus-links.org/oo_mobile_agents.html
� Lista de plataformas de agentes móviles
� http://mole.informatik.uni-stuttgart.de/mal/preview/preview.html
� Conferencia MATA (Mobile Aware Technologies and Applications)
� http://www.informatik.uni-trier.de/~ley/db/conf/mata/index.html