Sie sind auf Seite 1von 20

Estructura

Curso de doctorado:
Conceptos y Tecnología:
Agentes Inteligentes
Ejemplos de Java
aplicación
Agentes Móviles Requisitos de
Sistema de Arquitectura de
Juan Pavón Mestras Agentes Móviles Sistema de
Dep. de Sistemas Informáticos y Programación
Agentes Móviles

Evaluación de
http://grasia.fdi.ucm.es
sistemas

Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 2

Conceptos

Agente Móvil

Entidad Capacidad de
autónoma migrar por nodos
proactiva de una red de
y reactiva computadores

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 3 Facultad de Informática UCM, 2005-06 Agentes Móviles 4
Conceptos Conceptos

 Agentes móviles y Agentes inteligentes  Agente móvil


 Los agentes inteligentes son capaces de ofrecer un  Agente que realiza sus tareas no sólo en la computadora de
comportamiento “inteligente”: razonamiento, planificación, su propietario, sino también en otras en la red
aprendizaje, etc. • buscando información en beneficio de su propietario
 Los agentes móviles (AM) tienen la capacidad de moverse • o negociando y cerrando tratos en su nombre
por distintos nodos de una red (una o más veces) • o utilizando servicios remotos
• Para la comunidad de IA la movilidad no es un atributo de los  Un agente móvil tiene capacidad para decidir a qué
agentes servidores moverse
• Para la comunidad de AM la movilidad es el atributo principal • Hay instrucciones explícitas para que el agente pueda parar su
ejecución, migrar a otro nodo (preservando su estado), y
 Hoy hablaremos de agentes móviles: continuar su ejecución

 perspectiva de sistema distribuido  Puede moverse a uno o más servidores


 tratamos los aspectos tactiles: movilidad, persistencia  Es una extensión del modelo cliente-servidor
• Los clientes envían parte de ellos al servidor (o a varios
 y (en parte) de sociabilidad: comunicación y colaboración servidores) para ejecutarse
 NO vemos los aspectos cognitivos (adaptación, aprendizaje y
planificación)
Juan Pavón Mestras Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 5 Facultad de Informática UCM, 2005-06 Agentes Móviles 6

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

 Dependiente de la aplicación
Código  applet
aplicación cargada por la red para ejecutar localmente
Código bajo demanda Sistema Sistema  servlet
local remoto agente que es cargado en un lugar remoto donde será
activado como un servidor
Código
 extlet
agente que es cargado en un lugar remoto para extender las
capacidades del receptor
Sistema Sistema Evaluación remota  deglet
local remoto
agente en el que se delega la autoridad para realizar una
Código Código tarea determinada (acabada la tarea, desaparece)
+ +
Datos Datos  netlet
agente en el que se delega la autoridad para realizar una
tarea permanente (esto es, nunca termina)
Agentes móviles autónomos Sistema de Sistema de Sistema de  piglet
Agentes A Agentes B Agentes C agente malicioso que supone riesgo de seguridad
(migración)

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 7 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)


 La red pasa cada petición por separado,
... y devuelve una respuesta por separado
 Arquitecturas cliente-servidor clásicas:
 Hay acuerdo en los procedimientos, sus parámetros y tipo de
 Sockets
resultados
 RPC, Java RMI
 Puede ocasionar mucho tráfico de red
 Middleware: DCE, CORBA, DCOM

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

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 9 Facultad de Informática UCM, 2005-06 Agentes Móviles 10

AM vs. RPC Agentes móviles: ventajas

 Programación remota  Eficiencia


 La red pasa todo el procedimiento como un Agente  La red lleva menos mensajes
 El cliente define el procedimiento (no tiene que acordarse por  Mejor cuanto más trabajo se haga en el servidor
adelantado)  Mejor cuanto mayor latencia/inestabilidad de red
 La respuesta regresa como un Agente (o como mensaje)
 Adaptación al cliente
 El cliente puede extender la funcionalidad del servidor
 Fácil instalación
