1 / 17

DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

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 skarmeta@dif.um.es Universitat Rovira i Virgili – Universidad de Murcia. Noviembre 2003.

thane
Download Presentation

DERMI Middleware para aplicaciones de trabajo en grupo descentralizadas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 skarmeta@dif.um.es Universitat Rovira i Virgili – Universidad de Murcia Noviembre 2003

  2. Motivación Aprendizaje Colaborativo (CSCL) Trabajo en grupo (CSCW) Sistemas distribuidos

  3. 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.

  4. 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.

  5. 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.

  6. 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.

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

  8. Localización descentralizada • Nos permite encontrar las referencias de los objetos. • Podemos ejecutar llamadas sobre ellos. 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. n2 2 3 n1 1 Ahora n2 ya puede llamar los métodos del objeto. n0

  9. 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.

  10. Intercepción Distribuida (2) 6 evt’’ evt’’ 5 n1 n2 El objeto en el nodo n0 envía un evento al grupo cuya raíz es R. I2 R 4 R evt’’ R El evento se envía a la cola de interceptores secuencialmente I1, I2, transformándolo (evt → evt’ → evt’’). evt' 3 evt 2 evt Finalmente, el evento se envía de vuelta a la raíz, entregándolo al resto de suscriptores del grupo (n1, n2). 1 n0 I1

  11. 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.

  12. 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.

  13. Anycall • Ejemplo: obtención de datos para una simulación El nodo C envía un anycall al grupo para encontrar una DATA_UNIT para analizar. n0 Anycall DATA_UNIT n2 no tiene ninguna DATA_UNIT para proporcionarle y envía la petición a n4 C n2 n1 n4 tampoco dispone de DATA_UNITs por lo que el mensaje es enrutado a n3 n3 n4 n3 dispone de DATA_UNITs y finalmente proporciona una a C Nueva DATA_UNIT

  14. 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

  15. 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

  16. Conclusiones y Vías Futuras • Plataforma de colaboración aumentada para el acceso y distribución de contenidos educativos

  17. ¡Gracias por su atención! ¿Preguntas?

More Related