想实现多人协作的“在线Excel”?真没那么简单
本文由葡萄城技術(shù)團(tuán)隊(duì)原創(chuàng)并首發(fā)
轉(zhuǎn)載請(qǐng)注明出處:葡萄城官網(wǎng),葡萄城為開發(fā)者提供專業(yè)的開發(fā)工具、解決方案和服務(wù),賦能開發(fā)者。
?
Excel是我們辦公中常用的工具 ,它幾乎能為我們處理大部分?jǐn)?shù)據(jù),友好的交互界面、豐富的公式函數(shù)和易于上手的圖表為我們?cè)跀?shù)據(jù)統(tǒng)計(jì)方面提供了不小的幫助,但經(jīng)過一段時(shí)期運(yùn)行,就會(huì)出現(xiàn)下面的情況:
?
?
?
這樣多分枝的混亂狀況就會(huì)難以保證文檔的安全性及權(quán)威性。
于是聰明的小伙伴想到了一個(gè)解決方案,共享出一份Excel文檔,根據(jù)人員的職級(jí)不同,設(shè)置僅可只讀和編輯的權(quán)限,同時(shí)根據(jù)為不同人制定不同規(guī)則,例如:張某每天十點(diǎn)編輯,王某每天十一點(diǎn)編輯的方式來解決沖突的問題。這種方式很聰明,從流程上解決了多副本的問題,但不能同時(shí)編輯的問題依然沒有被解決,如果一個(gè)部門的人足夠多,這樣分時(shí)的策略可能需要花一天時(shí)間才能完成一份Excel的編輯。
所以多人協(xié)作在線文檔的需求也變得越發(fā)變得強(qiáng)烈,因?yàn)樵谌粘9ぷ髦?#xff0c;與團(tuán)隊(duì)的其他人進(jìn)行文檔協(xié)作是一種再常見不過的工作方式。由于工作分工、工作進(jìn)展的不同,團(tuán)隊(duì)內(nèi)部的信息往往需要及時(shí)同步,然而伴隨著團(tuán)隊(duì)經(jīng)營規(guī)模的不斷擴(kuò)大,在線協(xié)同、多人協(xié)作,以及軟件項(xiàng)目管理等問題將會(huì)接踵而至,成為制約企業(yè)高效發(fā)展的瓶頸。
而這些問題,通常表現(xiàn)為:
?
針對(duì)上述問題,現(xiàn)在在市面上,已經(jīng)有了很多這類多人協(xié)作的工具,例如:國外的Google Docs、Office365,及國內(nèi)的騰訊文檔、石墨文檔、有道云協(xié)作等。
因?yàn)檫@篇文章我們的目的是想向大家從企業(yè)IT管理者的角度出發(fā)深入研究協(xié)同辦公系統(tǒng)的形式、基礎(chǔ)和難點(diǎn)等實(shí)現(xiàn)原理,所以成品軟件我們?cè)谶@不做過多贅述。那我們正式開始吧。
多人協(xié)作的形式:歷史與發(fā)展
多人協(xié)作的歷史十分悠久,起源于靜態(tài)的多人協(xié)作模式,即每個(gè)人先完成自己的工作,然后再進(jìn)行匯總。
多人協(xié)作的初期:靜態(tài)協(xié)作
- 遞增式協(xié)作
- 郵件:你來我往
- 論壇:跟帖回復(fù)
- 獨(dú)占式協(xié)作
- 文檔傳遞
- 微軟VSS
- 合并式協(xié)作
- SVN
- Git
- diff,patch,merge指令
?
常見的靜態(tài)多人協(xié)作方式
多人協(xié)作的發(fā)展期:從靜態(tài)到動(dòng)態(tài)
- 靜態(tài)協(xié)作的比喻
- 拼接畫
- 積木
- 靜態(tài)協(xié)作的特點(diǎn)
- 多版本
- 塊操作
- 有協(xié)作動(dòng)作
- 靜態(tài)協(xié)作的缺點(diǎn)
- 版本碎片化
- 缺乏時(shí)效性
- 協(xié)作動(dòng)作成本高
靜態(tài)多人協(xié)作的成本,會(huì)隨著加入人數(shù)和項(xiàng)目的復(fù)雜度呈幾何級(jí)數(shù)的增長。因此,對(duì)于企業(yè)來說,急需一種無協(xié)作動(dòng)作、唯一版本、版本可控的無協(xié)作成本模式,即動(dòng)態(tài)多人協(xié)作模式。
多人協(xié)作的蓬勃期:動(dòng)態(tài)
- 動(dòng)態(tài)協(xié)作的比喻
- 一起畫黑板
- 動(dòng)態(tài)協(xié)作的特點(diǎn)
- 唯一版本
- 原子操作
- 無協(xié)作動(dòng)作
- 動(dòng)態(tài)協(xié)作的優(yōu)點(diǎn)
- 版本可控
- 實(shí)時(shí)
- 無協(xié)作成本
- 典型產(chǎn)品
- Office Online
- 石墨
- OnlyOffice
多人協(xié)作的基礎(chǔ):原理與架構(gòu)
任何信息,無論其是什么展現(xiàn)形式,如果要做到多人實(shí)時(shí)編輯與展現(xiàn),只需要實(shí)現(xiàn)以下三步而已:
舉例說明多人協(xié)作的實(shí)現(xiàn)方式
操作化
操作化,指任何信息都可以轉(zhuǎn)換為一組操作的集合。很容易理解,但它仍有不少值得思考的點(diǎn):
- 分割與組合
- 如何保證:信息的所有變化都可以分解為操作的集合?反之,操作如何覆蓋出信息的所有變化?
- 分割的顆粒度如何決定?
- 粗一點(diǎn)?
- 細(xì)一點(diǎn)?
- 如何兼顧解釋性與擴(kuò)展性?
- 絕對(duì)操作與相對(duì)操作
- 絕對(duì)操作
- 針孔打印機(jī)的完美世界
- 打印機(jī)時(shí)代的編輯噩夢(mèng)
- 相對(duì)操作
- 4K電視不是夢(mèng)
- 為什么數(shù)字電視穩(wěn)定性不如模擬電視
- 絕對(duì)操作
- 絕對(duì)操作與相對(duì)操作比喻:時(shí)間與空間的互換
可傳輸
可傳輸,就是指操作有辦法通過網(wǎng)絡(luò)傳輸給其他終端。實(shí)現(xiàn)動(dòng)態(tài)多人協(xié)作,需要考慮以下幾點(diǎn):
- 傳輸內(nèi)容
- 原始文本
- 清晰
- 冗余
- 壓縮技術(shù)
- 邏輯壓縮
- 協(xié)議壓縮
- 手動(dòng)壓縮
- 原始文本
- 網(wǎng)絡(luò)協(xié)議
- Socket
- TCP
- UDP
- HTTP
- WebSocket
- Socket
- QoS(Quality of Service,服務(wù)質(zhì)量)
-
快速失敗
-
自動(dòng)回滾
-
自動(dòng)重連
- 自動(dòng)恢復(fù)
-
可還原
可還原,就是指接收到來自網(wǎng)絡(luò)的操作消息后,可以在本地完全一致地再次執(zhí)行該操作。可還原包括了:
- 控制體積
- 合理的提示
- 嚴(yán)格的順序性
- 從源頭保障順序性
- 順序性的補(bǔ)救
- 過濾收到的操作集合
- 從源頭細(xì)化操作顆粒
- 本地保存本地執(zhí)行
- 定義入侵
- 排除入侵
- 千人千面
多人協(xié)作的難點(diǎn):亂序與沖突
亂序
亂序的表現(xiàn)形式如下圖,小明在客戶端執(zhí)行了一系列操作,傳遞到服務(wù)器時(shí)發(fā)生亂序,導(dǎo)致小花看到了截然不同的信息:
?
?
?
為了解決亂序問題,可以嘗試以下方法:
1. 用性能換取順序正確——基于協(xié)議
?
?
?
2.?用性能換取順序正確——基于回執(zhí)
?
?
?
兩種方法的優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn)
- 可靠,歷經(jīng)考驗(yàn)
- 簡單,無需開發(fā)
- 缺點(diǎn)
- 資源開銷高
- 必須整套使用
- 優(yōu)點(diǎn)
- 自主可控,按需開發(fā)
- 資源開銷可控
- 缺點(diǎn)
- 需要自己投入開發(fā)
- 應(yīng)用層邏輯控制使得網(wǎng)絡(luò)復(fù)雜度向外蔓延
- 復(fù)雜度帶來維護(hù)成本
?
基于亂序處理方法的總結(jié)
網(wǎng)絡(luò)不是絕對(duì)可靠的,為了實(shí)現(xiàn)相對(duì)可靠,需要付出一定的代價(jià),企業(yè)需要考慮的是:如何衡量所付出的代價(jià)與產(chǎn)出成正比。
沖突
比亂序更高級(jí)的一種表現(xiàn)形式,存在多向、多維度等問題。
?
?
?
如何避免錯(cuò)誤的蔓延?
原則:任何一次不一致,都會(huì)導(dǎo)致后續(xù)的操作基于錯(cuò)誤的信息進(jìn)行,從而不斷擴(kuò)大錯(cuò)誤,造成無法收拾的結(jié)果。因此,不一致是不能被容忍的。
解決辦法:
嚴(yán)格的一致性
獨(dú)占就是同一時(shí)間同一范圍只能由一人操作。
最終一致性
基于唯一正確順序,察覺客戶端的錯(cuò)誤,撤銷錯(cuò)誤操作后重新執(zhí)行正確的操作。
?
針對(duì)多人協(xié)作難點(diǎn)的總結(jié)
如何實(shí)現(xiàn)Excel相關(guān)功能是需要開發(fā)人員需要花時(shí)間去研究的,另外為了滿足需求,適配多設(shè)備和平臺(tái)的兼容性也非常重要。
另外,多人協(xié)作表格的本質(zhì)還具有如下本質(zhì)和特點(diǎn):
- ?Server – Clients 中心系統(tǒng),類似數(shù)值敏感的小型網(wǎng)游
- 任何這類系統(tǒng)都是在體驗(yàn)和正確性中尋求平衡
- 表格的數(shù)值敏感性高于網(wǎng)游,數(shù)據(jù)操作和存儲(chǔ)的挑戰(zhàn)更大
- 表格的計(jì)算復(fù)雜度更高,尤其涉及復(fù)雜公式嵌套與全量統(tǒng)計(jì)篩選
- Web存在天花板,所以復(fù)雜的頁游并不多見,端游較多
?
最后,假如您想了解更多如何實(shí)現(xiàn)多人協(xié)作平臺(tái)相關(guān)的內(nèi)容,歡迎參加2019年12月18日(周三) 14點(diǎn)由上海佳軟CTO帶來的一場線上直播:https://live.vhall.com/483759540,相信屆時(shí)我們都會(huì)受益良多的。
總結(jié)
以上是生活随笔為你收集整理的想实现多人协作的“在线Excel”?真没那么简单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 武汉理工大学计算机学院导师联系方式,武汉
- 下一篇: DOI是什么