Entorno del Entorno del
servidor • No se requiere instalación de servidor
cliente código
• No se acuerdan los procedimientos
+
Servidor • Instalación dinámica del procedimiento del cliente en el servidor
estado
Cliente
petición
respuesta

Cliente

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 11 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  Reducción del tráfico en la red


 El agente controla la ejecución de la tarea y de la capacidad de cómputo del cliente
 El cliente puede terminar o continuar haciendo otras cosas  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
Cliente Cliente  Sólo se devuelven los resultados definitivos
Servidor Agente Servidor
(mediante migración del agente o usando mensajes/RPC)
Lanza
Petición Petición
Resultado
Termina Resultado migra
Cliente Servidor Servidor
Petición Petición Cliente Cliente

Resultado Resultado
Sistema de Sistema de
Sistema A Red Sistema B
Agentes A Red Agentes B

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 13 Facultad de Informática UCM, 2005-06 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  Los Agentes Móviles realizan tareas específicas en lugares
 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

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 15 Facultad de Informática UCM, 2005-06 Agentes Móviles 16
Agentes móviles: ventajas Agentes móviles: ventajas

 Proceso de tareas local/descentralizado  Sistemas de usuario final flexibles


 mayor eficiencia, fiabilidad, seguridad, etc.  Dependiendo del sistema del usuario final (PDA, NC, PC,
WS), se pueden cargar los componentes de servicio
apropiados para su uso

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

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 17 Facultad de Informática UCM, 2005-06 Agentes Móviles 18

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

 Seguridad  Control de ejecución de las tareas


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

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 19 Facultad de Informática UCM, 2005-06 Agentes Móviles 20
Aplicaciones Aplicaciones: Internet

 Servicios de información en Internet  Ejemplo: Documentos activos


 Recuperación y extracción de información de múltiples lugares  Todos los usuarios tienen un sistema de agentes
 Búsqueda y filtrado de la información  A un agente de correo electrónico inteligente se le puede dar un
 Control de cambios mensaje(puede ser un documento) y un itinerario
 Difusión de información Personalización
 El agente sigue el itinerario, y puede ser modificado en su camino
 Comercio electrónico de servicios • El autor del mensaje puede recibir comentarios de los otros tres
 Mercado de servicios electrónico • Algunos usuarios pueden ver comentarios de los anteriores en el itinerario
 Negociación
 Equipos móviles y PCs en el hogar agente de
 Conexiones intermitentes y bajo ancho de banda Flexibilidad de correo
 Redes públicas de telecomunicaciones la distribución (revisión
 Provisión de servicios bajo demanda documento)
 Descentralización del control y gestión de redes
 
crea 
 Procesamiento paralelo
Delegación Sistema de AM
 Gestión de procesos (workflow) Juan Sistema de AM
de tareas Sistema de AM
 Juegos (agentes que representan jugadores) Jefe
Director
Juan Pavón Mestras Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 21 Facultad de Informática UCM, 2005-06 Agentes Móviles 22

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
• Detección y corrección de fallos
• Control del rendimiento

Sistema ERROR
migrar
de
Operaciones
clonar

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 23 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 Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 25 Facultad de Informática UCM, 2005-06 Agentes Móviles 26

Requisitos plataforma AM Modelo de Agentes Móviles

 Requisitos del modelo de agentes: Modelo de ciclo de vida


 Todo agente software está definido por:
• Modelo de ciclo de vida  Describe los servicios de gestión de agentes:
• Modelo computacional
 Servicios de factoría:
• Modelo de seguridad
• Creación, iniciación, suspensión, arranque, parada,
• Modelo de comunicación eliminación de agentes
 y los agentes móviles añaden:  Define 2 tipos de agentes:
• Modelo de navegación
 Agentes persistentes
 Requisitos genéricos • Pueden salvar su contexto de ejecución, de forma que
