Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento...

20
Curso de doctorado: Agentes Inteligentes Agentes Móviles Juan Pavón Mestras Dep. de Sistemas Informáticos y Programación http://grasia.fdi.ucm.es Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 2 Estructura Conceptos y Ejemplos de aplicación Tecnología: Java Requisitos de Sistema de Agentes Móviles Evaluación de sistemas Arquitectura de Sistema de Agentes Móviles Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 3 Juan Pavón Mestras Facultad de Informática UCM, 2005-06 Agentes Móviles 4 Conceptos Agente Móvil Entidad autónoma proactiva y reactiva Capacidad de migrar por nodos de una red de computadores

Transcript of Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento...

Page 1: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Curso de doctorado:

Agentes Inteligentes

Agentes Móviles

Juan Pavón Mestras

Dep. de Sistemas Informáticos y Programación

http://grasia.fdi.ucm.es

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 2

Estructura

Conceptos yEjemplos de aplicación

Tecnología:Java

Requisitos deSistema de

Agentes Móviles

Evaluación desistemas

Arquitectura deSistema de

Agentes Móviles

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 3

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 4

Conceptos

Agente Móvil

Entidadautónomaproactivay reactiva

Capacidad de migrar por nodos de una red de computadores

Page 2: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 5

Conceptos

� Agentes móviles y Agentes inteligentes

� Los agentes inteligentes son capaces de ofrecer un comportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc.

� Los agentes móviles (AM) tienen la capacidad de moverse por distintos nodos de una red (una o más veces)

• Para la comunidad de IA la movilidad no es un atributo de los agentes

• Para la comunidad de AM la movilidad es el atributo principal

� Hoy hablaremos de agentes móviles:

� perspectiva de sistema distribuido

� tratamos los aspectos tactiles: movilidad, persistencia

� y (en parte) de sociabilidad: comunicación y colaboración

� NO vemos los aspectos cognitivos (adaptación, aprendizaje y planificación)

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 6

Conceptos

� Agente móvil

� Agente que realiza sus tareas no sólo en la computadora de su propietario, sino también en otras en la red

• buscando información en beneficio de su propietario

• o negociando y cerrando tratos en su nombre

• o utilizando servicios remotos

� Un agente móvil tiene capacidad para decidir a quéservidores moverse

• Hay instrucciones explícitas para que el agente pueda parar su ejecución, migrar a otro nodo (preservando su estado), y continuar su ejecución

� Puede moverse a uno o más servidores

� Es una extensión del modelo cliente-servidor

• Los clientes envían parte de ellos al servidor (o a varios servidores) para ejecutarse

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 7

Taxonomía del código móvil

Sistema deAgentes A

Código+

Datos

Sistema deAgentes B

Sistema deAgentes C

Código+

Datos

Agentes móviles autónomos(migración)

Sistema local

Código

Sistema remoto

Evaluación remota

Sistema local

Código

Sistema remoto

Código bajo demanda

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 8

Taxonomía del código móvil

� Dependiente de la aplicación� applet

aplicación cargada por la red para ejecutar localmente

� servletagente que es cargado en un lugar remoto donde seráactivado como un servidor

� extletagente que es cargado en un lugar remoto para extender las capacidades del receptor

� degletagente en el que se delega la autoridad para realizar una tarea determinada (acabada la tarea, desaparece)

� netletagente en el que se delega la autoridad para realizar una tarea permanente (esto es, nunca termina)

� pigletagente malicioso que supone riesgo de seguridad

Page 3: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 9

AM vs. RPC

Paradigmas de programación distribuida

� Arquitecturas cliente-servidor clásicas:� Sockets

� RPC, Java RMI

� Middleware: DCE, CORBA, DCOM

� Programación remota� Ejecución remota de trabajos (IBM Remote Job Entry, años

70)

� Telecarga de funciones a bases de datos (funciones a los datos)

� Compartición de recursos, balance de carga, etc.

� Java applets

�� Agentes mAgentes móóvilesviles

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 10

AM vs. RPC

� Llamada a procedimiento remoto (RPC)

� La red pasa cada petición por separado,... y devuelve una respuesta por separado

� Hay acuerdo en los procedimientos, sus parámetros y tipo de resultados

