Jump to content

Совместный редактор в реальном времени

Совместный редактор в реальном времени — это тип программного обеспечения или веб-приложения для совместной работы , которое обеспечивает совместное редактирование в реальном времени , одновременное редактирование или редактирование в реальном времени одного и того же цифрового документа , компьютерного файла или хранящихся в облаке данных, , таких как онлайн-таблица , Word. обработка документа, базы данных или презентации — одновременно разными пользователями на разных компьютерах или мобильных устройствах с автоматическим и практически мгновенным объединением их правок.

Редактирование в реальном времени выполняет автоматическую, периодическую, часто почти мгновенную синхронизацию изменений всех онлайн-пользователей, когда они редактируют документ на своем собственном устройстве. Это сделано для того, чтобы избежать или свести к минимуму конфликты редактирования .

При асинхронном совместном редактировании (т. е. не в режиме реального времени, с задержкой или в автономном режиме) каждый пользователь обычно должен вручную отправлять (публиковать, отправлять или фиксировать), обновлять (обновлять, извлекать, загружать или синхронизировать) и (если возникают конфликты редактирования) объединять их правки. Из-за отложенного характера асинхронного совместного редактирования несколько пользователей могут в конечном итоге редактировать одну и ту же строку, слово, элемент, данные , строку или поле, что приводит к конфликтам редактирования , которые требуют ручного слияния или перезаписи редактирования, требуя от пользователя выбора, какие изменения использовать. или (в зависимости от системы и настроек) автоматически перезаписывать свои правки или правки других людей с предупреждением или без него.

История ключевых продуктов

[ редактировать ]

Первый экземпляр совместного редактора в реальном времени был продемонстрирован Дугласом Энгельбартом в 1968 году в книге «Мать всех демонстраций» . На появление широко доступных реализаций этой концепции потребовались десятилетия.

Часть программного обеспечения под названием Instant Update была выпущена для классической Mac OS в 1991 году компанией ON Technology . [1] [ нужен лучший источник ] Он позволял редактировать один документ в режиме реального времени нескольким пользователям через локальную сеть и опирался на рабочей группы сервер .

Интерес к совместному редактированию в реальном времени через Интернет привел к развитию MoonEdit и SubEthaEdit в 2003-2005 годах, за которыми вскоре последовал Gobby .

С появлением технологии Ajax и функции «редактирования контента» в браузерах совместное редактирование через Интернет в режиме реального времени стало частью феномена Web 2.0 примерно в 2005 году. В частности, продукт под названием Writely вызвал взрывной рост числа пользователей и был куплен. Google в марте 2006 года (так называемый Google Docs , а затем переименованный в Google Drive ). Он обеспечивал одновременное редактирование всего документа, хотя изменения, внесенные другими пользователями, отражались только после опроса клиентской программой сервера (примерно каждые полминуты). [ нужна ссылка ] Еще одним ранним веб-решением был JotSpotLive, в котором одновременное построчное редактирование было доступно практически в реальном времени. [2] Однако после покупки Google материнской компании JotSpot в ноябре 2006 года сайт был закрыт. Google Sites был запущен в феврале 2007 года как рефакторинг JotSpot. [3] [4] [5] [6] но ему не хватает многопользовательских возможностей JotLive в режиме реального времени. Проекты Synchroedit (форматированный текст) и MobWrite (обычный текст) — это две более поздние попытки с открытым исходным кодом заполнить пробел в совместном редактировании на основе браузера в реальном времени, хотя они до сих пор не могут достичь истинной производительности в реальном времени, особенно на масштабная архитектура. [ нужна ссылка ]

