Un sistema flexible y extensible de entidades replicadas para aplicaciones cooperativas distribuidas

Un sistema flexible y extensible de entidades replicadas para aplicaciones cooperativas distribuidas

María Guadalupe Pérez Medina Montaño
 

Texto completo de la Tesis     

 


Resumen

En nuestros días, existen aplicaciones que tienen como meta hacer la colaboración entre los usuarios más fácil, cambiando la forma en que las personas se comunican. Este tipo de aplicaciones son conocidas como groupware. Sin embargo, la mayoría de estas aplicaciones utilizan una arquitectura para la distribución de los datos híbrida o centralizada. Esto lleva a un pobre desempeño de la aplicación, la falta de tolerancia a fallos y la pérdida o inconsistencia de los datos compartidos distribuidos. Algunas investigaciones tratan de mejorar el desempeño de estas aplicaciones utilizando replicación de los datos, pero sólo implementan un esquema de replicación y usan sólo una política de control de concurrencia. No utilizan el conjunto de políticas que se adapte mejor a la naturaleza de la aplicación, las condiciones predominantes de la red y el ambiente de los usuarios. Por otro lado, no existe un conjunto de políticas que se ajuste completamente a ambientes poco fiables, donde las condiciones de conectividad cambian constantemente. Más aún, cada tipo de datos utilizado en las aplicaciones colaborativas deben tener un conjunto diferente de políticas (e.g. control de concurrencia, arquitectura de distribución, replicación, sincronización, etc.) de acuerdo a la naturaleza de la aplicación, la sensibilidad de los datos a la latencia de las notificaciones, las condiciones de la red y el ambiente del usuario. Por estas razones, proponemos una plataforma flexible y extensible de entidades compartidas para aplicaciones colaborativas distribuidas. Esta plataforma fue diseñada para definir e integrar nuevas entidades distribuidas, basadas en una entidad genérica. Los desarrolladores de aplicaciones colaborativas pueden elegir entre diferentes estrategias de replicación, sincronización, control de acceso, etc., haciendo la conceptualización y el desarrollo más sencillo. Esto se traduce como un mejor desempeño de las aplicaciones y permite proporcionar más failidades a los usuarios finales (e.g. los usuario pueden trabajar en modo desconectado, las aplicaciones pueden ser tolerantes a fallas, tienen un mejor tiempo de respuesta, entre otros). Esta plataforma también permite a los programadores de aplicaciones colaborativas utilizar la misma entidad compartida para diferentes aplicaciones o la misma política para diversas entidades. Más aún, se pueden crear nuevas entidades a partir de entidades ya definidas. Así, el código de software puede reusarse haciendo el desarrollo de las aplicaciones colaborativas mas sencillo y rápido. Otra ventaja de esta plataforma es un sistema de actualizaciones dinámicas de software, el cual controla y distribuye las actualizaciones de software en tiempo de ejecución. De esta manera, es posible agregar nuevas entidades, modificar las existentes, actualizar sus instancias y las políticas asociadas dinámicamente, i.e., sin detener la plataforma.

Abstract

Nowadays, there are applications which their goal is doing collaboration between users easier, changing the way people comunicate each others. This kind of applications are known as "groupware". However, mostly of this applications use a centralized or hybrid data distribution architecture. This leads to a poor application performance, a lack of fault tolerance or disconnections and loss or inconsistencies in the distribuited sharing data. Some researchs are trying to get better application performance using data replication, but they only use one kind of replication scheme and use only on concurrency policy. They do not use the set of policies (i.e. concurrency, distribution architecture, replication, synchronization, etc.) which adapt better to the application nature, the predominant network conditions and the users environment. On the other hand, there is not a well-fitting set of policies for unreliable environmets such as Internet or mobile/ nomadic work where the users environment change constantly. Moreover, every kind of data in collaborative applications should have a different set of policies. according to the application nature, sensitivity of the data to the latency deliver, network conditions and user environment (e.g. such as Internet or mobile/nomadic work). For this reasons, we propose a flexible extensible platform using share entities for collaborative distributed application. This platform was designed to define and integrate new distributed entities, based on a generic entity. The collaborative application programmers can choose bewteen different strategies of replication, synchronization, access control, etc, doing the application conceptualization and development easier. This may be traslated as a better application performance and more facilities for the final user (e.g. an application could support network disconnections, fault tolerance, a better response time and others). This platform also allows to the colaborative applications programmers use the same entity for different applications or use the same policy for diferent entities. Morover, it is posible to create new entities from one already define. So, the software code could be reuse doing collaborative application implementation simpler and faster. Another interesting issue of this platform is a dynamical software updating system, which was created to control and distribute software updatings dynamically. On this way, it is posible to add new entities, modify entities already defined, update their instances and their policies on the fly, i.e. without stopping the platform.