� Puede ocasionar mucho tráfico de red

Entorno del cliente

Cliente

Entorno del servidor

Servidor

petición

respuesta...

petición

respuesta

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 11

AM vs. RPC

� Programación 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)

Entorno del cliente

Cliente

Entorno del servidor

Servidor

peticiónrespuesta

Cliente

código+

estado

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 12

Agentes móviles: ventajas

� Eficiencia

� La red lleva menos mensajes

� Mejor cuanto más trabajo se haga en el servidor

� Mejor cuanto mayor latencia/inestabilidad de red

� Adaptación al cliente

� El cliente puede extender la funcionalidad del servidor

� Fácil instalación

• No se requiere instalación de servidor

• No se acuerdan los procedimientos

• Instalación dinámica del procedimiento del cliente en el servidor

Page 4: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 13

Agentes móviles: ventajas

� Ejecución asíncrona de tareas

� El agente controla la ejecución de la tarea

� El cliente puede terminar o continuar haciendo otras cosas

Cliente Servidor

Petición

Resultado

Petición

Resultado

Agente Servidor

Petición

Resultado

Petición

Resultado

Cliente

Lanza

Termina

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 14

Agentes móviles: ventajas

� Reducción del tráfico en la red y de la capacidad de cómputo del cliente� Interesante para entornos de bajo ancho de banda y clientes

sencillos

� Realiza las interacciones localmente en el sistema objetivo (servidores potentes)

� Recuperación y filtrado de la información en su origen

� Sólo se devuelven los resultados definitivos(mediante migración del agente o usando mensajes/RPC)

Sistema A Sistema B

Cliente Servidor

Red Sistema de

Agentes A

Sistema de

Agentes B

Servidor

Red

migra

Cliente Cliente

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 15

Agentes móviles: ventajas

� Robusto: reducción de la dependencia de la disponibilidad de la red y del cliente/servidor

� los Agentes Móviles migrados al sistema servidor no se ven afectados por los fallos del cliente o de la red

Sistema de

Agentes A

Sistema de

Agentes B

Servidor

RedSistema A Sistema B

Cliente Servidor

Red

Cliente Cliente

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 16

Agentes móviles: ventajas

� Automatización del proceso de tareas distribuidas

� Los Agentes Móviles realizan tareas específicas en lugares diferentes

Agenda:

Haz esto en B;

Haz eso en C;

Vuelve.

Sistema de

Agentes A

Sistema de

Agentes B

Servidor

Sistema de

Agentes C

Servidor

Haz esto

Haz eso

Page 5: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 17

Agentes móviles: ventajas

� Proceso de tareas local/descentralizado

� mayor eficiencia, fiabilidad, seguridad, etc.

Sistema de

Agentes A

Sistema de

Agentes BSistema B

Sistema A

Controlador

Sistema C

Cliente

Servidor

Sistema de

Agentes C

Controlador

Controlador

Controlador

Cliente

Servidor

Cliente

Servidor

Cliente

Servidor

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 18

Agentes móviles: ventajas

� Sistemas de usuario final flexibles

� Dependiendo del sistema del usuario final (PDA, NC, PC, WS), se pueden cargar los componentes de servicio apropiados para su uso

Sistemas del clienteNC PC en redSTB WS

Sistema Proveedor del Servicio

Sistema de Agentes

Cliente

Comp.

A

Comp.

B

C

Comp.

A

Comp.

B

Comp.

Sistema de Agentes

Proveedor del Servicio

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 19

Agentes móviles: cuestiones

� Seguridad

� Autenticación del usuario

• ¿Quién envía el agente móvil?

� Autenticación del servidor o entorno de ejecución de agentes

• ¿No caerá el agente en una trampa?

� Derechos de ejecución de agentes de un usuario en un servidor

• ¿Pueden ejecutarse los agentes? ¿Qué funciones pueden realizar?

� Capacidad del agente para pagar por los servicios utilizados

• Teleclicks (General Magic)

� Detección de virus

• ¿Se puede confiar en el agente?

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 20

Agentes móviles: cuestiones

� Control de ejecución de las tareas

� la localización y el estado de un agente pueden ser desconocidos

� Gestión de fallos

� ¿Quién detecta los fallos?

