Jump to content

Операционная трансформация

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

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

Архитектура системы

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

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

Основная идея ОТ
Basic idea behind OT

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

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

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

Модели согласованности

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

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

Модель CC

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

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

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

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

Модель CCI

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

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

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

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

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

Модель CSM

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

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

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

Модель CA

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

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

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

  • Причинно -следственная связь : то же определение, что и в модели CC.
  • Допустимость : вызов каждой операции допустим в состоянии ее выполнения, т. е. каждый вызов не должен нарушать никаких отношений эффектов (упорядочения объектов) , установленных предыдущими вызовами.

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

Структура системы ОТ

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

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

Алгоритмы управления ОТ
(определить, какие операции преобразуются против других в соответствии с их отношениями параллелизма/контекста)
Свойства и условия ОТ
(распределить обязанности между алгоритмами и функциями)
Функции преобразования ОТ
(определить, как преобразовать пару примитивных операций в соответствии с типами операций, позициями и другими параметрами)

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

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

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

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

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

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

Данные ОТ и модели работы

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

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

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

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

ОТ-функции

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

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

  • Преобразование включения (или прямое преобразование): ИТ(Оа, Обь) или , который преобразует операцию Oa в другую операцию Ob таким образом, что влияние Ob эффективно учитывается. Это, например, случай двух вставок в разные узлы.
  • Преобразование исключения (или обратное преобразование): ET (Оа, Об) или , который преобразует операцию Oa в другую операцию Ob таким образом, что влияние Ob фактически исключается. Это, например, случай вставки и удаления в разных узлах. [22]

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

T(ins(),ins()) :- if () return ins() else if ( and ) return ins() else return ins()

Мы также можем написать следующую функцию преобразования исключения: [23]

(ins(),ins()) :- if () return ins() else if ( and ) return ins() else return ins()

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

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

Свойства трансформации

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

Выявлены различные свойства преобразования для обеспечения корректности ОТ-системы. Эти свойства могут поддерживаться либо алгоритмом управления преобразованием [4] [5] [13] [20] [28] [29] или с помощью функций преобразования. [30] Различные конструкции OT-систем имеют разное разделение обязанностей между этими компонентами. Характеристики этих свойств и предварительные условия их требования приведены ниже.

Свойства сходимости

[ редактировать ]
Иллюстрация свойства TP1
Иллюстрация свойства TP2

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

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

Обратные свойства

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

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

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

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

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

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

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

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

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

