You are on page 1of 21

Curso de doctorado: Agentes Software

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

NOTA: Parte de las transparencias están basadas en el tutorial “Mobile Evaluación de


Agents - An overview”, presentado en la conferencia ACTS IS&N, Cernobio sistemas
(Como), Italy, May 27-29, 1997 por el Dr. Thomas Magedanz (GMD Focus e
IKV++), que nos ha autorizado su utilización
JPM, UCM 2000-01 Agentes Móviles 2

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 4


Conceptos Conceptos
Agentes móviles y Agentes inteligentes Agente móvil
• Los agentes inteligentes son capaces de ofrecer un comportamiento • Agente que realiza sus tareas no sólo en la computadora de su
“inteligente”: razonamiento, planificación, aprendizaje, etc. propietario, sino también en otras en la red
S buscando información en beneficio de su propietario
• Los agentes móviles (AM) tienen la capacidad de moverse por S o negociando y cerrando tratos en su nombre
distintos nodos de una red (una o más veces) S o utilizando servicios remotos
 Para la comunidad de IA la movilidad no es un atributo de los agentes
• Un agente móvil tiene capacidad para decidir a qué servidores moverse
 Para la comunidad de AM la movilidad es el atributo principal S Hay instrucciones explícitas para que el agente pueda parar su ejecución,
Hoy hablaremos de agentes móviles: migrar a otro nodo (preservando su estado), y continuar su ejecución
S perspectiva de sistema distribuido • Puede moverse a uno o más servidores
S tratamos los aspectos tactiles: movilidad, persistencia
S y (en parte) de sociabilidad: comunicación y colaboración • Es una extensión del modelo cliente-servidor
S Los clientes envían parte de ellos al servidor (o a varios servidores) para
S NO vemos los aspectos cognitivos (adaptación, aprendizaje y
ejecutarse
planificación)

JPM, UCM 2000-01 Agentes Móviles 5 JPM, UCM 2000-01 Agentes Móviles 6

Taxonomía del código móvil Taxonomía del código móvil


Código Dependiente de la aplicación
Código bajo demanda Sistema Sistema • applet aplicación cargada por la red para ejecutar localmente
local remoto
• servlet agente que es cargado en un lugar remoto donde será activado
Código como un servidor
• extlet agente que es cargado en un lugar remoto para extender las
Sistema Sistema Evaluación remota capacidades del receptor
local remoto

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

• Programación remota Entorno del


Entorno del
servidor
S Ejecución remota de trabajos (IBM Remote Job Entry, años 70) cliente
S Telecarga de funciones a bases de datos (funciones a los datos) petición
S Compartición de recursos, balance de carga, etc. respuesta
S Java applets Cliente
... Servidor
petición
S Agentes móviles respuesta

JPM, UCM 2000-01 Agentes Móviles 9 JPM, UCM 2000-01 Agentes Móviles 10

AM vs. RPC Agentes móviles: ventajas


Programación remota Ventajas de la programación remota sobre RPC
• La red pasa todo el procedimiento como un Agente • Eficiencia
• El cliente define el procedimiento (no tiene que acordarse por adelantado)
S La red lleva menos mensajes
• La respuesta regresa como un Agente (o como mensaje)
S Mejor cuanto más trabajo se haga en el servidor
S Mejor cuanto mayor latencia/inestabilidad de red

Entorno del Entorno del • Adaptación al cliente


cliente código servidor
S El cliente puede extender la funcionalidad del servidor
+ Servidor S Fácil instalación
Cliente estado o No se requiere instalación de servidor
petición o No se acuerdan los procedimientos
respuesta o Instalación dinámica del procedimiento del cliente en el servidor
Cliente

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

Agentes móviles: ventajas Agentes móviles: ventajas


• Robusto: reducción de la dependencia de la • Automatización del proceso de tareas distribuidas
disponibilidad de la red y del cliente/servidor S Los Agentes Móviles realizan tareas específicas en lugares
S los Agentes Móviles migrados al sistema servidor no se ven diferentes
afectados por los fallos del cliente o de la red
Haz esto
Agenda: Servidor
Haz esto en B;
Cliente Servidor Servidor
Haz eso en C; Sistema de
Cliente Cliente Vuelve. Agentes B
Sistema de
Agentes A Haz eso
Sistema A Red Sistema B Sistema de Sistema de
Red Servidor
Agentes A Agentes B

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

