tecnología de agentes móviles

47
Sergio Ilarri - Sistemas de Información, Mayo 2006 Tecnología de Agentes Móviles Sergio Ilarri Centro Politécnico Superior Edificio Ada Byron Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería de Sistemas [email protected] http://webdiis.unizar.es/~silarri/

Upload: emma

Post on 20-Jan-2016

46 views

Category:

Documents


0 download

DESCRIPTION

Tecnología de Agentes Móviles. Sergio Ilarri Centro Politécnico Superior Edificio Ada Byron Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería de Sistemas [email protected] http://webdiis.unizar.es/~silarri/. Índice. PRIMERA PARTE: Agentes software - PowerPoint PPT Presentation

TRANSCRIPT

Sergio Ilarri - Sistemas de Información, Mayo 2006

Tecnología de AgentesMóviles

Sergio IlarriCentro Politécnico Superior

Edificio Ada ByronÁrea de Lenguajes y Sistemas Informáticos

Dpto. de Informática e Ingeniería de [email protected]

http://webdiis.unizar.es/~silarri/

Sergio Ilarri - Sistemas de Información, Mayo 2006

ÍndicePRIMERA PARTE: Agentes software Agentes móviles

SEGUNDA PARTE: Agentes móviles en computación móvil Sistemas basados en agentes móviles

Sergio Ilarri - Sistemas de Información, Mayo 2006

Agentes Software

Sergio Ilarri - Sistemas de Información, Mayo 2006

¿Qué es un agente?“encapsulated computer system, situated in

some environment, and capable of flexible autonomous action in that environment in

order to meet its design objectives” (Wooldridge)

Sergio Ilarri - Sistemas de Información, Mayo 2006

¿Qué es un agente?“encapsulated computer system, situated in some

environment, and capable of flexible autonomous action in that environment in order

to meet its design objectives” (Wooldridge)

• control sobre el estado interno y comportamiento

Sergio Ilarri - Sistemas de Información, Mayo 2006

¿Qué es un agente?“encapsulated computer system, situated in some

environment, and capable of flexible autonomous action in that environment in order

to meet its design objectives” (Wooldridge)

• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él

(actuadores)

Sergio Ilarri - Sistemas de Información, Mayo 2006

¿Qué es un agente?“encapsulated computer system, situated in some

environment, and capable of flexible autonomous action in that environment in order

to meet its design objectives” (Wooldridge)

• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él

(actuadores)• reactivo: responde a cambios en el entorno

Sergio Ilarri - Sistemas de Información, Mayo 2006

¿Qué es un agente?“encapsulated computer system, situated in some

environment, and capable of flexible autonomous action in that environment in order

to meet its design objectives” (Wooldridge)

• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él

(actuadores)• reactivo: responde a cambios en el entorno• proactivo: actúa para conseguir sus objetivos

Sergio Ilarri - Sistemas de Información, Mayo 2006

OrígenesAgentes y sistemas multiagentes:

Conceptos con origen en la Inteligencia Artificial Auge en los 90 de los sistemas multiagentes y los

agentes móviles: paradigma de software adecuado para el desarrollo

y explotación de entornos altamente distribuidos y abiertos (ej.: Internet)

La idea de agentes y sistemas multiagentes parece emerger o fusionarse en múltiples dominios de aplicación

El área de los sistemas multiagentes está influenciada e inspirada por muchos otros campos: Teoría de juegos, lógica, ecología, ciencias sociales,

economía, filosofía ...

Sergio Ilarri - Sistemas de Información, Mayo 2006

Tecnologías padreInteligencia artificialIngeniería del softwareSistemas distribuidosCiencia de las organizacionesBases de datosEconomíaTeoría de juegosVida artificial

Sergio Ilarri - Sistemas de Información, Mayo 2006

Agentes inteligentesSon programas: Autónomos Actúan en representación de alguien Tienen una agenda de objetivos “Inteligentes”, aprenden

Pueden también ser: Cooperativos Móviles

Nuevo paradigma de diseño de software: AOSE = Agent Oriented Software

Engineering

Sergio Ilarri - Sistemas de Información, Mayo 2006

¿Son éstos agentes?

Web crawler = spider = ant Cliente de emailVirus

Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents. Stan Franklin and Art Graesser. Proceedings of the Third

