PDF de programación - Agentes Móviles - Ingeniería del Software II

Imágen de pdf Agentes Móviles - Ingeniería del Software II

Agentes Móviles - Ingeniería del Software IIgráfica de visualizaciones

Publicado el 21 de Enero del 2019
585 visualizaciones desde el 21 de Enero del 2019
323,2 KB
31 paginas
Creado hace 15a (14/01/2009)
Agentes Móviles

Ingeniería del Software II

Curso 2008/2009
Sergio Ilarri Artigas

[email protected]

Índice

Agentes vs. Objetos
Caracterización de la Movilidad
Agentes Móviles: definición, ventajas,

aplicaciones

Movilidad: Fuerte y Débil
Plataformas de Agentes Móviles
SPRINGS:

Proxiesdinámicos
Problema de Livelock

Agentes vs. Objetos (I)

Fuente: Software Agent Technology, Summary Lecture, Heimo Laamanen, 2.5.2006

Agentes vs. Objetos (II)

Ambos encapsulan el estado
Los agentes, además, encapsulan un

comportamiento
Los objetos no, dado que no tienen ningún

control sobre la ejecución de sus métodos
Obsérvese una diferencia importante:

Invocamosmétodos de objetos
Pedimosa los agentes que ejecuten

acciones

Agentes vs. Agentes Móviles

Agentes:

Inteligencia artificial
Son “inteligentes”
Pueden moverse o no

Agentes móviles:

Computación distribuida
Son móviles
Pueden ser inteligentes o no

Conflicto y esperada
reconciliación

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

Soportan
usuarios
móviles

(asíncronos)

Los Ancestros...

Frente al paradigma clásico

cliente/servidor, surge la idea de
movilidad de código

Código móvil:

Evaluación remota
Código bajo demanda
Procesos móviles

Paradigma Cliente/Servidor
Aproximación clásica en sistemas distribuidos
Cliente y servidor estáticos
El cliente le pide algo al servidor
El servidor lo hace y le devuelve al cliente un

Conceptos de lenguajes de programación:

resultado

RPC
RMI
Servicios web

Frente a C/S, los agentes móviles

Paradigma de diseño alternativo
Paradigma de diseño complementario

Paradigma de Evaluación
Remota

Remote Evaluation(REV)
Extiende la idea de RPC
El cliente envía código al servidor para que

lo ejecute
Ejemplos:

El lenguaje Postscriptpara impresoras
El envío remoto de trabajos por lotes
NCL(Network CommandLanguage)
SQLremoto

Paradigma de Código Bajo
Demanda

Code-on-demand
También se envía código... pero del

servidor al cliente

Por tanto, se usan recursos del cliente
Ejemplo: appletsde Java

Procesos Móviles

Área de los sistemas operativos

distribuidos (finales de los 80)

Migración de procesos para balancear

carga

Ejemplo: Sprite
Ejemplo de técnica de implementación:

checkpointing
Imágenes periódicas
Envío de la imagen

Procesos vs. Agentes Móviles

Frente a los procesos móviles, los

agentes móviles:
No sólo se mueven por balanceo de carga

Acceso a servicios

La migración no la inicia el SOo

middleware
Agente autónomo

No sólo se mueven una vez

Migración multi-salto, itinerario

Caracterización de la Movilidad

RPC, RSH, RMI, servlets,
procedimientos almacenados

Movilidad
débil

i

n
ó
c
a
u
p
m
o
C

l
i

v
ó
m

Movilidad
fuerte

Migración

de

procesos

Estado
móvil

Checkpointing

Código
móvil

Instalación
remota,
applets

Adaptado de una transparencia de Niranjan Suri

([email protected])

Agentes 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/RMI, pero también es una

tecnología complementaria

Una Alternativa a C/S

Usando conexión inalámbrica

Espera un
Toma el
poco…
resultado

Los agentes móviles pueden reducir el uso de la red y la transferencia de datos

