De Wikipedia, la enciclopedia libre
  (Redirigido desde el editor colaborativo en tiempo real )
Saltar a navegación Saltar a búsqueda

Un editor colaborativo en tiempo real es un tipo de software colaborativo o aplicación web que permite la edición colaborativa en tiempo real , la edición simultánea o la edición en vivo del mismo documento digital , archivo de computadora o datos almacenados en la nube , como una hoja de cálculo en línea , Word procesamiento de documentos, bases de datos o presentaciones , al mismo tiempo por diferentes usuarios en diferentes computadoras o dispositivos móviles , con la fusión automática y casi instantánea de sus ediciones.

La edición colaborativa en tiempo real puede ocurrir en línea en aplicaciones web como Microsoft Office en la web (anteriormente Office Online ), que admite la edición simultánea en línea ( basada en la web ) (a la que Microsoft se refiere como " Co-autoría ") de documentos de Word . Hojas de cálculo de Excel , PowerPoint y otros documentos de Microsoft Office almacenados en el almacenamiento en la nube de Office.com , OneDrive o SharePoint , o Google Docs y otros G Suite Aplicaciones de productividad (suite ofimática) : para la edición colaborativa en línea de procesamiento de texto y otros documentos almacenados en Google Drive . La edición colaborativa en tiempo real también puede ocurrir de manera híbrida, como con Power Sheet BI para Excel, [1]en edición colaborativa fuera de línea, basada en la web y en línea en software de escritorio, así como en aplicaciones móviles y basadas en la web, que se pueden sincronizar automáticamente con acceso instantáneo al historial de versiones. 2020 ha visto un resurgimiento del interés en integrar estas aplicaciones en aplicaciones web seguras, particularmente para casos de uso empresarial, con Microsoft y Vaadin a la cabeza con backends de colaboración en tiempo real especializados que manejan las complejidades del intercambio de datos sincrónico en tiempo real, que los desarrolladores pueden utilizar a través de API. [2] [3]

A diferencia de la edición colaborativa asíncrona (no en tiempo real, retrasada o fuera de línea) , como ocurre con los sistemas de control de revisión como Git o Subversion , la edición en tiempo real realiza una sincronización automática, periódica, a menudo casi instantánea, de las ediciones de todos los usuarios en línea mientras editan. el documento en su propio dispositivo. Esto está diseñado para evitar o minimizar los conflictos de edición . En la edición colaborativa asincrónica, cada usuario normalmente debe enviar manualmente (publicar, enviar o confirmar), actualizar (actualizar, extraer, descargar o sincronizar) y (si se produce algún conflicto de edición) fusionar sus ediciones.

Debido a la naturaleza retrasada de la edición colaborativa asincrónica, varios usuarios pueden terminar editando la misma línea, palabra, elemento, datos , fila o campo, lo que genera conflictos de edición que requieren la fusión o sobrescritura de la edición manual , lo que requiere que el usuario elija qué ediciones usar. o (según el sistema y la configuración) sobrescribir automáticamente sus ediciones o las ediciones de otras personas, con o sin una advertencia.

Historia de productos clave [ editar ]

La primera instancia de un editor colaborativo en tiempo real fue demostrada por Douglas Engelbart en 1968, en La madre de todas las demostraciones . Las implementaciones ampliamente disponibles del concepto tardaron décadas en aparecer.

Instant Update se lanzó para el Mac OS clásico en 1991 de ON Technology . [4] [Se necesita una mejor fuente ] Más tarde, también se lanzó una versión para Microsoft Windows , lo que permite la colaboración en tiempo real [ se necesita una cita ] entre estos dos sistemas operativos . [ cita requerida ] Instant Update se basó en un servidor de grupo de trabajo para coordinar los documentos actualizados en tiempo real en múltiples clientes.

El fenómeno de la Web 2.0 ha provocado una explosión de interés en las herramientas de edición de documentos basadas en navegador. En particular, un producto llamado Writely experimentó un crecimiento explosivo de usuarios y fue comprado por Google en marzo de 2006 (lo que se conoció como Google Docs y luego se renombró como Google Drive ). Proporcionó ediciones simultáneas en la totalidad de un documento, aunque los cambios de otros usuarios solo se reflejaron después de que el programa cliente sondeara el servidor (aproximadamente cada medio minuto). [ cita requerida ] Otra solución temprana basada en la web fue JotSpotLive, en la que la edición simultánea línea por línea estaba disponible casi en tiempo real. [5]Sin embargo, después de que Google comprara la empresa matriz JotSpot en noviembre de 2006, el sitio se cerró. Google Sites se lanzó en febrero de 2007 como una refactorización de JotSpot, [6] [7] [8] [9] pero carece de las capacidades multiusuario en tiempo real de JotLive. Los proyectos Synchroedit (texto enriquecido) y MobWrite (texto sin formato) son dos intentos de código abierto más recientes para llenar el vacío en la edición colaborativa en tiempo real basada en navegador, aunque aún no pueden lograr un rendimiento real en tiempo real, especialmente en un arquitectura a gran escala. [ cita requerida ]

