Title: Tecnolog
1Tecnologí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
- silarri_at_unizar.es
- http//webdiis.unizar.es/silarri/
2Índice
- PRIMERA PARTE
- Agentes software
- Agentes móviles
- SEGUNDA PARTE
- Agentes móviles en computación móvil
- Sistemas basados en agentes móviles
3Agentes Software
4Qué 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)
5Qué 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
6Qué 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)
7Qué 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
8Qué 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
9Orígenes
- Agentes 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 ...
10Tecnologías padre
- Inteligencia artificial
- Ingeniería del software
- Sistemas distribuidos
- Ciencia de las organizaciones
- Bases de datos
- Economía
- Teoría de juegos
- Vida artificial
11Agentes inteligentes
- Son 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
12Son éstos agentes?
- Web crawler spider ant
- Cliente de email
- Virus
- 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, and - Languages, Springer-Verlag, 1996.
13Metáfora de los agentes
- Representante del usuario
- Énfasis en comunicación
- Autonomía
- Persistencia
14Utilidad de los agentes
- Capacidad de operación en un entorno dinámico,
- abierto, impredecible
- Potencial para explotar Internet
- Interacción con software legado
- Modelado de entornos complejos
- Potencial para software más inteligente
- Nivel de abstracción natural, modularidad,
división de problemas
15Los agentes no son
- Asistentes
- Lenguajes de script
- Lenguajes de programación
- Redes neuronales
- Sistemas basados en reglas
- Sistemas expertos
- Objetos
- Autónomos mismo método, distintas respuestas
- Comportamiento proactivo, reactivo y social
- Hilo de control
16Características de los agentes
17Clasificación
Jennings/Wooldridge
18Sistemas 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
19www.multiagent.com
- Akira
- Agent Factory
- Bee-gent Framework
- Cougaar
- Excalibur
- Jadex BDI
- JATLite
- Java Communicating Agents
- JACK
- JESS
- MAP
- OAA
- PRS
- SIM_AGENT
- Zeus
- Agent UML
- BB1
20Agentes Móviles
21Agentes móviles definición
- Agentes software
- Se mueven de ordenador a ordenador
- A petición del usuario, autónomamente
- Ejemplo gestión de viajes
22Caracterización de la movilidad
Adaptado de una transparencia de Niranjan
Suri (nsuri_at_ai.uwf.edu)
23Agentes móviles
- Programa 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óvil
- Alternativa a RPC
24Agentes Móviles
Espera un poco
Toma el resultado
Usando conexión inalámbrica
25Modelo 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...
26Modelo 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)
27Modelo 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
28Modelo 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, ... - ...
29Modelo 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
30Movilidad 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
31Movilidad fuerte
- public 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.
32Movilidad 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) -
33Movilidad 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.edu8000")
Callback
34Control 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
35Utilizando agentes móviles
- Robustez frente a desconexiones
- Mejor diseño delegación de tareas
- Facilidad de programación
- Plataformas de agentes
- Interoperabilidad
- Fiabilidad
- Escalabilidad
36Soporte 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óviles
- Place (contexto)
37Soporte 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
38Plataformas 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
39Motivación
- Las plataformas existentes no van bien
- problema de escalabilidad
- Facilitar la vida al programador
- Transparencia de localización
- Llamadas proxies dinámicos
- Movimientos
- Reintentos automáticos
- Prevención de livelock
40Proxies Dinámicos
Proxy a Agente1
Contexto C1
Estoy en C3
Contexto C2
Contexto C4
Contexto C3
41Problema de Livelock
Proxy a Agente1
Contexto C1
Contexto C2
Contexto C4
Contexto C3
42Problema de Livelock
Contexto C1
Contexto C2
Contexto C4
-Primero actualizar proxies, luego reanudar
agente -Retardar agentes muy rápidos
Contexto C3
43Evaluación en Entorno Dinámico
- Ciclo de vida de un agente
- Elegir agente destino (al azar)
- Moverse al azar a otro contexto
- Llamar al agente destino
- Si (num. iteraciones 50), tarea terminada
- Repetir hasta que todos los agentes terminen
44Escalabilidad
45Comparativa
46Está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)
47 Gracias por su atención http//webdiis.unizar.
es/silarri/