tecnología de agentes móviles
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 PresentationTRANSCRIPT
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
¿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: 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
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)
Nú
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)