운용상의 전환

Operational transformation

OT(Operational Transformation)는 고급 협업 소프트웨어 시스템에서 다양한 협업 기능을 지원하기 위한 기술입니다.OT는 원래 일반 텍스트 문서를 공동으로 편집할 때 일관성 유지 및 동시성 제어를 위해 개발되었습니다.이 기능은 확장되었으며 애플리케이션에는 그룹 실행 취소, 잠금, 충돌 해결, 작업 알림 및 압축, 그룹 인식, HTML/XML 및 트리 구조 문서 편집, 협업 사무실 생산성 도구, 애플리케이션 공유 및 협업 컴퓨터 [1]지원 미디어 설계 도구가 포함됩니다.2009년 OT는 Apache Wave와 Google Docs의 협업 기능을 뒷받침하는 핵심 기술로 채택되었습니다.

역사

운영 혁신은 C에 의해 개척되었습니다. 1989년 GROVE(GROUP Outline Viewing Edit) 시스템의 Ellis와 S. Gibbs[2].몇 년 후, 일부 정확성 문제가 확인되었고 이러한 문제를 해결하기 위해 몇 가지 접근방식이[3][4][5][6] 독립적으로 제안되었으며, 이후 전담 연구자 커뮤니티에 의해 OT를 확장하고 개선하려는 10년의 지속적인 노력이 이어졌다.1998년에는 CE와 OT 연구원 간의 커뮤니케이션과 협업을 촉진하기 위해 협업 편집에[7] 관한 특별 이익 그룹이 설립되었습니다.이후 SIGCE는 ACM, CSCW, GROUP, ECSCW 등의 주요 CSCW(컴퓨터 지원 공동작업) 컨퍼런스와 함께 매년 CE 워크숍을 개최하고 있습니다.

시스템 아키텍처

운영 혁신을 활용하는 협업 시스템은 일반적으로 복제된 문서 스토리지를 사용합니다. 여기서 각 클라이언트는 자체 문서 복사본을 보유합니다. 클라이언트는 로컬 복사본에서 잠금 없이 비차단 방식으로 작업을 수행하고 변경 내용이 나머지 클라이언트에 전파됩니다. 이렇게 하면 클라이언트의 응답성이 높아집니다.인터넷과 같은 지연 시간이 긴 환경을 현명하게 구현합니다.클라이언트는 다른 클라이언트로부터 전파된 변경을 수신하면 일반적으로 변경을 실행하기 전에 변경을 변환합니다.변환을 통해 모든 사이트에서 애플리케이션에 의존하는 일관성 기준(불변수)이 유지됩니다.이 동작 모드는 웹과 같은 대기 시간이 긴 환경에서 동시 문서 편집과 같은 협업 기능을 구현하는 데 특히 적합한 시스템입니다.

기본

Basic idea behind OT