Алгоритмы управления/интеграции ОТ (системы) Требуемые типы функций преобразования Поддержка Do? на основе OT Поддержка отмены на основе OT? Свойства преобразования, поддерживаемые алгоритмом управления Свойства преобразования, поддерживаемые функциями преобразования Ограничения порядка преобразования и распространения Временная метка
дОПТ [2] (РОЩА) Т (ИТ) Да Нет Никто КП1/ТР1, КП2/ТР2 Причинно-следственный порядок Вектор состояния
выборочная отмена [12] (Дистредит) Транспонирование (IT и ET) Нет Выборочная отмена ЧТО CP1/TP1, CP2/TP2, РП, ИП1, ИП2, ИП3 Причинно-следственный порядок ??
усыновленный [3] [31] (ОБЪЕДИНЕННАЯ EMACS) LТрансформация (ИТ) Да Хронологическая отмена ИП2, ИП3 CP1/TP1, CP2/TP2, IP1 Причинно-следственный порядок Вектор состояния
Юпитер [5] xform (ИТ) Да Нет КП2/ТП2 CP1/TP1 Причинно-следственный порядок + Центральный сервер трансформации Скаляр
Гугл Вэйв ОТ [20] преобразование и композиция (ИТ) Да Нет КП2/ТП2 CP1/TP1 Причинно-следственный порядок + Центральный сервер преобразования + протокол остановки и ожидания распространения Скаляр
ПОЛУЧИЛ [4] (УМЕНЬШАТЬ) ИТ и ЕТ Да Нет КП1/ТР1, КП2/ТР2 Никто Причинный порядок + Прерывистый общий порядок Вектор состояния
ПЕРЕЙТИ К [6] (REDUCE, CoWord , CoPPT, CoMaya) ИТ и ЕТ Да Нет Никто КП1/ТР1, КП2/ТР2 Причинно-следственный порядок Вектор состояния
ЛюбоеОтменить [8] (REDUCE, CoWord , CoPPT, CoMaya) ИТ и ЕТ Нет Отменить любую операцию ИП2, ИП3, РП ИП1, CP1/TP1, CP2/TP2 Причинно-следственный порядок Вектор состояния
ОБЪЕМ [28] (ХОРОШИЙ) ЭТО Да Нет КП2/ТП2 CP1/TP1 Причинно-следственный порядок + Центральный сервер трансформации Скаляр
СОТ [29] (REDUCE, CoWord , CoPPT, CoMaya) ЭТО Да Отменить любую операцию КП2/ТП2, ИП2, ИП3 CP1/TP1 (нет ET, поэтому IP1 не требуется) Причинный порядок + Прерывистый общий порядок Вектор контекста
СТРЕЛЯТЬ [33] ЭТО Да Нет КП2/ТП2 CP1/TP1 Причинно-следственный порядок Скаляр
SOCT4 [13] Форвардная трансформация (ИТ) Да Нет КП2/ТП2 CP1/TP1 Причинный порядок + Непрерывный общий порядок Скаляр
СОКТ2 [32] Прямая трансформация (IT) и обратная трансформация (ET) Да Нет Никто CP1/TP1, CP2/TP2, РП Причинно-следственный порядок Вектор состояния
ТО2 [34] Форвардная трансформация (ИТ) Да Нет ?? КП1/ТР1, КП2/ТР2 ?? скаляр

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

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

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

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

Критика ОТ

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

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

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

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

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

См. также

