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
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?