Características

Algunas características interesantes de los agentes (móviles)

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)

Ventajas
Evitan instalaciones innecesarias
“Salvan” la latencia de red: comunicación local
Encapsulan protocolos (bases de datos, 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
Adaptación de interfaces

Campos de Aplicación (I)

Algunos entornos donde se han utilizado:

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, ubicuos,

inteligentes, P2P, ...

...

Campos de Aplicación (II)

¿Y la killer application?

¿Cómo puede defenderse un lenguaje

estructurado frente a un lenguaje
ensamblador?

Agentes Móviles en Entornos
Móviles

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

Plataformas de Agentes
Móviles

Aglets
Voyager
Tryllian
Grasshopper
Jade, Tracy, Mole, SeMoa, …
Todas presentan problemas...

Por ejemplo, de escalabilidad y concurrencia
Por ello, desarrollamos SPRINGS

Movilidad: Cómo Funciona

Los agentes móviles se crean en placesy

viajan entre places

moveTo(newHost)

Se interrumpela ejecución del thread
Se serializael código, datos y (quizá) el estado de

ejecución del agente (qué estaba ejecutando):
Movilidad fuerte y movilidad débil

El agente se reconstruye en el placedestino y

continúa su ejecución

Movilidad 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”);

}

}

Dificultades:
-No es posible con Java estándar
-No todos los recursos son móviles: múltiples threads, ficheros abiertos, etc.

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");

}

Movilidad Fuerte vs. Débil

Movilidad débil

No se transfiere el estado de ejecución
En destino, se ejecuta siempre un método predefinido o un

método callbackespecificado por el programador

El programador guarda y restaura el estado de ejecución

Movilidad fuerte

Se transfiere el estado de ejecución
Plataformas basadas en lenguajes de script
Plataformas basadas en Java:

Preprocesado para cambiar el código y capturar “a mano” el

estado

Modificaciones a la máquina virtual de Java

SPRINGS

Escalable, mucho mejor rendimiento

(3000 agentes en testexigente)

Transparencia de localización:

Llamadas: proxies dinámicos

callAgentMethod(“MovingAgentExample”,”go”args);

Movimientos: callbacks

moveTo("C2","end");

Reintentos automáticos
Prevención de livelock

http://sid.cps.unizar.es/SPRINGS/

Problema de Livelock

ERROR

ERROR

C2
C1

Proxy a
Agente1

Contexto C1

Estoy
en C2

Contexto C4

Contexto C2

Contexto C3

Problema de Livelock

Contexto C1

Contexto C4

Contexto C2

En SPRINGS

-Primero se actualizan los proxies,

luego se renuda el agente

-Se retardan agentes muy rápidos

Contexto C3

Referencias

Seven Good Reasons for Mobile Agents, Danny B. Lange and Mitsuru Oshima,
Communications of the ACM, Volume 42 , Issue 3 (March 1999), pp. 88-89,
ACM Press, ISSN:0001-0782, 1999

Wireless Computational Models: Mobile Agents to the Rescue, C. Spyrou, G.
Samaras, E. Pitoura, and P. Evripidou, DEXA99 International Workshop on
Mobility in Databases and Distributed Systems, August 1999, pp 428-433, IEEE
Computer Society

SPRINGS: A Scalable Platform for Highly Mobile Agents in Distributed Computing
Environments, S. Ilarri, R. Trillo and E. Mena, 4th International WoWMoM 2006
workshop on Mobile Distributed Computing (MDC'06), Buffalo, New York (USA),
IEEE Computer Society, ISBN 0-7695-2593-8, pp. 633-637, June 2006

Mobile Agents: Basic Concepts, Mobility Models, and the Tracy Toolkit, Peter
Braun and Wilhelm R. Rossak, Morgan Kaufmann Pub.
  • Links de descarga
http://lwp-l.com/pdf14936

Comentarios de: Agentes Móviles - Ingeniería del Software II (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad