Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Операционная трансформация ( OT ) - это технология для поддержки ряда функций совместной работы в передовых программных системах для совместной работы. Первоначально OT был изобретен для обеспечения согласованности и контроля параллелизма при совместном редактировании простых текстовых документов. Его возможности были расширены, а его приложения расширены, включая групповую отмену, блокировку, разрешение конфликтов, уведомление об операциях и сжатие, поддержку групп, HTML / XML и редактирование документов с древовидной структурой, инструменты для совместной работы в офисе, совместное использование приложений и совместный компьютер. инструменты медиа-дизайна. [1] В 2009 году OT был принят в качестве основного метода, лежащего в основе функций совместной работы в Apache Wave.и Google Документы .

История [ править ]

Оперативное преобразование было впервые предложено К. Эллисом и С. Гиббсом [2] в системе GROVE (GRoup Outline Viewing Edit) в 1989 году. Несколько лет спустя были выявлены некоторые проблемы корректности и несколько подходов [3] [4] [5] [ 6] были независимо предложены для решения этих проблем, после чего последовало еще одно десятилетие непрерывных усилий сообщества преданных своему делу исследователей по расширению и улучшению ОТ. В 1998 г. была создана Специальная группа по совместному редактированию [7] для содействия коммуникации и сотрудничеству между исследователями КЭ и ОТ. С тех пор SIGCE проводит ежегодные семинары по CE совместно с крупными CSCW ( Совместная работа с компьютерной поддержкой).) конференции, такие как ACM, CSCW, GROUP и ECSCW.

Системная архитектура [ править ]

Системы совместной работы, использующие операционные преобразования, обычно используют хранилище реплицированных документов, где каждый клиент имеет свою собственную копию документа; клиенты работают со своими локальными копиями без блокировки и без блокировки , а затем изменения распространяются на остальных клиентов; это обеспечивает высокую скорость отклика клиента в среде с большой задержкой, такой как Интернет. Когда клиент получает изменения, распространенные от другого клиента, он обычно преобразует изменения перед их выполнением; преобразование гарантирует, что зависящие от приложения критерии согласованности ( инварианты) поддерживаются всеми сайтами. Этот режим работы приводит к созданию системы, особенно подходящей для реализации функций совместной работы, таких как одновременное редактирование документов, в среде с высокой задержкой, такой как Интернет .

Основы [ править ]

Основная идея OT

Основную идею ОТ можно проиллюстрировать с помощью следующего сценария простого редактирования текста. Дан текстовый документ со строкой «abc», реплицированный на двух сотрудничающих сайтах; и две параллельные операции:

  1. O1 = Insert [0, «x»] (чтобы вставить символ «x» в позицию «0»)
  2. O2 = Delete [2, "c"] (чтобы удалить символ "c" в позиции "2")

генерируется двумя пользователями на сотрудничающих сайтах 1 и 2 соответственно. Предположим, что две операции выполняются в порядке O1 и O2 (на сайте 1). После выполнения O1 документ становится «xabc». Чтобы выполнить O2 после O1, O2 должен быть преобразован в O1, чтобы стать: O2 '= Delete [3, «c»], чей позиционный параметр увеличивается на единицу из-за вставки одного символа «x» на O1. Выполнение O2 'на «xabc» удаляет правильный символ «c», и документ становится «xab». Однако, если O2 выполняется без преобразования, он неправильно удаляет символ «b», а не «c».Основная идея OT состоит в том, чтобы преобразовать (или настроить) параметры операции редактирования в соответствии с эффектами ранее выполненных параллельных операций, чтобы преобразованная операция могла достичь правильного эффекта и поддерживать согласованность документа.

Модели согласованности [ править ]

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

Модель CC [ править ]

В статье Эллиса и Гиббса 1989 г. «Управление параллелизмом в системах коллективного пользования» [2] для систем совместного редактирования требуются два свойства согласованности:

  • C сохранение ausality: обеспечивает порядок выполнения причинной зависимых операций быть такими же , как их естественный порядок причинно-следственной связи в процессе совместной работы. Причинно-следственная связь между двумя операциями формально определяется отношением Лампорта « случилось-до ». Когда две операции не являются причинно-зависимыми, они выполняются одновременно. Две параллельные операции могут выполняться в разном порядке на двух разных копиях документа.
  • C onvergence: обеспечивает реплицированные копии общего документа будут идентичными на всех сайтах в неподвижности (то есть, все генерируемые операции были выполнены на всех сайтах).