OT의 기본 개념은 다음과 같이 간단한 텍스트 편집 시나리오를 사용하여 설명할 수 있습니다.두 개의 공동 사이트에서 "abc" 문자열이 복제된 텍스트 문서와 두 개의 작업을 동시에 수행할 수 있습니다.

  1. O1 = 삽입 [0, "x" (문자 "x"를 위치 "0"에 삽입
  2. O2 = 삭제 [2, "c"] (위치 "2"에서 문자 "c"를 삭제하기 위해)

2명의 사용자가 공동 사이트 1과 2에서 각각 생성했습니다.두 가지 작업이 O1과 O2(사이트 1)의 순서로 실행된다고 가정합니다.O1 실행 후 문서는 xabc가 된다.O1 다음에 O2를 실행하려면 O1에 대해 O2를 변환하여 다음과 같이 해야 합니다.O2' = 삭제[3, "c"], O1에 의해 문자 "x"가 삽입되어 위치 매개변수가 1씩 증가합니다."xabc"에서 O2'를 실행하면 올바른 문자 "c"가 삭제되고 문서가 "xab"이 됩니다.그러나 변환 없이 O2를 실행하면 "c"가 아닌 "b" 문자가 잘못 삭제됩니다.OT의 기본 개념은 이전에 실행된 동시 작업의 효과에 따라 편집 작업의 매개변수를 변환(또는 조정)하여 변환된 작업이 올바른 효과를 달성하고 문서 일관성을 유지할 수 있도록 하는 것입니다.

일관성 모델

OT의 기능 중 하나는 공동 편집 시스템에서 일관성 유지를 지원하는 것입니다.연구 커뮤니티에서는 일반적으로 협업 편집 시스템과 OT 알고리즘에 대해 다양한 일관성 모델이 제안되고 있습니다.

CC 모델

Ellis와 Gibbs 1989년 논문 "그룹웨어 시스템의 통화 제어"[2]에서 협업 편집 시스템에 대해 두 가지 일관성 특성이 필요합니다.

  • 인과관계 보존: 인과관계 연산의 실행순서는 협업 과정에서의 자연스러운 인과관계 순서와 동일하도록 한다.두 수술 사이의 인과 관계는 공식적으로 Lamport의 "해프닝 전" 관계에 의해 정의된다.두 개의 연산이 인과관계에 의존하지 않으면 동시에 이루어집니다.두 개의 다른 문서 복사본에서 두 개의 동시 작업을 서로 다른 순서로 실행할 수 있습니다.
  • 컨버전스: 모든 사이트에서 공유 문서의 복제된 복사본이 중지 상태에서 동일한지 확인합니다(즉, 생성된 모든 작업이 모든 사이트에서 실행됨).

동시 조작은 다른 순서로 실행될 수 있고 편집 조작은 일반적으로 교환적이지 않기 때문에 다른 사이트의 문서 복사가 분산될 수 있습니다(일관되지 않을 수 있습니다.첫 번째 OT 알고리즘은 그룹 텍스트 편집기에서 수렴을 달성하기 위해 Ellis와 Gibbs의 논문에서[2] 제안되었다; 상태 벡터(또는 고전 분산 컴퓨팅의 벡터 클럭)는 우선순위 속성을 보존하기 위해 사용되었다.

CCI 모델

CCI 모델은 협업 편집 [4][8]시스템의 일관성 관리로 제안되었습니다.CCI 모델에서는 다음 세 가지 일관성 속성이 함께 그룹화됩니다.

  • 인과관계 보존 : CC 모델과 동일합니다.
  • 컨버전스: CC 모델과 동일합니다.
  • 의도 보존: 조작이 문서 상태에 미치는 영향이 조작의 의도와 동일한지 확인합니다.작업 O의 의도는 O가 생성된 문서 상태에 O를 적용하여 달성할 수 있는 실행 효과로 정의됩니다.

CCI 모델은 의도 보존이라는 새로운 기준으로 CC 모델을 확장합니다.수렴과 의도 보존의 본질적인 차이점은 전자는 항상 직렬화 프로토콜에 의해 달성될 수 있지만, 연산이 항상 원래 형태로 실행된다면 후자는 직렬화 프로토콜에 의해 달성되지 않을 수 있다는 것입니다.영구적이지 않은 의도적 보존 속성을 달성하는 것은 중요한 기술적 과제였다.OT는 공동 편집 시스템에서 수렴 및 의도 보존을 달성하는 데 특히 적합한 것으로 확인되었습니다.

CCI 모델은 문서 유형 또는 데이터 모델, 작업 유형 또는 지원 기술(OT, 다중 버전화, 직렬화, 실행 취소/다시 실행)과 독립적입니다.특정 데이터와 운영 모델 및 특정 애플리케이션을 위해 설계된 기법(예: OT)에 대한 정확성 검증을 위한 것이 아니었다.에서는 [4]의도 보존의 개념을 세 가지 수준에서 정의 및 개선하였다.첫째, 협업 편집 시스템에 대한 일반적인 일관성 요건으로 정의되었다. 둘째, 일반적인 OT 기능에 대한 운영 컨텍스트 기반 사전 및 사후 변환 조건으로 정의되었다.셋째, 공동 플레인 텍스트 편집기에서 문자열별 삽입 및 삭제라는 두 가지 원시 연산을 위한 OT 함수 설계를 안내하는 특정 연산 검증 기준으로 정의되었다.

CSM 모델

의도 보존 조건은 공식 증명을 위해 CCI 모델에서 공식적으로 명시되지 않았다.SDT[9] 및 LBT[10] 접근법은 입증할 수 있는 대체 조건을 공식화하려고 한다.이 두 가지 접근법에서 제안된 일관성 모델은 다음과 같은 공식 조건으로 구성됩니다.

  • 인과관계: CC 모델과 동일한 정의
  • 단일 작업 효과: 모든 실행 상태에서 작업을 실행하는 효과는 생성 상태에서와 동일한 효과를 달성합니다.
  • 멀티 오퍼레이션 효과: 임의의 상태에서 두 오퍼레이션이 모두 실행된 후 두 오퍼레이션의 효과 관계가 유지됩니다.

CA 모델

위의 CSM 모델에서는 시스템 내의 모든 객체의 합계 순서를 지정해야 합니다.실질적으로 사양은 삽입 조작에 의해 도입된 새로운 오브젝트로 축소된다.단, 전체 순서의 지정에는 삽입 연결을 끊는 정책(즉, 동일한 위치에 있는 두 개의 현재 작업에 의해 삽입된 새 개체)과 같은 애플리케이션별 정책이 포함됩니다.이것에 의해, 전체 오더가 애플리케이션 고유의 것이 된다.또한 알고리즘에서는 변환 함수 및 제어 절차에서 전체 순서가 유지되어야 하며, 이는 알고리즘의 시간/공간 복잡성을 증가시킨다.

또는 CA 모델허용성 [11]이론에 기초한다.CA 모델에는 다음 두 가지 측면이 있습니다.

  • 인과관계: CC 모델과 동일한 정의
  • 수용성:모든 작업의 호출은 실행 상태에서 허용됩니다. 즉, 모든 호출은 이전 호출에 의해 확립된 효과 관계(개체 순서 지정)를 위반해서는 안 됩니다.

이러한 2가지 조건은 컨버전스를 의미합니다.모든 공동 사이트는 동일한 순서로 동일한 개체 집합이 있는 상태로 수렴됩니다.또한, 그 순서는 창출되는 운영의 효과에 의해 효과적으로 결정된다.두 가지 조건은 오브젝트 순서에도 추가적인 제약을 가하기 때문에 실제로는 컨버전스보다 강합니다.CA 모델과 설계/프로브 접근법은 2005년 [11]논문에서 자세히 설명되어 있습니다.더 이상 일관성 모델에서 객체의 전체 순서를 지정하고 알고리즘에서 유지할 필요가 없으므로 알고리즘의 시간/공간 복잡성이 줄어듭니다.

OT 시스템 구조

OT는 여러 컴포넌트로 구성된 시스템입니다.OT[2][3][4][5][12][13] 시스템 설계의 확립된 전략 중 하나는 높은 수준의 변환 제어(또는 통합) 알고리즘을 낮은 수준의 변환 함수에서 분리하는 것입니다.

OT 제어 알고리즘
(동시성/동시 관계에 따라 다른 작업에 대해 어떤 작업을 변환하는지 확인)
OT 속성 및 조건
(알고리즘과 기능 간의 책임 강화)
OT 변환 함수
(동작 유형, 위치 및 기타 파라미터에 따라 한 쌍의 원시동작을 변환하는 방법을 설명합니다.)

트랜스포메이션 제어 알고리즘은 다음 사항을 결정하는 것과 관련이 있습니다.

  1. 인과적으로 준비된 새 연산에 대해 변환해야 하는 연산은 무엇입니까?
  2. 변환 순서

제어 알고리즘은 동작 유형, 위치 및 기타 파라미터에 따라 한 동작을 다른 동작에 대해 변환하는 방법을 결정하는 변환 함수 세트를 호출합니다.이 두 계층의 정확성 책임은 변환 특성 및 조건 집합에 의해 공식적으로 지정됩니다.제어 알고리즘, 기능 및 통신 토폴로지가 다른 OT 시스템은 서로 다른 변환 속성 세트를 유지해야 합니다.OT 시스템을 이 두 계층으로 분리함으로써 다른 데이터 및 운영 모델을 가진 다른 종류의 애플리케이션에 적용할 수 있는 범용 제어 알고리즘을 설계할 수 있습니다.

다른 대안 접근법은 [11]에서 제안되었다.OT 알고리즘이 다음 두 가지 형식화된 정확성 기준을 충족하면 OT 알고리즘이 정확합니다.

  1. 인과관계 보존
  2. 수용성 보존

이 두 가지 조건이 충족되는 한 데이터 복제본은 모든 사이트에서 모든 작업이 실행된 후 수렴됩니다(추가 제약 조건 포함).컨버전스 달성을 위해 전체 실행 순서를 강제할 필요는 없습니다.이들의 접근방식은 일반적으로 몇 가지 변환 기능을 위한 충분한 조건을 먼저 식별하고 증명한 다음, 그러한 충분한 조건을 보장하기 위한 제어 절차를 설계하는 것이다.이러한 방식으로 제어 절차와 변환 기능은 정확성, 즉 인과관계 및 허용 가능성 보존을 달성하기 위해 상승적으로 작동한다.이러한 접근법에서는 TP2와 같은 변환 특성을 충족할 필요가 없습니다. 왜냐하면 TP2는 가능한 모든 경우에 (포괄적인) 변환 기능이 작동하도록 요구하지 않기 때문입니다.

OT 데이터 및 운영 모델

각 OT 시스템에는 두 가지 기본 모델이 있습니다. 문서 내의 데이터 개체가 연산에 의해 처리되는 방식을 정의하는 데이터 모델과 OT 함수에 의해 직접 변환될 수 있는 연산 집합을 정의하는 운영 모델입니다.OT 시스템마다 데이터 및 작동 모델이 다를 수 있습니다.예를 들어 첫 번째 OT[2] 시스템의 데이터 모델은 단일 선형 주소 공간이며, 그 연산 모델은 문자별 삽입과 삭제의 두 가지 원시 연산으로 구성된다.기본 운영 모델은 협업 Word 문서 처리[14] 및 3D 모델 [15]편집을 지원하는 세 번째 기본 운영 업데이트를 포함하도록 확장되었습니다.기본 OT 데이터 모델은 광범위한 문서를 모델링할 수 있는 여러 선형 주소 [16][17][18]지정 도메인의 계층으로 확장되었습니다.애플리케이션별 데이터 모델을 OT 호환 데이터 [19][20]모델에 매핑하기 위해 데이터 적응 프로세스가 종종 필요합니다.

OT 시스템에서 애플리케이션레벨의 조작을 서포트하려면 , 다음의 2가지 방법이 있습니다.

  1. 범용 운영 모델 접근법: 삽입, 삭제, [19]업데이트의 세 가지 기본 작업을 위한 변환 기능을 고안하는 것입니다.이 방법에는 애플리케이션 작업을 이러한 원시 작업에 매핑하기 위한 운영 적응 프로세스가 필요합니다.이 방법에서는 OT 운영 모델이 일반적이기 때문에 변환 기능을 다른 애플리케이션에 재사용할 수 있습니다.
  2. 애플리케이션별 운영 모델 접근법: 애플리케이션 운영 [20][21]쌍별로 변환 기능을 고안하는 것입니다.m개의 다른 연산을 가진 애플리케이션의 경우, 이 애플리케이션을 지원하기 위해 m x m 변환 기능이 필요합니다.이 접근 방식에서는 변환 기능은 애플리케이션별로 다르므로 다른 애플리케이션에서 재사용할 수 없습니다.

OT 함수

다양한 OT 기능은 다양한 기능을 가진 OT 시스템을 위해 설계되어 다양한 애플리케이션에 사용됩니다.서로 다른 OT 시스템에서 사용되는 OT 기능은 다르게 명명될 수 있지만, 두 가지 범주로 분류될 수 있습니다.

  • 포함 변환(또는 전진 변환):IT(Oa, Ob) T p , p2 T(2는 Ob의 영향이 효과적으로 포함되도록 동작 Oa를 다른 동작 Ob에 대해 변환한다.예를 들어, 다른 노드에 2개의 삽입이 있는 경우입니다.
  • 제외 변환(또는 역방향 변환): Ob의 영향이 효과적으로 배제되도록 연산 Oa를 다른 연산 Ob에 대해 변환하는 ET(Oa, Ob) T - , 2}(이다.예를 들어 다른 노드에[22] 삽입 및 삭제가 있는 경우입니다.

예를 들어, string with operation ins(p, c, sid) 타입으로 p는 삽입 위치, c는 삽입 위치, sid는 조작을 생성한 사이트의 식별자입니다.다음과 같은 포함 변환 함수를 쓸 수 있습니다.

T( 세세한 사항(p1, c1, s나는 친절 1{\displaystyle p_{1},c_{1},sid_{1}}),ins(p2, c2, s나는 친절 2{\displaystyle p_{2},c_{2},sid_{2}})):-만약(p1<>p2{\displaystyle p_{1}<>p_{2}})반환 ins(p1, c1, s나는 친절 1{\displaystyle p_{1},c_{1},sid_{1}}) 다른 경우(p1)p.  2             return (   또는 return ins( +, c   {를 반환합니다.

사이트 sid의 위치 p에서 1개의 문자를 삭제하는 조작 del(p,sid)도 검토합시다.다음과 같은 제외 변환 함수를 쓸 수 있습니다.

만약(p1<>p2{\displaystyle p_{1}<>p_{2}})반환 ins(p1, c1, s나는 친절 1{\displaystyle p_{1},c_{1},sid_{1}}) 다른 T=:-1{\displaystyle T^{)}}( 세세한 사항(p1, c1, s나는 친절 1{\displaystyle p_{1},c_{1},sid_{1}}),del(p2, s나는 친절 2{\displaystyle p_{2},sid_{2}})−.만약(  1   2({}=2}}) d <  d ({}<return ins (1,  return ins (-, , })를 합니다

일부 OT 시스템은 IT 기능과 ET 기능을 모두 사용하고 일부 OT 시스템은 IT 기능만 사용합니다.OT 기능 설계의 복잡성은 다양한 요인에 의해 결정됩니다.

  • OT 시스템의 기능: OT 시스템이 실행(일관성 유지), 실행 취소, 잠금,[23] 인식, 애플리케이션 [19][24][25][26]공유 등을 지원하는지 여부
  • OT 시스템의 정확성 책임: 충족시키는 변환 속성(CP1/TP1, CP2/TP2, IP2, IP3, RP), ET 사용 여부
  • OT 시스템의 작동 모델: OT 작동 모델이 일반(예: 기본 삽입, 삭제, 업데이트)인지 또는 애플리케이션별(대상 애플리케이션의 모든 작동)인지 여부.
  • OT 시스템의 데이터 모델: 각 작업의 데이터가 문자 단위(개별 개체), 문자열 단위(개별 개체 순서), 계층적 또는 기타 구조인지 여부.

변환 속성

OT 시스템의 정확성을 보장하기 위한 다양한 변환 특성이 확인되었습니다.이러한 속성은 변환 제어[4][5][13][20][27][28] 알고리즘 또는 변환 [29]함수를 통해 유지할 수 있습니다.OT 시스템 설계에 따라 이러한 구성 요소 간에 서로 다른 책임 분담이 있습니다.이러한 속성의 사양과 그것들을 필요로 하는 전제 조건은 다음과 같습니다.

컨버전스 속성

TP1 특성 그림
TP2 특성 그림

컨버전스 달성과 관련된 두 가지 속성은 다음과 같습니다.

  • CP1/TP1: 같은 상태에서 정의된 1(\ p2 모든 동시 쌍에 대해 변환 함수 T는 p T ( 2, 1에만 CP1/TP1 속성을 충족합니다.1}\2}\},2}) p}\j})는 pi({하는 의 조작을 운영의 경우.CP1/TP1 전제조건: CP1/TP1이 필요한 것은 OT 시스템이 2개의 조작을 다른 순서로 실행할 수 있는 경우 뿐입니다.
  • CP2/TP2: 문서 상태에서 정의된 3 3가지 동시 에 대해 변환 함수 T는 T , 1 p1)의 경우에만 CP2/TP2 속성을 충족합니다 T2 CP2/TP2는 o p { 변환과 2{ 연속 p 2개의 동등한 동작 시퀀스에 관해 변환된2개의 동작 간에 동일성이 규정되어 . T1}, p T , 1 T에 의해 된 시퀀스에 대해 3 변환과 동일한 연산을 제공해야 합니다.CP2/TP2/TP2 조건: (\ 2 (\, 2개의 다른 문서 상태(또는 컨텍스트)로 IT변환됩니다.

역특성

다음 세 가지 속성은 원하는 그룹 실행 취소 효과를 달성하는 것과 관련이 있습니다.다음과 같은 것이 있습니다.

  • IP1: 문서 상태 S와 p p p o p o p p \ S \ op =S , 、 즉 시퀀스 p { } S {.문서 상태에 미치는 영향에 관한 것입니다.이 속성은 OT 시스템에서 올바른 실행 취소 효과를 얻기 위해 필요하지만 IT 기능과는 관련이 없습니다.
  • IP2: 속성 IP2는 pp {\circ (가) 다른 동작의 변환에 영향을 주지 않음을 나타냅니다. 함수는 T p , p pdisplay ) px ( { , \ { } )의 경우에만 IP2를 합니다. x { _ { } =_ {x {(를) ID 조작 I에 대해 한 결과와 동일합니다.IP2 전제 조건: IP2가 필요한 것은 OT 시스템이 실행 및 실행 취소 조작 op 조작을 수 있는 경우 뿐입니다.
  • IP3: 한 문서 상태(또는 컨텍스트)에서 정의된 두 개의 동시 1 {\ 2{o p 1 =( 2, 1 ) { = { over } { line } { } { line } { line } { } 1 ( p , 2 ) { style { { { _ {1} } = 함수는 1 1 style { line 에만 속성 IP3을 충족합니다.se ( { style {_ {1} } )는 1pdisplaydisplay of of의 역방향과 같습니다.IP3 전제조건: OT 시스템이 역방향 p 1¯¯display { style _ { } } p p p 1문서 상태에서 정의됨)의 에 대해 변환됩니다.

OT 제어(통합) 알고리즘

다양한 OT 제어 알고리즘은 다양한 기능을 가진 OT 시스템과 다양한 애플리케이션을 위해 설계되었습니다.OT 제어 알고리즘 설계의 복잡성은 여러 요인에 의해 결정됩니다.주요 차별화 요소는 알고리즘이 동시성 제어(do) 및/또는 그룹 [3][8][12][28][30]실행을 지원할 수 있는지 여부입니다.또한 OT 제어 알고리즘 설계에 따라 다음과 같은 다양한 트레이드오프가 발생합니다.

  • 제어 알고리즘과 변환 기능 간의 정확성 책임 할당 및
  • OT 시스템의 시공간 복잡성.

동시성 제어를 위한 대부분의 기존 OT 제어 알고리즘은 인과관계/환율 이론을 이론적 기초로 채택한다. 인과관계 연산은 인과관계 순서로 실행되어야 하며 동시 연산은 실행 전에 변환되어야 한다.그러나 동시성 조건만으로는 모든 OT 변환 [3][4][5][8][31]조건을 캡처할 수 없다는 것은 잘 알려져 있다.최근 연구에서 OT 제어 [28]알고리즘의 설계 및 검증을 지원하기 위한 OT 변환 조건을 공식적으로 표현하기 위해 사용될 수 있는 문서 상태의 개념을 명시적으로 나타내기 위해 연산 컨텍스트 이론이 제안되었다.

다음 표에는 일부 기존 OT 제어/통합 알고리즘의 개요가 나와 있습니다.

OT 제어/통합 알고리즘(시스템) 필요한 변환 함수 유형 OT 기반 작업 지원 OT 기반의 Undo를 지원합니까? 제어 알고리즘이 지원하는 변환 속성 변환 함수가 지원하는 변환 속성 변환 순서 및 전파 제약 타임스탬프
dOPT[2](그로브) T(IT) 네. 아니요. 없음. CP1/TP1, CP2/TP2 원인순서 상태 벡터
selective-undo[12](DistEdit) 전치(IT 및 ET) 아니요. 선택 취소 NA CP1/TP1, CP2/TP2, RP, IP1, IP2, IP3 원인순서 ??
adOPTED[3][30](공동 EMACS) LT변환(IT) 네. 실행 취소 시간 IP2, IP3 CP1/TP1, CP2/TP2, IP1 원인순서 상태 벡터
목성[5] xform (IT) 네. 아니요. CP2/TP2 CP1/TP1 원인 순서 + 중앙 변환 서버 스칼라
구글 웨이브[20] OT 변환 및 구성(IT) 네. 아니요. CP2/TP2 CP1/TP1 원인 순서 + 중앙 변환 서버 + stop'n'wait 전파 프로토콜 스칼라
GOT[4](축소) IT 및 ET 네. 아니요. CP1/TP1, CP2/TP2 없음. 원인 순서 + 불연속 총 순서 상태 벡터
GOTO[6](REDUCE, CoWord, CoPPt, CoMaya) IT 및 ET 네. 아니요. 없음. CP1/TP1, CP2/TP2 원인순서 상태 벡터
AnyUndo[8](REDUCE, CoWord, CoPPt, CoMaya) IT 및 ET 아니요. 모든 작업 실행 취소 IP2, IP3, RP IP1, CP1/TP1, CP2/TP2 원인순서 상태 벡터
SCOP[27](NICE) IT부문 네. 아니요. CP2/TP2 CP1/TP1 원인 순서 + 중앙 변환 서버 스칼라
COT(REDUCE, CoWord, CoPPt, CoMaya) IT부문 네. 모든 작업 실행 취소 CP2/TP2, IP2, IP3 CP1/TP1(ET 없음, 따라서 IP1은 필요 없음) 원인 순서 + 불연속 총 순서 콘텍스트 벡터
타이보트 IT부문 네. 아니요. CP2/TP2 CP1/TP1 원인순서 스칼라
SOCT4[13] 미래형 혁신(IT) 네. 아니요. CP2/TP2 CP1/TP1 원인순서+연속합계순서 스칼라
SOCT2[31] 순방향 변환(IT) 및 역방향 변환(ET) 네. 아니요. 없음. CP1/TP1, CP2/TP2, RP 원인순서 상태 벡터
MOT2[33] 미래형 혁신(IT) 네. 아니요. ?? CP1/TP1, CP2/TP2 ?? 스칼라

연속 토탈 오더는 결측 요소를 검출할 수 있는 엄밀한 토탈 오더입니다.즉, 1,2,3,4,...는 연속 토탈 오더, 1,2,3,5,...는 연속 토탈 오더가 아닙니다.

에서 제안하는 변환 기반 알고리즘은 위에서 설명한 대체 일관성 모델 "CSM" 및 "CA"에 기초하고 있습니다.이러한 접근방식은 표에 나와 있는 접근방식과 다릅니다.인과관계 보존을 위해 벡터 타임스탬프를 사용합니다.다른 정확성 조건은 "단일"/"다중" 작동 효과 관계 보존 또는 "허용성" 보존이다.이러한 조건은 제어 절차와 변환 기능에 의해 상승적으로 보장됩니다.TP1/TP2에 대해서는 작업 중에 논의할 필요가 없습니다.따라서 위의 표에 기재되어 있지 않습니다.

변환 알고리즘을 설계하기 위한 대체 방법을 찾지만 위의 분류법 및 특성화에는 적합하지 않은 다른 낙관적 일관성 제어 알고리즘이 있습니다.예를 들어 Mark와[34] Retrace가 있습니다.

OT의 적절성 문제 WOOT,[35]Logoot[36]과 인과 트리 같은transformationlesspost-OT 계획,(CT)의 도입되었다.[37]"Post-OT"계획 원자 단위 연산을 받았지만 그들이 독특한 기호 식별자, 벡터 타임 스탬프 및 및/또는 비석의 조합을 사용하여 작전으로 변형시키는 데 workaround 문서를 분해시킨다.

OT에 대한 비판

텍스트의 오프셋을 통해 연산을 정의하는 기존의 OT 접근법은 단순하고 자연스러운 것처럼 보이지만, 실제 분산 시스템은 심각한 문제를 제기합니다.즉, 운영이 한정된 속도로 전파되는 경우, 참가자들의 상태는 종종 다르기 때문에 상태와 운영의 결과적인 조합을 예측하고 이해하는 것은 매우 어렵다.Li와 Li가 말했듯이, "복잡한 사례 범위를 고려할 필요가 있기 때문에, 공식 증명은 매우 복잡하고 오류가 발생하기 쉽습니다. 심지어 두 가지 특성별 원시 요소(삽입 및 삭제)[38]만 처리하는 OT 알고리즘에서도 마찬가지입니다."

마찬가지로 Google Wave 엔지니어 출신으로 Share의 저자인 Joseph Gentle도 있습니다.JS 라이브러리는 "불행하게도 OT를 구현하는 것은 최악입니다.서로 다른 트레이드오프를 가진 알고리즘이 백만 개나 있는데 대부분 학술논문에 갇혀 있어요[…] Wave는 쓰는 데 2년이 걸렸는데 오늘 다시 쓰면 두 [39]번째 쓰는 데 거의 같은 시간이 걸릴 겁니다.그러나 나중에 그는 "주로 웹 프레임워크와 [40]웹 브라우저의 진보 때문에 웨이브를 구현하는 데 2년이 더 이상 걸리지 않을 것 같다"고 자신의 의견을 수정했다.

OT가 작동하려면 데이터에 대한 모든 변경 사항을 캡처해야 합니다. "상태의 스냅샷을 가져오는 것은 보통 사소한 일이지만 편집 내용을 캡처하는 것은 전혀 다른 문제입니다.[…] 최신 사용자 인터페이스가 풍부하기 때문에 특히 브라우저 기반 환경에서는 문제가 될 수 있습니다."OT 대신에 차분 [41]동기화가 있습니다.

OT의 또 다른 대안은 경합이 없는 복제 데이터 유형의 시퀀스 유형을 사용하는 것입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Sun, Chengzheng. "OT FAQ". Archived from the original on 2020-06-23.
  2. ^ a b c d e f Ellis, C.A.; Gibbs, S.J. (1989). "Concurrency control in groupware systems". ACM SIGMOD Record. 18 (2): 399–407. CiteSeerX 10.1.1.465.2026. doi:10.1145/67544.66963. S2CID 6488575.
  3. ^ a b c d e Ressel, Matthias and Nitsche-Ruhland, Doris and Gunzenhäuser, Rul (1996). An integrating, transformation-oriented approach to concurrency control and undo in group editors. CSCW '96: Proceedings of the 1996 ACM conference on Computer supported cooperative work. pp. 288–297. doi:10.1145/240080.240305.{{cite conference}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  4. ^ a b c d e f g Chengzheng Sun; Xiaohua Jia; Yanchun Zhang; Yun Yang; David Chen (1998). "Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems". ACM Trans. Comput.-Hum. Interact. 5 (1): 63–108. CiteSeerX 10.1.1.56.1251. doi:10.1145/274444.274447. S2CID 14447070.
  5. ^ a b c d e Nichols, D.A.; Curtis, P.; Dixon, M.; Lamping, J. (1995). "High-latency, low-bandwidth windowing in the Jupiter collaboration system". Proceedings of the 8th Annual ACM Symposium on User Interface and Software Technology: 111–120. Archived from the original on 2015-11-30. Retrieved 2009-09-27.
  6. ^ a b Sun, C.; Ellis, C. (1998). Operational transformation in real-time group editors: issues, algorithms, and achievements. Proceedings of the 1998 ACM conference on Computer supported cooperative work. ACM Press New York, NY, USA. pp. 59–68.
  7. ^ "SIGCE - An International Special Interest Group on Collaborative Editing". cooffice.ntu.edu.sg. Archived from the original on 2012-12-24. Retrieved 2020-01-10.
  8. ^ a b c d C. Sun (2002). "Undo as concurrent inverse in group editors". ACM Trans. Comput.-Hum. Interact. 9 (4): 309–361. doi:10.1145/586081.586085. S2CID 47453660.
  9. ^ Du Li; Rui Li (2004). Preserving Operation Effects Relation in Group Editors. Proceedings of the ACM CSCW'04 Conference on Computer-Supported Cooperative Work. ACM Press New York, NY, USA. pp. 457–466.
  10. ^ a b Rui Li; Du Li (2007). "A New Operational Transformation Framework for Real-Time Group Editors". IEEE Transactions on Parallel and Distributed Systems. IEEE Transactions on Parallel and Distributed Systems. 18 (3): 307–319. doi:10.1109/TPDS.2007.35. S2CID 18822760.
  11. ^ a b c d Rui Li; Du Li (2005). Commutativity-Based Concurrency Control in Groupware. Proceedings of the First IEEE Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom'05).
  12. ^ a b c Prakash, Atul & Knister, Michael J. (1994). "A framework for undoing actions in collaborative systems". ACM Trans. Comput.-Hum. Interact. 1 (4): 295–330. CiteSeerX 10.1.1.51.4793. doi:10.1145/198425.198427. S2CID 10705127.
  13. ^ a b c Vidot, N.; Cart, M.; Ferrie, J.; Suleiman, M. (2000). Copies convergence in a distributed real-time collaborative environment (PDF). Proceedings of the 2000 ACM conference on Computer supported cooperative work. ACM Press New York, NY, USA. pp. 171–180. Archived from the original (PDF) on 2004-10-12.
  14. ^ D. Sun and S. Xia and C. Sun and D. Chen (2004). Operational transformation for collaborative word processing. Proc. of the ACM Conf. on Computer-Supported Cooperative Work. pp. 437–446.
  15. ^ Agustina and F. Liu and S. Xia and H. Shen and C. Sun (November 2008). CoMaya: Incorporating advanced collaboration capabilities into {3D} digital media design tools. Proc. of ACM Conf. on Computer-Supported Cooperative Work. pp. 5–8.
  16. ^ Davis, Aguido Horatio and Sun, Chengzheng and Lu, Junwei (2002). Generalizing operational transformation to the standard general markup language. CSCW '02: Proceedings of the 2002 ACM conference on Computer supported cooperative work. New Orleans, Louisiana, USA. pp. 58–67. doi:10.1145/587078.587088.{{cite conference}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  17. ^ Claudia-Lavinia Ignat; Moira C. Norrie (2003). Customizable collaborative editor relying on treeOPT algorithm. ECSCW'03: Proceedings of the eighth conference on European Conference on Computer Supported Cooperative Work. Kluwer Academic Publishers. pp. 315–334. doi:10.1007/978-94-010-0068-0_17.
  18. ^ Claudia-Lavinia Ignat; Moira C. Norrie (2008). "Multi-level Editing of Hierarchical Documents". Computer Supported Cooperative Work (CSCW). 17 (5–6): 423–468. doi:10.1007/s10606-007-9071-2. S2CID 42752275.
  19. ^ a b c C.Sun, S.Xia, D.Sun, D.Chen, H.Shen, and W.Cai (2006). "Transparent adaptation of single-user applications for multi-user real-time collaboration". ACM Trans. Comput.-Hum. Interact. 13 (4): 531–582. doi:10.1145/1188816.1188821. S2CID 14184705.{{cite journal}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  20. ^ a b c d "Google Wave Operational Transform". Archived from the original on 2009-05-31. Retrieved 2009-05-29.
  21. ^ Christopher R. Palmer; Gordon V. Cormack (1998). Operation transforms for a distributed shared spreadsheet. CSCW '98: Proceedings of the 1998 ACM conference on Computer supported cooperative work. ACM Press. pp. 69–78. doi:10.1145/289444.289474.
  22. ^ Kagorskii, Anton. "Operational Transformations as an algorithm for automatic conflict resolution". medium.com. Retrieved 21 December 2021.
  23. ^ C. Sun & R. Sosic (1999). Optional Locking Integrated with Operational Transformation in Distributed Real-Time Group Editors. In Proc. of the 18th ACM Symposium on Principles of Distributed Computing. pp. 43–52.
  24. ^ Begole, James and Rosson, Mary Beth and Shaffer, Clifford A. (1999). "Flexible collaboration transparency: supporting worker independence in replicated application-sharing systems". ACM Trans. Comput.-Hum. Interact. 6 (2): 95–132. CiteSeerX 10.1.1.23.1185. doi:10.1145/319091.319096. S2CID 17895848.{{cite journal}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  25. ^ Li, Du & Li, Rui (2002). Transparent sharing and interoperation of heterogeneous single-user applications. CSCW '02: Proceedings of the 2002 ACM conference on Computer supported cooperative work. New Orleans, USA. pp. 246–255.
  26. ^ Li, Du & Lu, Jiajun (2006). A lightweight approach to transparent sharing of familiar single-user editors. CSCW '06: Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work. Banff, Alberta, Canada. pp. 139–148. doi:10.1145/1180875.1180896.
  27. ^ a b Shen, Haifeng & Sun, Chengzheng (2002). Flexible notification for collaborative systems. CSCW '02: Proceedings of the 2002 ACM conference on Computer supported cooperative work. pp. 77–86. doi:10.1145/587078.587090.
  28. ^ a b c d D. Sun & C. Sun (2009). "Context-based Operational Transformation for Distributed Collaborative Editing Systems". IEEE Transactions on Parallel and Distributed Systems. 20 (10): 1454–1470. doi:10.1109/TPDS.2008.240. S2CID 18740053.
  29. ^ Gerald Oster; Pascal Molli; Pascal Urso; Abdessamad Imine (2006). "Tombstone Transformation Functions for Ensuring Consistency in Collaborative Editing Systems" (PDF). Procs. 2nd Intl. Conf. On Collaborative Computing: Networking, Appln. And Worksharing. Retrieved 2007-07-26.
  30. ^ a b M. Ressel & R. Gunzenhauser (1999). Reducing the Problems of Group Undo. Proc. of the ACM Conf. on Supporting Group Work. pp. 131–139.
  31. ^ a b Suleiman, M.; Cart, M.; Ferrié, J. (1998). Concurrent Operations in a Distributed and Mobile Collaborative Environment. Proceedings of the Fourteenth International Conference on Data Engineering, February. pp. 23–27. doi:10.1109/ICDE.1998.655755.
  32. ^ R. Li, D. Li & C. Sun (2004). A Time Interval Based Consistency Control Algorithm for Interactive Groupware Applications. ICPADS '04: Proceedings of the Parallel and Distributed Systems, Tenth International Conference. p. 429. doi:10.1109/ICPADS.2004.12.
  33. ^ M. Cart, Jean Ferrié (2007). Synchronizer Based on Operational Transformation for P2P Environments (PDF). Proceedings of the 3rd International Conference on Collaborative Computing: Networking, Applications and Worksharing. pp. 127–138. Retrieved 2007-07-26.
  34. ^ Gu, Ning and Yang, Jiangming and Zhang, Qiwei (2005). Consistency maintenance based on the mark \& retrace technique in groupware systems. GROUP '05: Proceedings of the 2005 international ACM SIGGROUP conference on Supporting group work. pp. 264–273. doi:10.1145/1099203.1099250.{{cite conference}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  35. ^ Imine, Abdessamad and Molli, Pascal and Oster, Gerald and Urso, Pascal (2005). Real time group editors without Operational transformation. INRIA Research Report RR-5580. p. 24.{{cite conference}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  36. ^ Stephane Weiss and Pascal Urso and Pascal Molli (2010). "Logoot-Undo: Distributed Collaborative Editing System on P2P Networks". IEEE Transactions on Parallel and Distributed Systems. IEEE Transactions on Parallel and Distributed Systems. 21 (8): 1162. doi:10.1109/TPDS.2009.173. S2CID 14172605.
  37. ^ Victor Grishchenko (2010). Deep Hypertext with embedded revision control implemented in regular expressions (PDF). The Proceedings of the 6th International Symposium on Wikis and Open Collaboration (WikiSym '10). Archived from the original (PDF) on 2012-03-09. Retrieved 2010-06-30.
  38. ^ Du Li & Rui Li (2010). "An Admissibility-Based Operational Transformation Framework for Collaborative Editing Systems". Computer Supported Cooperative Work (CSCW). Computer Supported Cooperative Work. 19 (1): 1–43. doi:10.1007/s10606-009-9103-1. S2CID 35748875.
  39. ^ "ShareJS". 2011-11-06. Archived from the original on 2012-05-11. Retrieved 2013-08-16.
  40. ^ "Yes thats me! For what its worth, I no longer believe that wave would take 2 yea... Hacker News". news.ycombinator.com. Retrieved 2019-02-13.
  41. ^ Neil Fraser (January 2009). "Differential Synchronization".

외부 링크

관련 온라인 토크