针对多用户协作应用的混合操作转换制造技术

技术编号:17216081 阅读:17 留言:0更新日期:2018-02-08 02:02
多用户协作软件应用可以在多个用户或多个设备之间同步数据。存在多种用于同步数据的现有的方式。这些同步方法中的一些方法(例如,文件锁定)易于实现,但是具有性能或功能缺陷。操作转换(OT)是一种高性能同步方法,但是在许多情况下实现起来困难且耗时,并且不能够在整个系统中部分地实现。方法和系统提供了用于:在相同的协作软件应用中将操作转换与其它同步方法进行混合,允许在操作转换不能够在整个系统中实现的情况下使用操作转换。

Hybrid operation conversion for multi user cooperative applications

Multiuser collaboration software applications can synchronize data between multiple users or more than one device. There are a variety of existing ways to synchronize data. Some of the methods in these synchronization methods (for example, file locking) are easy to implement, but have performance or functional defects. Operation transformation (OT) is a high-performance synchronization method, but in many cases, it is difficult and time-consuming to implement, and can not be partially implemented in the whole system. The method and system have been applied to: in the same cooperative software application, operation transformation is mixed with other synchronous methods, allowing operation transformation in case of operation transformation can not be realized in the whole system.

【技术实现步骤摘要】
【国外来华专利技术】针对多用户协作应用的混合操作转换相关申请本申请要求享有题为“针对多用户协作应用的混合操作转换(BLENDEDOPERATIONALTRANSFORMATIONFORMULTI-USERCOLLABORATIVEAPPLICATIONS)”并且提交日为2015年12月11日的美国专利申请No.14/966,216的优先权,该申请要求享有题为“针对多用户协作应用的混合操作转换(BLENDEDOPERATIONALTRANSFORMATIONFORMULTI-USERCOLLABORATIVEAPPLICATIONS)”并且提交日为2014年12月11日的美国临时专利申请No.62/090,621的优先权,这些申请通过引用并入本文。
技术介绍
操作转换(OT)允许创建协作应用,协作应用能够对来自多个用户的对共享文档或系统状态进行的更改进行同步。实现OT系统的难度已经使计算机应用对协作使用的适应性减慢。存在对于“混合”OT的需求,“混合”OT允许由开发人员自行决定从完全OT优雅降级到不那么复杂/期望的并发形式。
技术实现思路
提供本
技术实现思路
以便以简化的形式来引入在下面的具体实施方式章节中进一步描述的一系列概念。本
技术实现思路
并非旨在识别所要求保护的主题的关键特征或必要特征,也并非旨在用作确定所要求保护的主题的范围的辅助。多用户协作软件应用可以在多个用户或多个设备之间同步数据。存在多种用于同步数据的现有方式。这些同步方法中的一些同步方法(例如,文件锁定)易于实现,但是具有性能或功能缺陷。操作转换(OT)是一种高性能同步方法,但是在许多情况下实现起来困难且耗时,并且不能够在整个系统中部分地实现。本公开的方面描述了这样的方法和系统:用于在相同的协作软件应用中将操作转换与其它同步方法进行混合,允许在操作转换不能够在整个系统中实现的情况下使用操作转换。在整个本公开中,这样的实现方式可以被称为“混合操作转换”。在附图和下面的说明书中阐述了一个或多个方面的细节。通过阅读以下具体实施方式并阅览相关联的附图,其它特征和优点将是显而易见的。附图说明通过参考下面的附图,本公开的进一步的特征、方面、以及优点将变得更好理解,其中元素不是按比例绘制的,以便于更清楚地示出细节,并且其中同样的附图标记在若干视图中指示同样的元素。图1是示出用于协作编辑的系统的框图。图2是示出用于协作编辑的操作环境的框图。图3示出了根据本公开的方面的应用多个操作的方面。图4示出了在转换期间收敛性性质的应用。图5更详细地示出了在本公开的方面中如何可以通过客户端控制算法来实现队列。图6是示出根据本公开的方面的用于传播文档更改的示例方法中所涉及的一般阶段的流程图。图7是示出根据本公开的方面的用于传播文档更改的示例方法中所涉及的一般阶段的流程图。图8是示出计算设备的物理组件的一个示例的框图。图9A和图9B是移动计算设备的简化框图。具体实施方式下面的具体实施方式参考附图。尽可能地,在附图和下面的说明书中使用相同的附图标记来指示相同或类似的元素。尽管可以描述本公开的方面,但是修改、改动、以及其它实现方式是可能的。例如,可以对附图中所示的元素做出替换、添加、或修改,并且可以通过对所公开的方法进行替换、重新排序、或添加阶段来修改本文所描述的方法。因此,下面的具体实施方式是非限制性的,并且相反,恰当的范围由所附权利要求来限定。示例可以采取硬件实现方式、或完全软件实现方式、或组合软件和硬件方面的实现方式的形式。因此,下面的具体实施方式不应被认为是限制意义的。混合OT允许由开发人员自行决定从完全OT优雅降级到不那么复杂/期望的并发形式。该策略允许随着实现方式变得更加复杂而增量地改进。这些改进能够由用户、商业、或技术优先级驱动。混合OT可以通过允许协作使用的内容编辑程序来实现。一种现有的并发策略是“锁定/编辑/解锁”。该策略易于实现,但是导致差的并发性。例如,一个用户可能保持在锁定太久,而阻止其他用户,即使其他用户希望以逻辑上彼此独立的方式来编辑共享状态或文档的不同部分。第二种并发策略是“更新/编辑/提交”。当用户在不同区域工作时,该策略具有良好的并发性能,但是需要在其他用户做出了任何更改的情况下进行三向合并。如果其他用户做出快速更改,则该策略能够实时锁定。在实时锁定中,用户因为总是有传入的更改等待被合并而永远不能够提交更改。最后,即使当用户的编辑彼此影响时,OT并发策略也具有细粒度的(fine-grained)并发性和良好的性能,但是实现可能是困难的。对现有应用进行改造尤其困难,并且通常需要针对所有类型的编辑的完全实现。值得注意的是,在内容编辑程序和文档本身的不同部分中,不同类型的编辑可能需要不同级别的并发性:1)具有完全OT支持和快速、细粒度的并发性的编辑(例如,创建、删除、以及移动对象;编辑文本);2)对于OT系统而言难以或不可能确定用户所做出的更改、但是已知在特定区域已经发生了更改的编辑(例如,编辑由第三方定义的嵌入式对象;编辑OT系统到目前为止未知的对象);3)对文档做出彻底更改、但是不必向OT系统暴露是什么或在哪里的编辑(例如,更改颜色方案、主题、页面大小、模板或幻灯片母版);以及4)OT系统不知道某些内容是否已经更改并且不能够通过对文档进行检查来辨别什么内容已经更改的编辑。这些编辑对于系统是完全不透明的。对于纯OT方法,除了第一类型的编辑之外的所有编辑都呈现显著的障碍。较难以处理的类型的编辑中的许多实际上不需要完全并发,或者较难以处理的类型的编辑中的许多与其它的、更细粒度的编辑本质上是正交的(或几乎如此)。对于操作及其转换被很好地理解的类型(1)编辑,混合方法使用完全OT。具有尽可能多的这种类型的用户交互是可取的。本公开的方面提供了考虑到这些目标的混合OT方法。对于类型(2)编辑,混合OT方法的方面将更改的不透明表示封装为不透明操作。始发客户端可以将操作元数据和数据发送到服务器,而不必在相同的时间。其它客户端和服务器可以快速地接收元数据,并可选地闭锁(lock-out)其他用户以使他们不能做出进一步的更改(例如,利用受影响的区域上的进度条)。然后其他用户在数据变得可用时接收数据。一旦接收到所有数据,则最终能够完整地应用操作,并释放闭锁。如果清楚数据永远不会变得可用(例如,由于始发用户提前断开),则撤消操作(经由OT撤销机制)并释放闭锁。在某些方面中,能够创建更改的不透明表示(例如,二进制blob(二进制大对象))。在这些方面中,能够应用这种不透明操作,而不管文档的受影响部分的实际状态。例如,如果不透明操作修改了由第三方定义的嵌入式对象的状态,则操作将要求对象存在并处于预期位置,但是不要求该对象处于特定状态。这允许对文档的相同部分进行两个不透明操作,以通过简单地替换不透明表示来简朴地转换经过彼此。不透明操作类似于更新/编辑/提交模型,这是因为三向合并总是利用传入的状态来替换当前状态。经替换的状态不一定丢失,但是如果需要被恢复,经替换的状态能够保留在文档历史中。这使得开发人员免于针对困难对象实现完全OT,并且经降级的并发性仅限于文档的不透明部分。在本公开的方面中,可以针对类型(3)和(4)编辑采用二进制同步(binary-sync)操作。可以首先针对更改扫描整个文档,并将任本文档来自技高网...
针对多用户协作应用的混合操作转换