Поскольку параллельные операции могут выполняться в разном порядке, а операции редактирования, как правило, не коммутативны, копии документа на разных сайтах могут отличаться (несовместимы). Первый алгоритм ОТ был предложен в статье Эллиса и Гиббса [2] для достижения сходимости в групповом текстовом редакторе; вектор состояния (или векторные часы в классических распределенных вычислениях) использовался для сохранения свойства приоритета.

Модель CCI [ править ]

Модель CCI была предложена для управления согласованностью в системах совместного редактирования. [4] [8] Согласно модели CCI, три свойства согласованности сгруппированы вместе:

  • C сохранение ausality: такой же , как и в модели CC.
  • С onvergence: такой же , как в модели CC.
  • Я сохранение ntention: гарантирует , что эффект выполнения операции в любом состоянии документа будет такой же , как намерение операции. Намерение операции O определяется как эффект выполнения, который может быть достигнут путем применения O к состоянию документа, из которого был сгенерирован O.

Модель CCI расширяет модель CC новым критерием: сохранение намерений. Существенное различие между конвергенцией и сохранением намерения состоит в том, что первое всегда может быть достигнуто с помощью протокола сериализации, но второе не может быть достигнуто никаким протоколом сериализации, если операции всегда выполнялись в их исходной форме. Достижение свойства сохранения несериализуемого намерения было серьезной технической проблемой. OT был признан особенно подходящим для достижения конвергенции и сохранения намерений в системах совместного редактирования.

Модель CCI не зависит от типов документов или моделей данных, типов операций или поддерживающих методов (OT, многовариантность, сериализация, отмена / повтор). Он не был предназначен для проверки правильности методов (например, OT), которые разработаны для конкретных данных и операционных моделей, а также для конкретных приложений. В [4] понятие сохранения намерения было определено и уточнено на трех уровнях: во-первых, оно было определено как общее требование согласованности для систем совместного редактирования; Во-вторых, он был определен как условия до и после преобразования на основе контекста операции для общих функций OT; В-третьих, он был определен как конкретный критерий проверки операции для руководства проектированием функций ОТ для двух примитивных операций: строковой вставки и удаления в совместных текстовых редакторах.

Модель CSM [ править ]

Условие сохранения намерения не было официально указано в модели CCI для целей формальных доказательств. Подходы SDT [9] и LBT [10] пытаются формализовать альтернативные условия, которые могут быть доказаны. Модель согласованности, предлагаемая в этих двух подходах, состоит из следующих формальных условий:

  • С ausality : такое же определениекакв CC модели
  • S Ingle-эксплуатационные эффекты : эффект выполнения какихлибо операций в любом состоянии выполнения достигает тот же эффекткакв его состы нии выработков
  • M Ulti-эксплуатационные эффекты : эффекты отношение любых двух операций поддерживается послеони оба выполнены в любых состояниях

Модель CA [ править ]

Вышеупомянутая модель CSM требует, чтобы был указан общий порядок всех объектов в системе. Фактически, спецификация сводится к новым объектам, введенным операциями вставки. Однако определение общего порядка влечет за собой специфические для приложения политики, например, для разрыва связей вставки (т. Е. Новые объекты, вставленные двумя текущими операциями в одну и ту же позицию). Следовательно, общий порядок зависит от приложения. Более того, в алгоритме должен поддерживаться полный порядок функций преобразования и процедуры управления, что увеличивает временную / пространственную сложность алгоритма.

В качестве альтернативы модель CA основана на теории допустимости . [11] Модель CA включает два аспекта:

  • С ausality : такое же определениекакв CC модели
  • Dmissibility : Вызов каждой операции является допустимым в своем состоянии исполнения, т.е. каждый вызов не должен нарушать любые эффекты отношения (объект заказа)который был создан в более ранних заклятий.

Эти два условия подразумевают сходимость. Все взаимодействующие сайты сходятся в состоянии, в котором существует один и тот же набор объектов, расположенных в одном порядке. Более того, порядок фактически определяется эффектами операций при их создании. Поскольку эти два условия также накладывают дополнительные ограничения на упорядочение объектов, они на самом деле сильнее, чем сходимость. Модель CA и подход «дизайн / доказательство» подробно описаны в статье 2005 года. [11] Больше не требуется, чтобы общий порядок объектов был указан в модели согласованности и поддерживался в алгоритме, что, следовательно, приводит к уменьшению сложности времени / пространства в алгоритме.

