Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AgentesMoviles Español
AgentesMoviles Español
Curso de doctorado:
Agentes Inteligentes
Tecnologa: Java
Agentes Mviles
Juan Pavn Mestras Dep. de Sistemas Informticos y Programacin
Arquitectura de
Sistema de Agentes Mviles
http://grasia.fdi.ucm.es
Evaluacin de sistemas
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06
Agentes Mviles
Conceptos
Agente
Mvil
Agentes Mviles
Agentes Mviles
Conceptos
Agentes mviles y Agentes inteligentes
Los agentes inteligentes son capaces de ofrecer un comportamiento inteligente: razonamiento, planificacin, aprendizaje, etc. Los agentes mviles (AM) tienen la capacidad de moverse por distintos nodos de una red (una o ms 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
Conceptos
Agente mvil
Agente que realiza sus tareas no slo en la computadora de su propietario, sino tambin en otras en la red
buscando informacin en beneficio de su propietario o negociando y cerrando tratos en su nombre o utilizando servicios remotos
Agentes Mviles
Sistema local
Sistema remoto
Cdigo
Sistema local Sistema remoto
Evaluacin remota
Cdigo + Datos Cdigo + Datos
Sistema de Agentes A
Sistema de Agentes B
Sistema de Agentes C
Agentes Mviles
Agentes Mviles
AM vs. RPC
Llamada a procedimiento remoto (RPC)
La red pasa cada peticin por separado, ... y devuelve una respuesta por separado Hay acuerdo en los procedimientos, sus parmetros y tipo de resultados Puede ocasionar mucho trfico de red
Programacin remota
Ejecucin remota de trabajos (IBM Remote Job Entry, aos 70) Telecarga de funciones a bases de datos (funciones a los datos) Comparticin de recursos, balance de carga, etc. Java applets Agentes m mviles
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06
Cliente
...
peticin respuesta
Servidor
Agentes Mviles
Agentes Mviles
10
AM vs. RPC
Programacin 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)
Adaptacin al cliente
Entorno del servidor
Cliente
cdigo + estado
Servidor
Cliente
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06 Juan Pavn Mestras Facultad de Informtica UCM, 2005-06
Agentes Mviles
11
Agentes Mviles
12
Cliente
Peticin Resultado
Servidor
Cliente
Lanza
Agente
Peticin
Servidor
Resultado
Cliente
migra
Servidor Servidor Cliente Cliente
Peticin Resultado
Sistema A
Red
Sistema B
Sistema de Agentes A
Red
Sistema de Agentes B
Agentes Mviles
13
Agentes Mviles
14
Haz esto
Agenda: Haz esto en B; Haz eso en C; Vuelve. Sistema de Agentes A Servidor Sistema de Agentes B
Cliente
Servidor
Sistema A
Red
Sistema B
Sistema de Agentes A
Red
Sistema de Agentes B
Haz eso
Servidor Sistema de Agentes C
Agentes Mviles
15
Agentes Mviles
16
Controlador
Controlador
STB
NC
PC en red
WS
B Comp.
C Comp.
Comp.
Agentes Mviles
Agentes Mviles
18
Gestin de fallos
Quin detecta los fallos?
Eficiencia (el cdigo interpretado suele ser lento) Heterogeneidad de sistemas de AM Sobrecarga de la transferencia del cdigo
tiene que compararse con las interacciones
Deteccin de virus
Se puede confiar en el agente?
Agentes Mviles
19
Agentes Mviles
20
Aplicaciones
Servicios de informacin en Internet
Recuperacin y extraccin de informacin de mltiples lugares Bsqueda y filtrado de la informacin Control de cambios Personalizacin Difusin de informacin
Aplicaciones: Internet
Ejemplo: Documentos activos
Todos los usuarios tienen un sistema de agentes A un agente de correo electrnico 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
Comercio electrnico
Mercado de servicios electrnico Negociacin
de servicios
Flexibilidad de la distribucin
Procesamiento paralelo Gestin de procesos (workflow) Juegos (agentes que representan jugadores)
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06 Agentes Mviles
Sistema de AM Juan
Sistema de AM Jefe
Agentes Mviles
Sistema de AM Director
22
Aplicaciones: Telecomunicaciones
Gestin de red
Ejemplo: Descubrir la configuracin de la red
Aplicaciones: Telecomunicaciones
Gestin de red
Ejemplos de gestin de red basada en netlets
Deteccin y correccin de fallos Control del rendimiento
migrar
Sistema de Operaciones
ERROR
clonar
Agentes Mviles
23
Agentes Mviles
24
Agentes Mviles
25
Agentes Mviles
26
Requisitos plataforma AM
Requisitos del modelo de agentes:
Todo agente software est definido por:
Modelo Modelo Modelo Modelo de ciclo de vida computacional de seguridad de comunicacin
Requisitos genricos
Rendimiento y eficiencia Portabilidad Abierto Integracin y soporte de sistemas propietarios Escalabilidad Mantenibilidad
Agentes Mviles
27
Agentes Mviles
28
Agentes Mviles
29
Agentes Mviles
30
Problemas de seguridad:
Lugar
Lugar
Plataforma segura?
Comunicaciones
Sistema de Agentes
Infraestructura de comunicaciones
Sistema Operativo
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06 Agentes Mviles
Adquisicin o alteracin no autorizada de datos Uso no autorizado de recursos Ataque malicioso a datos o recursos (o a otros agentes) Duplicacin de agentes Confidencialidad
31
Agentes Mviles
32
Autenticacin de agentes
Mediante autenticadores
Un autenticador es un algoritmo que determina la autenticidad de un agente Los autenticadores tienen tipos que estn registrados con una autoridad de nombres Pueden ser vlidos para un salto o para mltiples saltos
- FIPA ACL
RPC, CORBA
33
Agentes Mviles
34
Agentes Mviles
35
Agentes Mviles
36
Sistema de Agentes A
Sistema de Agentes B
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 ejecucin
Seguridad Importacin Directorio Execution Execution Ejecucin Gestin Exportacin
Creacin de agentes
Proporcionar nombres de agentes nicos
Almacenamiento
Comunicacin
37
Agentes Mviles
38
TCL
DAgents, SMIA
Estado
Valores que determinan qu hacer cuando la ejecucin del agente contine en el sistema de agentes destino
C/C++
Omniware
Otros Localizacin
Direccin del lugar (y sistema de agentes) donde reside el agente Telescript Lisp, Scheme, propietarios, etc.
Agentes Mviles
39
Agentes Mviles
40
Java
Java facilita la realizacin de Agentes Mviles
Movilidad de cdigo
Applets, Servlets, Jini Mquina virtual Java disponible en casi todo HW/S.O.
Java
Seguridad en distintos niveles:
Seguridad de bajo nivel
Diseo del lenguaje (eliminacin de punteros) Comprobaciones en tiempo de compilacin (uso de tipos, violacin de acceso, desbordamientos de pila,etc.) Verificacin de bytecode al cargar y durante ejecucin (lmites de arrays, etc.)
Seguridad
Verificador de bytecode, Java Security, Java Card
Java chips
permitir la utilizacin de agentes mviles en sistemas empotrados
Agentes Mviles
41
Agentes Mviles
42
Java Seguridad
Clases Clasesjava java (.java) (.java)
bytecode externo
Java Seguridad
RED Clases .class
Las clases cargadas desde la red tienen restricciones: * No pueden acceder al sistema local de archivos * Acceso de red slo al nodo de origen * No pueden acceder a las propiedades del sistema * No pueden acceder a cdigo nativo
javac
Security Sandbox
Verificador Cargador de clases Gestor de Seguridad
bytecodes (.class)
Clases firmadas
archivos .jar
Clases locales
archivos .jar .zip .class
43
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06
Agentes Mviles
44
Java Serializacin
Serializar
0111010101110
Clases
Objetos
Archivo o Stream
Lugar
Lugar encuentro
Lugar
Java RMI
Sistema de Agentes
MVJ
0111010101110
Deserializar
Agentes Mviles
45
Agentes Mviles
46
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 slo una vez, cuando el agente se destruye
Asimismo, un Agente Mvil tiene una identidad, que puede implementarse como una clase AgentIdentity y ofrece un objeto AgentInterface para comunicarse con otros
Agentes Mviles
47
Agentes Mviles
48
Los distintos sistemas de AM difieren en capacidades, arquitectura e implementacin: Hace falta una normativa de interoperacin:
La estandarizacin comenz a finales de 1996
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06 Agentes Mviles Juan Pavn Mestras Facultad de Informtica UCM, 2005-06
49
Agentes Mviles
50
Sistemas de AM comerciales
General Magic: Telescript y Odyssey
http://www.genmagic.com/agents
Sistemas de AM acadmicos
DAgents NOMADS KAoS Agents for Remote Action (ARA) Mole Sumatra ... Una lista ms extensa en
www.informatik.uni-stuttgart.de/ipvr/vs/projekte/mole/mal/mal.html
IBM: Aglets
http://www.trl.ibm.co.jp/aglets
ObjectSpace: Voyager
http://www.objectspace.com/Voyager
IKV++: Grasshopper
http://www.ikv.de
Agentes Mviles
51
Agentes Mviles
52
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:
implementacin basada en Java soporta Java RMI, CORBA IIOP, y DCOM
Viaje RED
Lugar directorio Aplicacin de compra
Reunin
Agentes
Lugar billetes
Lugar Floristera
Agentes Mviles
53
Agentes Mviles
54
Telescript
Componentes
Lugares
donde los agentes pueden estar, trabajar y proporcionar servicios a otros agentes Tanto clientes como servidores pueden ofrecer lugares
Desaparece la distincin entre cliente y servidor
Telescript
Componentes (cont.)
Reuniones
si estn en el mismo lugar, dos agentes pueden comunicarse invocando procedimientos uno del otro instruccin meet
Conexiones
los agentes se pueden conectar si estn en distintos lugares
Agentes
mviles o estacionarios independientes, se ejecutan concurrentemente
Autoridades
permiten identificar de quin es y de dnde viene un agente un lugar puede denegar la entrada a un agente que no est autorizado
Viajes
instruccin go para moverse de un lugar a otro en medio de su ejecucin
Permisos
las autoridades limitan lo que pueden hacer agentes y lugares dndoles permisos Execute: un agente puede tener permiso para crear otro agente Use: un agente puede tener permiso para usar algn recurso
Agentes Mviles
55
Agentes Mviles
56
Telescript
Lenguaje de programacin de agentes
Para escribir agentes y las superficies de los lugares que visitan
Completo Orientado a objetos
clase base Agent
Telescript Engine
Ejecuta o interpreta los agentes Ofrece un API para acceder a:
Transporte Almacenamiento Aplicaciones externas
Dinmico: al moverse un agente, puede que tenga que moverse con l su definicin de clase Persistencia Portable: mquina virtual (Engine) Seguro: control de acceso a recursos Centrado en las comunicaciones: go, meet, communicate
Agentes Engine
Transporte Aplicaciones externas
Agentes Mviles
Almacenamiento
58
Agentes Mviles
57
Telescript Protocolos
Gestionan la comunicacin entre Engines Permiten transportar agentes Pueden ejecutarse sobre varios protocolos (p.ej. TCP/IP) Ofrecen servicios de autenticacin y seguridad
Odyssey
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 depuracin de agentes distribuidos (audit trail)
Agentes
Codificacin de agentes Transporte
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06
Engine
Aplicaciones externas
Agentes Mviles
Almacenamiento
59
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06 Agentes Mviles
60
Aglets Arquitectura
Aglet
Aglet
Java Runtime
Almacenamiento
Agentes Mviles
61
Agentes Mviles
62
Aglets agletsd
El demonio de aglets (agletsd) se puede ejecutar como Applet o como aplicacin Arranca el servidor de aglets Tahiti Proporciona una interfaz grfica de gestin del servidor
Aglets
Ciclo de vida
Creacin
onCreation() onDisposal()
Start
Movilidad
onArrival() onDispatching() onReverting()
Created
Clone
onClone()
Persistencia
Dispatched
Arrived
Java Runtime
Almacenamiento
63
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06 Agentes Mviles
Disposed
End
64
Agentes Mviles
Aglets
Aglets
Ejemplo (continuacin)
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 debera verse); } catch (Exception e) { /* tratamiento */ } } else { System.out.println(Arrancando +donde()); // ... } }
65
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06 Agentes Mviles
66
NOMADS
Implementacin 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.
Agentes Mviles
67
Agentes Mviles
68
Agents TCL
Sistema de AM desarrollado en el Darmouth College http://agent.cs.dartmouth.edu/
Ahora denominado :
DAgents Servidor de Nombres Tcl Sistema de atraque Monitor de red Java Servidor TCP/IP e-mail Agentes Scheme
Caractersticas:
Arquitectura en capas que soporta:
Varios lenguajes: Tcl, Java, Scheme Varios mecanismos de transporte (el principal es TCP/IP)
Seguridad
Agentes Mviles
69
Agentes Mviles
70
Mquina 3
4. detecta reconexin
Porttil 1
M1 muelle_P1
M3 3. atraca el agente
Porttil 2
Agentes Mviles
71
Agentes Mviles
72
Estandarizacin
Gestin de la plataforma
A travs de una interfaz grfica: consola de Agencia y consola de Registro
Agentes Mviles
73
Agentes Mviles
74
Grasshopper
Region
Region Registry MAF Agent System Management Communication
Conclusiones
Los AM ofrecen
un marco abierto para la implantacin y personalizacin de servicios en red
siguiendo un modelo antropomrfico (fcil de modelar)
Transport
Agentes Mviles
75
Agentes Mviles
76
Conclusiones
La tecnologa de AM es viable
Java es lo ms estndar para realizar plataformas de AM Los aspectos de seguridad pueden apoyarse en las facilidades de Java (verificacin de bytecode, Java Security, Java Card) Grupos de normalizacin (OMG, FIPA) han abordado el problema de la heterogeneidad de plataformas
Enlaces
Cetus Links
http://www.cetus-links.org/oo_mobile_agents.html
El gran problema es la implantacin de platformas de soporte de agentes mviles en internet Adems, la mayor parte de las aplicaciones que se pueden realizar con agentes mviles tambin se pueden realizar con middleware cliente-servidor, que es una solucin ms probada, sencilla, y extendida Su aplicacin hoy da parece concretarse en dominios concretos
Redes ad-hoc Redes activas Documentos activos
Juan Pavn Mestras Facultad de Informtica UCM, 2005-06 Agentes Mviles
77
Agentes Mviles
78