Web 在線文檔多人協同編輯器實現原理 All In One


Web 在線文檔多人協同編輯器實現原理 All In One

多人協同編輯實現原理

Operational Transformation Algorithm / OT 算法

OT: Operational Transformation / 操作轉換

操作轉換( OT ) 是一種支持高級協作軟件系統中一系列協作功能的技術。OT最初是為了純文本文檔協作編輯中的一致性維護並發控制而發明的。其功能得到擴展,其應用程序擴展到包括組撤消、鎖定、沖突解決、操作通知和壓縮、組感知、HTML/XML 和樹結構文檔編輯、協作辦公生產力工具、應用程序共享和協作計算機-輔助媒體設計工具。[1] 2009 年,OT 被采用為Apache Wave協作功能背后的核心技術和谷歌文檔

  1. 歷史
    操作轉換由C. Ellis和 S. Gibbs [2]於 1989 年在 GROVE(GRoup Outline Viewing Edit)系統中率先提出。幾年后,確定了一些正確性問題並提出了幾種方法[3] [4] [5] [ 6]是為解決這些問題而獨立提出的,隨后又由一群敬業的研究人員繼續努力擴展和改進 OT。1998 年,協同編輯特別興趣小組[7]成立,以促進 CE 和 OT 研究人員之間的交流與合作。從那時起,SIGCE 與主要的 CSCW(計算機支持的協同工作)一起舉辦年度 CE 研討會) 會議,例如 ACM、CSCW、GROUP 和 ECSCW。

  2. 系統架構
    利用操作轉換的協作系統通常使用復制文檔存儲,其中每個客戶都有自己的文檔副本;客戶端以無鎖非阻塞的方式操作它們的本地副本,然后將更改傳播到其余客戶端;這確保了客戶端在其他高延遲環境(如 Internet)中的高響應性。當客戶端接收到從另一個客戶端傳播的更改時,它通常會在執行更改之前轉換這些更改;轉換確保依賴於應用程序的一致性標准(不變量) 由所有站點維護。這種操作模式導致系統特別適合在高延遲環境(如網絡)中實現協作功能,如同步文檔編輯

  3. 基礎知識
    OT背后的基本思想
    OT 的基本思想可以通過使用一個簡單的文本編輯場景來說明,如下所示。給定一個文本文檔,其中包含在兩個協作站點上復制的字符串“abc”;和兩個並發操作:

O1 = Insert[0, "x"](在位置“0”處插入字符“x”)
O2 = Delete[2, "c"] (刪除位置“2”處的字符“c”)
分別由協作站點 1 和 2 的兩個用戶生成。假設這兩個操作按照O1和O2的順序執行(在站點1)。執行O1后,文檔變成“xabc”。要在O1之后執行O2,O2必須針對O1進行變換,成為:O2' = Delete[3, "c"],由於O1插入了一個字符“x”,其位置參數加一。對“xabc”執行O2'刪除正確的字符“c”,文檔變成“xab”。但是,如果 O2 在沒有轉換的情況下執行,它會錯誤地刪除字符“b”而不是“c”。
...

https://en.wikipedia.org/wiki/Operational_transformation

demos

Google Docs

image

https://drive.googleblog.com/2010/09/whats-different-about-new-google-docs.html

image

image

https://drive.googleblog.com/search/label/Google Drive Blog

https://drive.googleblog.com/2010/09/whats-different-about-new-google-docs_21.html

https://drive.googleblog.com/2014/12/docs-short-story-challenge.html

https://medium.com/coinmonks/operational-transformations-as-an-algorithm-for-automatic-conflict-resolution-3bf8920ea447

https://hackernoon.com/operational-transformation-the-real-time-collaborative-editing-algorithm-bf8756683f66

blogs

https://www.modb.pro/db/145420

https://www.dazhuanlan.com/rehsur/topics/1457296

http://objcer.com/2018/03/05/SharePen-Operational-Transformation/

https://www.zditect.com/article/10149861.html

協同編輯沖突處理算法之 OT 算法

https://aruseito.github.io/article/23c3b7d4/

Visualization of OT with a central server

https://operational-transformation.github.io/index.html

https://github.com/operational-transformation

https://github.com/Operational-Transformation/ot.js

(🐞 反爬蟲測試!打擊盜版⚠️)如果你看到這個信息, 說明這是一篇剽竊的文章,請訪問 https://www.cnblogs.com/xgqfrms/ 查看原創文章!

refs



©xgqfrms 2012-2021

www.cnblogs.com/xgqfrms 發布文章使用:只允許注冊用戶才可以訪問!

原創文章,版權所有©️xgqfrms, 禁止轉載 🈲️,侵權必究⚠️!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM