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

DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

  • Upload
    thane

  • View
    33

  • Download
    0

Embed Size (px)

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

Citation preview

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?