Web 在線文檔多人協同編輯器實現原理 All In One
多人協同編輯
實現原理
Operational Transformation Algorithm / OT 算法
OT: Operational Transformation
/ 操作轉換
操作轉換( OT ) 是一種支持高級協作
軟件系統中一系列協作功能
的技術。OT最初是為了純文本文檔協作編輯中的一致性維護
和並發控制
而發明的。其功能得到擴展,其應用程序擴展到包括組撤消、鎖定、沖突解決、操作通知和壓縮、組感知、HTML/XML 和樹結構文檔編輯、協作辦公生產力工具、應用程序共享和協作計算機-輔助媒體設計工具。[1] 2009 年
,OT 被采用為Apache Wave
協作功能背后的核心技術和谷歌文檔
。
-
歷史
操作轉換由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。 -
系統架構
利用操作轉換的協作系統
通常使用復制文檔存儲
,其中每個客戶都有自己的文檔副本
;客戶端以無鎖
、非阻塞
的方式操作它們的本地副本
,然后將更改傳播
到其余客戶端;這確保了客戶端在其他高延遲環境
(如 Internet)中的高響應性
。當客戶端接收到從另一個客戶端傳播的更改時,它通常會在執行更改之前轉換
這些更改;轉換確保依賴於應用程序的一致性標准
(不變量) 由所有站點維護。這種操作模式導致系統特別適合在高延遲環境
(如網絡)中實現協作功能,如同步文檔編輯
。 -
基礎知識
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
https://drive.googleblog.com/2010/09/whats-different-about-new-google-docs.html
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
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, 禁止轉載 🈲️,侵權必究⚠️!