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.