Documente Academic
Documente Profesional
Documente Cultură
Estructura
Agentes Móviles Conceptos y Tecnología:
Ejemplos de Java
aplicación
Juan Pavón Mestras Requisitos de
Departamento de Sistemas Informáticos y Programación Sistema de Arquitectura de
Agentes Móviles Sistema de
Universidad Complutense Madrid
Agentes Móviles
jpavon@sip.ucm.es
Conceptos
Agente Móvil
Entidad Capacidad de
autónoma migrar por nodos
proactiva de una red de
y reactiva computadores
JPM, UCM 2000-01 Agentes Móviles 5 JPM, UCM 2000-01 Agentes Móviles 6
Código
• deglet agente en el que se delega la autoridad para realizar una tarea
Código
+ + determinada (acabada la tarea, desaparece)
Datos Datos
• netlet agente en el que se delega la autoridad para realizar una tarea
Sistema de Sistema de Sistema de
permanente (esto es, nunca termina)
Agentes móviles autónomos
Agentes A Agentes B Agentes C • piglet agente malicioso que supone riesgo de seguridad
(migración)
JPM, UCM 2000-01 Agentes Móviles 7 JPM, UCM 2000-01 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: • La red pasa cada petición por separado,
... y devuelve una respuesta por separado
S Sockets
• Hay acuerdo en los procedimientos, sus parámetros y tipo de resultados
S RPC, Java RMI
• Puede ocasionar mucho tráfico de red
S Middleware: DCE, CORBA, DCOM
JPM, UCM 2000-01 Agentes Móviles 9 JPM, UCM 2000-01 Agentes Móviles 10
JPM, UCM 2000-01 Agentes Móviles 11 JPM, UCM 2000-01 Agentes Móviles 12
Agentes móviles: ventajas Agentes móviles: ventajas
• Ejecución asíncrona de tareas • Reducción del tráfico en la red
S El agente controla la ejecución de la tarea y de la capacidad de cómputo del cliente
S Interesante para entornos de bajo ancho de banda y clientes sencillos
S El cliente puede terminar o continuar haciendo otras cosas S Realiza las interacciones localmente en el sistema objetivo (servidores potentes)
S Recuperación y filtrado de la información en su origen
Cliente S Sólo se devuelven los resultados definitivos
Cliente Servidor Agente Servidor (mediante migración del agente o usando mensajes/RPC)
Lanza
Petición Petición
migra
Resultado Cliente Servidor Servidor
Termina Resultado Cliente Cliente
Petición Petición
Sistema A Sistema B Sistema de Sistema de
Resultado Red Red
Resultado Agentes A Agentes B
JPM, UCM 2000-01 Agentes Móviles 13 JPM, UCM 2000-01 Agentes Móviles 14
Sistema de
Agentes C
JPM, UCM 2000-01 Agentes Móviles 15 JPM, UCM 2000-01 Agentes Móviles 16
Agentes móviles: ventajas Agentes móviles: ventajas
• Proceso de tareas local/descentralizado • Sistemas de usuario final flexibles
S mayor eficiencia, fiabilidad, seguridad, etc. S Dependiendo del sistema del usuario final (PDA, NC, PC, WS), se
pueden cargar los componentes de servicio apropiados para su uso
Controlador
JPM, UCM 2000-01 Agentes Móviles 17 JPM, UCM 2000-01 Agentes Móviles 18
JPM, UCM 2000-01 Agentes Móviles 19 JPM, UCM 2000-01 Agentes Móviles 20
Aplicaciones Aplicaciones: Internet
• Servicios de información en Internet Ejemplo (General Magic): Buscando la cámara de fotos más barata
S Recuperación y extracción de información de múltiples lugares S Tras decidirse por el modelo X, Pepe le solicita a su comunicador personal
S Búsqueda y filtrado de la información que le busque dónde comprarla. En 15 minutos tiene los nombres,
S Control de cambios direcciones y teléfonos de las tres tiendas de su ciudad con los precios más
S Difusión de información Personalización bajos. Puede comprobar que se ahorra 10.000 Ptas. sobre el precio de la
• Comercio electrónico de servicios tienda más cercana en una tienda de otro barrio de la ciudad.
S Mercado de servicios electrónico
S Negociación
• Equipos móviles y PCs en el hogar Flexibilidad de
S Conexiones intermitentes y bajo ancho de banda la distribución
• Redes públicas de telecomunicaciones INTERNET
S Provisión de servicios bajo demanda Pepe Pepe Directorio Pepe Cámaras
S Descentralización del control y gestión de redes Delegación
• Procesamiento paralelo de tareas Aplicación Directorio Cámaras
• Gestión de procesos (workflow) de búsqueda
Sistema de agentes móviles
• Juegos (agentes que representan jugadores)
Servidor
JPM, UCM 2000-01 Agentes Móviles 21 JPM, UCM 2000-01 Agentes Móviles 22
JPM, UCM 2000-01 Agentes Móviles 25 JPM, UCM 2000-01 Agentes Móviles 26
SOServicio
SInundación con alarmas Sistema gestor (SO)
Carga AM de gestión
SORed SORed SMantenimiento complejo
SLento ante cambios de los Cooperación
SOER SOER Elementos de Red (ER) CMIP CMIP posible CMIP
Sistema ERROR
migrar
de
Operaciones
clonar
JPM, UCM 2000-01 Agentes Móviles 29 JPM, UCM 2000-01 Agentes Móviles 30
migrar
clonar
JPM, UCM 2000-01 Agentes Móviles 31 JPM, UCM 2000-01 Agentes Móviles 32
Requisitos plataforma AM
• Requisitos del modelo de agentes:
S Todo agente software está definido por:
o Modelo de ciclo de vida
o Modelo computacional
o Modelo de seguridad
o Modelo de comunicación
S y los agentes móviles añaden:
o Modelo de navegación
• Requisitos genéricos
o Rendimiento y eficiencia
o Portabilidad
o Abierto
o Integración y soporte de sistemas propietarios
o Escalabilidad
o Mantenibilidad
JPM, UCM 2000-01 Agentes Móviles 35 JPM, UCM 2000-01 Agentes Móviles 36
Modelo de Agentes Móviles Modelo de Agentes Móviles
Modelo computacional Elementos básicos
Agentes Agentes
• Describe las capacidades de computación de los agentes:
S ¿Cómo se ejecutan los agentes?
o Como procesos separados, como hilos de ejecución, etc.
S Primitivas que pueden afectar la ejecución del agente
o Creación, control de ejecución, eliminación de agentes
o Parar, migrar y continuar el agente Lugar Lugar
o Manipulación de datos
S Plataforma de sistema de agentes Sistema de Agentes
o Dominios
Infraestructura
S Nombrado, direccionamiento, localización de comunicaciones
Sistema Operativo
JPM, UCM 2000-01 Agentes Móviles 37 JPM, UCM 2000-01 Agentes Móviles 38
JPM, UCM 2000-01 Agentes Móviles 41 JPM, UCM 2000-01 Agentes Móviles 42
JPM, UCM 2000-01 Agentes Móviles 43 JPM, UCM 2000-01 Agentes Móviles 44
Sistema de Agentes Móviles Sistema de Agentes Móviles
Capacidades del sistema de agentes básico Caracterización de un agente móvil
• Nombre
S Autoridad + Identidad + Tipo de sistema de agente
Sistema Sistema de S Globalmente único e inmutable
de Agentes A Agentes B
• Estado
S Valores que determinan qué hacer cuando la ejecución del agente
Seguridad Directorio Gestión continúe en el sistema de agentes destino
Almacenamiento Comunicación
JPM, UCM 2000-01 Agentes Móviles 45 JPM, UCM 2000-01 Agentes Móviles 46
Java Java
Java hace viable la implantación de Agentes Móviles Seguridad
• Movilidad de código
S Applets, Servlets, Jini
• Diferentes niveles:
S Máquina virtual Java disponible en casi todo HW/S.O. S Seguridad de bajo nivel
o Diseño del lenguaje (eliminación de punteros)
• Facilidades de comunicación de Java
o Comprobaciones en tiempo de compilación (uso de tipos, violación de acceso,
S sockets, datagramas , Java RMI
desbordamientos de pila,etc.)
S serialización de objetos
o Verificación de bytecode al cargar y durante ejecución (límites de arrays, etc.)
S Internet: ftp, http, URL
S Seguridad de alto nivel configurable
• Seguridad o La aplicación instancia un gestor de seguridad de los archivos de clase locales
S Verificador de bytecode, Java Security, Java Card
Cuidado: un posible atacante podría intentar cambiar las clases del
• Java chips sistema
S permitirá la utilización de agentes móviles en sistemas empotrados o El cargador de clases obliga a la separación del espacio de nombres
JPM, UCM 2000-01 Agentes Móviles 47 JPM, UCM 2000-01 Agentes Móviles 48
Java Java
Seguridad Seguridad
Clases java
(.java) RED
Las clases cargadas desde la red tienen
bytecode restricciones:
externo
javac Clases .class * No pueden acceder al sistema local de archivos
* Acceso de red sólo al nodo de origen
Security Sandbox * No pueden acceder a las propiedades del sistema
Cargador * No pueden acceder a código nativo
bytecodes Verificador
(.class) de clases
Clases firmadas Las clases firmadas pueden tener algunas
archivos .jar restricciones eliminadas
Gestor de
bytecode Cargador Seguridad
empotrado de sistema Clases locales Las clases cargadas localmente (biblioteca
+ JDK de ficheros archivos .jar .zip .class estándar) no tienen restricciones
JPM, UCM 2000-01 Agentes Móviles 49 JPM, UCM 2000-01 Agentes Móviles 50
Deserializar
JPM, UCM 2000-01 Agentes Móviles 51 JPM, UCM 2000-01 Agentes Móviles 52
Implementación de AM con Java Implementación de AM con Java
Clase Agente Móvil Sistema de agentes
• Toda clase que implemente un agente móvil debe heredar de una clase • Ofrecerá una interfaz remota con métodos para transferir agentes:
genérica MobileAgent, que ofrece los siguientes métodos (ciclo de vida) import java.rmi.Remote;
que pueden redefinirse: import java.rmi.RemoteException;
S inicializar()
o se llama una sola vez, al crear el agente interface SistemaAgentes extends Remote {
S arrancar() public boolean permisoTransferencia (AgentIdentity agentid,
o se llama cada vez que se arranca el agente (por ejemplo, al llegar a un lugar) SistemaAgentes servidor) throws ...;
S parar() public void empiezaTransferencia (AgentIdentity agentid) throws ...;
o se lama cada vez que se va a transferir, almacenar, o antes de eliminarlo public void finTransferencia (AgentIdentity agentid) throws ...;
S concluir() public void transferenciaArchivoRecursos (AgentIdentity agentid)
o se llama sólo una vez, cuando el agente se destruye throws ...;
public void transferenciaArchivoDatos (AgentIdentity agentid) throws
• Asimismo, un Agente Móvil tiene una identidad, que puede
...;
implementarse como una clase AgentIdentity }
• y ofrece un objeto AgentInterface para comunicarse con otros
JPM, UCM 2000-01 Agentes Móviles 53 JPM, UCM 2000-01 Agentes Móviles 54
JPM, UCM 2000-01 Agentes Móviles 57 JPM, UCM 2000-01 Agentes Móviles 58
• Agentes
RED Lugar
Lugar Lugar S móviles o estacionarios
Floristería
directorio billetes S independientes, se ejecutan concurrentemente
JPM, UCM 2000-01 Agentes Móviles 59 JPM, UCM 2000-01 Agentes Móviles 60
Telescript Telescript
Componentes (cont.) Lenguaje de programación de agentes
• Reuniones
S si están en el mismo lugar, dos agentes pueden comunicarse invocando • Para escribir agentes y las superficies de los lugares que
procedimientos uno del otro visitan
S instrucción meet
S Completo
• Conexiones S Orientado a objetos
S los agentes se pueden conectar si están en distintos lugares
o clase base Agent
• Autoridades S Dinámico: al moverse un agente, puede que tenga que moverse con
S permiten identificar de quién es y de dónde viene un agente
S un lugar puede denegar la entrada a un agente que no esté autorizado él su definición de clase
S Persistencia
• Permisos
S las autoridades limitan lo que pueden hacer agentes y lugares dándoles S Portable: máquina virtual (Engine)
permisos S Seguro: control de acceso a recursos
S Execute: un agente puede tener permiso para crear otro agente
S Centrado en las comunicaciones: go, meet, communicate
S Use: un agente puede tener permiso para usar algún recurso
JPM, UCM 2000-01 Agentes Móviles 61 JPM, UCM 2000-01 Agentes Móviles 62
Telescript Telescript
Engine Protocolos
• Ejecuta o interpreta los agentes • Gestionan la comunicación entre Engines
• Ofrece un API para acceder a: • Permiten transportar agentes
S Transporte • Pueden ejecutarse sobre varios protocolos (p.ej. TCP/IP)
S Almacenamiento
• Ofrecen servicios de autenticación y seguridad
S Aplicaciones externas
Agentes Agentes
Codificación
Engine de agentes Engine
Aplicaciones Aplicaciones
Transporte Almacenamiento Transporte Almacenamiento
externas externas
JPM, UCM 2000-01 Agentes Móviles 63 JPM, UCM 2000-01 Agentes Móviles 64
Odyssey Aglets
• Disponible en Windows y Unix, sobre JDK 1.1 (100% Aglets Workbench
pure Java)
• Desarrollado por IBM Tokyo Research Labs (1996)
• Soporta varios protocolos para transportar agentes:
S Java RMI, CORBA IIOP, DCOM aglet = agent + applet
• Acceso a objetos remotos con CORBA y bases de datos • Armazón (framework) basado en Java para construir
aplicaciones distribuidas usando el paradigma de AM
relacionales con JDBC +
• Mecanismo de depuración de agentes distribuidos (audit Herramientas:
trail) S Servidor de aglets: Tahiti
S Constructor visual de aglets: Tazza
S Lanzador de aglets para la WWW: Fiji
JPM, UCM 2000-01 Agentes Móviles 65 JPM, UCM 2000-01 Agentes Móviles 66
Aglets Aglets
Arquitectura agletsd
• El demonio de aglets (agletsd) se puede ejecutar como Applet o como
aplicación
Aglet Aglet Aglet • Arranca el servidor de aglets Tahiti
• Proporciona una interfaz gráfica de gestión del servidor
Aglet Proxy Aglet Proxy Aglet Proxy
Aglet Context Aglet Context
Demonio Aglet + ATP Demonio Aglet + ATP
JPM, UCM 2000-01 Agentes Móviles 67 JPM, UCM 2000-01 Agentes Móviles 68
Aglets Aglets
Ciclo de vida Ejemplo (modificado del JAAPI WhitePaper)
package agletbook;
• Creación
Start import aglet.*;
S onCreation() import java.net.URL;
S onDisposal() public class EjemploAglet extends Aglet {
private boolean remoto_ = false;
• Movilidad Created
private String who() {
S onArrival() return “ EjemploAglet”+(remoto_ ? “ (remoto) “ : “ (original)”);
S onDispatching() }
S onReverting() public boolean onDispatching(URL url) {
Dispatched Arrived System.out.println(“en Dispatching”+donde());
• Clone }
S onClone() public boolean onArrival() {
remoto_ = true; // en el lugar donde llega el aglet es remoto
• Persistencia System.out.println(“en Arrival”+donde());
Disposed End
}
JPM, UCM 2000-01 Agentes Móviles 69 JPM, UCM 2000-01 Agentes Móviles 70
JPM, UCM 2000-01 Agentes Móviles 71 JPM, UCM 2000-01 Agentes Móviles 72
Agents TCL Agents TCL
Arquitectura Sistema de atraque (Docking system)
JPM, UCM 2000-01 Agentes Móviles 73 JPM, UCM 2000-01 Agentes Móviles 74
JPM, UCM 2000-01 Agentes Móviles 75 JPM, UCM 2000-01 Agentes Móviles 76
Grasshopper Estandarización
JPM, UCM 2000-01 Agentes Móviles 77 JPM, UCM 2000-01 Agentes Móviles 78
Conclusiones
• Los AM ofrecen
S un marco abierto para la implantación y personalización de
servicios en red
siguiendo un modelo antropomórfico (fácil de modelar)
S capacidad de desarrollar nuevos servicios (luego nuevas
posibilidades de negocios en la red)
comercio electrónico integral
JPM, UCM 2000-01 Agentes Móviles 81 JPM, UCM 2000-01 Agentes Móviles 82