Diseño e implantación de una agenda cooperativa flexible en un entorno no confiable

Daniel Cruz García

            
Texto completo de la Tesis    



Resumen

Los progresos recientes en las tecnologías computacionales y comunicacionales han revolucionado la forma de utilizar las computadoras. Esta revolución tecnológica refleja un cambio en el énfasis de emplear sistemas computacionales para facilitar la interacción humana, además de utilizarlos para resolver problemas. El presente trabajo de investigación se inscribe en el ámbito del Trabajo Cooperativo Asistido por Computadora (TCAC), el cual estudia los aspectos sociales de las actividades individuales y colectivas (disciplina etnometodológica), así como los aspectos tecnológicos de los soportes de información y comunicación (disciplina de los sistemas cooperativos). Particularmente, las soluciones propuestas en esta tesis de maestría repercuten en la disciplina de los sistemas cooperativos, cuya principal meta es permitir a grupos de personas, posiblemente distribuidas, cooperar efectivamente para lograr sus objetivos comunes, mediante el uso de sistemas cooperativos (generalmente distribuidos). Algunos ejemplos de éstos son: editores multiusuario, sistemas de mensajes, herramientas para la toma de decisiones en grupo, salas de reuniones electrónicas, conferencias por computadora,  ujos de trabajo ("workflows") y ambientes de aprendizaje cooperativo. Uno de los dominios de aplicación del TCAC que no ha sido estudiado exhaustivamente, a pesar de ser uno de los primeros temas de interés de los investigadores, es el de las agendas cooperativas. Excepto por algunos productos comerciales (e.g., IBM Lotus Notes, Apple iCal y Microsoft Outlook) y de software libre (e.g., Darwin Calendar Server, Opengroupware.org y Open-Xchange) la mayoría de los estudios consideran a las agendas cooperativas como aplicaciones triviales o herramientas de decoración ofrecidas por otros sistemas, e.g., sistemas de conferencia por computadora. La motivación del presente trabajo reside en explorar dos problemas fundamentales de estas aplicaciones: 1) la limitada  exibilidad de sus bloques de construcción para adaptarlos a los diversos patrones de uso de los grupos y 2) la falta de mecanismos para garantizar la disponibilidad de la información, cuando estas aplicaciones se llevan del entorno fiable de una LAN (infraestructura de comunicación en una organización local) al entorno no fiable del Internet (infraestructura de comunicación en una organización distribuida o de múltiples organizaciones cooperantes). Para hacer frente al problema de  exibilidad limitada se recurrió al paradigma de la Programación Orientada a Aspectos (POA), cuyo principal objetivo es facilitar la reutilización de código entre aplicaciones. Para lograr este objetivo, la POA evita la dispersión y el entrelazamiento de código, separando la funcionalidad básica de los aspectos no funcionales de una aplicación. Los aspectos no funcionales son precisamente los módulos de una aplicación que pueden ser reutilizados por otras aplicaciones sin tener que realizar una nueva implementación. Respecto al problema de  la latente indisponibilidad de la información, la replicación de información en los sitios de los usuarios es una solución bien conocida en sistemas distribuidos para garantizar la disponibilidad de la información. Particularmente, se utilizó la tecnología Web de servlets para permitir el manejo de peticiones concurrentes mediante hilos de ejecución.


        Abstract

The recent progress in computational and communicational technologies has revolutionized the way of using computers. This technological revolution re ects a change in the emphasis of employing computing systems to facilitate human interaction, in addition to use them for the resolution of problems. The present research work inscribes in the Computer Supported Cooperative Work (CSCW) field, which studies the social aspects of individual and collective activities (ethnomethodology discipline), as well as the technological aspects of information and communication supports (groupware discipline). Particularly, the solutions proposed by this thesis fall into the groupware discipline, whose main goal is to allow a group of possible distributed persons to efectively collaborate in order to achieve their common objectives by using (generally distributed) groupware systems. Some examples of these ones are message systems, multi-user editors, group decision-support systems, electronic meeting rooms, computer conferencing, work ows, and cooperative learning environments. One of the CSCW application domains that have been only superficially analyzed, although it was one of the first research topics to be investigated, is that of cooperative calendars. Excepting for some commercial products (e.g., IBM Lotus Notes, Apple iCal, and Microsoft Outlook) and open source (e.g., Darwin Calendar Server, Opengroupware.org and Open-Xchange), the majority of the studies consider them as trivial applications or decoration tools provided by others systems, e.g., computer conferencing systems. The motivation of this master thesis resides in exploring two fundamental problems of these applications: 1) the limited  exibility of their building blocks to be adapted to the several usage patterns of  groups; and 2) the lack of mechanisms to ensure the information availability when these applications are transposed from the reliable environment of a LAN (communication infrastructure in a physically centralized organization) to the unreliable environment of the Internet (communication infrastructure in a physically distributed organization or in several cooperating organizations). To cope with the limited  exibility problem, we use the Aspect Oriented Programming (AOP) Paradigm, whose main goal is to facilitate code reutilization among applications. To achieve this goal, the AOP avoids code scattering and tangling by separating the basic functionality from the non-functional aspects of an application. The non-functional aspects precisely are the application modules that can be reused by other applications without having to carry out a new design. Relatively to the information latent unavailability problem, the information replication on user sites is well known solution in distributed systems to ensure information availability. Particularly, we use the servlets Web technology to allow the management of concurrent requests by means of execution threads.