В 2009 году Google начал бета-тестирование Google Wave , среды для совместной работы в реальном времени, которая, как надеялась Google, в конечном итоге заменит электронную почту и обмен мгновенными сообщениями. [ нужна ссылка ] EtherPad был приобретен компанией Google, которая выделила команду EtherPad для работы в рамках проекта Wave. Однако в августе 2010 года Google объявил в своем блоге. [7] что компания решила прекратить разработку Wave как отдельного проекта из-за недостаточного признания пользователями. как Google выпустил заброшенный исходный код EtherPad как открытый исходный код в декабре 2009 года, сообщество взяло на себя его разработку и произвело полную переработку под названием Etherpad lite , которая полностью написана на JavaScript и построена поверх Node.js. После того , Еще одним заметным инструментом, основанным на оперативной трансформации технологии , является CKEditor . [8] В 2020 году наблюдался всплеск интереса к этой концепции, поскольку Microsoft также недавно выпустила свою среду Fluid, которая опирается на новую технологию Total Order Broadcast, в отличие от OT или CRDT. [9] В настоящее время Fluid не зависит от платформы. Microsoft заявляет, что он еще не готов к использованию в производстве. [10]

В июне 2016 года Collabora Productivity выпустила версию 1.0 Collabora Online , онлайн-офисного пакета с открытым исходным кодом, использующего технологию LibreOffice . Его можно интегрировать в любой веб-сайт с помощью нескольких строк кода. Существует комплект разработки программного обеспечения с примером кода интеграции на нескольких языках Node.js , PHP , Python , ReactJS и .NET . Они имеют спецификации API, обеспечивающие функциональную интеграцию с настраиваемыми пользовательскими интерфейсами. [11] [12] [13] Поскольку документы Collabora Online остаются на сервере, каждый пользователь одновременно использует один и тот же документ, что позволяет редактировать только один документ в режиме реального времени и в интерактивном режиме без дополнительных задержек или задержек, чтобы увидеть, как печатают другие пользователи. Это позволяет избежать необходимости блокировки абзацев в текстовых документах. Он обеспечивает совместное редактирование в режиме реального времени текстовых документов, электронных таблиц, презентаций, рисунков и векторной графики.

Недавно совместное редактирование в реальном времени вернулось в автономные приложения для редактирования текста с расширениями для Atom и Visual Studio Code , выпущенными в 2020 году. [14] [15]

Другие примеры

[ редактировать ]

Совместное редактирование в режиме реального времени может происходить онлайн в веб-приложениях, таких как Microsoft Office в Интернете (ранее Office Online ), который поддерживает ( через Интернет одновременное онлайн-редактирование ) (которое Microsoft называет «совместным авторством») документов Word . Excel Таблицы , PowerPoint и другие Microsoft Office, документы Office.com , OneDrive или SharePoint хранящиеся в облачном хранилище , а также в Google Docs и других приложениях Google Workspace для повышения производительности (офисный пакет) для совместного онлайн-редактирования текстовых редакторов и других документов, хранящихся на Google Диске . Совместное редактирование в реальном времени также может осуществляться гибридным способом, например, с помощью Power Sheet BI для Excel. [16] при совместном редактировании в автономном, веб- и онлайн-режиме в настольном программном обеспечении, а также в веб-приложениях и мобильных приложениях, которые можно автоматически синхронизировать с мгновенным доступом к истории версий. В 2020 году возродился интерес к встраиванию этих приложений в безопасные веб-приложения, особенно для бизнес-приложений, при этом Microsoft и Vaadin взяли на себя ведущую роль в разработке специализированных бэкэндов для совместной работы в реальном времени, которые справляются со сложностями синхронного обмена данными в реальном времени, что разработчики могут использовать через API. [17] [18] В 2013 году Mozilla выпустила библиотеку JavaScript TogetherJS, которая добавляет совместное редактирование в реальном времени в любое веб-приложение через систему обмена сообщениями и, при необходимости, алгоритм оперативного преобразования для синхронизации форм. [19]

Vaadin Ltd., поставщик платформы Vaadin, выпустила версию 1.0 своей системы для совместной работы. В октябре 2020 г. [20] с целью позволить разработчикам быстро встраивать функции совместной работы и редактирования в реальном времени в любое веб-приложение с серверной частью Java, используя несколько строк кода (для конкретных случаев использования через их, все еще ограниченные, высокоуровневые API). [21] Эта функция в настоящее время поддерживает Java, хотя поставщик отмечает, что API на основе TypeScript также появится, что соответствует недавнему продолжающемуся расширению платформы Vaadin, позволяющему в будущем создавать пользовательский интерфейс на основе TypeScript с помощью предстоящей платформы Fusion. [22] [23]