International Workshop on Agent Theories, Architectures, andLanguages, Springer-Verlag, 1996.

Sergio Ilarri - Sistemas de Información, Mayo 2006

Metáfora de los agentesRepresentante del usuarioÉnfasis en comunicaciónAutonomíaPersistencia

Sergio Ilarri - Sistemas de Información, Mayo 2006

Utilidad de los agentesCapacidad de operación en un entorno dinámico,

abierto, impredecible Potencial para explotar Internet Interacción con software legado Modelado de entornos complejosPotencial para software más inteligenteNivel de abstracción natural, modularidad, división de problemas…

Sergio Ilarri - Sistemas de Información, Mayo 2006

Los agentes no son

AsistentesLenguajes de scriptLenguajes de programación Redes neuronalesSistemas basados en reglasSistemas expertosObjetos

Autónomos: mismo método, distintas respuestas Comportamiento proactivo, reactivo y social Hilo de control

Sergio Ilarri - Sistemas de Información, Mayo 2006

Características de los agentes

Propiedad Otros nombres Significadoreactivos (sentir y actuar) responder a tiempo a cambios en el entorno

autónomos ejercer control sobre las propias accionesproactivos orientados a objetivos no actúan simplemente en respuesta al entorno

persistentes temporalmente continuos son procesos que se ejecutan continuamentecomunicativos sociables se comunican con otros agentes, quizá personas

adaptativos que aprenden cambian su comportamiento con experiencias previasmóviles se pueden mover de máquina a máquinaflexibles sus acciones no están pre-programadascarácter personalidad y estado emocional

Sergio Ilarri - Sistemas de Información, Mayo 2006

Clasificación

Débiles Fuertes Otras propiedades

Autonomía Conocimiento/creencias Racionalalidad

Sociabilidad Intenciones Sinceridad

Reactividad Deseos/Objetivos Benevolencia

Proactividad Obligaciones Movilidad

Persistencia Capacidades Emociones

Jennings/Wooldridge

Sergio Ilarri - Sistemas de Información, Mayo 2006

Sistemas multiagente

Red de agentes software que interactúan para resolver problemas que van más allá de las capacidades individuales o del conocimiento de cada uno (K. Sycara) Capaces de desarrollar acciones autónomas

para la realización de sus tareas Capaces de interaccionar (cooperar,

coordinar, negociar) con otros para realizar sus tareas

Comunicación: ACLs: KQML, FIPA-ACL, … Intercambio de conocimiento

Sergio Ilarri - Sistemas de Información, Mayo 2006

www.multiagent.com

AkiraAgent FactoryBee-gent FrameworkCougaarExcaliburJadex BDIJATLiteJava Communicating Agents

JACKJESSMAPOAAPRSSIM_AGENTZeusAgent UMLBB1

Sergio Ilarri - Sistemas de Información, Mayo 2006

Agentes Móviles

Sergio Ilarri - Sistemas de Información, Mayo 2006

Agentes móviles: definición

Agentes software: Se mueven de ordenador a ordenador A petición del usuario, autónomamente Ejemplo: gestión de viajes

Sergio Ilarri - Sistemas de Información, Mayo 2006

Caracterización de la movilidad

Códigomóvil

Com

pua

ción

móv

il

Estad

o

móv

il

RPC, RSH, RMI, servlets,procedimientos almacenados

Instalación remota,applets

Checkpointing

Movilidad débil

Movilidad fuerte

Migración de procesos

Adaptado de una transparencia de Niranjan Suri([email protected])

Sergio Ilarri - Sistemas de Información, Mayo 2006

Agentes móvilesPrograma que se ejecuta en un cierto contexto de ejecución o place, y viaja de place a place

Capaces de transportarse a sí mismos entre ordenadores

Necesita cierta infraestructura (plataforma de agentes)

Agentes móviles código móvilAlternativa a RPC

Sergio Ilarri - Sistemas de Información, Mayo 2006

Agentes MóvilesEspera un

poco…Toma el resultadoUsando conexión inalámbrica

Sergio Ilarri - Sistemas de Información, Mayo 2006

Modelo de Agentes Móviles (I)

Agente móvil: programa que puede cambiar de ordenador (código+ datos+ estado) para llevar acabo su tarea

Entorno de ejecución El entorno comprueba sus credenciales Se ejecuta autónomamente Para realizar su tarea: trasladarse a otras máquinas,