• Rendimiento y eficiencia pueden re-iniciarse más tarde (posiblemente en otro
• Portabilidad lugar)
• Abierto  Agentes basados en tareas
• Integración y soporte de sistemas propietarios • Se reinician desde el mismo punto en cada ocasión y
• Escalabilidad lugar
• Mantenibilidad • No guardan el contexto

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 27 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

 Describe las capacidades de computación de los agentes:


iniciar
 ¿Cómo se ejecutan los agentes?
• Como procesos separados, como hilos de ejecución, etc.
Inicialización  Primitivas que pueden afectar la ejecución del agente
parar
• Creación, control de ejecución, eliminación de agentes
arrancar • Parar, migrar y continuar el agente
• Manipulación de datos
Arrancando Parando  Plataforma de sistema de agentes
• Dominios
 Nombrado, direccionamiento, localización
concluir
arrancar
Acabando

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 29 Facultad de Informática UCM, 2005-06 Agentes Móviles 30

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

Elementos básicos Modelo de seguridad

Agentes Agentes  En dos sentidos:


 Cómo pueden acceder los agentes a los recursos de la red
 Cómo se puede acceder a los agentes

 Problemas de seguridad:
Lugar ¿Agente = Virus? ¿Plataforma segura? ¿Comunicaciones
Lugar seguras?
 Adquisición o alteración no autorizada de datos
Sistema de Agentes  Uso no autorizado de recursos
Infraestructura  Ataque malicioso a datos o recursos (o a otros agentes)
de comunicaciones  Duplicación de agentes
 Confidencialidad
Sistema Operativo
Juan Pavón Mestras Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 31 Facultad de Informática UCM, 2005-06 Agentes Móviles 32
Modelo de Agentes Móviles Modelo de Agentes Móviles

Modelo de seguridad Modelo de comunicación y colaboración

 Autenticación entre sistemas de agentes  Entre agentes


 Autenticación mutua de los sistemas origen y destino  lenguajes de comunicación entre agentes:
 Autenticación de agentes • Específicos de agentes
• - Knowledge Query Manipulation Language (KQML)
 Mediante autenticadores • - FIPA ACL
• Un autenticador es un algoritmo que determina la autenticidad • RPC, CORBA
de un agente
 distintos tipos de comunicación:
• Los autenticadores tienen tipos que están registrados con una
autoridad de nombres • Punto a punto
• Pueden ser válidos para un salto o para múltiples saltos • Difusión
• Punto a multipunto
 Soporte de la infraestructura de comunicaciones
• Pizarra compartida
 Autenticar la autoridad del agente
 Criptografiado en la transmisión de los agentes
 Protección contra inundación
Juan Pavón Mestras Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 33 Facultad de Informática UCM, 2005-06 Agentes Móviles 34

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

Modelo de comunicación y colaboración Modelo de navegación

 Entre agentes y otras entidades  Transporte de un agente (con o sin estado) entre dos
 Con los usuarios entidades computacionales residentes en distintos
• usuarios finales lugares:
• gestor del sistema de agentes  Servicios y protocolos de transferencia de agentes
 Con recursos locales al sistema visitado  Itinerario de un agente móvil
• a través de agentes/servicios del sistema de agentes local  Cómo se especifica el itinerario
 Con la plataforma de ejecución de agentes  Puede modificarse el itinerario
• a través de agentes/servicios del sistema de agentes local  Seguimiento del agente
• Servicio de localización
• Rastro del agente

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 35 Facultad de Informática UCM, 2005-06 Agentes Móviles 36
Sistema de Agentes Móviles Sistema de Agentes Móviles

Funciones Capacidades del sistema de agentes básico

 Entorno seguro para operaciones de agente


 Permitir que varios agentes puedan coexistir y ejecutarse
simultáneamente
Sistema Sistema de
 Prevenir que los agentes interfieran unos con otros de Agentes A Agentes B
 Transferencia de agentes
 negociar el intercambio de agentes
 detener un agente y transferirlo a otro sistema de agentes Seguridad Directorio Gestión
 recibir un agente transferido por otro sistema de agentes y
