想实现多人协作的“在线Excel”?真没那么简单

发布时间:2020-07-07 23:54:05 作者:powertoolsteam
来源:网络 阅读:315

本文由葡萄城技术团队原创并首发

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

 

Excel是我们办公中常用的工具 ,它几乎能为我们处理大部分数据,友好的交互界面、丰富的公式函数和易于上手的图表为我们在数据统计方面提供了不小的帮助,但经过一段时期运行,就会出现下面的情况:

想实现多人协作的“在线Excel”?真没那么简单

 

 

 

这样多分枝的混乱状况就会难以保证文档的安全性及权威性。

于是聪明的小伙伴想到了一个解决方案,共享出一份Excel文档,根据人员的职级不同,设置仅可只读和编辑的权限,同时根据为不同人制定不同规则,例如:张某每天十点编辑,王某每天十一点编辑的方式来解决冲突的问题。这种方式很聪明,从流程上解决了多副本的问题,但不能同时编辑的问题依然没有被解决,如果一个部门的人足够多,这样分时的策略可能需要花一天时间才能完成一份Excel的编辑。

所以多人协作在线文档的需求也变得越发变得强烈,因为在日常工作中,与团队的其他人进行文档协作是一种再常见不过的工作方式。由于工作分工、工作进展的不同,团队内部的信息往往需要及时同步,然而伴随着团队经营规模的不断扩大,在线协同、多人协作,以及软件项目管理等问题将会接踵而至,成为制约企业高效发展的瓶颈。

而这些问题,通常表现为:

  1. 跨部门、地区沟通协作的不便

  2. 过度依赖文件、文件夹共享的形式,不能确保文档的安全性

  3. 没法纪录和体现职工对文本文档的意见和评价

  4. 文档记录发生变更时,无法及时通知到相关部门和员工

  5. 文档无法在线协同编辑,缺失必要的流程管控

  6. 多人共同编辑一个文档,无法留存修改记录和历史版本

 

针对上述问题,现在在市面上,已经有了很多这类多人协作的工具,例如:国外的Google Docs、Office365,及国内的腾讯文档、石墨文档、有道云协作等。

因为这篇文章我们的目的是想向大家从企业IT管理者的角度出发深入研究协同办公系统的形式、基础和难点等实现原理,所以成品软件我们在这不做过多赘述。那我们正式开始吧。

多人协作的形式:历史与发展

多人协作的历史十分悠久,起源于静态的多人协作模式,即每个人先完成自己的工作,然后再进行汇总。

多人协作的初期:静态协作

想实现多人协作的“在线Excel”?真没那么简单

 

常见的静态多人协作方式

多人协作的发展期:从静态到动态

静态多人协作的成本,会随着加入人数和项目的复杂度呈几何级数的增长。因此,对于企业来说,急需一种无协作动作、唯一版本、版本可控的无协作成本模式,即动态多人协作模式。

多人协作的蓬勃期:动态

多人协作的基础:原理与架构

任何信息,无论其是什么展现形式,如果要做到多人实时编辑与展现,只需要实现以下三步而已:

  1. 操作化

  2. 可传输

  3. 可还原

想实现多人协作的“在线Excel”?真没那么简单

举例说明多人协作的实现方式

操作化

操作化,指任何信息都可以转换为一组操作的集合。很容易理解,但它仍有不少值得思考的点:

可传输

可传输,就是指操作有办法通过网络传输给其他终端。实现动态多人协作,需要考虑以下几点:

可还原

可还原,就是指接收到来自网络的操作消息后,可以在本地完全一致地再次执行该操作。可还原包括了:

  1. 绝对操作的还原

相对操作的还原

本地操作的还原

无***的还原

多人协作的难点:乱序与冲突

乱序

乱序的表现形式如下图,小明在客户端执行了一系列操作,传递到服务器时发生乱序,导致小花看到了截然不同的信息:

想实现多人协作的“在线Excel”?真没那么简单

 

 

 

为了解决乱序问题,可以尝试以下方法:

1. 用性能换取顺序正确——基于协议

想实现多人协作的“在线Excel”?真没那么简单

 

 

 

2. 用性能换取顺序正确——基于回执

想实现多人协作的“在线Excel”?真没那么简单

 

 

 

两种方法的优缺点
  1. 基于协议

  1. 基于回执

 

基于乱序处理方法的总结

网络不是绝对可靠的,为了实现相对可靠,需要付出一定的代价,企业需要考虑的是:如何衡量所付出的代价与产出成正比。

冲突

比乱序更高级的一种表现形式,存在多向、多维度等问题。

想实现多人协作的“在线Excel”?真没那么简单

 

 

 

如何避免错误的蔓延?

原则:任何一次不一致,都会导致后续的操作基于错误的信息进行,从而不断扩大错误,造成无法收拾的结果。因此,不一致是不能被容忍的。

解决办法:

  1. 严格一致性:独占

  2. 最终一致性:检查与修复

  3. 非技术手段:设计与提示

严格的一致性

独占就是同一时间同一范围只能由一人操作。

  1. 范围

    1. 整个表格,类似VSS

    2. 工作表

    3. 单元格范围

  2. 排他性

    1. 独占冲突时,必有一方被弹开

    2. 直到占有者解开,不然无法占用

    3. 占用前无法操作

    4. 原理和锁基本一致

  3. 优点

    1. 可以确保严格一致性,不会产生多版本的错误累积

    2. 比起修复恢复这类弥补手段,一开始就不出错的成本最低

    3. 逻辑清楚简单,开发维护成本低

  4. 缺点

    1. 静态协作的味道

    2. 独占动作严重影响体验

    3. 大幅降低协作效率

  5. 需对表格实现的 功能

    1. 锁定工作表

    2. 锁定单元格

最终一致性

基于唯一正确顺序,察觉客户端的错误,撤销错误操作后重新执行正确的操作。

  1. 唯一正确

    1. 服务器到达顺序

    2. 协作边界分流

    3. P2P+选举算法

  2. 察觉错误

    1. 服务器回执id

    2. 服务器回执操作,MS

  3. 撤销错误

    1. 撤销到错误发生前的一步操作的结果

    2. 保存副本实现撤销功能

    3. 利用操作版本快照

  4. 重新执行

    1. 操作队列需保存

    2. 区分好无感知执行与显式执行

 
针对多人协作难点的总结

如何实现Excel相关功能是需要开发人员需要花时间去研究的,另外为了满足需求,适配多设备和平台的兼容性也非常重要。

另外,多人协作表格的本质还具有如下本质和特点:

 

最后,假如您想了解更多如何实现多人协作平台相关的内容,欢迎参加2019年12月18日(周三) 14点由上海佳软CTO带来的一场线上直播:https://live.vhall.com/483759540,相信届时我们都会受益良多的。


推荐阅读:
  1. spreadjs~~一个Excel在线编辑的工具
  2. 超简单的springboot+swagger2实现在线接口调试

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

在线excel

上一篇:Notification通知

下一篇:Spring Data JPA 简单查询

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》