Некоторое время тому,
была тут заметка
про Meteor.js. Я
тогда читал про этот проект и попалась
мне на глаза такая информация
David Greenspan
David wrote Etherpad, unwittingly
reinventing Operational Transformation, an obscure theory of
data synchronization, in the process. He then sold Etherpad to Google
and worked on Google Wave and Google App Engine
Ну, почитал, ну интересно,
надо бы поподробнее разобраться. Но со
временем этот вопрос отошел на задний
план. А тут снова:
CoVim is a Vim Plugin that adds
real-time collaboration to your favorite text editor
Представлен новый
плагин для редактора Vim - CoVim, предназначенный
для организации совместного редактирования
одного документа одновременно несколькими
пользователями, работающими на разных
компьютерах и взаимодействующими по
сети.
Казалось бы, что тут
такого? А дело в том, что всё это относится
к одной и той же теме — Operational
Transformation.
Между прочим, плагин
написан на Python и в качестве серверной
платформы использует Twisted.
С развитием сети и
повышением связанности людей через
сеть, удаленно, все большее значение
приобретают инструменты коллективной
онлайновой работы над одним
файлом/проектом/материалом. Кто помнит
Google Wave? А он был.
Теперь его части можно найти в ГуглоДоках
и в ГуглоПлюсе. И еще Фонд Апач ведет
проект-наследник
Так вот, о совместной
работе. Основная сложность —
синхронизировать рабочий документ
между несколькими одновременно
работающими над ним пользователями,
вот эту проблему и решают с помощью
теории Operational Transformation (по
русски, типа, Операционная Трансформация?).
Operational transformation (OT) is a
technology for supporting a range of collaboration functionalities in
advanced collaborative software systems. OT was originally invented
for consistency maintenance and concurrency control in collaborative
editing of plain text documents. Two decades of research has extended
its capabilities and expanded its applications to include group undo,
locking, conflict resolution, operation notification and compression,
group-awareness, HTML/XML and tree-structured document editing,
collaborative office productivity tools, application-sharing, and
collaborative computer-aided media design tools (see OTFAQ). In 2009
OT has been adopted as a core technique behind the collaboration
features in Google Wave and Google Docs.
Разработки ведутся уже
более 15 лет, но задача, применительно к
реальному миру, настолько сложна и
требует такого количества вычислительных
ресурсов + пропускной способности сетей,
что реальных приложений ОТ и поныне не
слишком много.
Similarly, Joseph Gentle who is an
ex Google Wave engineer and an author of the Share.JS library wrote:
Unfortunately, implementing OT sucks. There's a million algorithms
with different tradeoffs, mostly trapped in academic papers. The
algorithms are really hard and time consuming to implement correctly.
... Wave took 2 years to write and if we rewrote it today, it would
take almost as long to write a second time.
Комментариев нет:
Отправить комментарий