continuar su ejecución Importación Execution Exportación
Execution
 Creación de agentes Ejecución
 Proporcionar nombres de agentes únicos
Almacenamiento Comunicación
 Localizar los agentes móviles

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 37 Facultad de Informática UCM, 2005-06 Agentes Móviles 38

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

Caracterización de un agente móvil Lenguajes para programar agentes móviles

 Nombre  Java
 Autoridad + Identidad + Tipo de sistema de agente  La mayoría de los sistemas
 Globalmente único e inmutable
 TCL
 D’Agents, SMIA
 Estado
 C/C++
 Valores que determinan qué hacer cuando la ejecución del
agente continúe en el sistema de agentes destino  Omniware
 Otros
 Localización  Telescript
 Dirección del lugar (y sistema de agentes) donde reside el  Lisp, Scheme, propietarios, etc.
agente

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 39 Facultad de Informática UCM, 2005-06 Agentes Móviles 40
Java Java

 Java facilita la realización de Agentes Móviles  Seguridad en distintos niveles:


 Movilidad de código  Seguridad de bajo nivel
• Applets, Servlets, Jini • Diseño del lenguaje (eliminación de punteros)
• Máquina virtual Java disponible en casi todo HW/S.O. • Comprobaciones en tiempo de compilación (uso de tipos,
 Facilidades de comunicación de Java violación de acceso, desbordamientos de pila,etc.)
• sockets, datagramas , Java RMI • Verificación de bytecode al cargar y durante ejecución (límites de
arrays, etc.)
• serialización de objetos
• Internet: ftp, http, URL
 Seguridad de alto nivel configurable
• La aplicación instancia un gestor de seguridad de los archivos de
 Seguridad clase locales
• Verificador de bytecode, Java Security, Java Card • Cuidado: un posible atacante podría intentar cambiar las clases del
 Java chips sistema
• permitirá la utilización de agentes móviles en sistemas • El cargador de clases obliga a la separación del espacio de
empotrados nombres

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 41 Facultad de Informática UCM, 2005-06 Agentes Móviles 42

Java Java

Seguridad Seguridad

Clases
Clasesjava
java RED
(.java)
(.java) Las clases cargadas desde la red tienen
restricciones:
bytecode * No pueden acceder al sistema local de archivos
Clases .class * Acceso de red sólo al nodo de origen
externo * No pueden acceder a las propiedades del sistema
javac
Security Sandbox * No pueden acceder a código nativo

bytecodes Cargador Clases firmadas Las clases firmadas pueden tener algunas
Verificador
(.class) de clases archivos .jar restricciones eliminadas

Gestor de
Cargador Seguridad
Clases locales Las clases cargadas localmente (biblioteca
bytecode
empotrado de sistema archivos .jar .zip estándar) no tienen restricciones
+ JDK de ficheros .class

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 43 Facultad de Informática UCM, 2005-06 Agentes Móviles 44
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

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 45 Facultad de Informática UCM, 2005-06 Agentes Móviles 46

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  Ofrecerá una interfaz remota con métodos para transferir
una clase genérica MobileAgent, que ofrece los siguientes agentes:
métodos (ciclo de vida) que pueden redefinirse: import java.rmi.Remote;
 inicializar() import java.rmi.RemoteException;
• se llama una sola vez, al crear el agente
interface SistemaAgentes extends Remote {
 arrancar()
public boolean permisoTransferencia (AgentIdentity agentid,
• se llama cada vez que se arranca el agente (por ejemplo, al llegar a un
SistemaAgentes servidor) throws ...;
lugar)
 parar() public void empiezaTransferencia (AgentIdentity agentid) throws ...;
• se lama cada vez que se va a transferir, almacenar, o antes de eliminarlo public void finTransferencia (AgentIdentity agentid) throws ...;
 concluir() public void transferenciaArchivoRecursos (AgentIdentity agentid)
• se llama sólo una vez, cuando el agente se destruye throws ...;
 Asimismo, un Agente Móvil tiene una identidad, que puede public void transferenciaArchivoDatos (AgentIdentity agentid) throws ...;
implementarse como una clase AgentIdentity }
 y ofrece un objeto AgentInterface para comunicarse con otros

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 47 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 Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 49 Facultad de Informática UCM, 2005-06 Agentes Móviles 50

