Articulo de referencia

ACE (editor)

ACE ( ACE – un editor colaborativo ) es un editor colaborativo en tiempo real e independiente de la plataforma . Se trata de un sistema de edición cooperativa en tiempo real que...

ACE ( ACE – un editor colaborativo ) es un editor colaborativo en tiempo real e independiente de la plataforma . Se trata de un sistema de edición cooperativa en tiempo real que permite a varios usuarios geográficamente dispersos ver y editar un documento de texto compartido simultáneamente.

Introducción

ACE es un editor de texto sencillo con funciones estándar como copiar/pegar y guardar/cargar. Permite editar varios documentos simultáneamente. Además, ACE puede compartir documentos con otros usuarios en diferentes ordenadores conectados mediante redes de comunicación ( LAN , Internet ). ACE también detecta automáticamente a los usuarios y sus documentos compartidos en una red de área local. Los usuarios pueden unirse a cualquier documento compartido detectado. Todo esto sin necesidad de configuración, ya que se basa en una arquitectura de red sin configuración .

Una vez que un usuario se une a un documento compartido, puede editarlo libremente junto con todos los participantes como si fuera un equipo virtual. La llamada información de visibilidad ayuda a evitar conflictos innecesarios (es decir, que dos usuarios editen simultáneamente en la misma ubicación del texto). Esta información incluye el cursor y el texto seleccionado de los demás usuarios, marcados con el color correspondiente.

El núcleo de la aplicación es un algoritmo de control de concurrencia basado en el innovador concepto de transformación operacional , que permite la edición sin bloqueo de un documento por múltiples usuarios. No impone restricciones de edición y resuelve automáticamente todos los conflictos. El algoritmo supera uno de los desafíos más importantes en el diseño e implementación de sistemas de edición colaborativa en tiempo real: la preservación de la consistencia. Es decir, garantizar que, en estado de inactividad (cuando no hay mensajes en tránsito), el documento compartido sea idéntico para todos los participantes.

ACE se basa en tecnologías abiertas como BEEP (RFC 3080) y redes de configuración cero. Todo esto deja abierta la posibilidad de comunicarse incluso con diferentes aplicaciones que entiendan el protocolo público de ACE.

ACE funciona en todos los principales sistemas operativos como Windows , Mac OS X o Linux y es software libre . [ 2 ]

Ejemplo de caso de uso

Consideremos una sesión de edición colaborativa con tres participantes, Bill, Steve y Scott, como se muestra en la figura. También hay un cuarto usuario, Sam, que no participa en la sesión. El documento que editan los usuarios de forma colaborativa es Collaboration.txt . El usuario Scott es el propietario y editor del documento. Cabe destacar que Steve y Bill trabajan con Microsoft Windows , mientras que Scott usa Mac OS X y Sam Linux . El color azul siempre indica el texto escrito por el usuario local de la instancia de ACE. El color que corresponde a cada participante se muestra en la vista de participantes de la interfaz gráfica de usuario .

Uso

Aquí hay una lista con algunos ejemplos de cómo se puede utilizar ACE:

  • Lluvia de ideas en grupo
  • Desarrollo de código fuente ( XP )
  • Toma de notas colectiva
  • Redactar textos juntos (correos electrónicos, cartas, diarios, etc.)
  • Fines educativos

El último punto revela un mayor potencial para los sistemas de edición cooperativa: grupos de dos o tres estudiantes pueden escribir ensayos juntos. Por un lado, se enseñan mutuamente a usar el lenguaje escrito y, por otro, pueden divertirse juntos utilizando una aplicación interactiva en la computadora, superando así el miedo al contacto con la tecnología, algo fundamental en la educación actual.

Antecedentes tecnológicos

Un sistema de edición cooperativa en tiempo real como ACE permite que varios usuarios visualicen y editen el mismo documento simultáneamente desde múltiples ubicaciones geográficamente dispersas. Estas ubicaciones están conectadas mediante redes de comunicación. Se han identificado los siguientes requisitos para este tipo de sistemas:

  • En tiempo real : La respuesta a las acciones del usuario local debe ser rápida, idealmente tan rápida como la de un editor de usuario único, y la latencia para reflejar las acciones del usuario remoto es baja (determinada únicamente por la latencia de la comunicación externa).
  • Distribuido : Los usuarios que cooperan pueden residir en diferentes máquinas conectadas por redes de comunicación con latencia no determinista.
  • Sin restricciones : Varios usuarios pueden editar simultáneamente y de forma independiente cualquier parte del documento en cualquier momento, con el fin de facilitar un flujo de información libre y natural entre ellos.

Un sistema de edición cooperativa en tiempo real consta de n instancias, cada una ejecutada por un usuario diferente. Todas las instancias están conectadas por una red. Uno de los desafíos más importantes en el diseño e implementación de sistemas de edición cooperativa en tiempo real es el mantenimiento de la coherencia entre las diferentes réplicas de documentos (una para cada sitio). Se dice que un sistema de edición cooperativa es coherente si siempre mantiene las siguientes propiedades:

  • Convergencia : Garantiza que, cuando se ejecuta el mismo conjunto de operaciones (por ejemplo, insertar o eliminar un carácter) en todos los sitios, todas las copias (también conocidas como réplicas) del documento compartido sean idénticas. Es decir, esta propiedad asegura la coherencia de los resultados finales al término de una sesión de edición colaborativa.
  • Preservación de la causalidad : Para cualquier par de operaciones Oa y Ob , si Oa -> Ob (es decir, Ob depende de Oa ), entonces Oa se ejecuta antes que Ob en todos los sitios. Es decir, esta propiedad garantiza la coherencia del orden de ejecución de las operaciones dependientes en todos los sitios durante una sesión de edición cooperativa.
  • Preservación de la intención : Para cualquier operación O , los efectos de ejecutar O en todos los sitios son los mismos que la intención de O , y el efecto de ejecutar O no altera los efectos de las operaciones independientes. Es decir, esta propiedad garantiza que ejecutar una operación en sitios remotos produce el mismo efecto que ejecutarla en el sitio local en el momento de su generación, y los efectos de ejecución de las operaciones independientes no interfieren entre sí.

Una solución para lograr el control de consistencia la proporcionan los algoritmos de Transformación Operacional (OT). El enfoque del algoritmo OT consta de dos componentes principales:

  • El algoritmo de integración es responsable de recibir, transmitir y ejecutar operaciones. Es independiente del tipo de réplica de documento y de la aplicación.
  • La función de transformación se encarga de combinar dos operaciones concurrentes. Depende de la aplicación. Por ejemplo, un editor de texto tiene operaciones diferentes a las de una pizarra digital.

La teoría sobre el mantenimiento de la consistencia proviene del campo de investigación denominado Trabajo Cooperativo Asistido por Computadora , o CSCW por sus siglas en inglés .

Véase también

Referencias

  1. "ACE - un editor de código colaborativo" .
  2. "Windows vs MacOS vs Linux – Manual de sistemas operativos" . freeCodeCamp.org . 12 de abril de 2022. Consultado el 25 de enero de 2023 .