您好,登錄后才能下訂單哦!
本文由葡萄城技術團隊原創并首發
轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
?
Excel是我們辦公中常用的工具 ,它幾乎能為我們處理大部分數據,友好的交互界面、豐富的公式函數和易于上手的圖表為我們在數據統計方面提供了不小的幫助,但經過一段時期運行,就會出現下面的情況:
?
?
?
這樣多分枝的混亂狀況就會難以保證文檔的安全性及權威性。
于是聰明的小伙伴想到了一個解決方案,共享出一份Excel文檔,根據人員的職級不同,設置僅可只讀和編輯的權限,同時根據為不同人制定不同規則,例如:張某每天十點編輯,王某每天十一點編輯的方式來解決沖突的問題。這種方式很聰明,從流程上解決了多副本的問題,但不能同時編輯的問題依然沒有被解決,如果一個部門的人足夠多,這樣分時的策略可能需要花一天時間才能完成一份Excel的編輯。
所以多人協作在線文檔的需求也變得越發變得強烈,因為在日常工作中,與團隊的其他人進行文檔協作是一種再常見不過的工作方式。由于工作分工、工作進展的不同,團隊內部的信息往往需要及時同步,然而伴隨著團隊經營規模的不斷擴大,在線協同、多人協作,以及軟件項目管理等問題將會接踵而至,成為制約企業高效發展的瓶頸。
而這些問題,通常表現為:
跨部門、地區溝通協作的不便
過度依賴文件、文件夾共享的形式,不能確保文檔的安全性
沒法紀錄和體現職工對文本文檔的意見和評價
文檔記錄發生變更時,無法及時通知到相關部門和員工
文檔無法在線協同編輯,缺失必要的流程管控
多人共同編輯一個文檔,無法留存修改記錄和歷史版本
?
針對上述問題,現在在市面上,已經有了很多這類多人協作的工具,例如:國外的Google Docs、Office365,及國內的騰訊文檔、石墨文檔、有道云協作等。
因為這篇文章我們的目的是想向大家從企業IT管理者的角度出發深入研究協同辦公系統的形式、基礎和難點等實現原理,所以成品軟件我們在這不做過多贅述。那我們正式開始吧。
多人協作的歷史十分悠久,起源于靜態的多人協作模式,即每個人先完成自己的工作,然后再進行匯總。
遞增式協作
郵件:你來我往
論壇:跟帖回復
獨占式協作
文檔傳遞
微軟VSS
合并式協作
SVN
Git
diff,patch,merge指令
?
常見的靜態多人協作方式
靜態協作的比喻
拼接畫
積木
靜態協作的特點
多版本
塊操作
有協作動作
靜態協作的缺點
版本碎片化
缺乏時效性
協作動作成本高
靜態多人協作的成本,會隨著加入人數和項目的復雜度呈幾何級數的增長。因此,對于企業來說,急需一種無協作動作、唯一版本、版本可控的無協作成本模式,即動態多人協作模式。
動態協作的比喻
一起畫黑板
動態協作的特點
唯一版本
原子操作
無協作動作
動態協作的優點
版本可控
實時
無協作成本
典型產品
Office Online
石墨
OnlyOffice
任何信息,無論其是什么展現形式,如果要做到多人實時編輯與展現,只需要實現以下三步而已:
操作化
可傳輸
可還原
舉例說明多人協作的實現方式
操作化,指任何信息都可以轉換為一組操作的集合。很容易理解,但它仍有不少值得思考的點:
分割與組合
粗一點?
細一點?
如何兼顧解釋性與擴展性?
如何保證:信息的所有變化都可以分解為操作的集合?反之,操作如何覆蓋出信息的所有變化?
分割的顆粒度如何決定?
絕對操作與相對操作
4K電視不是夢
為什么數字電視穩定性不如模擬電視
針孔打印機的完美世界
打印機時代的編輯噩夢
絕對操作
相對操作
絕對操作與相對操作比喻:時間與空間的互換
可傳輸,就是指操作有辦法通過網絡傳輸給其他終端。實現動態多人協作,需要考慮以下幾點:
傳輸內容
邏輯壓縮
協議壓縮
手動壓縮
清晰
冗余
原始文本
壓縮技術
網絡協議
TCP
UDP
Socket
HTTP
WebSocket
QoS(Quality of Service,服務質量)
快速失敗
自動回滾
自動重連
自動恢復
可還原,就是指接收到來自網絡的操作消息后,可以在本地完全一致地再次執行該操作。可還原包括了:
絕對操作的還原
控制體積
合理的提示
相對操作的還原
嚴格的順序性
從源頭保障順序性
順序性的補救
本地操作的還原
過濾收到的操作集合
從源頭細化操作顆粒
本地保存本地執行
無***的還原
定義***
排除***
千人千面
亂序的表現形式如下圖,小明在客戶端執行了一系列操作,傳遞到服務器時發生亂序,導致小花看到了截然不同的信息:
?
?
?
為了解決亂序問題,可以嘗試以下方法:
?
?
?
?
?
?
基于協議
優點
可靠,歷經考驗
簡單,無需開發
缺點
資源開銷高
必須整套使用
優點
自主可控,按需開發
資源開銷可控
缺點
需要自己投入開發
應用層邏輯控制使得網絡復雜度向外蔓延
復雜度帶來維護成本
基于回執
?
網絡不是絕對可靠的,為了實現相對可靠,需要付出一定的代價,企業需要考慮的是:如何衡量所付出的代價與產出成正比。
比亂序更高級的一種表現形式,存在多向、多維度等問題。
?
?
?
原則:任何一次不一致,都會導致后續的操作基于錯誤的信息進行,從而不斷擴大錯誤,造成無法收拾的結果。因此,不一致是不能被容忍的。
解決辦法:
嚴格一致性:獨占
最終一致性:檢查與修復
非技術手段:設計與提示
獨占就是同一時間同一范圍只能由一人操作。
范圍
整個表格,類似VSS
工作表
單元格范圍
排他性
獨占沖突時,必有一方被彈開
直到占有者解開,不然無法占用
占用前無法操作
原理和鎖基本一致
優點
可以確保嚴格一致性,不會產生多版本的錯誤累積
比起修復恢復這類彌補手段,一開始就不出錯的成本最低
邏輯清楚簡單,開發維護成本低
缺點
靜態協作的味道
獨占動作嚴重影響體驗
大幅降低協作效率
需對表格實現的 功能
鎖定工作表
鎖定單元格
基于唯一正確順序,察覺客戶端的錯誤,撤銷錯誤操作后重新執行正確的操作。
唯一正確
服務器到達順序
協作邊界分流
P2P+選舉算法
察覺錯誤
服務器回執id
服務器回執操作,MS
撤銷錯誤
撤銷到錯誤發生前的一步操作的結果
保存副本實現撤銷功能
利用操作版本快照
重新執行
操作隊列需保存
區分好無感知執行與顯式執行
如何實現Excel相關功能是需要開發人員需要花時間去研究的,另外為了滿足需求,適配多設備和平臺的兼容性也非常重要。
另外,多人協作表格的本質還具有如下本質和特點:
?Server – Clients 中心系統,類似數值敏感的小型網游
任何這類系統都是在體驗和正確性中尋求平衡
表格的數值敏感性高于網游,數據操作和存儲的挑戰更大
表格的計算復雜度更高,尤其涉及復雜公式嵌套與全量統計篩選
Web存在天花板,所以復雜的頁游并不多見,端游較多
?
最后,假如您想了解更多如何實現多人協作平臺相關的內容,歡迎參加2019年12月18日(周三) 14點由上海佳軟CTO帶來的一場線上直播:https://live.vhall.com/483759540,相信屆時我們都會受益良多的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。