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