En 2009, Google comenzó a probar la versión beta de Google Wave , un entorno de colaboración en tiempo real que Google esperaba que eventualmente desplazara al correo electrónico y la mensajería instantánea. [ cita requerida ] EtherPad fue adquirido por Google, que asignó al equipo de EtherPad para trabajar dentro del proyecto Wave. Sin embargo, Google anunció en agosto de 2010 en su blog [10] que había decidido dejar de desarrollar Wave como un proyecto independiente, debido a una adopción insuficiente por parte de los usuarios. Después de que Google lanzó el código fuente de EtherPad abandonado como fuente abierta en diciembre de 2009, la comunidad se hizo cargo de su desarrollo y produjo una reescritura completa llamada Etherpad lite , que está escrita completamente en JavaScript.y construido en la cima de Node.js . Otras herramientas notables basadas en la tecnología de transformación operativa son CKEditor y SubEthaEdit . [11] 2020 ha visto un aumento del interés en el concepto, ya que Microsoft también lanzó recientemente su marco Fluid, que se basa en una novedosa tecnología Total Order Broadcast, a diferencia de OT o CRDT. [12] Fluid es actualmente un marco independiente. Microsoft afirma que aún no está listo para su uso en producción. [13]

En octubre de 2020, Vaadin Ltd., el proveedor de la plataforma Vaadin, lanzó la versión 1.0 de su motor de colaboración, [14] con la premisa de permitir a los desarrolladores crear rápidamente funciones de edición y colaboración en tiempo real en cualquier aplicación web con Java. backends utilizando algunas líneas de códigos (para casos de uso específicos a través de sus API de alto nivel, aún limitadas). [15] Esta característica actualmente es compatible con Java, aunque el proveedor señala que también está entrando una API basada en TypeScript, en línea con la reciente expansión en curso de la plataforma Vaadin para habilitar también la construcción de UI basada en TypeScript en el futuro a través de su próximo marco Fusion. [16] [17]

Desafíos técnicos [ editar ]

La complejidad de las soluciones de edición colaborativa en tiempo real se debe a la latencia de la comunicación. En teoría, si la comunicación fuera instantánea, crear un editor colaborativo en tiempo real no sería más difícil que crear un editor de usuario único, porque un documento podría editarse utilizando un algoritmo similar al siguiente:

  1. Solicitar un token de 'editar documento' del servidor
  2. Espere hasta que el servidor diga que es nuestro turno de editar el documento.
  3. Dígale al servidor cómo editar el documento
  4. Libera el token 'editar documento'

Sin embargo, la velocidad de comunicación está limitada por la latencia de la red. Esto crea un dilema fundamental: los usuarios necesitan sus propias ediciones incorporadas al documento instantáneamente, pero si se incorporan instantáneamente, debido a la latencia de la comunicación, sus ediciones deben necesariamente insertarse en diferentes versiones del documento.

Un ejemplo ilustra este problema. Suponga que Bob y Alice comienzan con un documento que contiene la palabra Mary . Bob elimina 'M', luego inserta 'H', para cambiar la palabra a Hary . Alice, antes de recibir una edición de Bob, elimina la 'r', luego elimina la 'a', para cambiarla a My . Tanto Bob como Alice recibirán las ediciones que se aplicaron a versiones del documento que nunca existieron en sus propias máquinas.

Por lo tanto, el desafío de la edición colaborativa en tiempo real es descubrir exactamente cómo aplicar las ediciones de usuarios remotos, que se crearon originalmente en versiones del documento que nunca existieron localmente y que pueden entrar en conflicto con las ediciones locales del propio usuario.

Las soluciones más sofisticadas resuelven este problema de una manera que no requiere un servidor, no utiliza el bloqueo (todos los usuarios pueden editar libremente todas las partes de un documento al mismo tiempo) y admite cualquier número de usuarios (limitado solo por los recursos). de las computadoras). UNA y SubEthaEdit son ejemplos de dos programas que adoptan este enfoque.