� Eficiencia (el código interpretado suele ser lento)

� Heterogeneidad de sistemas de AM

� Sobrecarga de la transferencia del código

� tiene que compararse con las interacciones

� Acceso a servicios existentes (Internet, CORBA, etc.)

Page 6: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 21

Aplicaciones

� Servicios de información en Internet� Recuperación y extracción de información de múltiples lugares� Búsqueda y filtrado de la información� Control de cambios� Difusión de información

� Comercio electrónico� Mercado de servicios electrónico� Negociación

� Equipos móviles y PCs en el hogar� Conexiones intermitentes y bajo ancho de banda

� Redes públicas de telecomunicaciones� Provisión de servicios bajo demanda� Descentralización del control y gestión de redes

� Procesamiento paralelo

� Gestión de procesos (workflow)

� Juegos (agentes que representan jugadores)

Personalización

de servicios

Flexibilidad de

la distribución

Delegación

de tareas

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 22

Aplicaciones: Internet

� Ejemplo: Documentos activos

� Todos los usuarios tienen un sistema de agentes

� A un agente de correo electrónico inteligente se le puede dar un mensaje(puede ser un documento) y un itinerario

� El agente sigue el itinerario, y puede ser modificado en su camino

• El autor del mensaje puede recibir comentarios de los otros tres

• Algunos usuarios pueden ver comentarios de los anteriores en el itinerario

agente de

correo

(revisión

documento)

Sistema de AM

Juan

Sistema de AM

Director

crea

Sistema de AM

Jefe

��

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 23

Aplicaciones: Telecomunicaciones

� Gestión de red

� Ejemplo: Descubrir la configuración de la red

clonar

migrar

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 24

Aplicaciones: Telecomunicaciones

� Gestión de red

� Ejemplos de gestión de red basada en netlets

• Detección y corrección de fallos

• Control del rendimiento

ERRORSistema

de

Operaciones

Page 7: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 25

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

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 27

Requisitos plataforma AM

� Requisitos del modelo de agentes:

� Todo agente software está definido por:

• Modelo de ciclo de vida

• Modelo computacional

• Modelo de seguridad

• Modelo de comunicación

� y los agentes móviles añaden:

• Modelo de navegación

� Requisitos genéricos• Rendimiento y eficiencia

• Portabilidad

• Abierto

• Integración y soporte de sistemas propietarios

• Escalabilidad

• Mantenibilidad

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 28

Modelo de Agentes Móviles

Modelo de ciclo de vida

� Describe los servicios de gestión de agentes:

� Servicios de factoría:• Creación, iniciación, suspensión, arranque, parada,

eliminación de agentes

� Define 2 tipos de agentes:

� Agentes persistentes• Pueden salvar su contexto de ejecución, de forma que

pueden re-iniciarse más tarde (posiblemente en otro lugar)

� Agentes basados en tareas• Se reinician desde el mismo punto en cada ocasión y

lugar

• No guardan el contexto

Page 8: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 29

Modelo de Agentes Móviles

Modelo de ciclo de vida

Inicialización

Arrancando Parando

Acabando

concluir

arrancar

arrancar

parar

iniciar

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 30

Modelo de Agentes Móviles

Modelo computacional

� Describe las capacidades de computación de los agentes:� ¿Cómo se ejecutan los agentes?

• Como procesos separados, como hilos de ejecución, etc.

� Primitivas que pueden afectar la ejecución del agente• Creación, control de ejecución, eliminación de agentes

• Parar, migrar y continuar el agente

• Manipulación de datos

� Plataforma de sistema de agentes• Dominios

� Nombrado, direccionamiento, localización

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 31

Modelo de Agentes Móviles

Sistema Operativo

Infraestructura

de comunicaciones

Sistema de Agentes

Lugar Lugar

AgentesAgentes

Elementos básicos

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 32

Modelo de Agentes Móviles

Modelo de seguridad

� 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:

¿Agente = Virus? ¿Plataforma segura? ¿Comunicaciones seguras?

� Adquisición o alteración no autorizada de datos

� Uso no autorizado de recursos

� Ataque malicioso a datos o recursos (o a otros agentes)

� Duplicación de agentes

� Confidencialidad

Page 9: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 33

Modelo de Agentes Móviles

Modelo de seguridad

� Autenticación entre sistemas de agentes

� Autenticación mutua de los sistemas origen y destino

� Autenticación de agentes

� Mediante autenticadores

• Un autenticador es un algoritmo que determina la autenticidad de un agente

• Los autenticadores tienen tipos que están registrados con una autoridad de nombres

• Pueden ser válidos para un salto o para múltiples saltos

� Soporte de la infraestructura de comunicaciones

� Autenticar la autoridad del agente

� Criptografiado en la transmisión de los agentes

� Protección contra inundación

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 34

Modelo de Agentes Móviles

Modelo de comunicación y colaboración

� Entre agentes

� lenguajes de comunicación entre agentes:

• Específicos de agentes• - Knowledge Query Manipulation Language (KQML)

• - FIPA ACL

• RPC, CORBA

� distintos tipos de comunicación:

• Punto a punto

• Difusión

• Punto a multipunto

• Pizarra compartida

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 35

Modelo de Agentes Móviles

Modelo de comunicación y colaboración

� Entre agentes y otras entidades

� Con los usuarios• usuarios finales

• gestor del sistema de agentes

� Con recursos locales al sistema visitado• a través de agentes/servicios del sistema de agentes local

� Con la plataforma de ejecución de agentes• a través de agentes/servicios del sistema de agentes local

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 36

Modelo de Agentes Móviles

Modelo de navegación

� Transporte de un agente (con o sin estado) entre dos entidades computacionales residentes en distintos lugares:� Servicios y protocolos de transferencia de agentes

� Itinerario de un agente móvil� Cómo se especifica el itinerario

� Puede modificarse el itinerario

� Seguimiento del agente• Servicio de localización

• Rastro del agente

Page 10: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 37

Sistema de Agentes Móviles

Funciones

� Entorno seguro para operaciones de agente

� Permitir que varios agentes puedan coexistir y ejecutarse simultáneamente

� Prevenir que los agentes interfieran unos con otros

� Transferencia de agentes

� negociar el intercambio de agentes

� detener un agente y transferirlo a otro sistema de agentes

� recibir un agente transferido por otro sistema de agentes y continuar su ejecución

� Creación de agentes

� Proporcionar nombres de agentes únicos

� Localizar los agentes móviles

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 38

Sistema de Agentes Móviles

Capacidades del sistema de agentes básico

ExportaciónImportación

Almacenamiento

Seguridad

Execution

Comunicación

Directorio Gestión

ExecutionEjecución

Sistema

de Agentes A

Sistema de

Agentes B

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 39

Sistema de Agentes Móviles

Caracterización de un agente móvil

� Nombre� Autoridad + Identidad + Tipo de sistema de agente

� Globalmente único e inmutable

� Estado� Valores que determinan qué hacer cuando la ejecución del

agente continúe en el sistema de agentes destino

� Localización� Dirección del lugar (y sistema de agentes) donde reside el

agente

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 40

Sistema de Agentes Móviles

Lenguajes para programar agentes móviles

� Java

� La mayoría de los sistemas

� TCL

� D’Agents, SMIA

� C/C++

� Omniware

� Otros

� Telescript

� Lisp, Scheme, propietarios, etc.

Page 11: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 41

Java

� Java facilita la realización de Agentes Móviles

� Movilidad de código

• Applets, Servlets, Jini

• Máquina virtual Java disponible en casi todo HW/S.O.

� Facilidades de comunicación de Java

• sockets, datagramas , Java RMI

• serialización de objetos

• Internet: ftp, http, URL

� Seguridad

• Verificador de bytecode, Java Security, Java Card

� Java chips

• permitirá la utilización de agentes móviles en sistemas empotrados

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 42

Java

� Seguridad en distintos niveles:

� Seguridad de bajo nivel

• Diseño del lenguaje (eliminación de punteros)

• Comprobaciones en tiempo de compilación (uso de tipos, violación de acceso, desbordamientos de pila,etc.)

• Verificación de bytecode al cargar y durante ejecución (límites de arrays, etc.)

� Seguridad de alto nivel configurable

• La aplicación instancia un gestor de seguridad de los archivos de clase locales

• Cuidado: un posible atacante podría intentar cambiar las clases del sistema