Sistemas de AM comerciales Sistemas de AM académicos

 General Magic: Telescript y Odyssey  D’Agents


• http://www.genmagic.com/agents  NOMADS
 IBM: Aglets  KAoS
• http://www.trl.ibm.co.jp/aglets
 Agents for Remote Action (ARA)
 Mitsubishi Electric: Concordia
 Mole
• http://www.meitca.com/HSL/Projects/Concordia
 Sumatra
 ObjectSpace: Voyager
• http://www.objectspace.com/Voyager  ...
 IKV++: Grasshopper
• http://www.ikv.de  Una lista más extensa en
www.informatik.uni-stuttgart.de/ipvr/vs/projekte/mole/mal/mal.html
 Oracle: Mobile Agents
• http://www.oracle.com/products/networking/mobile_agents.html
 Ad Astra Engineering: Jumping Beans
• http://www.jumpingbeans.com

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 51 Facultad de Informática UCM, 2005-06 Agentes Móviles 52
Telescript y Odyssey Telescript y Odyssey

General Magic Modelo de agentes móviles


 Telescript: primer sistema comercial de AM
• Propuesta de patente por General Magic en 1993 (aprobada en 1997)
 Tabriz
 MagicCap
 Odyssey: Agentes
 implementación basada en Java Viaje Reunión
 soporta Java RMI, CORBA IIOP, y DCOM
 Principal aplicación: mercado electrónico
 Primera aplicación Telescript: sistema de comunicaciones (e-mail, RED Lugar
fax, teléfono, etc.) personal de AT&T y America Online (usando el Lugar Lugar Floristería
PDA Magic Link de Sony) directorio billetes

Aplicación Centro comercial electrónico


de compra

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 53 Facultad de Informática UCM, 2005-06 Agentes Móviles 54

Telescript Telescript

 Componentes  Componentes (cont.)


 Lugares  Reuniones
• donde los agentes pueden estar, trabajar y proporcionar • si están en el mismo lugar, dos agentes pueden comunicarse
servicios a otros agentes invocando procedimientos uno del otro
• Tanto clientes como servidores pueden ofrecer lugares • instrucción meet
• Desaparece la distinción entre cliente y servidor  Conexiones
 Agentes • los agentes se pueden conectar si están en distintos lugares
• móviles o estacionarios  Autoridades
• independientes, se ejecutan concurrentemente • permiten identificar de quién es y de dónde viene un agente
 Viajes • un lugar puede denegar la entrada a un agente que no esté
• instrucción go para moverse de un lugar a otro en medio de su autorizado
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 Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 55 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
 Ejecuta o interpreta los agentes
visitan
• Completo  Ofrece un API para acceder a:
• Orientado a objetos  Transporte
• clase base Agent  Almacenamiento
• Dinámico: al moverse un agente, puede que tenga que moverse  Aplicaciones externas
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 Agentes

Engine
Aplicaciones
Transporte Almacenamiento
externas
Juan Pavón Mestras Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 57 Facultad de Informática UCM, 2005-06 Agentes Móviles 58

Telescript Odyssey

Protocolos  Disponible en Windows y Unix, sobre JDK 1.1 (100% pure


 Gestionan la comunicación entre Engines Java)
 Permiten transportar agentes  Soporta varios protocolos para transportar agentes:
 Java RMI, CORBA IIOP, DCOM
 Pueden ejecutarse sobre varios protocolos (p.ej. TCP/IP)
 Acceso a objetos remotos con CORBA y bases de datos
 Ofrecen servicios de autenticación y seguridad