Controlador Cliente Sistemas del cliente


Cliente Servidor STB NC PC en red WS
Sistema de Agentes
Servidor
Controlador Cliente
Sistema de
Agentes B A B
Sistema B
Sistema A Sistema de Controlador Comp. Comp.
Agentes A
Cliente
Cliente Servidor
Servidor A B C
Sistema de
Comp. Comp. Comp.
Sistema C Agentes C
Sistema de Agentes
Sistema Proveedor del Servicio
Proveedor del Servicio

JPM, UCM 2000-01 Agentes Móviles 17 JPM, UCM 2000-01 Agentes Móviles 18

Agentes móviles: cuestiones Agentes móviles: cuestiones


Seguridad Otras
• Autenticación del usuario • Control de ejecución de las tareas
S ¿Quién envía el agente móvil?
S la localización y el estado de un agente pueden ser desconocidos
• Autenticación del servidor o entorno de ejecución de agentes
S ¿No caerá el agente en una trampa? • Gestión de fallos
• Derechos de ejecución de agentes de un usuario en un servidor S ¿Quién detecta los fallos?
S ¿Pueden ejecutarse los agentes? ¿Qué funciones pueden realizar?
• Eficiencia (el código interpretado suele ser lento)
• Capacidad del agente para pagar por los servicios utilizados
S Teleclicks (General Magic) • Heterogeneidad de sistemas de AM
• Detección de virus • Sobrecarga de la transferencia del código
S ¿Se puede confiar en el agente?
S tiene que compararse con las interacciones
• Acceso a servicios existentes (Internet, CORBA, etc.)

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

Aplicaciones: Internet Aplicaciones: Internet


Ejemplo (General Magic): Control de cambios • Ejemplo: Correo electrónico inteligente
S Pepe hizo sus reservas de avión para Santiago hace dos semanas. El día de S Todos los usuarios tienen un sistema de agentes
vuelta se encuentra en una reunión importante de última hora, con el S A un agente de correo electrónico inteligente se le puede dar un
tiempo ajustado. En su móvil recibe un mensaje de que el avión se ha mensaje(puede ser un documento) y un itinerario
retrasado una hora, y gracias a ello puede dedicar más tiempo a la reunión. S 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
RED CELULAR agente de
correo
(revisión
INTERNET documento)
Directorio Pepe Aerolíneas ✔
Pepe ✔✔
Aplicación de Directorio Aeropuerto crea
planificación de Sistema de AM
viajes
Sistema de agentes móviles Juan Sistema de AM
Servidor Jefe Sistema de AM
Director
JPM, UCM 2000-01 Agentes Móviles 23 JPM, UCM 2000-01 Agentes Móviles 24
Aplicaciones: Telecomunicaciones Aplicaciones: Telecomunicaciones
Redes Inteligentes Redes Inteligentes
• Arquitectura de Red Inteligente clásica • Arquitectura de Red Inteligente basada en agentes
S Señalización en la red S Descentralización del control: ahorro en tráfico de señalización
S Centralización de la lógica del servicio: cuellos de botella en SCP S Servicios bajo demanda (adaptados al abonado)

Gestión de SMS Proveedor de


SMS Provisón de servicios servicios servicios
servicios SLP adaptada al cliente
Trigg ers

SCP Marcación Carga los servicios


INAP
abreviada directamente en los Filtrado de
SA conmutadores llamadas
Sistema del Señalización Sistema del
usuario final usuario final
INAP
SS CP SS CP SA
SSP SSP INAP Sistema del BC S M BCS M
BC SM Trigg ers BCSM Trig gers usuario final Sistema del
SA SA usuario final
RED SA: Sistema de Agentes

JPM, UCM 2000-01 Agentes Móviles 25 JPM, UCM 2000-01 Agentes Móviles 26

