一些人认为,互联网给人类社会带来的最深刻的变化,就是它改变了人们合作的方式,大大降低了信息传播的成本。身处互联网行业,研究如何传播信息,是我们每天的功课。根据时间效应的不同,信息传播的方式可以分为同步性和异步性。下面就由小编为您带来协作文档原理是什么的相关介绍。
信息被生产的同时被消费。
话出我之口,入你之耳,过了此时此刻,想还原此情此景,麻烦得很,大多时候也不需要。同步场景下,信息的生产往往不需要深思熟虑,而是通过你来我往的讨论,澄清,逐步勾勒出话题的全貌。表达的时效性较之方式的丰富性更为重要。典型的场景如即时通讯,语音通话,视频会议等。简单明了,没有太多的格式。
信息的生产和消费异步发生。然而 2016 年 3 月,Google 上线的 Google Docs 颠覆了这个结论,这个改变世界的功能就是「多人实时编辑」,或者称作「协同编辑」。引入了协同编辑的在线文档,就像一块儿在线的白板,使得身处世界两端的人可以在上面共同迭代一个内容,通过你来我往的信息反馈,实现信息的同步传播。而编辑的结果又将沉淀下来,成为信息异步传播的载体。
兼具信息同步与异步传播的能力,协同文档的诞生,无疑给基于互联网的沟通协作带来了一场革命。
这场革命爆发于 2006 年,而它的起源,早在 17 年前。
1989 年,代表着「文档」的 Microsoft Office 第一次在 Macintosh 系统上与世人见面,而代表着「协同」的操作变换算法也第一次见诸论文。
协作文档原理
Microsoft Office 众所周知,而操作变换算法又是什么呢?
对协同编辑最简单的理解类似于群聊天,每个人在自己的电脑上修改文档,把操作群发给其他打开这篇文档的用户。当收到来自其他用户的操作时,重放这个操作。比如下面这个例子:
但美好的设想,难免遭遇现实的挑战。因为网络存在延迟,来自不同用户的操作有可能在各端有不同的执行顺序。相同的操作,不同的执行顺序,会产生不同的结果。比如:
数据一致性是协同编辑的最低要求。当然,我们可以强制操作按照到达服务器的时间来排序,但这种排序会破坏用户编辑当时的上下文,产生不符合用户预期的编辑效果。
操作变换算法就在这里被引入了。操作变换算法不是一个算法,而是对一类算法的统称。它们针对不同的文档数据模型,解决一个相同的问题:
基于同一个状态的两个操作,如何调整一个操作的参数,使得它可以在另一个操作之后执行,表达同样的用户意图。
上面的例子加上了操作变换,就可以解决数据一致性的问题,如下图所示:
当然,协同文档和操作变换算法的水还是很深的。本文只是对基本原理做个简单的介绍。想要了解更多,可以参考以下文献:
Operational Transformation Frequently Asked Questions and Answers的 G-Suite 协同引擎的协议白皮书
(https://svn.apache.org/repos/asf/incubator/wave/whitepapers/operational-transform/operational-transform.html)
Achieving convergence, causality-preservation, and intention-preservation in real-time cooperative editing systems
GOT 算法及一维数据操作变换算法论文
(https://dl.acm.org/citation.cfm?id=274447)
2006 年 3 月,Google Docs 上线,多人实时协同编辑的功能惊艳世界,让稳坐办公套件头把交椅的 Microsoft Office 也感到虎躯一震。Office 奋起直追,但同等功能的 Office 365 上线已是五年之后。
协作文档原理是什么?它能让兵强马壮的微软停滞不前五年吗?制作一个协作编辑器需要哪些核心技术?协作编辑技术对一般前端应用开发有何启示?只有了解到协作文档的原理之后我们才能够更加清晰的掌握协作文档的工作机制。以上就是小编为您带来的协作文档原理是什么的相关介绍,希望对您有所帮助。
[免责声明]
文章标题: 协作文档原理是什么?
文章内容为网站编辑整理发布,仅供学习与参考,不代表本网站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时沟通。发送邮件至36dianping@36kr.com,我们会在3个工作日内处理。