【技术保护点】
一种用于传播文档更改的方法,包括以下步骤:使用完全操作转换将对基础文档进行的文本更改传播到服务器,其中,所述服务器与在所述基础文档上进行协作的多个用户通信;使用不透明对象将对所述基础文档进行的不透明更改传播到所述服务器,其中,所述不透明更改包括对其而言不存在操作的更改;以及使用二进制同步将对所述基础文档进行的不受支持的更改传播到所述服务器。

【技术特征摘要】
【国外来华专利技术】2015.12.11 US 14/966,2161.一种用于传播文档更改的方法,包括以下步骤:使用完全操作转换将对基础文档进行的文本更改传播到服务器,其中,所述服务器与在所述基础文档上进行协作的多个用户通信;使用不透明对象将对所述基础文档进行的不透明更改传播到所述服务器,其中,所述不透明更改包括对其而言不存在操作的更改;以及使用二进制同步将对所述基础文档进行的不受支持的更改传播到所述服务器。2.根据权利要求1所述的方法,其中,所述不受支持的更改包括对所述基础文档进行的全局更改。3.根据权利要求1所述的方法,其中,所述不透明对象是基于状态的。4.根据权利要求1所述的方法,还包括将表示大的状态的不透明对象带外地发送到所述服务器。5.根据权利要求4所述的方法,其中,表示大的状态的所述不透明对象包括以下中的一个或多个:图片、视频、以及嵌入式的对象链接与嵌入(OLE)对象。6.根据权利要求1所述的方法,还包括在将不透明更改传播到所述服务器时向第一用户呈现进度条。7.根据权利要求1所述的方法,还包括使用完全操作转换将对所述基础文档中的形状属性进行的更改传播到服务器。8.根据权利要求1所述的方法,还包括采用优先级规则来确定多个冲突的不透明更改之间的优先级。9.根据权利要求1所述的方法,其中,所述不受支持的更改包括对所述基础文档进行的主题更改。10.一种用于在协作环境中传播文档更改的方法,包括:检测与在所述协作环境中由第一用户做出的文档更改相关联的编辑类型;如果所述编辑类型具有完全操作转换支持,则使用完全操作转换将所述文档更改传播到服务器;如果所述编辑类型指示所述文档更改在所述文档中的特定区域中发生但是不指示所述文档更改的细节,则使用不透明操作将所述文档更改传播到服务器;以及如果所述编辑类型是完全不透明的,则使用二进制同步将所述文档更改传播到服务器。11.根据权利要求10所述的方法,还包括如果...

【专利技术属性】
技术研发人员:D·L·纳尔逊A·D·克拉夫特E·R·罗德A·K·多雷
申请(专利权)人:利夫卢珀股份有限公司
类型:发明
国别省市:美国,US

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

1