Aplicaciones: Telecomunicaciones Aplicaciones: Telecomunicaciones


Gestión de red Gestión de red
• Arquitectura de Gestión de Red actuales: TMN, SNMP • Inteligencia hasta en los elementos de red
S Estructura jerárquica • Activación de los agentes basada en tiempo, acciones o eventos
S Protocolos basados en RPC (CMIP, SNMP) S El sistema gestionado puede actuar con autonomía del gestor (SO)

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

--- Actualización MIB en MIB MIB MIB

ER ER ER Sistemas de Operación (SO)


Sistema gestionado Sistema gestionado Sistema gestionado
JPM, UCM 2000-01 Agentes Móviles 27 JPM, UCM 2000-01 Agentes Móviles 28
Aplicaciones: Telecomunicaciones Aplicaciones: Telecomunicaciones
Gestión de red Gestión de red
• Ejemplo: Descubrir la configuración de la red • Ejemplos de gestión de red basada en netlets
S Detección y corrección de fallos
S Control del rendimiento

Sistema ERROR
migrar
de
Operaciones
clonar

JPM, UCM 2000-01 Agentes Móviles 29 JPM, UCM 2000-01 Agentes Móviles 30

Aplicaciones: Computación paralela Aplicaciones: Tiempo Real


Computación paralela Interacción tiempo real con servidor
• Combinando la clonación y la movilidad de agentes • Si la latencia de la red es alta comparada con las
restricciones de tiempo real de un equipo externo
S Caso extremo: aplicaciones espaciales

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 34

Modelo de Agentes Móviles Modelo de Agentes Móviles


Modelo de ciclo de vida Modelo de ciclo de vida
• Describe los servicios de gestión de agentes:
S Servicios de factoría: iniciar
o Creación, iniciación, suspensión, arranque, parada, eliminación de
agentes Inicialización
parar
• Define 2 tipos de agentes: arrancar
S Agentes persistentes
o Pueden salvar su contexto de ejecución, de forma que pueden re-
Arrancando Parando
iniciarse más tarde (posiblemente en otro lugar)
concluir
S Agentes basados en tareas
o Se reinician desde el mismo punto en cada ocasión y lugar
arrancar
o No guardan el contexto
Acabando

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

Modelo de Agentes Móviles Modelo de Agentes Móviles


Modelo de seguridad Modelo de seguridad
• En dos sentidos: • Autenticación entre sistemas de agentes
S Cómo pueden acceder los agentes a los recursos de la red S Autenticación mutua de los sistemas origen y destino
S Cómo se puede acceder a los agentes
• Autenticación de agentes
• Problemas de seguridad: S Mediante autenticadores
o Un autenticador es un algoritmo que determina la autenticidad de un agente
¿Agente = Virus? ¿Plataforma segura? ¿Comunicaciones seguras?
o Los autenticadores tienen tipos que están registrados con una autoridad de
S Adquisición o alteración no autorizada de datos nombres
o Pueden ser válidos para un salto o para múltiples saltos
S Uso no autorizado de recursos
S Ataque malicioso a datos o recursos (o a otros agentes) • Soporte de la infraestructura de comunicaciones
S Duplicación de agentes S Autenticar la autoridad del agente
S Confidencialidad S Criptografiado en la transmisión de los agentes
S Protección contra inundación
JPM, UCM 2000-01 Agentes Móviles 39 JPM, UCM 2000-01 Agentes Móviles 40
Modelo de Agentes Móviles Modelo de Agentes Móviles
Modelo de comunicación y colaboración Modelo de comunicación y colaboración
• Entre agentes • Entre agentes y otras entidades
S lenguajes de comunicación entre agentes: S Con los usuarios
o Específicos de agentes o usuarios finales
o gestor del sistema de agentes
- Knowledge Query Manipulation Language (KQML)
- FIPA ACL S Con recursos locales al sistema visitado
o RPC, CORBA o a través de agentes/servicios del sistema de agentes local

S distintos tipos de comunicación: S Con la plataforma de ejecución de agentes


