Agentes Móviles - Facultad de Informática

Anuncio
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
Descargar