dermi middleware para aplicaciones de trabajo en grupo descentralizadas

17
DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas Carles Pairot, Pedro García, Robert Rallo, Rubén Mondéjar Antonio F. Gómez Skarmeta {cpairot, pgarcia, rrallo}@etse.urv.es [email protected] Universitat Rovira i Virgili – Universidad de Murcia Noviembre 2003

Upload: thane

Post on 13-Jan-2016

33 views

Category:

Documents


0 download

DESCRIPTION

DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas. Carles Pairot, Pedro García, Robert Rallo, Rubén Mondéjar Antonio F. Gómez Skarmeta {cpairot, pgarcia, rrallo}@etse.urv.es [email protected] Universitat Rovira i Virgili – Universidad de Murcia. Noviembre 2003. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

DERMIMiddleware para

aplicaciones de trabajo en grupo descentralizadas

Carles Pairot, Pedro García, Robert Rallo, Rubén Mondéjar

Antonio F. Gómez Skarmeta

{cpairot, pgarcia, rrallo}@etse.urv.es

[email protected]

Universitat Rovira i Virgili – Universidad de Murcia

Noviembre 2003

Page 2: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

22Noviembre 2003

Motivación

Aprendizaje Colaborativo (CSCL)

Trabajo en grupo (CSCW)

Sistemas distribuidos

Page 3: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

33Noviembre 2003

Motivación

• El crecimiento de la red Internet.• Aparición de multitud de aplicaciones para

entornos de área extensa (WANs)– E-mail, news, mensajeria instantánea, …

• No existen sistemas de middleware para desarrollar aplicaciones a escala WAN.

• Transición de modelos cliente/servidor a modelos descentralizados.– Aprovechamiento de los recursos.

– Reducción de los cuellos de botella o hot spots.

Page 4: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

44Noviembre 2003

El paradigma P2P

• Numerosas killer applications– Napster, KaZaA, eMule,

Gnutella, …

• Reciente revolución en P2P– Aparición de las Tablas de Hash

Distribuidas (DHTs).• Definición de topologías

organizadas (en forma de anillo).• Localización de recursos en O(log n) saltos.

Page 5: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

55Noviembre 2003

DERMI

• Middleware de objetos distribuidos P2P.• Utiliza DHTs (Pastry) como mecanismo de

localización de recursos.• Multicast a nivel de aplicación: Scribe

– Propagación de eventos.

Page 6: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

66Noviembre 2003

DERMI (2)

• Utiliza el sistema de publicación / suscripción (Scribe) para– Modelar las llamadas a métodos como eventos y

suscripciones.

• Ofrece los servicios tradicionales– Invocaciones síncronas / asíncronas.

– Servicio de nombres.

Page 7: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

77Noviembre 2003

Servicios de DERMI

• Servicios nuevos:– Movilidad de objetos.

– Replicación y caches de objetos.

– Intercepción distribuida.

– Localización descentralizada.

• Abstracciones de invocación:– Anycall.

– Manycall.

Page 8: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

88Noviembre 2003

Localización descentralizada

• Nos permite encontrar las referencias de los objetos.– Podemos ejecutar llamadas sobre ellos.

n2

2

1

n0

n1

3

El nodo n0 inserta su handle en n1, haciendo un hash de su

nombre (/simple).

El nodo n2 desea obtener el handle del objeto, hace un hash de su nombre (/simple) y le pide a n1 que le devuelva el handle

del objeto.Ahora n2 ya puede llamar los

métodos del objeto.

Page 9: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

99Noviembre 2003

Intercepción Distribuida

• Reconexión y localización de interceptores de tipos compatibles en tiempo de ejecución.

• Siguiendo el modelo Java RMI– Creamos stubs y skeletons propios para las clases

remotas.• Pueden interceptar llamadas a un determinado

objeto remoto en ejecución.

• Hemos extendido el servidor de eventos Scribe– Así soportamos la intercepción distribuida

nativamente.

Page 10: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

1010Noviembre 2003

Intercepción Distribuida (2)

I2

R

I1n0

n1 n2

evt

evtevt'

evt’’

evt’’evt’’

1

2

3

4

56

RR

El objeto en el nodo n0 envía un evento al grupo cuya raíz es R.

El evento se envía a la cola de interceptores secuencialmente

I1, I2, transformándolo (evt → evt’ → evt’’).

Finalmente, el evento se envía de vuelta a la raíz, entregándolo

al resto de suscriptores del grupo (n1, n2).

Page 11: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

1111Noviembre 2003

Intercepción Distribuida (3)

• Los datos de la cola de interceptores se guardan en el rendez-vous point o raíz del grupo multicast

• ¿Qué pasa si el nodo raíz es inaccesible?– La cola de interceptores se mantiene

replicada en los k nodos más cercanos a la raíz usando el sistema de replicación PAST.

Page 12: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

1212Noviembre 2003

Anycall y Manycall

• Se trata de dos nuevas abstracciones RPC.• Construidas utilizando la primitiva anycast de

Scribe.• Anycast permite enviar un mensaje al miembro

del grupo más cercano al nodo que realiza la llamada.

• Si el mensaje llega a la raíz del grupo, ningún miembro podrá satisfacer la condición– Excepción notificada al cliente.

Page 13: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

1313Noviembre 2003

Anycall

• Ejemplo: obtención de datos para una simulación

n0

n1 n2

n3 n4

C

Anycall DATA_UNIT

Nueva DATA_UNIT

El nodo C envía un anycall al grupo para encontrar una DATA_UNIT para analizar.

n2 no tiene ninguna DATA_UNIT para proporcionarle y envía la

petición a n4

n4 tampoco dispone de DATA_UNITs por lo que el mensaje es enrutado a n3

n3 dispone de DATA_UNITs y finalmente proporciona una a C

Page 14: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

1414Noviembre 2003

Manycall

• Variación de anycall considerando n miembros.• Una petición manycall debe de poder ser

satisfecha por varios miembros del grupo.• Obviamente, si llega a la raíz y no satisfecho

– Excepción notificando al cliente

• Ejemplo: Votación

Page 15: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

1515Noviembre 2003

Prueba de concepto: CoopWork

• CoopWork: Herramienta de desarrollo de software en grupo descentralizada

• Integra diferentes herramientas:– Servicios de presencia– Sistema de chat– Lista de recursos modificados– Historial de versiones

publicadas– Sistema de avisos– Mecanismos para compartir

el código

Page 16: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

1616Noviembre 2003

Conclusiones y Vías Futuras

• Plataforma de colaboración aumentada para el acceso y distribución de contenidos educativos

Page 17: DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

1717Noviembre 2003

¡Gracias por su atención!

¿Preguntas?