o a través de agentes/servicios del sistema de agentes local
o Punto a punto
o Difusión
o Punto a multipunto
o Pizarra compartida

JPM, UCM 2000-01 Agentes Móviles 41 JPM, UCM 2000-01 Agentes Móviles 42

Modelo de Agentes Móviles Sistema de Agentes Móviles


Modelo de navegación Funciones
• Entorno seguro para operaciones de agente
• Transporte de un agente (con o sin estado) entre dos S Permitir que varios agentes puedan coexistir y ejecutarse
entidades computacionales residentes en distintos lugares: simultáneamente
S Servicios y protocolos de transferencia de agentes S Prevenir que los agentes interfieran unos con otros
• Transferencia de agentes
• Itinerario de un agente móvil S negociar el intercambio de agentes
S Cómo se especifica el itinerario S detener un agente y transferirlo a otro sistema de agentes
S Puede modificarse el itinerario S recibir un agente transferido por otro sistema de agentes y
S Seguimiento del agente continuar su ejecución
o Servicio de localización • Creación de agentes
o Rastro del agente S Proporcionar nombres de agentes únicos
• Localizar los agentes móviles

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

Importación Execution Exportación


• Localización
Execution S Dirección del lugar (y sistema de agentes) donde reside el agente
Ejecución

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

Java Implementación de AM con Java


Serialización Arquitectura básica
Interfaz
Serializar del agente
Agente
residente
0111010101110
Visitante

Lugar Lugar encuentro Lugar


Clases Objetos Archivo
o Stream Sistema de Agentes Java RMI Sistema de Agentes

Máquina Virtual Java MVJ


0111010101110

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

Evolución de Agentes Móviles


• La idea básica de AM (código móvil/programación remota) no es nueva:
S Remote Job Entry (años 70)
S Enviar funciones a los datos (bases de datos)
S Compartición de recursos, reparto de carga

• Las tecnologías actuales son recientes (‘90)


S Telescript de General Magic
S Agent Tcl (ahora D’Agents) del Darmouth College
S Java de SUN (como tecnología de soporte)
o Aglets, Voyager, Concordia, Mole, CyberAgents, ...

Los distintos sistemas de AM difieren en capacidades, arquitectura e


implementación: Hace falta una normativa de interoperación:
o La estandarización ha comenzado a finales de 1996

JPM, UCM 2000-01 Agentes Móviles 56


