在线协作软件的三个核心引擎

总览

纵观市面上的所有协作软件,无论是Google Docs 还是 Notion,还是 Mira 或者Evernote,优秀的协作软件必然由三个核心引擎构建:渲染引擎,协同引擎以及数据引擎

如何理解三个核心引擎,我们从用户视角来看:

渲染引擎:

  • 对于在线文档,渲染引擎就是文字编辑器。

  • 对于在线表格,渲染引擎就是电子表格编辑器。

  • 对于在线幻灯片,渲染引擎画布编辑器。

  • 对于在线脑图,渲染引擎就是mind编辑器。

  • 对于在线BI,渲染引擎就是布局设计器以及图表设计器。

  • ....

协同引擎

协同引擎理解起来稍微复杂一点,协同引擎存在的目的,本质就是保持各个终端在展示同一个内容模型时,能够在单个操作消费到模型之后,模型保持一致,所以协同引擎需要处理操作涉及的各个阶段的情况:

阶段1 - 客户端发送操作,

  1. 操作等待同步给Server(其他协作者) pendingCommmands

  2. 操作同步给Server(其他协作者) sendingCommands

  3. 操作已同步给Server(其他协作者) sentCommmands

阶段2 - 客户端模型消费操作

  1. 操作作用于Model之后,客户端的Model应当与服务端的Model保持一致

如何保持一致,各个厂商之间各显本领,有JavaScript组合Nodejs,有Rust组合WebAssembly,有Java GWT组合JavaScript。

阶段1和阶段2在协同引擎是非常重要的,如何保持协作的即时性以及数据的一致性和健壮性,非常考验这部分的设计

数据引擎

不同的协作软件的数据引擎是不同,例如:

  • Word - openxml的设计

  • Etherpad - 采用字符串 Z:1>6b|5+6b$Welcome to Etherpad!

  • Google Docs Word - 采用一个commands集合的设计

  • Google Docs Spread - 设计比较想Excel,但是使用的protobuf

  • Notion - 很明显是结构化的属性数据,并且使用CRDT的冲突解决数据结构

好的数据引擎通常有这些特点:

  • 数据传输的稳定性

  • 数据的可维护性

  • 数据的存储性能

  • 数据引擎不等于视图模型

  • 天然支持数据冲突解决方案,扩展性看CRDT,性能看OT

  • 对于其他软件导入导出的扩展度(例如在线文档导出Word)

如果你是一个在线软件创作者或者商业产品创业者,你需要去自研这渲染引擎,协同引擎,数据引擎吗?我的答案是不需要,你完全在Starup阶段,找到对应领域的合适技术选型,选择做出你协作软件的MVP,当自研能够成为你的壁垒或者优势,再选择自研。