Структура системы ОТ [ править ]

ОТ - это система, состоящая из нескольких компонентов. Одна из установленных стратегий проектирования систем ОТ [2] [3] [4] [5] [12] [13] состоит в том, чтобы отделить высокоуровневые алгоритмы управления преобразованием (или интегрированием) от низкоуровневых функций преобразования.

Алгоритм управления преобразованием касается определения:

  1. Какую операцию следует преобразовать в причинно готовую новую операцию
  2. Порядок преобразований

Алгоритм управления вызывает соответствующий набор функций преобразования, которые определяют, как преобразовать одну операцию в другую в соответствии с типами операций, положениями и другими параметрами. Ответственность за правильность этих двух уровней формально определяется набором свойств и условий преобразования. Различные системы OT с разными алгоритмами управления, функциями и топологиями связи требуют поддержки разных наборов свойств преобразования. Разделение системы ОТ на эти два уровня позволяет разрабатывать общие алгоритмы управления, применимые к различным типам приложений с разными данными и моделями операций.

Другой альтернативный подход был предложен в [11]. Согласно их подходу, алгоритм ОТ является правильным, если он удовлетворяет двум формализованным критериям правильности:

  1. Сохранение причинно-следственной связи
  2. Сохранение допустимости

Пока эти два критерия удовлетворяются, реплики данных сходятся (с дополнительными ограничениями) после того, как все операции выполняются на всех сайтах. Нет необходимости навязывать полный порядок выполнения ради достижения сходимости. Их подход обычно состоит в том, чтобы сначала идентифицировать и доказать достаточные условия для нескольких функций преобразования, а затем разработать процедуру управления для обеспечения этих достаточных условий. Таким образом, процедура контроля и функции преобразования работают синергетически для достижения корректности, т. Е. Сохранения причинности и допустимости. В их подходе нет необходимости удовлетворять свойства преобразования, такие как TP2, потому что он не требует, чтобы (включающие) функции преобразования работали во всех возможных случаях.

Данные ОТ и операционные модели [ править ]

В каждой системе OT существуют две базовые модели: модель данных, которая определяет способ обращения к объектам данных в документе с помощью операций, и модель операции, которая определяет набор операций, которые могут быть напрямую преобразованы функциями OT. Различные системы OT могут иметь разные данные и модели работы. Например, модель данных первой системы OT [2] представляет собой единое линейное адресное пространство; а его операционная модель состоит из двух примитивных операций: посимвольной вставки и удаления. Базовая операционная модель была расширена за счет включения третьего примитивного обновления операции для поддержки совместной обработки документов Word [14] и редактирования 3D-моделей. [15]Базовая модель данных OT была расширена до иерархии нескольких доменов линейной адресации [16] [17] [18], которая позволяет моделировать широкий спектр документов. Процесс адаптации данных часто требуется для сопоставления моделей данных конкретного приложения с моделью данных, совместимой с OT. [19] [20]

Существует два подхода к поддержке операций на уровне приложений в системе OT:

  1. Подход к общей модели операций: разработка функций преобразования для трех примитивных операций: вставки, удаления и обновления. [19] Этот подход требует процесса адаптации операций для сопоставления операций приложения с этими примитивными операциями. В этом подходе операционная модель OT является общей, поэтому функции преобразования можно повторно использовать для различных приложений.
  2. Подход к модели операций для конкретного приложения: который заключается в разработке функций преобразования для каждой пары операций приложения. [20] [21] Для приложения с m различными операциями функции преобразования mxm необходимы для поддержки этого приложения. В этом подходе функции преобразования зависят от приложения и не могут быть повторно использованы в других приложениях.

OT функции [ править ]

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

  • Преобразование включения (или прямое преобразование): IT (Oa, Ob) или , которое преобразует операцию Oa в другую операцию Ob таким образом, что влияние Ob эффективно учитывается.
  • Преобразование исключения (или обратное преобразование): ET (Oa, Ob) или , которое преобразует операцию Oa в другую операцию Ob таким образом, что влияние Ob эффективно исключено.

Например, предположим, что тип String с операцией ins (p, c, sid), где p - позиция вставки, c - символ для вставки, а sid - идентификатор сайта, сгенерировавшего операцию. Мы можем написать следующую функцию преобразования:

T (ins ( ), ins ( )): - если ( ) вернуть ins ( ) иначе, если ( и ) вернуть ins ( ) иначе верните ins ( )
(ins ( ), ins ( )): - если ( ) вернуть ins ( ) иначе, если ( и ) вернуть ins ( ) иначе верните ins ( )

Некоторые системы OT используют как функции IT, так и функции ET, а некоторые используют только функции IT. Сложность построения функции ОТ определяется различными факторами:

  • функциональные возможности системы OT: поддерживает ли система OT do (поддержание согласованности), отмену, блокировку, [22] осведомленность, совместное использование приложений, [19] [23] [24] [25] и т. д .;
  • ответственность за правильность в системе ОТ: какие свойства трансформации (CP1 / TP1, CP2 / TP2, IP2, IP3, RP) соблюдать; используется ли ЕТ;
  • модель работы системы OT: является ли модель операции OT общей (например, примитивная вставка, удаление, обновление) или специфичной для приложения (все операции целевого приложения); и
  • модель данных системы ОТ: являются ли данные в каждой операции посимвольными (отдельный объект), строковыми (последовательность объектов), иерархическими или другими структурами.

Свойства трансформации [ править ]

Были определены различные свойства преобразования для обеспечения корректности системы ОТ. Эти свойства могут поддерживаться либо алгоритмом управления преобразованием [4] [5] [13] [20] [26] [27]], либо функциями преобразования. [28] В разных проектах систем ОТ по-разному распределяются обязанности между этими компонентами. Спецификации этих свойств и предварительные условия их требования приведены ниже.

Свойства конвергенции [ править ]

Иллюстрация свойства TP1
Иллюстрация свойства TP2

Следующие два свойства связаны с достижением сходимости.

  • CP1 / TP1 : для каждой пары параллельных операций, определенных в одном и том же состоянии, функция преобразования T удовлетворяет свойству CP1 / TP1 тогда и только тогда, когда: где обозначает последовательность операций, содержащую, за которой следует ; и где обозначает эквивалентность двух последовательностей операции. Предварительное условие CP1 / TP1 : CP1 / TP1 требуется только в том случае, если система OT позволяет выполнять любые две операции в разных порядках.
  • CP2 / TP2 : Для каждых трех параллельных операций и определяется на том же состоянии документа, функция преобразования T удовлетворяет СР2 / ТР2 недвижимость , если и только если: . CP2 / TP2 предусматривает равенство между двумя операциями, преобразованными относительно двух эквивалентных последовательностей операций: преобразование против последовательности операций, за которой следует, должно давать ту же операцию, что и преобразование против последовательности, образованной и . Предварительное условие CP2 / TP2 : CP2 / TP2 требуется только в том случае, если системы OT допускают две операции и могут быть преобразованы в IT в двух разных состояниях документа (или контекстах).

Обратные свойства [ править ]

Следующие три свойства связаны с достижением желаемого группового эффекта отмены. Они есть:

  • IP1 : Для любого состояния документа S и имеющейся у нас последовательности , что означает, что последовательность эквивалентна одной операции идентификации I в отношении воздействия на состояние документа. Это свойство требуется в системе OT для достижения правильного эффекта отмены, но не связано с функциями ИТ.
  • IP2 : свойство IP2 означает, что последовательность не влияет на преобразование других операций. Функции преобразования удовлетворяют IP2 тогда и только тогда , когда:, что означает, что результат преобразования против последовательности эквивалентен результату преобразования против операции идентичности I. Предварительное условие IP2: IP2 требуется только в том случае, если системы OT позволяют операции быть преобразовывается в пару операций do и undo , одну за другой.
  • IP3 : заданы две параллельные операции и определены в одном и том же состоянии документа (или контексте), если и . Функции преобразования удовлетворяют свойству IP3 тогда и только тогда , когда это означает, что преобразованная обратная операция равна обратной преобразованной операции . Предварительное условие IP3 : IP3 требуется только в том случае, если система OT позволяет преобразовать обратную операцию в операцию, которая является параллельной и определена в том же состоянии документа, что и (или контекстно-эквивалентном) .

Алгоритмы управления (интеграции) ОТ [ править ]