Sistemas de AM comerciales Telescript y Odyssey
• General Magic: Telescript y Odyssey General Magic (http://www.genmagic.com)
http://www.genmagic.com/agents

• IBM: Aglets • Telescript: primer sistema comercial de AM


o Propuesta de patente por General Magic en 1993 (aprobada en 1997)
http://www.trl.ibm.co.jp/aglets
S Tabriz
• Mitsubishi Electric: Concordia S MagicCap
http://www.meitca.com/HSL/Projects/Concordia

• ObjectSpace: Voyager • Odyssey:


http://www.objectspace.com/Voyager S implementación basada en Java
S soporta Java RMI, CORBA IIOP, y DCOM
• IKV++: Grasshopper
http://www.ikv.de
• Principal aplicación: mercado electrónico
• Oracle: Mobile Agents S Primera aplicación Telescript: sistema de comunicaciones (e-mail, fax,
http://www.oracle.com/products/networking/mobile_agents.html teléfono, etc.) personal de AT&T y America Online (usando el PDA
Magic Link de Sony)
• Ad Astra Engineering: Jumping Beans
http://www.jumpingbeans.com

JPM, UCM 2000-01 Agentes Móviles 57 JPM, UCM 2000-01 Agentes Móviles 58

Telescript y Odyssey Telescript


Modelo de agentes móviles Componentes
• Lugares
S donde los agentes pueden estar, trabajar y proporcionar servicios a otros
agentes
Agentes
Viaje Reunión S Tanto clientes como servidores pueden ofrecer lugares
o Desaparece la distinción entre cliente y servidor

• Agentes
RED Lugar
Lugar Lugar S móviles o estacionarios
Floristería
directorio billetes S independientes, se ejecutan concurrentemente

Aplicación Centro comercial electrónico • Viajes


de compra S instrucción go para moverse de un lugar a otro en medio de su ejecución

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

Máquina Virtual Java Máquina Virtual Java


Transporte Java Runtime Almacenamiento
Transporte Java Runtime Almacenamiento

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

Aglets Agents TCL


Ejemplo (continuación) • Sistema de AM desarrollado en el Darmouth College
public void run() { http://www.cs.darmouth.edu/~agent
if (!remoto_) {
System.out.println(“Arrancando”+donde()); S Ahora denominado : D’Agents
System.out.println(“Dispatching EjemploAglet...”);
try { • Características:
String servidor=getAgletContext().getHostingURL().toString();
URL destino=new S Arquitectura en capas que soporta:
URL((String)getAgletContext().getProperty(“destino”); o Varios lenguajes: Tcl, Java, Scheme
dispatch(destino); o Varios mecanismos de transporte (el principal es TCP/IP)
System.out.println(“Esto no debería verse”); S Migración de agentes incluyendo un sistema de atraque (docking)
} catch (Exception e) { /* tratamiento */ }
} else {
S Comunicación de agentes
o Paso de mensajes y flujos (streams)
System.out.println(“Arrancando “+donde());
// ... o RPC
} S Seguridad
}

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)

Servidor de Sistema de Monitor de Máquina 3


Agentes
Nombres atraque red
Tcl Java Scheme Portátil 1 Red de conectividad
permanente
Servidor Máquina 1
muelle_portátil1
muelle_portátil2 Portátil 3
Máquina 2
TCP/IP e-mail muelle_portátil3
Portátil 2

JPM, UCM 2000-01 Agentes Móviles 73 JPM, UCM 2000-01 Agentes Móviles 74

Agents TCL Grasshopper


Sistema de atraque (Docking system) Grasshopper-2, IKV++
 http://www.ikv.de
4. detecta reconexión 1. agent_jump~P1 • Java-based mobile agent platform fully compliant with
OMG MASIF
2. transfiere agente S Also with FIPA using an add-on
5. notifica conexión
6. transferencia de • Communication services
P1 agentes en espera M1 S Multi-protocol support: Java RMI, sockets, SSL, CORBA IIOP
M3
muelle_P1 S Different communication modes: synchronous, asynchronous,
3. atraca el agente multicast
Cola de agentes Cola de agentes
esperando a saltar a M1
• Platform management
esperando a saltar a P1
S GUI tool: Agency console and Registry console

JPM, UCM 2000-01 Agentes Móviles 75 JPM, UCM 2000-01 Agentes Móviles 76
Grasshopper Estandarización

Region Region Registry


Management
MAF • OMG MASIF (Mobile Agent System Interoperability
Agent System Communication
Facilities)
S Interoperabilidad de sistemas de agentes
Agency

Core Agency Communication • FIPA (Foundation for Intelligent Physical Agents)


Place S Especificaciones de mecanismos y aplicaciones
Management
MA
Persistence • Agent Society
MA
Registration S Arquitectura y protocolos de comunicación genéricos
Security MA
MAF SA
Agent System Transport

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

• Potencian al usuario individual


S especialmente en entornos como Internet
S 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

JPM, UCM 2000-01 Agentes Móviles 80


Conclusiones Bibliografía
• La tecnología de AM es viable Enlaces
S Java se está convirtiendo en el estándar para realización de
plataformas de AM • http://www.cetus-links.org/oo_mobile_agents.html
S Los aspectos de seguridad pueden apoyarse en las facilidades de
Java (verificación de bytecode, Java Security, Java Card) • http://www.infosys.tuwien.ac.at/Research/Agents/
S Grupos de normalización (OMG, FIPA) están abordando el • http://www.javasoft.com
problema de la heterogeneidad de plataformas

• Fácil integración con otras tecnologías:


S CORBA
S Agentes inteligentes

JPM, UCM 2000-01 Agentes Móviles 81 JPM, UCM 2000-01 Agentes Móviles 82

You might also like