在线协作软件的三个核心引擎相关推荐

  1. 推荐一款好用的团队在线协作软件

    在日常工作中,熟练使用办公软件俨然成为一位职场人士必备的职业技能,工作中常用办公类的软件可以使日常工作精简化,节约工作的时间:也可以说,日常工作中用办公类的软件可以大大地提高工作的效率. 当完成一项工 ...

  2. android 评测软件,Android平台五款主流在线视频软件横向评测

    Android软件中的在线流媒体视频已经出了不少了,本篇评测就是针对目前主流的5款Android在线视频播放软件进行一个横向评测,让您全面了解其个特性. 参评游戏: 评测项目 多款Android视频播 ...

  3. processon.com - 在线团队协作软件(草巾冒小子)推荐 - 资源篇

    processon.com - 在线团队协作软件 今天学到一个在线团队协作软件:www.processon.com 免费在线作图,实时协作 ProcessOn 支持以下等等协同作业场景: 流程图. 思 ...

  4. 【快速远程桌面应用程序】上海道宁为您提供远程桌面软件——AnyDesk,轻松实现远程支持和远程维护以及在线协作、远程工作

    AnyDesk是一款 快速远程桌面应用程序 可以让您远程访问和管理设备 轻松的.安全的与任何人协作 上海道宁专注于软件工具经销 为您带来强大的 远程桌面软件--AnyDesk 您可以从任何地方轻松连接 ...

  5. 不容错过的在线协作设计软件合集

    随着互联网的日益发展,协同工作的需求也正在逐渐扩大.传统的本地软件对于协同工作的支持度基本为零,越来越难以满足现代人的工作需求. 于是,在线协同工作软件随着需求诞生,功能越发多样,使用感越发流畅,正在 ...

  6. BPMN流程图在线制作-支持flowable,activit,camunda三种工作流引擎

    项目背景 在后端开发领域,工作流算一块难点. 在实际业务当中.比如OA,CRM 等各种系统.都需要和工作流打交道. 市面上现在主要流程Activit,Flowable, Camunda 三款工作流引擎 ...

  7. 马斯克辞任CEO,产品经理如何用项目协作软件武装自己?

    自马斯克接管推特以来,已经发起了多轮裁员潮,仅第一波就裁掉了50%的员工.11月14日,马斯克开启第二波裁员.而IT之家 12 月 21 日消息,埃隆・马斯克在推特发文对网友的投票结果做出回应,称会尽 ...

  8. SCUT01在线协作白板技术解决方案

    在七牛云校园黑客马拉松中,来自华南理工大学的SCUT01团队,为我们带来了UI精美.体验优秀的白板作品,在大赛中获得二等奖的好成绩.以下是这款在线协作白板的技术解决方案. 背景 疫情背景下,线上课堂. ...

  9. 在线协作文档综合评测 :金山文档、腾讯文档、石墨文档

    在线协作文档综合评测 :Notion.FlowUs.Wolai.飞书.语雀.微软 Office.谷歌文档.金山文档.腾讯文档.石墨文档.Dropbox Paper.坚果云文档.百度网盘在线文档 如今, ...

最新文章

  1. 活动目录管理之五种常见错误操作
  2. ubuntu查看端口占用
  3. Instagram为何如此受欢迎?
  4. 153.复用的相关概念 154.信道共享技术有哪些?
  5. java怎么测试dao_java-Mockito使用模拟对象测试DAO
  6. 刷新你的数据中心冷却词汇
  7. pom文件报错_解决mac下tess4j文字识别报错问题
  8. 用python怎么样实现图像二值化_使用Python+OpenCV如何实现图像二值化
  9. sql server 常用语句
  10. 20180517 迭代器
  11. mysql 命令行执行存储过程_mysql 命令行执行存储过程
  12. Apache Commons Lang3 常用工具类库
  13. ATTCK实战系列一(内网渗透入门)
  14. 选项卡切换 内容也跟着变 微信小程序
  15. 对称加密算法基本介绍
  16. html播放韰 寸 频,asp.net 汉字转换拼音及首字母实现代码
  17. linux中如何分割字符串数组中,Linux教程——Shell中字符串与数组操作实例
  18. 模拟赛 东风谷早苗
  19. 如何在计算机添加打印机驱动程序,教你如何安装打印机驱动程序
  20. 推荐几款好用的去视频水印软件,快来看看吧

热门文章

  1. linux下中文游戏,Linux下的小游戏
  2. 微信公众号开发-Java版学习笔记
  3. 【企业架构设计实战】1 企业架构方法论
  4. 如何是iPad/iPhone程序满屏显示【也就是没有上面的电量条】
  5. 【Python】使用Python在win10下将PDF转化为图片
  6. Wish官方运营手册:开启移动跨境电商之路,Jason Lee力荐!
  7. 统计中国,美国,世界排名前50的关键词并进行比较
  8. CSS3 linear-gradient线性渐变实现虚线等简单实用图形
  9. allegro怎么生成网表
  10. AutoJs学习-实现几款极速版软件自动刷金币的思路参考-下