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

张驰Terry 张驰Terry     2022-12-28     690

关键词:

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

总览

纵观市面上的所有协作软件,无论是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,当自研能够成为你的壁垒或者优势,再选择自研。

适合协作办公的在线word文档-超级文档

什么是适合协作办公的在线Word文档        文档在线化以及是各大产业都在推进的事项,为什么互联网公司效率这么高,主要一个原因是互联网公司将许多以往靠人办成的事变成了靠计算机、靠软件... 查看详情

团队协作三onlyoffice实现文件在线预览和编辑(代码片段)

文档在线预览,最好都安装到本机,成功的机率大对于大多数开源的网盘软件来说,文档(docx,doc,txt,pdf,xls等)不能在线预览,给网盘软件的使用带来了不变。插件下载地址https://www.onlyoffice.com/zh/download.aspx... 查看详情

speckle核心概念3d数据引擎

...kle数据是使用一种在软件开发中普遍采用的强大而复杂的协作方法来组织的。为了简单起见,我们使用相同的概念和术语,称为流、分支和提交。要使用Speckle,你只需要知道流是什么。分支和提交稍微高级一些,... 查看详情

大家都喜欢用啥思维导图工具呢?

图表秀:图表秀——免费在线图表制作工具,数据可视化工具数据观:数据观|所有人都会用的数据分析工具Echarts:EChartsProcessOn:ProcessOn-免费在线作图,实时协作地图慧:地图慧-制作地图数据地图物流分单商铺选址数据资源雁阵... 查看详情

在线word文档编辑都有哪些

...档腾讯文档是一款支持随时随地创建、编辑的多人协作式在线文档工具,拥有一键翻译、实时股票函数和浏览权限安全可控等功能,以及打通QQ、微信等多个平台编辑和分享的能力。3、企业网盘企业网盘是一个企事业单位私有的... 查看详情

协作软件分析

一、协作分析概况1、目的分析公司当前需要实现敏捷研发管理方式支持工具,核心功能类似于“看板”。借此能够直观查看任务进度及任务整体推进情况,实现研发项目更好更有效的管理。整体功能抽取主要有:任... 查看详情

学并发编程,透彻理解这三个核心是关键(代码片段)

...看并发,并发编程可以抽象成三个核心问题:分工、同步/协作、互斥如果你已经工作了,那么你一定听说过或者正在应用敏捷开发模式来交付日常的工作任务,我们就用你熟悉的流程来解释这三个核心问题 查看详情

远程办公协作,提升效率必备

...计,可以随时预警项目风险,成本估算等等。。Leangoo有在线个人版(免费没有任何限制)、在线企业版(SaaS模式)、私有部署版本。2、Trello  https://trello.comTrello让您能开展更多的协作,完成更多的工作。Trello看板、列表... 查看详情

4款超棒的协作交付设计软件

...臂之力。这篇文章将要分享给你4款帮你提高工作效率的在线设计软件,让你的工作如虎添翼。1.Figma如果你从事UI设计工作,你不 查看详情

效率神器——多人在线协作文档

...能承载文本。为什么要用协作文档?  面向未来的多人在线协作工具“超级文档&r 查看详情

TFS 上的在线协作

】TFS上的在线协作【英文标题】:OnlinecollaborationonTFS【发布时间】:2021-11-3000:46:01【问题描述】:是否可以与TFS在线协作?我的意思是,当我移动一个任务时,其他人可以实时看到它,而无需共享屏幕或更新页面。谢谢!【问题... 查看详情

创建在线协作绘图:构建块是啥?

】创建在线协作绘图:构建块是啥?【英文标题】:Creatinganonlinecollaborativedrawing:whatcouldthebuildingblocksbe?创建在线协作绘图:构建块是什么?【发布时间】:2011-08-0509:34:50【问题描述】:我想知道创建一个在线协作绘图环境。基本... 查看详情

activit工作流引擎核心数据表存储解剖

...单审批流程是 发起者-->部门主管--->部门经理共三个节点发起者:公司所有的用户部门主管:aaa(审批)部门经理:bbb(审批)java Activiti工作流引擎共有23张数据表用来存储审批  这里我只是使用了核心的几张表第一步:发布流... 查看详情

谷歌会议可以在线翻译吗

参考技术A可以在线翻译。google在线实时翻译引擎客户端软件,是基于google最新的在线实时翻译引擎api开发的外语在线翻译软件,完全、真实的同步google的实时翻译新特性和翻译结果,即输即译;可以进行各类语言的单词和全文... 查看详情

想开发一个安全软件,怎么搞?

...家介绍一下,开发一个像360、QQ电脑管家这样的安全软件,有哪些核心技术,或者说哪些核心组件是必不可少的?反病毒引擎首先,第一个必不可少的就是反病毒引擎。安全软件最早的核心也就是这个东西࿰... 查看详情

有哪些好用的多人协同办公软件可推荐?

...,这使得管理团队的集体知识变得更加容易。它最适合:在线制作知识库、产品手册、帮助中心、API文档、产品介绍、在线手册等,内部知识协同和外部宣传。它是一个文档协作工具,它还是一个成熟的知识库,使您能够与您的... 查看详情

scut01在线协作白板技术解决方案(代码片段)

...板作品,在大赛中获得二等奖的好成绩。以下是这款在线协作白板的技术解决方案。背景疫情背景下,线上课堂、线上会议等业务背景下都有着在线协作白板的需求。如何实现图形的绘制和实时同步,这是核心的两个... 查看详情

scut01在线协作白板技术解决方案(代码片段)

...板作品,在大赛中获得二等奖的好成绩。以下是这款在线协作白板的技术解决方案。背景疫情背景下,线上课堂、线上会议等业务背景下都有着在线协作白板的需求。如何实现图形的绘制和实时同步,这是核心的两个... 查看详情