dermi middleware para aplicaciones de trabajo en grupo descentralizadas
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 PresentationTRANSCRIPT
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
Universitat Rovira i Virgili – Universidad de Murcia
Noviembre 2003
22Noviembre 2003
Motivación
Aprendizaje Colaborativo (CSCL)
Trabajo en grupo (CSCW)
Sistemas distribuidos
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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
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
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
1616Noviembre 2003
Conclusiones y Vías Futuras
• Plataforma de colaboración aumentada para el acceso y distribución de contenidos educativos
1717Noviembre 2003
¡Gracias por su atención!
¿Preguntas?