Для систем ОТ с разными возможностями и для разных приложений были разработаны различные алгоритмы управления ОТ. Сложность разработки алгоритма управления ОТ определяется множеством факторов. Ключевым отличительным фактором является то, способен ли алгоритм поддерживать управление параллелизмом (do) и / или групповую отмену. [3] [8] [12] [27] [29] Кроме того, разные конструкции алгоритмов управления ОТ имеют разные компромиссы в:

  • распределение ответственности за правильность между алгоритмом управления и функциями преобразования, и
  • пространственно-временная сложность системы ОТ.

Большинство существующих алгоритмов управления OT для управления параллелизмом принимают теорию причинности / параллелизма в качестве теоретической основы: операции, связанные с причинно-следственной связью, должны выполняться в их причинном порядке; параллельные операции должны быть преобразованы перед их выполнением. Однако было хорошо известно, что одно только условие параллелизма не может охватить все условия преобразования ОТ. [3] [4] [5] [8] [30] В недавней работе была предложена теория контекста операции для явного представления понятия состояния документа, которое может использоваться для формального выражения условий преобразования ОТ для поддержки разработка и проверка алгоритмов управления ОТ. [27]

В следующей таблице представлен обзор некоторых существующих алгоритмов управления / интеграции ОТ.

Непрерывный общий порядок - это строгий общий порядок, в котором можно обнаружить отсутствующий элемент, т.е. 1,2,3,4, ... это непрерывный общий порядок, 1,2,3,5, ... не является непрерывный общий заказ.

Алгоритмы на основе преобразования, предложенные в [10] [11] , основаны на альтернативных моделях согласованности «CSM» и «CA», как описано выше. Их подходы отличаются от приведенных в таблице. Они используют векторные временные метки для сохранения причинно-следственной связи. Другими условиями корректности являются сохранение отношения эффектов «одиночная -» / «множественная» или сохранение «допустимости». Эти условия обеспечиваются процедурой контроля и функциями трансформации в синергии. В их работе нет необходимости обсуждать TP1 / TP2. Следовательно, они не перечислены в приведенной выше таблице.

Существуют и другие оптимистичные алгоритмы контроля согласованности, которые ищут альтернативные способы разработки алгоритмов преобразования, но не подходят для приведенной выше таксономии и характеристики. Например, Mark and Retrace [33]

Проблемы корректности ОТ привели к введению пост-ОТ-схем без преобразований, таких как WOOT, [34] Logoot [35] и Причинные деревья (CT). [36] «Пост-ОТ» схемы разбивают документ на элементарные операции, но они обходят необходимость преобразования операций путем использования комбинации уникальных идентификаторов символов, временных меток векторов и / или надгробий.

Критика ОТ [ править ]

В то время как классический подход ОТ к определению операций через их смещения в тексте кажется простым и естественным, в реальных распределенных системах возникают серьезные проблемы. А именно, что операции распространяются с конечной скоростью, состояния участников часто различны, поэтому результирующие комбинации состояний и операций чрезвычайно трудно предвидеть и понимать. Как выразились Ли и Ли: «Из-за необходимости учитывать сложное покрытие случаев формальные доказательства очень сложны и подвержены ошибкам даже для алгоритмов ОТ, которые обрабатывают только два посимвольных примитива (вставка и удаление)». [37]

Точно так же Джозеф Джентл, бывший инженер Google Wave и автор библиотеки Share.JS, написал: «К сожалению, реализация OT - отстой. Существует миллион алгоритмов с различными компромиссами, в основном заключенных в академических статьях. […] Wave занял 2 года. чтобы написать, и если бы мы переписали его сегодня, это заняло бы почти столько же времени, чтобы написать второй раз ». [38] Но позже он исправляет свой комментарий следующим образом: «Я больше не верю, что реализация этой волны займет 2 года - в основном из-за достижений в веб-фреймворках и веб-браузерах». [39]

Для работы OT необходимо фиксировать каждое изменение данных: «Получение моментального снимка состояния обычно тривиально, но фиксация изменений - совсем другое дело. […] Богатство современных пользовательских интерфейсов может сделать это проблематичным, особенно в среде на основе браузера ". Альтернативой OT является дифференциальная синхронизация . [40]

Другой альтернативой OT является использование последовательных типов бесконфликтных реплицированных данных .