usar recursos locales/remotos, interactuar con otros agentes, crear nuevos agentes y diseminarlos, etc..

Una vez realizada su tarea, el agente lleva o envía los resultados al cliente, u otro servidor, destinatario, etc...

Sergio Ilarri - Sistemas de Información, Mayo 2006

Modelo de Agentes Móviles (II)Algunas características interesantes

Autonomía: no/mínima interacción con el creador Interoperabilidad: hardware, SO, etc. Reactividad: cambios/eventos del entorno Cooperación: objetivo común “Inteligencia” (especialistas) Movilidad

Agentes móviles en particular (sinergia)

Sergio Ilarri - Sistemas de Información, Mayo 2006

Modelo de Agentes Móviles (III)Ventajas:

Evitan instalaciones innecesarias “Salvan” la latencia de red: comm. local Encapsulan protocolos (BDs, etc.) Asíncronos/autónomos: desconexiones Adaptativos: Reaccionar entorno Moverse: balanceado de carga, localidad datos Integración de sistemas heterogéneos Robustez/tolerancia a fallos

Sergio Ilarri - Sistemas de Información, Mayo 2006

Modelo de Agentes Móviles (IV)Aplicaciones:

Recuperación de información distribuida Procesamiento paralelo Asistente personal Diseminación de información E-commerce Gestión de red

heterogeneidad, monitorización, personalización, enrutamiento.

Aplicaciones de worflow Brokering Entornos distribuidos: entornos móviles, pervasivos,

inteligentes, P2P, ... ...

Sergio Ilarri - Sistemas de Información, Mayo 2006

Modelo de Agentes Móviles (V)

Apropiados para computación inalámbrica: Desconexiones:

Breve conexión: enviar agente a red fija Antes de desconexión: coger agente de red fija

Descarga de trabajo del cliente Contribuyen a limitar el uso de las comunicaciones

inalámbricas: Reducir los datos a intercambiar por el enlace

inalámbrico Evitar interacciones entre cliente y servidor Sólo comunicar agente y resultado

Sergio Ilarri - Sistemas de Información, Mayo 2006

Movilidad: cómo funciona

Los agentes móviles se crean en places Viajan entre places

moveTo(newHost) Se interrumpe la ejecución del thread Se serializa el código, datos y (quizá) el

estado del agente El agente se reconstruye en el place destino

y continúa su ejecución Movilidad fuerte/débil

Sergio Ilarri - Sistemas de Información, Mayo 2006

Movilidad fuertepublic class AgenteMovFuerte extends Agente

{

public static void main(String[] args)

{

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

moveTo(destino);

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

}

}

-No Java estándar

-Múltiples threads

-Ficheros abiertos, etc.

Sergio Ilarri - Sistemas de Información, Mayo 2006

Movilidad débil (Aglets)public class AgenteMovDebil extends Aglet { boolean enRemoto = false; public void onCreation (Object init) { addMobilityListener ( new MobilityAdapter() { public void onArrival (MobilityEvent e) {

enRemoto = true; } } ); } public void run() { if (! enRemoto) { System.out.println (“En ordenador origen”); dispatch(destination); } else { System.out.println (“En ordenador destino”); } }}

Sergio Ilarri - Sistemas de Información, Mayo 2006

Movilidad débil (Voyager)public class AgenteMovDebil extends Agent { public void metodoDestino (Object init) { System.out.println (“En ordenador destino”); }

public void move(String destino) { Iagent proxy = Agent.of(this); System.out.println (“En ordenador origen”); proxy.moveTo(destino, “metodoDestino”); }}

public static void main(String[] args) { Voyager.startup("8000"); String serverClass = "AgenteMovDebil"; AgenteMovDebil ag = new AgenteMovDebil(); ag.move("tcp://fargo.sdsu.edu:8000");}

Sergio Ilarri - Sistemas de Información, Mayo 2006

Control de los saltos

Problemas con el moveTo (red, permisos, etc.) excepción place origen (política de reintentos)

Notificación de movimiento (Ej: Voyager, SPRINGS) preDeparture()

En el origen, antes de iniciar el viaje preArrival()

En el destino, antes de la reconstrucción postArrival()

En el destino, agente reconstruido correctamente, justo antes del callback

postDeparture() En el origen, en paralelo con el callback del destino