Технические проблемы

[ редактировать ]

Сложность решений для совместного редактирования в реальном времени связана с задержками связи. Теоретически, если бы связь была мгновенной, то создание совместного редактора в реальном времени было бы не сложнее, чем создание однопользовательского редактора, поскольку документ можно было бы редактировать, используя алгоритм, аналогичный следующему:

  1. Запросить токен «редактировать документ» с сервера
  2. Подождите, пока сервер не скажет, что наша очередь редактировать документ.
  3. Сообщите серверу, как редактировать документ
  4. Отпустите токен «редактировать документ».

Однако скорость связи ограничена задержкой сети. Это создает фундаментальную дилемму: пользователям нужно, чтобы их собственные правки включались в документ мгновенно, но если они вносятся мгновенно, то из-за задержки связи их правки обязательно должны быть вставлены в разные версии документа.

Пример иллюстрирует эту проблему. Предположим, Боб и Алиса начинают с документа, содержащего слово Мэри . Боб удаляет «М», затем вставляет «Н», чтобы изменить слово на «Гэри» . Алиса, прежде чем получить какое-либо редактирование от Боба, удаляет «r», затем удаляет «a», чтобы изменить его на My . И Боб, и Алиса получат изменения, примененные к версиям документа, которые никогда не существовали на их машинах.

Таким образом, задача совместного редактирования в реальном времени состоит в том, чтобы выяснить, как именно применять изменения удаленных пользователей, которые изначально были созданы в версиях документа, которые никогда не существовали локально, и которые могут конфликтовать с собственными локальными изменениями пользователя.

Самые сложные решения решают эту проблему таким образом, что не требуется сервер, не используется блокировка (все пользователи могут свободно редактировать все части документа одновременно) и поддерживается любое количество пользователей (ограниченное только ресурсами). компьютеров). UNA и SubEthaEdit — примеры двух программ, использующих этот подход.

Хотя эти сложные подходы обеспечивают наилучшее взаимодействие с пользователем , базовый редактор для совместной работы также может быть создан в модели клиент-сервер . В клиент-серверном сценарии одному из экземпляров редактора назначается роль сервера совместной работы при открытии документа. Этот сервер обеспечивает синхронизацию других редакторов, определяя задержку в сети и выступая в качестве сервера синхронизации времени . Сервер получает уведомления с отметкой времени об изменениях, внесенных в документ другими пользователями. Он определяет, как эти изменения должны повлиять на его локальную копию, и передает свои изменения в пул совместной работы. В некоторых моделях изменения не отражаются на клиенте до тех пор, пока не будет получен официальный ответ от сервера, даже если эти изменения были внесены локально.

Этот подход, хотя и значительно менее мощный, позволяет обеспечить базовое сотрудничество при относительно низких затратах. Это делает его предпочтительным в ситуациях, когда ресурсы обработки ограничены. NetSketch — пример программы, использующей эту модель.

В прошлом Microsoft и IBM работали над добавлением средств совместной работы к своим существующим архитектурам. [24] Хотя эти подходы «рабочего пространства» позиционируются как совместная работа в реальном времени, они требуют либо блокировки документа (чтобы редактировать его одновременно мог только один человек), либо «согласования» конфликтующих изменений, что обычно считается пользователями неудовлетворительным. [ нужна ссылка ]

См. также