См. Также [ править ]

  • Синхронизация данных
  • Совместные редакторы в реальном времени
  • Бесконфликтные реплицированные типы данных
  • Модели согласованности
  • Оптимистичная репликация

Ссылки [ править ]

  1. Sun, Chengzheng. «ОТ FAQ» .
  2. ^ Б с д е е Ellis, CA; Гиббс, SJ (1989). «Контроль параллелизма в системах коллективного пользования». ACM SIGMOD Запись . 18 (2): 399–407. CiteSeerX 10.1.1.465.2026 . DOI : 10.1145 / 67544.66963 . 
  3. ^ a b c d e Рессель, Маттиас и Ницше-Руланд, Дорис и Гунценхойзер, Рул (1996). «Интегрирующий, ориентированный на преобразование подход к управлению параллелизмом и отмене в групповых редакторах». CSCW '96: Материалы конференции ACM 1996 года по компьютерной поддержке совместной работы . С. 288–297. DOI : 10.1145 / 240080.240305 .CS1 maint: multiple names: authors list (link)
  4. ^ Б с д е е г Chengzheng Солнца; Сяохуа Цзя; Янчунь Чжан; Юнь Ян; Дэвид Чен (1998). «Достижение сходимости, сохранения причинно-следственной связи и сохранения намерений в системах совместного редактирования в реальном времени». ACM Trans. Comput.-Hum. Взаимодействовать . 5 (1): 63–108. CiteSeerX 10.1.1.56.1251 . DOI : 10.1145 / 274444.274447 . 
  5. ^ a b c d e Николс, Д. А.; Curtis, P .; Диксон, М .; Лэмпинг, Дж. (1995). «Работа с окнами с высокой задержкой и низкой пропускной способностью в системе совместной работы Jupiter» . Материалы 8-го ежегодного симпозиума ACM по пользовательскому интерфейсу и программным технологиям : 111–120. Архивировано из оригинала на 2015-11-30 . Проверено 27 сентября 2009 .
  6. ^ a b Вс, C .; Эллис, К. (1998). «Оперативная трансформация в групповых редакторах реального времени: проблемы, алгоритмы, достижения» . Материалы конференции ACM 1998 года по компьютерной поддержке совместной работы . ACM Press Нью-Йорк, Нью-Йорк, США. С. 59–68.
  7. ^ "SIGCE - Международная группа по интересам по совместному редактированию" . cooffice.ntu.edu.sg . Архивировано из оригинала на 2012-12-24 . Проверено 10 января 2020 .
  8. ^ а б в г К. Сан (2002). «Отменить как одновременное обратное в групповых редакторах» . ACM Trans. Comput.-Hum. Взаимодействовать . 9 (4): 309–361. DOI : 10.1145 / 586081.586085 .
  9. ^ Ду Ли; Руи Ли (2004). «Сохранение взаимосвязи операционных эффектов в групповых редакторах». Материалы конференции ACM CSCW'04 по компьютерной совместной работе . ACM Press Нью-Йорк, Нью-Йорк, США. С. 457–466.
  10. ^ а б Руи Ли; Ду Ли (2007). «Новая операционная структура преобразования для редакторов групп в реальном времени» . Транзакции IEEE в параллельных и распределенных системах . 18 (3): 307–319. DOI : 10.1109 / TPDS.2007.35 .
  11. ^ а б в г Руи Ли; Ду Ли (2005). «Управление параллелизмом на основе коммутативности в групповом ПО». Труды Первой конференции IEEE по совместным вычислениям: сети, приложения и совместная работа (CollaborateCom'05) .
  12. ^ a b c Пракаш, Атул и Книстер, Майкл Дж. (1994). «Фреймворк для отмены действий в совместных системах». ACM Trans. Comput.-Hum. Взаимодействовать . 1 (4): 295–330. CiteSeerX 10.1.1.51.4793 . DOI : 10.1145 / 198425.198427 . 
  13. ^ a b c Видот, N .; Тележка, М .; Ferrie, J .; Сулейман, М. (2000). «Конвергенция копий в распределенной среде совместной работы в реальном времени» (PDF) . Материалы конференции ACM 2000 года по компьютерной поддержке совместной работы . ACM Press Нью-Йорк, Нью-Йорк, США. С. 171–180. Архивировано из оригинального (PDF) 12 октября 2004 года.
  14. ^ Д. Сун, С. Ся и С. Сун, Д. Чен (2004). «Оперативное преобразование для совместной обработки текста». Proc. конференции ACM Conf. о совместной работе с компьютерной поддержкой . С. 437–446.
  15. ^ Agustina и Ф. Лю и С. Ся и Х. Шен и С. ВС (ноябрь 2008). «CoMaya: Включение расширенных возможностей совместной работы в инструменты {3D} дизайна цифровых медиа». Proc. ACM Conf. о совместной работе с компьютерной поддержкой . С. 5–8.
  16. ^ Дэвис, Aguido Горацио и ВС, Chengzheng и Lu, Junwei (2002). «Обобщение операционного преобразования на стандартный общий язык разметки». CSCW '02: Материалы конференции ACM 2002 года по компьютерной поддержке совместной работы . Новый Орлеан, Луизиана, США. С. 58–67. DOI : 10.1145 / 587078.587088 .CS1 maint: multiple names: authors list (link)
  17. Клаудиа-Лавиния Игнат; Мойра С. Норри (2003). «Настраиваемый совместный редактор, основанный на алгоритме treeOPT». ECSCW'03: Материалы восьмой конференции Европейской конференции по совместной работе с компьютерной поддержкой . Kluwer Academic Publishers. С. 315–334. DOI : 10.1007 / 978-94-010-0068-0_17 .
  18. Клаудиа-Лавиния Игнат; Мойра С. Норри (2008). «Многоуровневое редактирование иерархических документов». Совместная работа с компьютерной поддержкой (CSCW) . 17 (5–6): 423–468. DOI : 10.1007 / s10606-007-9071-2 .
  19. ^ a b c C.Sun, S.Xia, D.Sun, D.Chen, H.Shen и W.Cai (2006). «Прозрачная адаптация однопользовательских приложений для многопользовательской совместной работы в реальном времени» . ACM Trans. Comput.-Hum. Взаимодействовать . 13 (4): 531–582. DOI : 10.1145 / 1188816.1188821 .CS1 maint: multiple names: authors list (link)
  20. ^ a b c d "Оперативное преобразование Google Wave" . Архивировано из оригинала на 2009-05-31 . Проверено 29 мая 2009 .
  21. ^ Кристофер Р. Палмер; Гордон В. Кормак (1998). «Операционные преобразования для распределенной общей электронной таблицы». CSCW '98: Материалы конференции ACM 1998 года по компьютерной поддержке совместной работы . ACM Press. С. 69–78. DOI : 10.1145 / 289444.289474 .
  22. ^ С. ВС и Р. Sosic (1999). «Дополнительная блокировка, интегрированная с операционным преобразованием в распределенных групповых редакторах реального времени». В Proc. 18-го симпозиума ACM по принципам распределенных вычислений . С. 43–52.
  23. ^ Бегол, Джеймс и Россон, Мэри Бет и Шаффер, Клиффорд А. (1999). «Гибкая прозрачность совместной работы: поддержка независимости сотрудников в реплицированных системах совместного использования приложений». ACM Trans. Comput.-Hum. Взаимодействовать . 6 (2): 95–132. CiteSeerX 10.1.1.23.1185 . DOI : 10.1145 / 319091.319096 . CS1 maint: multiple names: authors list (link)
  24. ^ Ли, Ду и Ли, Руи (2002). «Прозрачный обмен и взаимодействие разнородных однопользовательских приложений». CSCW '02: Материалы конференции ACM 2002 года по компьютерной поддержке совместной работы . Новый Орлеан, США. С. 246–255.
  25. ^ Li, Du & Lu, Jiajun (2006). «Облегченный подход к прозрачному совместному использованию знакомых однопользовательских редакторов». CSCW '06: Материалы 20-й юбилейной конференции 2006 года по компьютерной поддержке совместной работы . Банф, Альберта, Канада. С. 139–148. DOI : 10.1145 / 1180875.1180896 .
  26. ^ а б Шен, Хайфэн и Сун, Чэнчжэн (2002). «Гибкое уведомление для коллаборативных систем». CSCW '02: Материалы конференции ACM 2002 года по компьютерной поддержке совместной работы . С. 77–86. DOI : 10.1145 / 587078.587090 .
  27. ^ а б в г Д. Сан и К. Сан (2009). «Оперативное преобразование на основе контекста для распределенных систем совместного редактирования». Транзакции IEEE в параллельных и распределенных системах . 20 (10): 1454–1470. DOI : 10.1109 / TPDS.2008.240 .
  28. ^ Джеральд Остер; Паскаль Молли; Паскаль Урсо; Абдессамад Имин (2006). «Функции преобразования Tombstone для обеспечения согласованности в системах совместного редактирования» (PDF) . Procs. 2-й международный Конф. О совместных вычислениях: сети, Appln. И совместная работа . Проверено 26 июля 2007 .
  29. ^ а б М. Рессель и Р. Гунценхаузер (1999). «Снижение проблем групповой отмены». Proc. конференции ACM Conf. по поддержке групповой работы . С. 131–139.
  30. ^ а б Сулейман, М .; Тележка, М .; Ферри, Дж. (1998). «Параллельные операции в распределенной и мобильной совместной среде». Труды четырнадцатой международной конференции по инженерии данных, февраль . С. 23–27. DOI : 10.1109 / ICDE.1998.655755 .
  31. ^ Р. Ли, Д. Ли и К. Сан (2004). "Алгоритм контроля согласованности на основе временного интервала для интерактивных приложений групповой работы". ICPADS '04: Труды по параллельным и распределенным системам, Десятая международная конференция . п. 429. DOI : 10,1109 / ICPADS.2004.12 .
  32. ^ М. Корзина, Жан Ферри (2007). «Синхронизатор на основе оперативной трансформации для P2P-сред» (PDF) . Труды 3-й Международной конференции по совместным вычислениям: сети, приложения и совместная работа . С. 127–138 . Проверено 26 июля 2007 .
  33. ^ Гу, Нин и Ян, Цзянмин и Чжан, Цивэй (2005). «Поддержание согласованности на основе техники mark \ & retrace в системах группового программного обеспечения». GROUP '05: Материалы международной конференции ACM SIGGROUP 2005 г. по поддержке групповой работы . С. 264–273. DOI : 10.1145 / 1099203.1099250 .CS1 maint: multiple names: authors list (link)
  34. ^ Имин, Абдессамад и Молли, Паскаль и Остер, Джеральд и Урсо, Паскаль (2005). «Групповые редакторы в реальном времени без оперативной трансформации» : 24. Cite journal requires |journal= (help)CS1 maint: multiple names: authors list (link)
  35. ^ Стефан Вайс и Паскаль Урсо и Паскаль Молли (2010). «Logoot-Undo: Распределенная система совместного редактирования в P2P-сетях» . Транзакции IEEE в параллельных и распределенных системах . 21 (8): 1162. DOI : 10,1109 / TPDS.2009.173 .
  36. Виктор Грищенко (2010). «Глубокий гипертекст со встроенным контролем версий, реализованный в регулярных выражениях» (PDF) . Материалы 6-го Международного симпозиума по вики-сайтам и открытому сотрудничеству (WikiSym '10) . WikiSym 2010 . Архивировано из оригинального (PDF) 09 марта 2012 года . Проверено 30 июня 2010 .
  37. Перейти ↑ Du Li & Rui Li (2010). «Основанная на допустимости рабочая структура преобразования для систем совместного редактирования» . Совместная работа с компьютерной поддержкой (CSCW) . 19 (1): 1–43. DOI : 10.1007 / s10606-009-9103-1 .
  38. ^ "ShareJS" . 2011-11-06. Архивировано из оригинала на 2012-05-11 . Проверено 16 августа 2013 .
  39. ^ «Да, это я! Как бы то ни было, я больше не верю, что эта волна займет 2 года ... | Hacker News» . news.ycombinator.com . Проверено 13 февраля 2019 .
  40. Нил Фрейзер (январь 2009 г.). «Дифференциальная синхронизация» .

Внешние ссылки [ править ]

  • OT FAQ: операционная трансформация Часто задаваемые вопросы и ответы
  • SIGCE: Специальная группа по совместному редактированию
  • Международный семинар по системам совместного редактирования
  • Распределенная система онлайн - совместное редактирование
  • Простое объяснение OT в Google Docs
  • Основы ОТ в Open Coweb Framework

Соответствующие онлайн-переговоры [ править ]

  • Google Wave: совместное редактирование в реальном времени
  • Google Tech Talk: проблемы и опыт разработки систем совместного редактирования в реальном времени
  • Обсуждение Microsoft Research: Обеспечение согласованности в системах совместного редактирования в реальном времени