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

总览

纵观市面上的所有协作软件,无论是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. R语言使用table函数计算单分类变量的频率表(frequency table)、使用prop.table函数将table函数计算获得的频率表转化为比率表、返回单分类变量每一个类别的比率、或者百分比
  2. VMWare克隆出多个操作系统
  3. 微信小程序中换行,空格(多个空格)写法
  4. Hibernate Session的Flush模式
  5. verilog基础篇RAM IP核的使用
  6. 隐马尔可夫模型 HMM 原理及实现
  7. C#一探究竟——枚举
  8. 图灵奖公布!计算机图形学先驱 Hanrahan 和 Catmull 获奖,祝贺两位好莱坞 3D 动画大片技术元老...
  9. 视频剪辑软件对比之:会声会影与剪映
  10. apache常用模块介绍
  11. JsonView 使用方法
  12. MTK手机刷机包打包步骤
  13. 先进核反应堆 ——新能源概论结课作业
  14. 使用用AI制作logo图标教程
  15. Oracle前期准备
  16. diff比较两个目录时,如何略过特定目录或文件
  17. Mac M1安装pycharm专业版,幼儿教学
  18. SHR和SAR移位指令
  19. 你来讲讲AQS是什么吧?都是怎么用的?
  20. 怎么查看建筑图纸?有什么技巧吗?

热门文章

  1. 唐僧师徒的成功之道:四个人,四种秘诀!
  2. 李开复谈学习:学会“无师自通”
  3. 数字ic设计——AMBA总线(1)AMBA总线介绍
  4. java计算机毕业设计智能拼车系统源码+数据库+系统+lw文档+mybatis+运行部署
  5. 河北优威环保对关于热水消毒设备AOT光催化一体机的应用原理讲述
  6. R与神经网络之Neuralnet包
  7. 删除之后在计算机操作中快捷键,删除的快捷键是什么?电脑删除的快捷键在哪?...
  8. OpenGL中绘制轨迹线
  9. 基于php的合同管理系统
  10. APS入门7-数字化车间智能排产调度实战