[ редактировать ]
  1. ^ «Руководство пользователя» . Архивировано из оригинала 21 февраля 2009 г.
  2. ^ Майкл Аррингтон (27 сентября 2005 г.). «JotSpot Live — идеальная вики?» . ТехКранч .
  3. ^ Майкл Аррингтон (27 февраля 2008 г.). «Прошло 16 месяцев, но Google перезапустил Jotspot» . ТехКранч .
  4. ^ Дэвид Чартье (28 февраля 2008 г.). «Первый взгляд: Google перезапускает JotSpot как Google Sites» . Арс техника.
  5. ^ Дэн Фарбер (27 февраля 2008 г.). «JotSpot перевоплотился в Сайты Google» . Новости CNET . Архивировано из оригинала 15 мая 2008 г. Проверено 19 марта 2008 г.
  6. ^ Марк «Риззн» Хопкинс (27 февраля 2008 г.). «Google наконец-то освободил JotSpot с помощью Google Sites» . Машаемый .
  7. ^ Ина Фрид и Джош Лоуэнсон (4 августа 2010 г.). «Google отключил Google Wave» . CNET .
  8. ^ СуньЧэнчжэн; СанДэвид; НгАгустина; ЦайВэйвэй; ЧоБрайден (04 января 2020 г.). «Реальные различия между OT и CRDT в рамках общей структуры трансформации для обеспечения единообразия соредакторов» . Труды ACM по взаимодействию человека и компьютера . 4 : 1–26. arXiv : 1905.01518 . дои : 10.1145/3375186 .
  9. ^ «Часто задаваемые вопросы» . Liquidframework-docs.azureedge.net . Проверено 2 ноября 2020 г.
  10. ^ «Жидкий каркас» . Liquidframework-docs.azureedge.net . Проверено 2 ноября 2020 г.
  11. ^ Гатой, Уильям (2 июня 2016 г.). «Collabora Productivity выпускает «движок» Collabora Online 1.0 для хостеров и облаков» . Архивировано из оригинала 7 августа 2016 г. Проверено 02 сентября 2021 г.
  12. ^ «Collabora Online SDK» . Архивировано из оригинала 01 марта 2021 г. Проверено 02 сентября 2021 г.
  13. ^ Гоань, Сяо (10 декабря 2020 г.). «Интеграция Collabora Online с Nextcloud в Ubuntu с помощью Docker» . LinuxBabe . Архивировано из оригинала 14 июня 2020 г. Проверено 02 сентября 2021 г.
  14. ^ «Live Share для VS Code» . Проверено 26 февраля 2022 г.
  15. ^ «Телетайп для Атома» . Проверено 26 февраля 2022 г.
  16. ^ «БЕСПЛАТНОЕ приложение без кода, аналитический искусственный интеллект, блокчейн, платформа для совместной работы Excel&Web 3.0» . PowerSheet.ai . Проверено 8 июня 2020 г.
  17. ^ «Жидкий каркас» . Liquidframework-docs.azureedge.net . Проверено 2 ноября 2020 г.
  18. ^ «Двигатель сотрудничества» . Ваадин . Проверено 2 ноября 2020 г.
  19. ^ «Mozilla Labs: технологический обзор TogetherJS» . Togetherjs.com . Лаборатория Мозиллы . Проверено 12 января 2023 г.
  20. ^ «Познакомьтесь с Collaboration Engine: самый простой способ создания совместных веб-приложений» . Ваадин . Проверено 2 ноября 2020 г.
  21. ^ «Двигатель сотрудничества» . Ваадин . Проверено 2 ноября 2020 г.
  22. ^ «Взгляд на будущее функций Vaadin для совместной работы в режиме реального времени» . Ваадин . Проверено 2 ноября 2020 г.
  23. ^ «Представляем Vaadin Flow и Fusion» . Ваадин . Проверено 2 ноября 2020 г.
  24. ^ Microsoft Live Communications. Архивировано 5 марта 2008 г. в Португальском веб-архиве. Продается как в реальном времени, но не в реальном времени в смысле этой статьи.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 84e269a352062787126802be9894b356__1716037200
URL1:https://arc.ask3.ru/arc/aa/84/56/84e269a352062787126802be9894b356.html
Заголовок, (Title) документа по адресу, URL1:
Collaborative real-time editor - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)