一月十四號,釘釘正式發(fā)布6.0版,其中推出的“標注在一起”功能可以實現(xiàn)多人如編輯文檔等實時編輯圖片,引起了很多開發(fā)者的關注。在釘釘自研的協(xié)作框架技術背后,多人實時協(xié)作應用程序的開發(fā)就像開發(fā)單人本地應用程序一樣簡單,而且協(xié)作框架也將對釘釘開發(fā)者開放。下面就有小編為您帶來多人協(xié)作編輯文檔的相關介紹。
在企業(yè)辦公場景中,“打工人”們的工作協(xié)作基本離不開 IM 軟件,而大家卻也常常被圖片消息確認難這樣一種困境所困擾,比如:當群組里有一個人發(fā)了一張技術架構圖請其他幾位同事做確認時,接收信息的每一個人可能都需要在圖片上進行標注,用畫筆圈出需要修改的地方,然后保存到手機再發(fā)送到群里,還可能要反復修改,整個過程十分不順暢。在這種需要多人協(xié)作的場景中,工作效率就大大降低了。
但現(xiàn)在,情況開始有了轉變。1 月 14 日,釘釘正式發(fā)布 6.0 版本,其戰(zhàn)略定位也從過去基于 IM 的協(xié)同辦公平臺,升級為企業(yè)級協(xié)同辦公平臺和企業(yè)級應用開發(fā)平臺,這是繼“云釘一體”戰(zhàn)略后,釘釘最重要的版本升級。
而此次釘釘眾多上新的能力中,包含了一個叫做“一起標注”的功能,它可以實現(xiàn)像編輯文檔一樣多人、實時編輯一張圖片。只要點擊圖片進行標注,所有接收到圖片信息的協(xié)作者就可以看到編輯過程及編輯者的名字標簽,很好地解決了我們開篇提到的如何在圖片消息的討論上實現(xiàn)更高效的問題。
可以再設想這樣一個場景:團隊歡迎新同學加入一起聚餐,合照發(fā)到群組中,大家可以一起在照片上涂鴉圈人,新同學將自己圈出來,照片上會自動顯示名字標簽。“大家看看新來的 UED 同學在哪里?”,通過這種多人實時互動,給工作帶來更多的趣味與溫度。
如 Google Docs、Trello、石墨文檔、騰訊文檔……各種各樣的協(xié)同辦公工具為什么會受到企業(yè)的歡迎?就是因為它們在一定場景中能夠解決團隊協(xié)作的需求,“多人”、“實時”、“協(xié)同”是團隊協(xié)作的關鍵點。
對于普通開發(fā)者來說,開發(fā)一個本地的單機版應用很容易,但要從 0 到 1 開發(fā)一套支持多人實時協(xié)作的應用則要面臨底層工程架構、算法相關的復雜問題,技術門檻較高。
在底層工程架構方面,需要關心平臺適配、網絡、存儲等問題,開發(fā)者可能需要做 Android、iOS、Windows、Mac、Web 版本、小程序端等多平臺的適配;而且還需要關注網絡問題的處理,如丟包、無網 / 弱網問題、離線狀態(tài)恢復問題、網絡容災等等,最終保證信息的實時推送;
另外,在數(shù)據(jù)存儲上也需要考慮保證在無網 / 弱網環(huán)境下應用的連續(xù)性。而在算法方面,如何解沖突?即不同的操作之間的合并、沖突解決等等也是開發(fā)者將要面臨的問題,因此要設計出滿足多人協(xié)同的數(shù)據(jù)結構需要龐大的技術投入。
釘釘面向 To B 的企業(yè)級市場,離不開創(chuàng)新產品與技術。因此,釘釘?shù)墓こ處焸冮_始思考一種方式,如何能夠用一套框架解決這個大難題,讓開發(fā)變得更容易。
數(shù)據(jù)通道上,協(xié)同框架底層的推送通道使用了釘釘?shù)臄?shù)據(jù)同步平臺。數(shù)據(jù)同步平臺作為釘釘?shù)幕A設施,為釘釘數(shù)百個業(yè)務提供可靠的服務端到客戶端的數(shù)據(jù)下發(fā)通道,提供了統(tǒng)一的海量、可靠、實時、全端覆蓋的數(shù)據(jù)同步服務。
數(shù)據(jù)同步平臺同時支持推送實時信令、即時消息、可延時數(shù)據(jù)等不同時效等級,通過通道隔離、下行數(shù)據(jù)優(yōu)先級智能調度、弱網感知優(yōu)化等多種手段,保障了各個接入業(yè)務都能使用到高性能、高可用的數(shù)據(jù)同步服務。在 2020 年疫情期間,數(shù)據(jù)同步平臺很好地支撐了釘釘?shù)囊曨l會議、IM、DING 等多個重量級產品,每日同步數(shù)據(jù)數(shù)千億,系統(tǒng)流量高峰時刻 TPS 超過千萬。
底層設計上,引擎將協(xié)同過程抽象為有限狀態(tài)機模型,它包括離線工作和跨多設備多用戶協(xié)同 的能力,同時能提高數(shù)據(jù)的安全性、隱私性、長期保存性和用戶控制權,保證在網絡狀況不佳的環(huán)境下,也能夠實現(xiàn)無差別協(xié)作的工作。
比如在弱網、離線情況下,也能保證能夠繼續(xù)進行圖片標注,在網絡恢復后操作同步。協(xié)同框架提供了多平臺的 SDK,包括主流移動端、桌面端、Web 端,也包括服務端 SDK。架構設計上基于對等原則,所有接入 SDK 的協(xié)同端,不管是客戶端、Web 端還是服務端,都是對等 Agent。
同時,多人實時協(xié)同問題的本質某種程度上是一個分布式領域的問題,釘釘協(xié)同框架結合了操作變換 OT(Operational Transformation)與無沖突復制數(shù)據(jù)類型 CRDT (Conflict-free Replicated Data Types) 技術,用于實現(xiàn)協(xié)同操作合并與沖突解決,并讓各個協(xié)同端狀態(tài)達到最終一致。
對于不同的協(xié)同場景,可以選擇其合適的協(xié)同算法與協(xié)作策略,但這些底層復雜的技術細節(jié),對于使用協(xié)同框架的上層業(yè)務都是透明的,開發(fā)者只需要操作協(xié)同數(shù)據(jù)結構與協(xié)同組件即可。
以本次釘釘 6.0 發(fā)布的“一起標注”功能為例,這個產品功能的實現(xiàn)是基于名為 CoPixel 的數(shù)據(jù)結構。CoPixel 本身作為數(shù)據(jù)層,與 UI 無關,用于承載筆畫圖形的數(shù)據(jù),而 UI 層則通過將 CoPixel 封裝為一個協(xié)同畫布組件。
用戶在協(xié)同畫布上每畫一筆,都會對 CoPixel 產生對應修改,進而自動協(xié)同到所有參與協(xié)作的用戶端,其他用戶端的 CoPixel 會回調 UI 層的畫布組件,從而新筆畫得到展現(xiàn)。當多名用戶同時操作,這些動作會合并并自動解決其中可能產生的沖突。
1 月 14 日的釘釘 6.0 發(fā)布會上,宣布了此次戰(zhàn)略升級帶來的 3 個重要變化:
1、推出釘釘宜搭等低代碼開發(fā)工具,讓不懂代碼的用戶,也能快速開發(fā)新應用;
2、推出角色工作臺,讓 CEO、HR、財務、老師等不同角色擁有自己的專屬工作臺;
3、推出全新協(xié)同辦公套件,讓用戶可以打破組織邊界,進行“以事為中心”的協(xié)同。
阿里云智能總裁張建鋒也曬出了釘釘?shù)谋姸喑煽儐危航刂?2020 年 9 月 30 日,有超過 1700 萬企業(yè)組織、4 億用戶選擇用釘釘開啟數(shù)字化;釘釘開放平臺入駐的開發(fā)者已超過 27 萬,開發(fā)應用數(shù) 70 萬個以上,開發(fā)者服務的企業(yè)組織數(shù)超過 640 萬家……
另外,釘子還深入開發(fā)了群聊、智能人事、客戶管理等核心產品技術,并共開發(fā)了超過1300個API,供開發(fā)者、合作伙伴和用戶使用。本論文對釘釘?shù)膮f(xié)同框架技術做了部分解讀,管中窺豹,可見這次釘釘戰(zhàn)略升級背后的技術也在向業(yè)界深度開放,期待后續(xù)的協(xié)同框架迭代和完善,我們也會繼續(xù)關注釘釘?shù)募夹g能力。 以上就是小編為您介紹的釘釘多人協(xié)作編輯文檔,希望對您有所幫助。
[免責聲明]
文章標題: 釘釘多人協(xié)作編輯文檔的發(fā)展路徑
文章內容為網站編輯整理發(fā)布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發(fā)送郵件至36dianping@36kr.com,我們會在3個工作日內處理。