2.2 Sistemas colaborativos
2.2.1 Clasificación de los sistemas colaborativos
Una de las clasificaciones más conocidas es la matriz espaciotiempo, Tabla 1.
Tiempo \ Espacio Mismo lugar Diferente lugar
Síncrono Interacción cara a cara Interacción síncrona distribuida
Asíncrono Interacción asíncrona Interacción asíncrona distribuida
Tabla 1: Matriz EspacioTiempo
En los sistemas síncronos la colaboración ocurre en un espacio de tiempo muy cercano y se suele hablar de colaboración en tiempo real, mientras que en los asíncronos no es necesaria esta cercanía en el tiempo y la
3 RTP es un protocolo estandarizado de internet, STD64, definido originalmente como RFC1889 y actualmente como RFC3550: http://tools.ietf.org/html/3550 4 H.323 es una recomendación ITUT que define los protocolos para sesiones de comunicación de audio y vídeo a través de un red basada en paquetes. Actualmente se utiliza fundamentalmente en aplicaciones de Voz sobre IP (VoIP) 5 SIP es un protocolo estándar IETF para definir sesiones multimedia que pueden incluir audio, vídeo, mensajes instantáneos o realidad virtual. Se utiliza sobre todo en aplicaciones VoIP 6 Este protocolo es una extensión del ITUT T.128 APPLICATION SHARING PROTOCOL
colaboración transcurre en momentos más distantes. En el otro eje, el espacio o lugar, tenemos sistemas en los que la colaboración ocurre en un mismo lugar o entre usuarios que se encuentran en lugares distantes.
Un ejemplo de colaboración síncrona pueden ser los sistemas de soporte para conferencias, como las "electronic meeting rooms" en las que la interacción ocurre en un mismo lugar; o los sistemas para teleconferencias, en donde la interacción ocurre entre lugares que pueden ser distantes.
Como sistemas asíncronos podemos tener los tablones de noticias físicos tradicionales, en los que la interacción ocurre en un mismo lugar, o electrónicos, en los que la interacción puede ser remota. También son destacables dentro de los sistemas asíncronos distribuidos el correo electrónico o los sistemas de gestión del flujo de trabajo, o workflow.
Algunos sistemas colaborativos no pueden ser clasificados en una categoría concreta de esta clasificación, ya que hay distintos grados de colaboración y muchos sistemas admiten de forma integrada la colaboración síncrona y asíncrona. Actualmente se tiende a construir sistemas que soporten colaboración del tipo "En Cualquier Momento, En Cualquier lugar". 2.2.1.1 Taxonomía de las aplicaciones Otra clasificación que nos puede ayudar a comprender esta área es la clasificación en función del tipo de aplicación. Así tenemos por ejemplo: 1.Sistemas de mensajes Estos sistemas se caracterizan por usar el concepto de mensaje para pasar la información de unas partes a otras. Un claro ejemplo de este tipo de aplicación es el correo electrónico. Por lo general son sistemas asíncronos, aunque pueden incluir sistemas síncronos para la notificación de algunos tipos de mensajes.
2.Editores multiusuario
En este grupo entran las aplicaciones de manipulación de documentos que permiten la edición por parte de múltiples usuarios, tanto de forma síncrona como asíncrona.
En el caso de editores síncronos, como SubEthaEdit7, o Writely8, suele existir algún tipo de coordinación o bloqueo, para por ejemplo impedir que varios usuarios modifiquen simultáneamente una misma sección de un documento, mientras que se permite el acceso de lectura a todas las secciones. A veces este control es demasiado limitado, ya que hace más lenta la edición, y se hacen necesarios otros tipos de mecanismos como algoritmos de serialización de eventos, que permitan agrupar los cambios en bloques mayores, o mecanismos de control optimistas, que permitan la edición libre, resolviendo los conflictos cuando surgen, de forma automática o manual.
En los editores asíncronos los usuarios modifican o revisan partes de documentos y envían los cambios al resto de colaboradores. Se hace por tanto necesario algún tipo de control de versiones. Para solucionar este problema se pueden usar sistemas genéricos de control de versiones, como por ejemplo CVS9, o Subversion10. Este último sistema está
reemplazando progresivamente a CVS, que era el sistema dominante, ya que gestiona de forma más eficiente las versiones, tanto en ficheros de texto como binarios. 3.Sistemas de soporte de decisiones en grupo Estos sistemas sirven de ayuda para mejorar la productividad en la toma de decisiones sobre problemas no estructurados. Esta mejora puede ser tanto para acelerar el proceso como para mejorar la "calidad" de la decisión tomada. Por ejemplo, ZingThing, [Fitzgerald 2004], ofrece un entorno de aprendizaje y toma de decisiones estructurado, donde los participantes normalmente siguen una serie de pasos para exponer sus ideas, reflexionar o votar de diferentes formas. 7 SubEthaEdit es un editor síncrono para MAC. Para más información se puede consultar http://www.codingmonkeys.de/subethaedit 8 Writely es un editor colaborativo para la web, comprado recientemente por Google. Para más información consultar http://www.writely.com/ 9 CVS es un sistema de control de versiones utilizado fundamentalmente para el desarrollo colaborativo de software. Está disponible en http://www.nongnu.org/cvs/ 10 Subversion o SVN surge como una mejora de CVS, destacando una gestión más eficiente de ficheros binarios. Está disponible en http://subversion.tigris.org/
4.Soporte de conferencias
En este apartado tenemos los sistemas síncronos que dan soporte a las conferencias, tanto locales como remotas. Así pues tenemos los siguientes tipos: 4.1.Conferencias en Tiempo Real: Este es el caso por ejemplo de las conferencias locales o remotas en las que el ordenador integra sistemas de toma de decisión, aplicaciones compartidas, pizarras electrónicas, etc. 4.2.Teleconferencias: En este caso no tiene por qué usarse un ordenador, y se trata únicamente de comunicación de audio y/o vídeo. 4.3.'Conferencias de Escritorio' (Desktop conferencing): Los dos casos anteriores han dado lugar a este, que no es más que una integración de las teleconferencias junto con las conferencias en tiempo real. Netmeeting®11 , gnomeMeeting, o Microsoft Messenger son ejemplos de aplicaciones que permiten este tipo de conferencias.
En general hay dos alternativas para la compartición de aplicaciones, por un lado tenemos sistemas como NetMeeting, VNC, o Remote Desktop, que permiten compartir aplicaciones monousuario sin modificarlas y por otro lado tenemos los sistemas específicamente diseñados para tener en cuenta la presencia de múltiples usuarios o que permiten la adaptación de la interfaz de la aplicación compartida a las preferencias o papeles de los distintos usuarios. El inconveniente de esta segunda opción es que el mayor grado de flexibilidad ofrecido impide el uso compartido, sin ser modificadas, de aplicaciones que no están diseñadas para estos sistemas. También tenemos sistemas como Disciple [Li 1999] que permiten ambos tipos de aplicaciones. También se han creado estándares, como hemos visto en el apartado 2.2, que han fomentado el desarrollo de bibliotecas genéricas de conferencia. Esto ha provocado la aparición de un gran número de aplicaciones de este tipo, que permiten compartir aplicaciones, vídeo conferencia, mensajería instantánea, etc.
5.Agentes inteligentes
Los agentes inteligentes se pueden usar para simular otros usuarios, aunque suelen estar limitados a un conjunto de tareas predeterminadas. Son usados, por ejemplo, en algunos juegos cuando el número de usuarios es insuficiente.
En general realizan operaciones que podrían hacer otros usuarios, mostrando además un comportamiento similar al que mostraría un usuario normal ante el resto de colaboradores.
6.Sistemas de coordinación
Estos sistemas permiten ver las acciones del usuario y las relevantes de otros usuarios en el contexto de un objetivo común. Permiten crear informes sobre el trabajo realizado y/o restante, programar alertas, planificar, fijar citas, etc.
7.Entornos integrados de trabajo en grupo
Estos entornos son una combinación de las aplicaciones anteriores y permiten crear un entorno unificado para el uso de herramientas y aplicaciones de trabajo en grupo. Suelen incluir calendario y ficheros compartidos, votación, correo y mensajería instantánea, gestión de proyectos, etc. En el apartado 2.3.2 veremos algunos ejemplos de estos entornos.