relacionales con JDBC
 Mecanismo de depuración de agentes distribuidos (audit
trail)

Agentes
Codificación
de agentes Engine
Aplicaciones
Transporte Almacenamiento
externas
Juan Pavón Mestras Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 59 Facultad de Informática UCM, 2005-06 Agentes Móviles 60
Aglets Aglets

Aglets Workbench Arquitectura


http://sourceforge.net/projects/aglets/

 Desarrollado por IBM Tokyo Research Labs (1996-2002) Aglet Aglet Aglet
aglet = agent + applet
Aglet Proxy Aglet Proxy Aglet Proxy
 Armazón (framework) basado en Java para construir Aglet Context Aglet Context
aplicaciones distribuidas usando el paradigma de AM
+ Demonio Aglet + ATP
Herramientas:
 Servidor de aglets: Tahiti Máquina Virtual Java
 Constructor visual de aglets: Tazza
 Lanzador de aglets para la WWW: Fiji Transporte Java Runtime Almacenamiento

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 61 Facultad de Informática UCM, 2005-06 Agentes Móviles 62

Aglets Aglets

agletsd Ciclo de vida


 El demonio de aglets (agletsd) se puede ejecutar como  Creación
Applet o como aplicación  onCreation()
 onDisposal() Start
 Arranca el servidor de aglets Tahiti
 Movilidad
 Proporciona una interfaz gráfica de gestión del servidor  onArrival()
 onDispatching()
Created
 onReverting()
 Clone
 onClone()
Demonio Aglet + ATP
 Persistencia Dispatched Arrived

Máquina Virtual Java

Transporte Java Runtime Almacenamiento Disposed End

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 63 Facultad de Informática UCM, 2005-06 Agentes Móviles 64
Aglets Aglets

Ejemplo (modificado del JAAPI WhitePaper) Ejemplo (continuación)


