agentes móviles andrés marín lópez gestión de la información multimedia en internet
TRANSCRIPT
![Page 1: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/1.jpg)
Agentes Móviles
Andrés Marín López
Gestión de la Información Multimedia en Internet
![Page 2: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/2.jpg)
Indice
Introducción: movilidad de datos y código:– RPCs, HTTP, NFS– Computación distribuida y migración de procesos
Agentes Móviles:– Introducción– IBM Aglets– MASIF– IKV++ GrassHopper
![Page 3: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/3.jpg)
Introducción
Las redes nos permiten distribuir cálculos, datos, compartir recursos, etc.
Alternativas: – Modelo cliente/servidor: RPCs, HTTP– Movilidad de datos: NFS– Movilidad de código: Migración de procesos– Programación remota: agentes móviles
![Page 4: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/4.jpg)
RPCs
Sun Microsystems, Inc. (RFC 1057) Protocolo de mensajes para acceso a
procedimientos remotos Uso de representaciones de datos
independientes de la arquitectura (XDR) Utilización de stubs (rpcgen) para adecuar
las llamadas y las respuestas.
![Page 5: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/5.jpg)
•Distintas versiones•Servicio de portmaper (rpcinfo)•Poco flexible o personalizable•Trasiego elevado de datos•Optimización de servidores
Cliente Servidor
Cl_stub Srv_stub
RPCs
![Page 6: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/6.jpg)
HTTP
Servicio de información basado en el modelo cliente servidor (RFC 1945)
Utilización de MIME para contenidos multimedia
Protocolo sin estado (encima de TCP):
TCP connectRequest (method, URL, ver.)Header + Data
Response (ver., code)Header + DataTCP disconnect
![Page 7: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/7.jpg)
HTTP: personalización
El servidor es genérico y el protocolo sin estado– La personalización requiere procesamiento
adicional en el servidor– Utilización de cookies y campos ocultos para
mantener un estado– Alternativa: HTTP/1.1(RFC 2616)
Unión “transparente” de conexiones
![Page 8: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/8.jpg)
NFS
Sun Network File System (RFC 1094 y RFC 1813)
Acceso remoto transparente a ficheros a través de redes
Portable mediante el uso de Sun RPC Sistema de ficheros en red (granularidad) Requiere red de buenas prestaciones (LAN) Otras alternativas: NBD
![Page 9: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/9.jpg)
Movilidad de código
Computación distribuida:– DIPC– PVM– Clusters– Hurds
Migración de procesos:
Worms, MOSIX, Sprite
![Page 10: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/10.jpg)
Computación distribuida
Dificultad de distribuir el algoritmo Ayudas del compilador y entorno Equilibrio entre procesamiento en los nodos y
comunicaciones entre nodos Balance dinámico de carga Modelos: SIMD, MISD, MIMD http://wallybox.cei.net/dipc http://www.epm.ornl.gov/pvm/intro.html
![Page 11: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/11.jpg)
Migración de procesos
Soportada por el kernel:– MOSIX– Sprite– Charlotte, Mach, Locus, V Kernel
En espacio de usuario:– Emerald– Tui
![Page 12: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/12.jpg)
Beneficios
La migración de procesos: permite el balance de carga mejora la tolerancia a fallos mejora el acceso a datos locales (disminuye
el coste de comunicaciones
![Page 13: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/13.jpg)
Worms Shoch & Hupp (Xerox PARC) Programas que se mueven en distintas máquinas y
se replican en máquinas poco cargadas Un gusano está formado por múltiples segmentos
cada uno corriendo en una máquina Búsqueda de máquinas libres a las que enviar los
segmentos Cada segmento conoce la ubicación de los demás
y se comunican via multicast
![Page 14: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/14.jpg)
MOSIX Barak & Wheeler (Hebrew Univ Jerusalem) http://www.mosix.cs.huji.ca.il Todos los nodos de un cluster se presentan como una única
imagen del sistema:
Un proceso corriendo en un nodo accede a los otros de forma transparente
Migración automática (cambios de contexto) entre nodos débilmente acoplados
Kernels interactúan al nivel de llamada al sistema Máquinas con varios procesadores: master/slave
![Page 15: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/15.jpg)
MOSIX: arquitectura
Lower-kernel: rutinas de acceso a recursos locales (discos locales, etc.)
Upper-kernel: nivel independiente de la máquina, referencias a todos los recursos
Utilización de RPCs para la ejecución de las llamadas al sistema en la máquina concreta
Linker-level: descompone las llamadas a RPCs en llamadas a procedimientos y lista de parámetros
Hilo Embajador: invoca el procedimiento del lower-kernel
![Page 16: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/16.jpg)
upper-level
Linker-level
Lower
levelLower
level
Lower
level
embajador
embajador
embajador
Proceso de usuario
system-call (abstract)
Rproc_name (machine_id, param_list)
RPC
system call
![Page 17: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/17.jpg)
MOSIX: características
– Kernel replicado en cada nodo– Transparencia de acceso a bus y red– Control descentralizado (decisiones indep.)– Autonomía de cada nodo– Sistema de ficheros unificado – Escalado (heurísticos de gestión y migración)– Balance de carga adaptativo– Configuración dinámica (añadir/quitar nodos)– Compatibilidad con AT&T UNIX (Linux)
![Page 18: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/18.jpg)
Sprite Douglis & Ousterhout (UCB) Evacuación y ejecución remota de procesos Localización de máquinas ociosas Gestión del estado:
•memoria virtual•ficheros abiertos•canales de mensajes
•estado de ejecución•otros estados del kernel (pid, uid, cwd, etc.)
![Page 19: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/19.jpg)
Transferencia de Memoria
Locus, Charlotte
V System
Accent
Sprite
S
S
S
S
D
D
D
D
NFS
execmem transfer& exec mem transfer
![Page 20: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/20.jpg)
Nuevos enfoques:Agentes Móviles
![Page 21: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/21.jpg)
Agentes móviles
Grandes esperanzas depositadas en grandes plataformas
Metodologías, APIs, librerías Los lenguajes interpretados son más
sencillos de incorporar y controlar– agentes controlados por la VM (o intérprete)– VM controlada por la plataforma
![Page 22: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/22.jpg)
Ventajas de agentes móviles
Disminución del volumen de comunicaciones
Autonomía, toma de decisiones Representación del usuario: perfil, interés,
referencias a UI/GUI Extensibilidad: cooperación entre agentes Capacidad de adaptación
![Page 23: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/23.jpg)
Places
Una red de ordenadores engloba un conjunto de sitios que ofrecen servicios a los agentes móviles que entren:
Personal communicator Sitio: proveedor de servicios
Plataforma de agentes móviles
![Page 24: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/24.jpg)
Movimiento
Los agentes se mueven de una plataforma a otra de forma autónoma
Plan de viajes Serialización de los agentes (estado) Envío de código necesario Creación, arranque, interrupción, parada y
rearranques (eventos?)
![Page 25: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/25.jpg)
Comunicaciones
Encuentros:– Varios agentes se reunen en una misma
plataforma Conexiones:
– Intercambio asíncrono de información entre agentes en distintas plataformas
– Mensajes, pizarras, etc.
![Page 26: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/26.jpg)
Seguridad
La autoridad de un agente es el usuario o entidad física (o jurídica) a que representa.
Una región es un conjunto de redes operados por una misma autoridad
Una plataforma destino comprueba la autoridad de un agente que quiere entrar en ella
La plataforma comprueba certificados y administra las listas de acceso a recursos
![Page 27: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/27.jpg)
Telescript
General Magic: http://www.genmagic.com Lenguaje: completo, OO, dinámico,
persistente, portable, seguro, centrado en comunicaciones
Secciones críticas (resources) Permits (permisos basados en autoridad) go <teleadress> Eventos de señalización
![Page 28: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/28.jpg)
EjemploShopper: class (Agent, EventProcess) =( public see initialize
see livesee meetingsee getReport
privatesee goShoppingsee goHome
propertyclient: Telename;desiredProduct: String;desiredPrice, actualPrice: Integer;exception: Exception|Nil;
);
![Page 29: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/29.jpg)
Ejemplo: livelive: sponsored op (cause Exception|Nil)={homeName:= here.name; homeAddres:= here.address; permit:= Permit( (if *.permit.age==nil{nil} else{(*.permit.age*90).quotient(100)}) , (if *.permit.ch==nil{nil} else{(*.permit.ch*90).quotient(100)}) ); {try{*.goShopping(Warehouse.name)} catch e: Exception{exception=e}}catch e: PermitViolated{exception=e};{try{*.goHome(homeName, homeAddress)}catch Exception {});
live: sponsored op (cause Exception|Nil)={homeName:= here.name; homeAddres:= here.address; permit:= Permit( (if *.permit.age==nil{nil} else{(*.permit.age*90).quotient(100)}) , (if *.permit.ch==nil{nil} else{(*.permit.ch*90).quotient(100)}) ); {try{*.goShopping(Warehouse.name)} catch e: Exception{exception=e}} catch e: PermitViolated{exception=e}; {try{*.goHome(homeName, homeAddress)} catch Exception {} );
![Page 30: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/30.jpg)
Ejemplo: goShopping
goShopping: op (warehouse: ClassName)throws ProductUnavailable={*.go(Tiket(nil,nil,warehouse);*.enableEvents(PriceReduction(*.name));*.signalEvent(PriceReduction(),’responder);*.enableEvents(PriceReduction(here.name));
actualPrice= desiredPrice+1;while (actualPrice>desiredPrice){ *.getEvent(nil,PriceReduction()); try{actualPrice=here@Warehouse.
getCatalog()[desiredProduct].price; }catch KeyInvalid {throw ProductUnavailable}}};
![Page 31: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/31.jpg)
Ejemplo: goHome
goHome: op (homeName:Telename,
homeAddress: TeleAddress)=
{
*.disableEvents();
*.clearEvents();
*.go(Ticket(homeName, homeAddress);
*.enableEvents(PartEvent(client));
[email protected](Petition(client));
*.getEvent(nil,PartEvent(client))
};
![Page 32: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/32.jpg)
Bibliografía
Mobility: processes, computers, and agents ed. D. Milojicic, F. Douglis, and R. Wheeler ACM Press, 1999
Mobile Agents, by W. R. Cockayne and M. Zyda, Manning Publications, 1998
Mobile Agents, ed. by K. Rothermel and R. Popescu-Zeletin, LNCS, April 1997
![Page 33: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/33.jpg)
Agentes Móviles
IBM Aglets
![Page 34: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/34.jpg)
Introducción Desarrollado por IBM (alphaworks) Plataforma neutra (basada en Java) El entorno de Aglets ofrece:
– Esquema global de nombres únicos de agentes– Itinerarios de viaje (con patrones complejos y gestión
automática de fallos)– Comunicación asíncrona: pizarras y mensajes– Envío de estado y carga de clases por la red– Contexto de ejecución independiente de la máquina
![Page 35: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/35.jpg)
Interfaces gráficos
Visual builder (Tazza) Gestor de agentes visual (Tahiti) Applet lanzador de aglets via web (Fiji) Acceso a BD (JDBC/DB2 y JoDax) http://www.trl.ibm.co.jp/aglets/index.html
![Page 36: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/36.jpg)
Agent Transfer Protocol
![Page 37: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/37.jpg)
ATP ( HTTP)
Protocolo de envío y recepción de agentes Independiente de la plataforma No ligado a Aglets Modelo petición/respuestaDispatch (Envío de agentes)
Retract (Retirada de agentes)
Fetch (Envío de código)
Message (Envío de mensajes)
![Page 38: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/38.jpg)
Aglets: Características
com.ibm.aglet.Aglet Movilidad y ciclo de vida de los aglets:
Aglet.dispatch(URL)envía el aglet a la URL especificada
Aglet.deactivate(long time) guarda el aglet en memoria secundaria
Aglet.clone() crea una nueva instancia
Aglet.dispose() termina el aglet
![Page 39: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/39.jpg)
Acceso a los Aglets
AgletsProxy: implementa la seguridad de acceso y la transparencia de acceso
El proxy se obtiene a partir del contexto (AgletContext) o por paso de mensajes
Ambas se implementan por las librerías de ejecución (runtime)
Message y FutureReply son las otras dos clases que nos permiten contactar con los aglets
![Page 40: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/40.jpg)
Aglet API
AgletAglet
Proxy messageAglet
ProxyAglet
Aglet context
![Page 41: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/41.jpg)
Ciclo del aglet
Creación Desactivación (a memoria secundaria) Activación Envio a otra máquina (dispatch) Envio de vuelta (retract) Clonación Destrucción (dispose)
![Page 42: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/42.jpg)
Eventos
Debido a las limitaciones de la especificación de la JVM,
No se puede acceder a la pila de llamadas de los hilos de ejecución de la JVM
Solución: máquina de estados con eventosonClone, onDispatching, onArrival, onActivation, onReverting, onDeactivating, etc.
![Page 43: Agentes Móviles Andrés Marín López Gestión de la Información Multimedia en Internet](https://reader036.vdocuments.co/reader036/viewer/2022062511/551ced6f550346497a8b51e7/html5/thumbnails/43.jpg)
Prácticas
http://www.it.uc3m.es/~amarin/
doctorado/gimi.html