• El cargador de clases obliga a la separación del espacio de nombres

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 43

Java

Seguridad

Clases java

(.java)

Clases java

(.java)

bytecodes

(.class)

javac

bytecode

externo

Verificador

bytecodeempotrado+ JDK

Cargador

de clases

Cargador de sistemade ficheros

Gestor de

Seguridad

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 44

Java

RED

Security Sandbox

Clases .class

Clases firmadasarchivos .jar

Clases localesarchivos .jar .zip

.class

Las clases cargadas desde la red tienen restricciones:* No pueden acceder al sistema local de archivos* Acceso de red sólo al nodo de origen* No pueden acceder a las propiedades del sistema* No pueden acceder a código nativo

Las clases firmadas pueden tener algunas restricciones eliminadas

Las clases cargadas localmente (bibliotecaestándar) no tienen restricciones

Seguridad

Page 12: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 45

Java

Serialización

Clases Objetos

0111010101110

Serializar

Archivoo Stream

0111010101110

Deserializar

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 46

Implementación de AM con Java

Arquitectura básica

Máquina Virtual Java

Sistema de Agentes

Agente residente

Visitante

Lugar Lugar encuentro

MVJ

Sistema de Agentes

Lugar

Java RMI

Interfazdel agente

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 47

Implementación de AM con Java

Clase Agente Móvil

� Toda clase que implemente un agente móvil debe heredar de una clase genérica MobileAgent, que ofrece los siguientes métodos (ciclo de vida) que pueden redefinirse:

� inicializar()

• se llama una sola vez, al crear el agente

� 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 sólo una vez, cuando el agente se destruye

� Asimismo, un Agente Móvil tiene una identidad, que puede implementarse como una clase AgentIdentity

� y ofrece un objeto AgentInterface para comunicarse con otros

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 48

Implementación de AM con Java

Sistema de agentes� Ofrecerá una interfaz remota con métodos para transferir

agentes:

import java.rmi.Remote;import java.rmi.RemoteException;

interface SistemaAgentes extends Remote {

public boolean permisoTransferencia (AgentIdentity agentid,SistemaAgentes servidor) throws ...;

public void empiezaTransferencia (AgentIdentity agentid) throws ...;

public void finTransferencia (AgentIdentity agentid) throws ...;

public void transferenciaArchivoRecursos (AgentIdentity agentid)

throws ...;

public void transferenciaArchivoDatos (AgentIdentity agentid) throws ...;}

Page 13: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 49

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 50

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

Sistemas de AM comerciales

� General Magic: Telescript y Odyssey• http://www.genmagic.com/agents

� IBM: Aglets• http://www.trl.ibm.co.jp/aglets

� Mitsubishi Electric: Concordia• http://www.meitca.com/HSL/Projects/Concordia

� ObjectSpace: Voyager• http://www.objectspace.com/Voyager

� IKV++: Grasshopper• http://www.ikv.de

� Oracle: Mobile Agents• http://www.oracle.com/products/networking/mobile_agents.html

� Ad Astra Engineering: Jumping Beans• http://www.jumpingbeans.com

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 52

Sistemas de AM académicos

� D’Agents

� NOMADS

� KAoS

� Agents for Remote Action (ARA)

� Mole

� Sumatra

� ...

� Una lista más extensa en www.informatik.uni-stuttgart.de/ipvr/vs/projekte/mole/mal/mal.html

Page 14: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 53

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:

� implementación basada en Java

� soporta Java RMI, CORBA IIOP, y DCOM

� Principal aplicación: mercado electrónico� Primera aplicación Telescript: sistema de comunicaciones (e-mail,

fax, teléfono, etc.) personal de AT&T y America Online (usando el PDA Magic Link de Sony)

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 54

Telescript y Odyssey

Modelo de agentes móviles

Aplicación de compra

Centro comercial electrónico

REDLugar

directorioLugar billetes

Lugar Floristería

AgentesReuniónViaje

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 55

Telescript

� Componentes

� Lugares

• donde los agentes pueden estar, trabajar y proporcionar servicios a otros agentes

• Tanto clientes como servidores pueden ofrecer lugares

• Desaparece la distinción entre cliente y servidor

� Agentes

• móviles o estacionarios