import aglet.*; public void run() {
import java.net.URL; if (!remoto_) {
System.out.println(“Arrancando”+donde());
public class EjemploAglet extends Aglet { System.out.println(“Dispatching EjemploAglet...”);
private boolean remoto_ = false; try {
String servidor=getAgletContext().getHostingURL().toString();
private String donde() { URL destino=
return “EjemploAglet”+(remoto_ ? “ (remoto) “ : “ (origen)”); new URL((String)getAgletContext().getProperty(“destino”);
} dispatch(destino);
System.out.println(“Esto no debería verse”);
public boolean onDispatching(URL url) { }
System.out.println(“en Dispatching”+donde()); catch (Exception e) { /* tratamiento */ }
} }
else {
public boolean onArrival() { System.out.println(“Arrancando “+donde());
remoto_ = true; // el lugar donde llega el aglet es remoto // ...
System.out.println(“en Arrival”+donde()); }
} }
Juan Pavón Mestras Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 65 Facultad de Informática UCM, 2005-06 Agentes Móviles 66

Aglets: movilidad débil NOMADS

 Los aglets proporcionan movilidad débil  Implementación de movilidad fuerte


 Movilidad fuerte sería lo siguiente:  Reimplementa la MV de Java: AROMA VM
 Compatible JDK 1.2.2 (sin AWT/Swing)
public class Example extends MobileAgent
 Permite capturar el estado del sistema, para recuperarlo
{
posteriormente en otra MV
public static void main (String[] args)
• De toda la MV (todos los threads, clases y objetos): 1,5 MB
{ aprox.
System.out.println (“En origen”); • De un thread (su pila y los objetos alcanzables): 4 KB aprox.
go (destino);
 También controla el uso de recursos
System.out.println (“En destino”);
• 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 Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 67 Facultad de Informática UCM, 2005-06 Agentes Móviles 68
Agents TCL Agents TCL

 Sistema de AM desarrollado en el Darmouth College Arquitectura


http://agent.cs.dartmouth.edu/
 Ahora denominado : D’Agents
 Características:
 Arquitectura en capas que soporta: Servidor de Sistema de Monitor de
• Varios lenguajes: Tcl, Java, Scheme Agentes
• Varios mecanismos de transporte (el principal es TCP/IP) Nombres atraque red
 Migración de agentes incluyendo un sistema de atraque
(docking) Tcl Java Scheme
 Comunicación de agentes
• Paso de mensajes y flujos (streams) Servidor
• RPC
 Seguridad
TCP/IP e-mail

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 69 Facultad de Informática UCM, 2005-06 Agentes Móviles 70

Agents TCL Agents TCL

Sistema de atraque (Docking system) Sistema de atraque (Docking system)

Máquina 3 4. detecta reconexión 1. agent_jump~P1

2. transfiere agente
Portátil 1 Red de conectividad 5. notifica conexión
permanente 6. transferencia de
Máquina 1 P1 agentes en espera M1 M3
muelle_portátil1 muelle_P1
muelle_portátil2 Portátil 3 3. atraca el agente
Máquina 2
muelle_portátil3
Portátil 2 Cola de agentes Cola de agentes
esperando a saltar a M1 esperando a saltar a P1

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 71 Facultad de Informática UCM, 2005-06 Agentes Móviles 72
Estandarización Grasshopper

Grasshopper-2, IKV++
 OMG MASIF (Mobile Agent System Interoperability
Facilities)  Plataforma de agentes móviles compatible con OMG
 Interoperabilidad de sistemas de agentes MASIF
 Define interfaces IDL para mover agentes entre plataformas  Servicios de comunicación
 Múltiples protocolos: Java RMI, sockets, SSL, CORBA
 FIPA (Foundation for Intelligent Physical Agents)  Varios modos de comunicación: síncrono, asíncrono,
multicast
 Especificaciones de mecanismos y aplicaciones
 Gestión de la plataforma
 A través de una interfaz gráfica: consola de Agencia y
consola de Registro

 Actualmente está descatalogado y no está disponible al


público

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 73 Facultad de Informática UCM, 2005-06 Agentes Móviles 74

Grasshopper Conclusiones

Region Region Registry


 Los AM ofrecen
Management  un marco abierto para la implantación y personalización de
MAF servicios en red
Agent System Communication • siguiendo un modelo antropomórfico (fácil de modelar)
 capacidad de desarrollar nuevos servicios (luego nuevas
posibilidades de negocios en la red)
Agency
• comercio electrónico integral
Core Agency Communication
Place  Potencian al usuario individual
Management
MA
 especialmente en entornos como Internet
Persistence  el usuario gana en capacidad de cómputo, automatización de
MA
Registration tareas distribuidas (por ejemplo, búsqueda y filtrado de
información), menor dependencia del acceso a la red
Security MA
MAF SA
Agent System Transport

Juan Pavón Mestras Juan Pavón Mestras


Facultad de Informática UCM, 2005-06 Agentes Móviles 75 Facultad de Informática UCM, 2005-06 Agentes Móviles 76
Conclusiones Enlaces

 La tecnología de AM es viable  Cetus Links


 Java es lo más estándar para realizar plataformas de AM  http://www.cetus-links.org/oo_mobile_agents.html
 Los aspectos de seguridad pueden apoyarse en las facilidades de  Lista de plataformas de agentes móviles
Java (verificación de bytecode, Java Security, Java Card)  http://mole.informatik.uni-stuttgart.de/mal/preview/preview.html
 Grupos de normalización (OMG, FIPA) han abordado el problema de
 Conferencia MATA (Mobile Aware Technologies and Applications)
la heterogeneidad de plataformas
 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 Juan Pavón Mestras
Facultad de Informática UCM, 2005-06 Agentes Móviles 77 Facultad de Informática UCM, 2005-06 Agentes Móviles 78

Das könnte Ihnen auch gefallen