用于电子对象的协作编辑的系统和方法技术方案

技术编号:36332746 阅读:15 留言:0更新日期:2023-01-14 17:43
本文描述了一种用于编辑电子对象的计算机实现的方法。该方法包括维护电子对象的本地版本和包括一个或多个本地增量的本地缓冲器。从服务器系统接收多个服务器增量,每个服务器增量与对电子对象进行的远程编辑相关。组成多个服务器增量,以生成单个经组成的服务器增量,针对一个或多个本地增量来变换该单个经组成的服务器增量,以生成经变换的服务器增量。然后,通过将经变换的服务器增量应用于电子文档的本地版本来编辑电子文档的本地版本。档的本地版本来编辑电子文档的本地版本。档的本地版本来编辑电子文档的本地版本。

【技术实现步骤摘要】
【国外来华专利技术】用于电子对象的协作编辑的系统和方法


[0001]本公开涉及用于电子对象的协作编辑的系统和方法。
[0002]专利技术背景
[0003]实时协作编辑平台允许多个用户从不同的计算系统同时对同一电子对象进行操作。例如,GoogleDocs允许多个用户(通过他们不同的用户系统)同时查看和编辑文档类型的对象。
[0004]一些实时协作编辑平台由操作变换(OT)同步协议支持,操作变换同步协议(一般而言)用于变换不同用户对对象进行的不同编辑,以保持对象一致性。
[0005]执行操作变换所涉及的处理可能很重要,尤其是在对象的并发用户数量和/或这些用户进行的编辑数量很大的情况下。
[0006]本说明书中对背景信息的引用并非承认或暗示此类信息为现有技术或本领域普通技术人员的公知常识。

技术实现思路

[0007]本文描述了一种用于编辑电子对象的计算机实现的方法,电子对象由多个客户端应用程序实时编辑,该方法由第一客户端应用程序执行,并且包括:维护电子对象的本地版本;维护本地缓冲器,本地缓冲器包括一个或多个本地增量,每个本地增量描述由第一客户端应用程序的用户对电子文档的本地版本进行的一个或多个编辑;从服务器系统接收多个服务器增量,每个服务器增量与对电子对象进行的远程编辑相关;对多个服务器增量进行组成,以生成单个经组成的服务器增量;针对本地缓冲器中的一个或多个本地增量来变换单个经组成的服务器增量,以生成经变换的服务器增量;以及通过将经变换的服务器增量应用于电子文档的本地版本来编辑电子文档的本地版本。/>附图说明
[0008]在附图中:
[0009]图1示出了可进行实时协作编辑的示例网络环境。
[0010]图2为可被配置为执行本公开的各种特征的计算机处理系统的框图。
[0011]图3为示例消息传送图。
[0012]图4为示例消息传送图。
[0013]图5描绘了客户端同步模块的操作。
[0014]图6提供了示例状态空间图。
[0015]图7为示例状态空间图。
[0016]图8描绘了服务器同步模块的操作。
[0017]图9提供了示例状态空间图。
[0018]图10提供了示例状态空间图。
[0019]图11为示例状态空间图。
[0020]图12为示例状态空间图。
[0021]虽然要求保护的本专利技术可进行各种修改和替代形式,但具体实施例在附图中以示例方式显示,并进行详细描述。然而,应该理解,附图和详细描述并不旨在将本专利技术限于所公开的特定形式。其目的是覆盖落入由所附权利要求限定的本专利技术的范围内的所有修改、等同物和替代物。
具体实施方式
[0022]在以下说明中,阐述了许多具体细节,以提供对所要求保护的专利技术的全面理解。然而,显而易见的是,所要求保护的专利技术可以在没有这些具体细节的情况下实施。在某些情况下,为了避免不必要的模糊,以框图形式示出公知的结构和装置。
[0023]概述
[0024]总的来说,本公开提供了允许多个用户(人或程序)同时(或基本同时)查看和编辑电子对象的技术。
[0025]所描述的技术可应用于各种类型的电子对象,例如,文档、演示文稿、网页、图像、设计和其他类型的对象。
[0026]本文所述的系统和处理为对象的协作编辑提供了托管对话模型。在这样的模型中,服务器(例如,下面描述的服务器应用110)维护可以经由客户端应用程序(例如,客户端应用程序120)协作编辑的对象的规范副本。
[0027]为了编辑(或简单查看)给定对象,给定用户经由其客户端应用程序与服务器建立连接,并请求访问特定对象。一旦建立了连接,用户就可以(经由他们的客户端应用程序)在他们的客户端装置上查看对象,并以无锁、非阻塞的方式执行本地编辑。这些编辑随后与服务器同步,服务器将编辑从每个客户端广播回所有其他连接的客户端。
[0028]根据客户端提交的编辑,服务器产生托管对象的线性操作历史。该历史被各方理解为规范的“真理之源”。
[0029]此外,每个客户端维护其已执行的编辑的历史。本公开描述了在客户端