[ редактировать ]
  1. ^ Сунь, Чэнчжэн. «ОТ FAQ» . Архивировано из оригинала 23 июня 2020 г.
  2. ^ Jump up to: а б с д и ж Эллис, Калифорния; Гиббс, SJ (1989). «Управление параллелизмом в системах групповой работы». Запись ACM SIGMOD . 18 (2): 399–407. CiteSeerX   10.1.1.465.2026 . дои : 10.1145/67544.66963 . S2CID   6488575 .
  3. ^ Jump up to: а б с д и Рессель, Маттиас и Ниче-Руланд, Дорис и Гунценхойзер, Рул (1996). Интегрирующий, ориентированный на трансформацию подход к управлению параллелизмом и отмене действий в групповых редакторах . CSCW '96: Материалы конференции ACM 1996 года по совместной работе с компьютерной поддержкой. стр. 288–297. дои : 10.1145/240080.240305 . {{cite conference}}: CS1 maint: несколько имен: список авторов ( ссылка )
  4. ^ Jump up to: а б с д и ж г Чэнчжэн Сунь; Сяохуа Цзя; Яньчунь Чжан; Юн Ян; Дэвид Чен (1998). «Достижение конвергенции, сохранения причинно-следственной связи и сохранения намерений в системах совместного редактирования в реальном времени». АКМ Транс. Компьютер.-Хм. Взаимодействуйте . 5 (1): 63–108. CiteSeerX   10.1.1.56.1251 . дои : 10.1145/274444.274447 . S2CID   14447070 .
  5. ^ Jump up to: а б с д и Николс, Д.А.; Кертис, П.; Диксон, М.; Лампинг, Дж. (1995). «Окно с высокой задержкой и низкой пропускной способностью в системе совместной работы Юпитера» . Материалы 8-го ежегодного симпозиума ACM по пользовательскому интерфейсу и программным технологиям : 111–120. Архивировано из оригинала 30 ноября 2015 г. Проверено 27 сентября 2009 г.
  6. ^ Jump up to: а б Сан, К.; Эллис, К. (1998). Оперативная трансформация в групповых редакторах реального времени: проблемы, алгоритмы и достижения . Материалы конференции ACM 1998 года по совместной работе, поддерживаемой компьютерами. ACM Press Нью-Йорк, Нью-Йорк, США. стр. 59–68.
  7. ^ «SIGCE — Международная специальная группа по совместному редактированию» . cooffice.ntu.edu.sg . Архивировано из оригинала 24 декабря 2012 г. Проверено 10 января 2020 г.
  8. ^ Jump up to: а б с д К. Сан (2002). «Отменить как параллельную обратную операцию в редакторах групп». АКМ Транс. Компьютер.-Хм. Взаимодействуйте . 9 (4): 309–361. дои : 10.1145/586081.586085 . S2CID   47453660 .
  9. ^ Ду Ли; Руй Ли (2004). Сохранение связи эффектов операций в редакторах групп . Материалы конференции ACM CSCW'04 по совместной работе с компьютерной поддержкой. ACM Press Нью-Йорк, Нью-Йорк, США. стр. 457–466.
  10. ^ Jump up to: а б Руй Ли; Ду Ли (2007). «Новая основа операционной трансформации для редакторов групп, работающих в режиме реального времени». Транзакции IEEE в параллельных и распределенных системах . 18 (3). Транзакции IEEE в параллельных и распределенных системах: 307–319. дои : 10.1109/TPDS.2007.35 . S2CID   18822760 .
  11. ^ Jump up to: а б с д Руй Ли; Ду Ли (2005). Управление параллелизмом на основе коммутативности в ПО групповой работы . Материалы первой конференции IEEE по совместным вычислениям: сети, приложения и совместная работа (CollaborateCom'05).
  12. ^ Jump up to: а б с Пракаш, Атул и Книстер, Майкл Дж. (1994). «Среда отмены действий в совместных системах». АКМ Транс. Компьютер.-Хм. Взаимодействуйте . 1 (4): 295–330. CiteSeerX   10.1.1.51.4793 . дои : 10.1145/198425.198427 . S2CID   10705127 .
  13. ^ Jump up to: а б с Видот, Н.; Карт, М.; Ферри, Дж.; Сулейман, М. (2000). Копирует конвергенцию в распределенной среде совместной работы в реальном времени (PDF) . Материалы конференции ACM 2000 года по совместной работе с компьютерной поддержкой. ACM Press Нью-Йорк, Нью-Йорк, США. стр. 171–180. Архивировано из оригинала (PDF) 12 октября 2004 г.
  14. ^ Д. Сунь и С. Ся, К. Сунь и Д. Чен (2004). Операционная трансформация для совместной обработки текстов . Учеб. конференции ACM. по компьютерной совместной работе. стр. 437–446.
  15. ^ Агустина, Ф. Лю, С. Ся, Х. Шен и К. Сунь (ноябрь 2008 г.). CoMaya: Включение расширенных возможностей совместной работы в инструменты {3D} цифрового медиа-дизайна . Учеб. конференции ACM. по компьютерной совместной работе. стр. 5–8.
  16. ^ Дэвис, Агидо Горацио и Сан, Чэнчжэн и Лу, Цзюньвэй (2002). Обобщающее оперативное преобразование к стандартному общему языку разметки . CSCW '02: Материалы конференции ACM 2002 г. по совместной работе с компьютерной поддержкой. Новый Орлеан, Луизиана, США. стр. 58–67. дои : 10.1145/587078.587088 . {{cite conference}}: CS1 maint: несколько имен: список авторов ( ссылка )
  17. ^ Клавдия-Лавиния Игнат; Мойра С. Норри (2003). Настраиваемый редактор для совместной работы, основанный на алгоритме TreeOPT . ECSCW'03: Материалы восьмой конференции Европейской конференции по совместной работе с компьютерной поддержкой. Академическое издательство Клувер. стр. 315–334. дои : 10.1007/978-94-010-0068-0_17 .
  18. ^ Клавдия-Лавиния Игнат; Мойра С. Норри (2008). «Многоуровневое редактирование иерархических документов». Совместная работа с компьютерной поддержкой (CSCW) . 17 (5–6): 423–468. дои : 10.1007/s10606-007-9071-2 . S2CID   42752275 .
  19. ^ Jump up to: а б с К.Сун, С.Ся, Д.Сун, Д.Чен, Х.Шен и В.Цай (2006). «Прозрачная адаптация однопользовательских приложений для многопользовательской совместной работы в режиме реального времени». АКМ Транс. Компьютер.-Хм. Взаимодействуйте . 13 (4): 531–582. дои : 10.1145/1188816.1188821 . S2CID   14184705 . {{cite journal}}: CS1 maint: несколько имен: список авторов ( ссылка )
  20. ^ Jump up to: а б с д «Операционная трансформация Google Wave» . Архивировано из оригинала 31 мая 2009 г. Проверено 29 мая 2009 г.
  21. ^ Кристофер Р. Палмер; Гордон В. Кормак (1998). Операции преобразования для распределенной общей электронной таблицы . CSCW '98: Материалы конференции ACM 1998 года по совместной работе с компьютерной поддержкой. АКМ Пресс. стр. 69–78. дои : 10.1145/289444.289474 .
  22. ^ Кагорский Антон. «Операционные трансформации как алгоритм автоматического разрешения конфликтов» . Medium.com . Проверено 21 декабря 2021 г.
  23. ^ Jump up to: а б «Функции преобразования надгробий для обеспечения согласованности в системах совместного редактирования» . Конференция IEEE по совместным вычислениям: сети, приложения и совместная работа . 07.11.2006.
  24. ^ К. Сан и Р. Сосич (1999). Дополнительная блокировка, интегрированная с оперативным преобразованием в распределенных редакторах групп в реальном времени . В Proc. 18-го симпозиума ACM по принципам распределенных вычислений. стр. 43–52.
  25. ^ Беголь, Джеймс и Россон, Мэри Бет и Шаффер, Клиффорд А. (1999). «Гибкая прозрачность совместной работы: поддержка независимости работников в тиражируемых системах совместного использования приложений». АКМ Транс. Компьютер.-Хм. Взаимодействуйте . 6 (2): 95–132. CiteSeerX   10.1.1.23.1185 . дои : 10.1145/319091.319096 . S2CID   17895848 . {{cite journal}}: CS1 maint: несколько имен: список авторов ( ссылка )
  26. ^ Ли, Ду и Ли, Руи (2002). Прозрачное совместное использование и взаимодействие разнородных однопользовательских приложений . CSCW '02: Материалы конференции ACM 2002 г. по совместной работе с компьютерной поддержкой. Новый Орлеан, США. стр. 246–255.
  27. ^ Ли, Ду и Лу, Цзяцзюнь (2006). Облегченный подход к прозрачному совместному использованию знакомых однопользовательских редакторов . CSCW '06: Материалы 20-й юбилейной конференции 2006 г. по совместной работе с компьютерной поддержкой. Банф, Альберта, Канада. стр. 139–148. дои : 10.1145/1180875.1180896 .
  28. ^ Jump up to: а б Шен, Хайфэн и Сунь, Чэнчжэн (2002). Гибкое уведомление для систем совместной работы . CSCW '02: Материалы конференции ACM 2002 г. по совместной работе с компьютерной поддержкой. стр. 77–86. дои : 10.1145/587078.587090 .
  29. ^ Jump up to: а б с д Д. Сан и К. Сан (2009). «Контекстное оперативное преобразование для распределенных систем совместного редактирования». Транзакции IEEE в параллельных и распределенных системах . 20 (10): 1454–1470. дои : 10.1109/TPDS.2008.240 . S2CID   18740053 .
  30. ^ Джеральд Остер; Паскаль Молли; Паскаль Урсо; Абдессамад Имин (2006). «Функции преобразования надгробий для обеспечения согласованности в системах совместного редактирования» (PDF) . Процессы. 2-й международный Конф. О совместных вычислениях: Networking, Appln. И совместная работа . Проверено 26 июля 2007 г.
  31. ^ Jump up to: а б М. Рессель и Р. Ганценхаузер (1999). Уменьшение проблем групповой отмены . Учеб. конференции ACM. о поддержке групповой работы. стр. 131–139.
  32. ^ Jump up to: а б Сулейман, М.; Карт, М.; Ферри, Дж. (1998). Параллельные операции в распределенной и мобильной среде совместной работы . Материалы четырнадцатой международной конференции по инженерии данных, февраль. стр. 23–27. дои : 10.1109/ICDE.1998.655755 .
  33. ^ Р. Ли, Д. Ли и К. Сан (2004). Алгоритм контроля согласованности на основе временных интервалов для интерактивных приложений групповой работы . ICPADS '04: Материалы параллельных и распределенных систем, Десятая международная конференция. п. 429. дои : 10.1109/ICPADS.2004.12 .
  34. ^ М. Карт, Жан Ферри (2007). Синхронизатор на основе оперативного преобразования для сред P2P (PDF) . Материалы 3-й Международной конференции по совместным вычислениям: сети, приложения и совместная работа. стр. 127–138 . Проверено 26 июля 2007 г.
  35. ^ Гу, Нин и Ян, Цзянмин и Чжан, Цивэй (2005). Обеспечение согласованности на основе метода метки\& повторной трассировки в системах групповой работы . GROUP '05: Материалы международной конференции ACM SIGGROUP 2005 г. по поддержке групповой работы. стр. 264–273. дои : 10.1145/1099203.1099250 . {{cite conference}}: CS1 maint: несколько имен: список авторов ( ссылка )
  36. ^ Имин, Абдессамад и Молли, Паскаль и Остер, Джеральд и Урсо, Паскаль (2005). Редакторы групп в режиме реального времени без оперативного преобразования . Отчет об исследовании INRIA RR-5580. п. 24. {{cite conference}}: CS1 maint: несколько имен: список авторов ( ссылка )
  37. ^ Стефан Вайс, Паскаль Урсо и Паскаль Молли (2010). «Logoot-Undo: распределенная система совместного редактирования в одноранговых сетях». Транзакции IEEE в параллельных и распределенных системах . 21 (8). Транзакции IEEE в параллельных и распределенных системах: 1162. doi : 10.1109/TPDS.2009.173 . S2CID   14172605 .
  38. ^ Виктор Грищенко (2010). Глубокий гипертекст со встроенным контролем версий, реализованным в регулярных выражениях (PDF) . Материалы 6-го Международного симпозиума по вики-сайтам и открытому сотрудничеству (WikiSym '10) . Архивировано из оригинала (PDF) 9 марта 2012 г. Проверено 30 июня 2010 г.
  39. ^ Ду Ли и Руй Ли (2010). «Система оперативного преобразования систем совместного редактирования на основе приемлемости». Совместная работа с компьютерной поддержкой (CSCW) . 19 (1). Совместная работа с компьютерной поддержкой: 1–43. дои : 10.1007/s10606-009-9103-1 . S2CID   35748875 .
  40. ^ «ПоделитьсяJS» . 06.11.2011. Архивировано из оригинала 11 мая 2012 г. Проверено 16 августа 2013 г.
  41. ^ «Да, это я! Чего бы это ни стоило, я больше не верю, что эта волна займет два года... | Hacker News» . news.ycombinator.com . Проверено 13 февраля 2019 г.
  42. ^ Нил Фрейзер (январь 2009 г.). «Дифференциальная синхронизация» .
[ редактировать ]

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

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: aba4ccfb86242eb8b7bc201addae8744__1719626340
URL1:https://arc.ask3.ru/arc/aa/ab/44/aba4ccfb86242eb8b7bc201addae8744.html
Заголовок, (Title) документа по адресу, URL1:
Operational transformation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)