Si bien estos enfoques sofisticados permiten la mejor experiencia de usuario , también se puede crear un editor colaborativo básico en un modelo cliente-servidor . En un escenario cliente-servidor, a una de las instancias del editor se le asigna la función de servidor de colaboración cuando se abre el documento. Este servidor asegura que otros editores se mantengan sincronizados determinando la latencia de la red y actuando como un servidor de sincronización de tiempo . El servidor recibe una marca de tiemponotificaciones de cambios realizados en el documento por otros usuarios. Determina cómo deben afectar esos cambios a su copia local y transmite sus cambios al grupo de colaboración. En algunos modelos, los cambios no se reflejan en un cliente hasta que se devuelve una respuesta oficial del servidor, incluso si esos cambios se realizaron localmente.

Este enfoque, aunque significativamente menos poderoso, permite la colaboración básica a un costo relativamente bajo. Esto lo hace preferible en situaciones en las que los recursos de procesamiento son limitados. NetSketch es un ejemplo de un programa que usa este modelo.

En el pasado, Microsoft e IBM han trabajado para agregar facilidades de colaboración a sus arquitecturas existentes. [18] Aunque se comercializan como colaboración en tiempo real, estos enfoques de 'espacio de trabajo' requieren bloqueo de documentos (para que solo una persona pueda editarlos a la vez) o 'reconciliación' de cambios conflictivos, que los usuarios generalmente consideran insatisfactorio . [ cita requerida ]

Ver también [ editar ]

  • Cobrowsing
  • Tipo de datos replicados sin conflictos
  • Computación distribuída
  • Control de revisión distribuido
  • Colaboración de documentos
  • Lista de software colaborativo
  • Texto en tiempo real
  • Wiki
  • Gobby

Referencias [ editar ]

  1. ^ "Aplicación gratuita sin código, Analytics AI, Blockchain, Excel & Plataforma de colaboración Web 3.0" . PowerSheet.ai . Consultado el 8 de junio de 2020 .
  2. ^ "Marco fluido" . fluidframework-docs.azureedge.net . Consultado el 2 de noviembre de 2020 .
  3. ^ "Motor de colaboración" . Vaadin . Consultado el 2 de noviembre de 2020 .
  4. ^ "Manual de usuario" . Archivado desde el original el 21 de febrero de 2009.
  5. Michael Arrington (27 de septiembre de 2005). "JotSpot Live - ¿La Wiki perfecta?" . TechCrunch .
  6. Michael Arrington (27 de febrero de 2008). "Tomó 16 meses, pero Google relanza Jotspot" . TechCrunch .
  7. David Chartier (28 de febrero de 2008). "Primer vistazo: Google relanza JotSpot como Google Sites" . Ars technica.
  8. Dan Farber (27 de febrero de 2008). "JotSpot reencarnado como Google Sites" . Noticias CNET .
  9. Mark 'Rizzn' Hopkins (27 de febrero de 2008). "Google finalmente libera JotSpot con Google Sites" . Mashable .
  10. Ina Fried y Josh Lowensohn (4 de agosto de 2010). "Google desconecta Google Wave" . CNET .
  11. ^ SunChengzheng; SunDavid; NgAgustina; CaiWeiwei; ChoBryden (4 de enero de 2020). "Diferencias reales entre OT y CRDT bajo un marco de transformación general para el mantenimiento de la coherencia en coeditores" . Actas de la ACM sobre la interacción persona-computadora . doi : 10.1145 / 3375186 .
  12. ^ "Preguntas frecuentes" . fluidframework-docs.azureedge.net . Consultado el 2 de noviembre de 2020 .
  13. ^ "Marco fluido" . fluidframework-docs.azureedge.net . Consultado el 2 de noviembre de 2020 .
  14. ^ "Conoce el motor de colaboración: la forma más sencilla de crear aplicaciones web colaborativas" . Vaadin . Consultado el 2 de noviembre de 2020 .
  15. ^ "Motor de colaboración" . Vaadin . Consultado el 2 de noviembre de 2020 .
  16. ^ "Un adelanto del futuro de las funciones de colaboración en tiempo real de Vaadin" . Vaadin . Consultado el 2 de noviembre de 2020 .
  17. ^ "Presentación de Vaadin Flow y Fusion" . Vaadin . Consultado el 2 de noviembre de 2020 .
  18. ^ Microsoft Live Communications Archivado el 5 de marzo de 2008 en el archivo web portugués. Comercializado en tiempo real, pero no en tiempo real en el sentido de este artículo.