服务器连接的每一端执行的同步,以针对包含来自所有其他客户端的编辑的服务器规范历史来解析客户端的本地编辑历史。
[0030]存在各种协作编辑平台。一个这样的平台是GoogleWave平台。然而,本文描述的技术在许多方面不同于诸如GoogleWave平台等平台。
[0031]例如,本文所述的协议允许客户一次发送多个提交,而不是被迫一次发送一个提交。这带来了更流畅的协作体验。
[0032]作为另一个示例,客户端(和服务器)可任意缓冲/排列传输中的消息,并在变换前将其压缩为单个消息,从而实现比现有技术更有效的同步。
[0033]作为进一步示例,本文所述的协议支持具有代理或中介的架构,允许通过单个代理机器多路复用多个客户端。
[0034]其他差异和优点将从公开内容中变得显而易见。
[0035]网络环境
[0036]图100描绘了可执行本文所述的各种操作和技术的网络环境100的一个示例。
[0037]环境100包括协作服务器系统102(简称服务器系统102),其经由一个或多个通信
网络106与协作客户端系统104通信。
[0038]协作服务器系统102托管协作服务器应用程序110(简称为服务器应用程序或SA 110)。SA 110由服务器系统102执行,以将其配置为向一个或多个相应的客户端应用程序(例如,如下所述的客户端应用程序120A和120B)提供服务器侧功能。SA 110包括实现本文描述的特征和功能的一个或多个应用程序、库、API或其他软件元素。例如,在CA 120是网络浏览器的情况下,SA 110将是诸如Apache、IIS、nginx、GWS之类的网络服务器或者是替代的网络服务器。在CA 120是专用协作平台应用的情况下,SA 110将是被专门配置为与CA 120交互的应用服务器。
[0039]服务器系统102可托管网络服务器和应用服务器(或多个网络/应用服务器,如有需要)。
[0040]在本示例中,SA 110包括(或可访问)同步模块112(简称为服务器SM 112)。如下所述,服务器SM 112操作,以同步在SA 110处从各种客户端应用程序120接收的编辑,并维护SA 110用于编辑的所有对象的规范历史。
[0041]在所示的示例中,服务器SM 112被显示为SA 110的一部分。这可能是由于这些模块是SA 110的本地部分或者作为SA 110的扩展/插件/附加组件安装。在替代实施例中,服务器SM 112可以是在服务器系统102上(或者在运行SA 110的同一计算机处理系统上,或者在不同的计算机处理系统上)运行并与SA 110通信的独立程序。
[0042]服务器系统102还包括服务器数据存储器114,用于存储与其操作相关的数据。服务器数据存储器114可以是适于存储和本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于编辑电子对象的计算机实现的方法,所述电子对象由多个客户端应用程序实时编辑,所述方法由第一客户端应用程序执行,并且所述方法包括:维护所述电子对象的本地版本;维护本地缓冲器,所述本地缓冲器包括一个或多个本地增量,每个本地增量描述由所述第一客户端应用程序的用户对电子文档的本地版本进行的一个或多个编辑;从服务器系统接收多个服务器增量,每个服务器增量与对所述电子对象进行的远程编辑相关;对多个所述服务器增量进行组成,以生成单个经组成的服务器增量;针对所述本地缓冲器中的一个或多个所述本地增量来变换所述单个经组成的服务器增量,以生成经变换的服务器增量;以及通过将所述经变换的服务器增量应用于所述电子文档的本地版本来编辑所述电子文档的本地版本。2.根据权利要求1所述的计算机实现的方法,其中,所述本地缓冲器中的一个或多个所述本地增量包括第一缓冲增量,并且所述方法还包括:生成第一客户端提交消息,所述第一客户端提交消息包括所述第一缓冲增量;将所述第一客户端提交消息传送到所述服务器系统;以及将所述第一缓冲增量标记为未确认。3.根据权利要求2所述的计算机实现的方法,还包括:从所述服务器系统接收第一服务器确认消息,所述第一服务器确认消息确认所述第一缓冲增量;以及响应于接收到所述第一服务器确认消息,从所述本地缓冲器中清除所述第一缓冲增量。4.根据权利要求3所述的计算机实现的方法,其中:所述第一客户端提交消息还包括第一客户端版本标识符;所述第一服务器确认消息包括所述第一客户端版本标识符;所述本地缓冲器包括一个或多个额外本地增量,一个或多个所述额外本地增量中的每个额外本地增量在接收到所述第一服务器确认消息时被标记为未确认,一个或多个所述额外本地增量中的每个额外本地增量与指示比所述第一客户端版本标识符更早版本的客户端版本标识符相关联;并且响应于接收到所述第一服务器确认消息,所述方法还包括从客户端缓冲器中清除一个或多个所述额外本地增量。5.根据权利要求2至4中任一项所述的计算机实现的方法,其中,通过以下方式生成所述第一缓冲增量:接收由所述第一客户端应用程序的用户对所述电子文档的本地版本进行的第一本地编辑;基于所述第一本地编辑生成所述第一缓冲增量;以及将所述第一缓冲增量添加到所述本地缓冲器。6.根据权利要求2至4中任一项所述的计算机实现的方法,其中,通过以下方式生成所述第一缓冲增量:
接收由所述第一客户端应用程序的用户对所述电子文档的本地版本进行的第一本地编辑;生成对应于所述第一本地编辑的第一本地增量;接收由所述第一客户端应用程序的用户对所述电子文档的本地版本进行的第二本地编辑;生成对应于所述第二本地编辑的第二本地增量;对所述第一本地增量和所述第二本地增量进行组成,以生成第一缓冲本地增量;以及将所述第一缓冲本地增量添加到所述本地缓冲器。7.一种用于促进电子对象的实时编辑的计算机实现的方法,所述方法包括:维护对象历史数据存储器,所述对象历史数据存储器包括多个对象历史项目;提供与第一客户端应用程序相关联的第一客户端同步器,所述第一客户端同步器配置为:维护第一服务器侧增量缓冲器,所述第一服务器侧增量缓冲器与所述第一客户端应用程序相关联并且所述第一服务器侧增量缓冲器包括多个缓冲对象;接收由所述第一客户端应用程序生成的多个客户端增量,每个客户端增量与由所述第一客户端应用程序的用户对所述电子对象进行的本地编辑相关;对多个所述客户端增量进行组成,以生成第一经组成的客户端增量;针对一个或多个服务器侧增量变换所述第一经组成的客户端增量,以生成第一经变换的客户端增量;生成第一对象历史项目并将所述第一对象历史项目存储在所述对象历史数据存储器中,所述第一对象历史项目包括与所述第一客户端应用程序和所述第一经变换的客户端增量相关联的第一客户端标识符。8.根据权利要求7所述的计算机实现的方法,其中,针对一个或多个服务器侧增量变换所述第一经组成的客户端增量包括:针对包括在所述第一服务器侧增量缓冲器的多个缓冲对象中的一个或多个服务器侧增量来变换所述第一经组成的客户端增量。9.根据权利要求8或权利要求9所述的计算机实现的方法,其中,针对一个或多个服务器侧增量来变换所述第一经组成的客户端增量包括:针对存储在所述对象历史数据存储器中的对象历史项目中的一个或多个服务器侧增量来变换所述第一经组成的客户端增量。10.根据权利要求7至9中任一项所述的计算机实现的方法,其中,所述第一客户端同步器还配置为:从所述对象历史数据存储器中检索所述第一对象历史项目;确定所述第一对象历史项目包括所述第一客户端标识符;以及响应于确定所述第一对象历史项目包括所述第一客户端标识符:生成服务器确认消息,所述服务器确认消息包括包含在所述第一对象历史项目中的服务器版本标识符和包含在所述第一对象历史项目中的客户端版本标识符;以及将所述服务器确认消息传送到所述第一客户端应用程序。11.根据权利要求7至10中任一项所述的计算机实现的方法,其中,所述第一客户端同
步器还配置为:从所述对象历史数据存储器中检索第二对象历史项目,所述第二对象历史项目包括第二客户端标识符和第二客户端增量;确定所述第二客户端标识符不与所述第一客户端应用程序相关联;以及响应于确定所述第二客户端标识符不与所述第一客户端应用程序相关联,创建第一缓冲对象并将所述第一缓冲对象添加到所述第一服务器侧增量缓冲器,所述第一缓冲对象包括所述第二客户端增量。12.根据权利要求11所述的计算机实现的方法,其中,所述第一客户端同步器还配置为:生成包括所述第二客户端增量的服务器提交消息;以及将所述服务器提交消息传送到所述第一客户端应用程序。13.根据权利要求7至10中任一项所述的计算机实现的方法,其中,所述第一客户端同步器还配置为:从所述对象历史数据存储器中检索第二对象历史项目,所述第二对象历史项目包括第二客户端标识符和第二客户端增量;确定所述第二客户端标识符不与所述第一客户端应...

【专利技术属性】
技术研发人员:D
申请(专利权)人:坎瓦有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1