• independientes, se ejecutan concurrentemente

� Viajes

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

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 56

Telescript

� Componentes (cont.)

� Reuniones

• si están en el mismo lugar, dos agentes pueden comunicarse invocando procedimientos uno del otro

• instrucción meet

� Conexiones

• los agentes se pueden conectar si están en distintos lugares

� Autoridades

• permiten identificar de quién es y de dónde viene un agente

• un lugar puede denegar la entrada a un agente que no estéautorizado

� 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

Page 15: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 57

Telescript

� Lenguaje de programación de agentes

� Para escribir agentes y las superficies de los lugares que visitan

• Completo

• Orientado a objetos

• clase base Agent

• Dinámico: al moverse un agente, puede que tenga que moverse con él su definición de clase

• Persistencia

• Portable: máquina virtual (Engine)

• Seguro: control de acceso a recursos

• Centrado en las comunicaciones: go, meet, communicate

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 58

Telescript

Engine

� Ejecuta o interpreta los agentes

� Ofrece un API para acceder a:� Transporte� Almacenamiento� Aplicaciones externas

TransporteAplicaciones

externasAlmacenamiento

Engine

Agentes

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 59

Telescript

Protocolos� Gestionan la comunicación entre Engines

� Permiten transportar agentes

� Pueden ejecutarse sobre varios protocolos (p.ej. TCP/IP)

� Ofrecen servicios de autenticación y seguridad

TransporteAplicaciones

externasAlmacenamiento

Agentes

EngineCodificaciónde agentes

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 60

Odyssey

� Disponible en Windows y Unix, sobre JDK 1.1 (100% pureJava)

� Soporta varios protocolos para transportar agentes:

� Java RMI, CORBA IIOP, DCOM

� Acceso a objetos remotos con CORBA y bases de datos relacionales con JDBC

� Mecanismo de depuración de agentes distribuidos (audittrail)

Page 16: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 61

Aglets

Aglets Workbenchhttp://sourceforge.net/projects/aglets/

� Desarrollado por IBM Tokyo Research Labs (1996-2002)

aglet = agent + applet

� Armazón (framework) basado en Java para construir aplicaciones distribuidas usando el paradigma de AM

+ Herramientas:

� Servidor de aglets: Tahiti

� Constructor visual de aglets: Tazza

� Lanzador de aglets para la WWW: Fiji

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 62

Aglets

Arquitectura

Transporte Java Runtime Almacenamiento

Máquina Virtual Java

Demonio Aglet + ATP

Aglet Context

Aglet Proxy

Aglet

Aglet Proxy

Aglet

Aglet Context

Aglet Proxy

Aglet

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 63

Aglets

agletsd� El demonio de aglets (agletsd) se puede ejecutar como

Applet o como aplicación

� Arranca el servidor de aglets Tahiti

� Proporciona una interfaz gráfica de gestión del servidor

Transporte Java Runtime Almacenamiento

Máquina Virtual Java

Demonio Aglet + ATP

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 64

Aglets

Ciclo de vida

� Creación

� onCreation()

� onDisposal()

� Movilidad

� onArrival()

� onDispatching()

� onReverting()

� Clone

� onClone()

� Persistencia

Created

Dispatched Arrived

Disposed

Start

End

Page 17: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 65

Aglets

Ejemplo (modificado del JAAPI WhitePaper)

import aglet.*;import java.net.URL;