Sergio Ilarri - Sistemas de Información, Mayo 2006

Utilizando agentes móviles

Robustez frente a desconexiones Mejor diseño: delegación de tareas Facilidad de programación Plataformas de agentes

• Interoperabilidad• Fiabilidad• Escalabilidad

Eficiencia? RPC

0,1 M 0,2 M 0,45 M 1 M 2 M 4 M 8 M 16 M 33 M

Sergio Ilarri - Sistemas de Información, Mayo 2006

Soporte software para los agentes móviles (I)

Agencia: entorno de ejecución

Sistema de agentes móviles: conjunto de agencias en una aplicación

Toolkit: implementación concreta

Plataforma de agentes móvilesPlace (contexto)

Sergio Ilarri - Sistemas de Información, Mayo 2006

Soporte software para los agentes móviles (II)

Soporte para movilidad Soporte para comunicación

RPC vs. paso de mensajes (ACLs) Transparencia de localización:

Tracking: fuerza bruta, cadena de punteros, actualización Servicio de nombres

Seguridad

Sergio Ilarri - Sistemas de Información, Mayo 2006

Plataformas de agentes móviles (Toolkits)

Aglets Buen API para agentes móviles JDK 1.1 código abierto Java 2 Mono-thread, bloqueo mensajes síncronos, no transp. localiz.

Voyager CORBA + agentes móviles, encadenamiento de proxies El ataque de los clones, viajes infinitos con DNS,...

Bugs, escalabilidad Transp. localiz.: regiones

Miles de agentes (en la misma máquina) Lento, basado en eventos, mono-thread, no transp. localiz.

Otros: Jade, Tracy, Mole, SeMoa, etc… … … …

Sergio Ilarri - Sistemas de Información, Mayo 2006

Motivación

Las plataformas existentes no van bien:

problema de escalabilidadFacilitar la vida al programador Transparencia de localización:

Llamadas: proxies dinámicos Movimientos

Reintentos automáticos Prevención de livelock

Sergio Ilarri - Sistemas de Información, Mayo 2006

Proxies Dinámicos

Proxy a Agente1

Contexto C1

Contexto C4 Contexto C2

Contexto C3

C1

Estoy en C2

C2

Estoy en C3

C3

Sergio Ilarri - Sistemas de Información, Mayo 2006

Problema de Livelock

Proxy a Agente1

Contexto C1

Contexto C4 Contexto C2

Contexto C3

C1

Estoy en C2

C2ERROR

ERROR

Sergio Ilarri - Sistemas de Información, Mayo 2006

Problema de Livelock

Contexto C1

Contexto C4 Contexto C2

Contexto C3

-Primero actualizar proxies, luego reanudar agente

-Retardar agentes muy rápidos

Sergio Ilarri - Sistemas de Información, Mayo 2006

Evaluación en Entorno Dinámico

Ciclo de vida de un agente:1) Elegir agente destino (al azar)2) Moverse al azar a otro contexto3) Llamar al agente destino4) Si (num. iteraciones = 50), tarea

terminada5) Repetir hasta que todos los agentes

terminen

Sergio Ilarri - Sistemas de Información, Mayo 2006

Escalabilidad

Sergio Ilarri - Sistemas de Información, Mayo 2006

Comparativa

0500

100015002000250030003500400045005000

0:00

0:30

1:00

1:30

2:00

2:30

3:00

3:30

4:00

4:30

5:00

5:30

6:00

6:30

7:00

7:30

8:00

8:30

9:00

9:30

10:00

Tiempo de test (minutos)

mer

o d

e it

erac

ion

es

SPRINGS Voyager Grasshopper Aglets Tryllian

Todos acaban4600, acaban 89

2600, acaban 02040, acaban 33

600, acaban 1

Sergio Ilarri - Sistemas de Información, Mayo 2006

Estándares de agentes (móviles)

Mobile Agent System Interoperability Facility - MASIF (OMG) Interoperabilidad entre sistemas de agentes

Foundation for Intelligent Physical Agents - FIPA (www.fipa.org) Interacción humanos/agentes, control y

gestión de agentes, seguridad, movilidad, comunicación, etc..

FIPA ACL (derivado de KQML)

Sergio Ilarri - Sistemas de Información, Mayo 2006

Graciaspor su atención

http://webdiis.unizar.es/~silarri/