public class EjemploAglet extends Aglet {private boolean remoto_ = false;

private String donde() {return “EjemploAglet”+(remoto_ ? “ (remoto) “ : “ (origen)”);

}

public boolean onDispatching(URL url) {System.out.println(“en Dispatching”+donde());

}

public boolean onArrival() {remoto_ = true; // el lugar donde llega el aglet es remotoSystem.out.println(“en Arrival”+donde());

}

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 66

Aglets

Ejemplo (continuación)

public void run() {if (!remoto_) {

System.out.println(“Arrancando”+donde());System.out.println(“Dispatching EjemploAglet...”);try {

String servidor=getAgletContext().getHostingURL().toString();URL destino=

new URL((String)getAgletContext().getProperty(“destino”);dispatch(destino);System.out.println(“Esto no debería verse”);

} catch (Exception e) { /* tratamiento */ }}

else {System.out.println(“Arrancando “+donde());// ...

}}

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 67

Aglets: movilidad débil

� Los aglets proporcionan movilidad débil

� Movilidad fuerte sería lo siguiente:

public class Example extends MobileAgent

{

public static void main (String[] args)

{

System.out.println (“En origen”);

go (destino);

System.out.println (“En destino”);

}

}

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 68

NOMADS

� Implementación 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.

� También controla el uso de recursos

• 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

Page 18: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 69

Agents TCL

� Sistema de AM desarrollado en el Darmouth College

http://agent.cs.dartmouth.edu/

� Ahora denominado : D’Agents� Características:

� Arquitectura en capas que soporta:• Varios lenguajes: Tcl, Java, Scheme

• Varios mecanismos de transporte (el principal es TCP/IP)

� Migración de agentes incluyendo un sistema de atraque (docking)

� Comunicación de agentes• Paso de mensajes y flujos (streams)

• RPC

� Seguridad

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 70

Agents TCL

Arquitectura

TCP/IP e-mail

Servidor

Tcl Java Scheme

Servidor de

NombresAgentes

Sistema de

atraque

Monitor de

red

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 71

Agents TCL

Sistema de atraque (Docking system)

Red de conectividad

permanente

Máquina 3

Máquina 2

Máquina 1

Portátil 1

Portátil 3

Portátil 2

muelle_portátil1muelle_portátil2

muelle_portátil3

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 72

Agents TCL

Sistema de atraque (Docking system)

M3M1P1muelle_P1

Cola de agentes

esperando a saltar a M1Cola de agentes

esperando a saltar a P1

1. agent_jump~P1

2. transfiere agente

4. detecta reconexión

3. atraca el agente

5. notifica conexión

6. transferencia de agentes en espera

Page 19: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 73

Estandarización

� OMG MASIF (Mobile Agent System InteroperabilityFacilities)

� Interoperabilidad de sistemas de agentes

� Define interfaces IDL para mover agentes entre plataformas

� FIPA (Foundation for Intelligent Physical Agents)

� Especificaciones de mecanismos y aplicaciones

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 74

Grasshopper

Grasshopper-2, IKV++

� Plataforma de agentes móviles compatible con OMG MASIF

� Servicios de comunicación� Múltiples protocolos: Java RMI, sockets, SSL, CORBA

� Varios modos de comunicación: síncrono, asíncrono, multicast

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

Grasshopper

Region

Agency

Place

MA

MA

MA

SA

Core Agency Communication

Management

MAFAgent System

Persistence

Registration

Security

Transport

Region Registry

MAFAgent System

Management

Communication

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 76

Conclusiones

� Los AM ofrecen

� un marco abierto para la implantación y personalización de servicios en red

• siguiendo un modelo antropomórfico (fácil de modelar)

� capacidad de desarrollar nuevos servicios (luego nuevas posibilidades de negocios en la red)

• comercio electrónico integral

� Potencian al usuario individual

� especialmente en entornos como Internet

� el usuario gana en capacidad de cómputo, automatización de tareas distribuidas (por ejemplo, búsqueda y filtrado de información), menor dependencia del acceso a la red

Page 20: Cursode doctorado: Agentes Inteligentes - fdi.ucm.es · PDF filecomportamiento “inteligente”: razonamiento, planificación, aprendizaje, etc. Los agentes móviles (AM) tienen la

Juan Pavón MestrasFacultad de Informática UCM, 2005-06 Agentes Móviles 77

Conclusiones

� La tecnología de AM es viable

� Java es lo más estándar para realizar plataformas de AM

� Los aspectos de seguridad pueden apoyarse en las facilidades de Java (verificación de bytecode, Java Security, Java Card)

� Grupos de normalización (OMG, FIPA) han abordado el problema de la heterogeneidad de plataformas

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

Enlaces

� Cetus Links

� http://www.cetus-links.org/oo_mobile_agents.html

� Lista de plataformas de agentes móviles

� http://mole.informatik.uni-stuttgart.de/mal/preview/preview.html

� Conferencia MATA (Mobile Aware Technologies and Applications)

� http://www.informatik.uni-trier.de/~ley/db/conf/mata/index.html