文档协同编辑中的一致性维护方法技术

技术编号:11191798 阅读:249 留言:0更新日期:2015-03-25 20:24
本发明专利技术公开了一种文档协同编辑中的一致性维护方法,包括如下步骤:步骤1、在多人协同编辑的环境下,通过操作转换算法提供对于一致性维护的支持;步骤2、在步骤1的基础上,结合移动环境下的操作转换算法,使得一致性维护方法可以满足异构环境下的要求;步骤3、在步骤2的基础上,利用Node.js的特点,使得一致性维护方法提供并发操作的支持。具有有效利用了服务器的资源和提高了资源的利用率等优点。

【技术实现步骤摘要】

本专利技术涉及一种文档协同编辑技术,特别涉及一种。
技术介绍
正在进行的信息革命对传统的生产、生活方式产生了深远的影响。技术的进步和发展使许多原来只能在同一地点进行的高交互性协同活动可以通过由网络连接的协同应用系统在线进行。实时协同广泛采用数据复制技术来隐藏网络延迟、提高响应速度和改善交互体验。在复制式结构中,用户可以无约束地在不同数据副本上进行操作,这必然会引发一致性维护问题。随着网络技术的发展、Web应用的普及以及多种协同终端以不同接入模式的参与,涌现了一大批以Web2.0和移动计算为代表的新型协同应用。这些应用呈现出大规模、动态性、操作复杂性、数据类型多样性等新特性,给实时协同中一致性维护的研究带来了新的技术挑战。 综上所述,数据的一致性维护在协同工作中是十分重要的,而一致性维护的研究已经经过了许多年,在这方面有各种方案被提出来,其中操作转换算法是最高效也是最被大家所认可的一种解决方法。
技术实现思路
本专利技术的目的在于克服现有技术的缺点与不足,提供一种,该一致性维护方法以Node, js平台为基础,利用Node, js的特点构建高并发高响应性的一致性维护方法;该一致性维护系统在传统操作转换算法的基础上加入了适用于移动网络环境下的操作转换算法,通过中间层来调度操作转换算法,使得该专利技术可以适用于异构网络环境下的一致性维护。 本专利技术的目的通过下述技术方案实现:一种,包括以下步骤: 步骤1、利用传统操作转换算法构建一个基于操作转换的一致性维护框架。可以将文本内容修改转成以下3种类型的操作:retain(n)---保持η个字符,也就是说这η个字符不变;insert (str)---插入字符str ;delete(str)---删除字符str ;假设用户为两个人,一个为Alice,另一个为Tom,初始字符串为hello, ο world, ο,具体示例可以如下: 用户Alice的操作执行情况如下:当操作02到达Alice的站点时,如果该操作直接在当前副本执行,Alice的Makefile中,该片段将被修改为:fo0.0 hebar.ο 11ο.ο world,ο,由于Alice之前已经执行了操作01,当Alice执行操作02时,02操作的上下文已经不是它产生时的上下文,因此直接在当前的上下文下执行操作02会产生错误的结果。在这个场景中,Alice需要将02转换成02’,使02’可以在当前的文档状态“fo0.0 hello, o world, ο”上正确执行。因为01在02的插入位置之前插入了一个长度为6的字符串“fo0.0”,所以需要将02的插入位置右移6个操作位置来包含01已经执行操作01的操作效果,得到02’ =ins (14, “bar.0”)。这时,在 Alice 的当前状态 “fo0.0 hello, o world, o” 上执行 02’ 得至Ij:fo0.ο hello, o bar.0 world.0。对于用户Tom来说,当收到操作01后,01可以直接按其原始形式即ins(0,”fo0.ο”)正确地执行,因为此时01的操作位置不受操作02的影响。在Tom当前状态“hello, ο bar.0 world, ο”上执行操作01后也可以得到:fo0.0 hello, οbar.ο world, ο。这样,Alice和Tom协同编写的程序片段的一致性得到了维护。操作转换就是通过这种方式对并发的操作进行转换,使得最后文本达到一致。在操作转换算法中,操作之间有几种不同的关系:上下文等价关系,上下文串行关系,上下文可比关系和效果等价关系。操作转换算法通过判断两个操作之间的关系来进行相应的操作转换,来使得两个操作可以在相互的文档中进行操作。对于上下文等价的两个操作,操作转换算法会把其中一个操作在另一个操作的基础上进行转换,然后在作用于产生前一个操作的文档中;对于上下文串行的操作只需要把后发生的操作作用在先发生的操作之后就可以了 ;对于上下文可比的两个操作,需要先把两个操作转换成上下文等价的状态,然后根据上下文等价状态下的操作转换算法进行转换;对于效果等价的两个操作就不需要执行任何操作就可以了。 基于操作转换的一致性维护架构如图1所示,主要包括客户端、服务器端、客户端操作缓存、服务器接受的操作缓存、服务器要发送的操作缓存等几个部分,整体流程包括以下的a、b、c和d四个步骤: a.客户端每个时间间隔会与服务器进行同步,在这个时间间隔内客户端产生的操作会保存在客户端的操作缓存中。 b.客户端与服务器端进行同步时,会接受服务器端要发送的操作缓存中的操作并且与本地客户端操作缓存中的操作进行相互转换,然后对文档进行服务器端发送的操作缓存中操作并且把转换后的客户端缓存操作发送给服务器端。 c.服务器每隔一定时间会处理客户端发送过来的保存在服务器端接受的操作缓存中的操作。 d.处理客户端发送过来的操作时,服务器会把服务器端接受的操作缓存和服务器端要发送的操作缓存中的操作合并并且放在服务器端要发送的操作缓存中。因此该框架能够很好的适应传统协同环境下的一致性维护问题; 步骤2、为了支持异构环境下的一致性维护,本专利技术在传统操作转换的基础上考虑了移动环境下的网络特点,结合适用于移动环境的操作转换算法,提出了一种可以适应异构网络环境的一致性维护算法。 由于移动环境中移动设备的电量有限,所以为了保证用户的实用性,无法保证客户端与服务器端的持续连接,所以传统的操作转换算法并不适用于这种环境下。在移动环境下,需要把用户的本地操作保存在客户端,然后在更长的一个时间间隔后与服务器端的操作进行合并转换,合并的过程并不是按照一个个操作进行合并,而是根据操作序列进行转换,每个序列也具有说明(I)中的几种关系,操作转换算法也是根据判断每个序列之间的关系进行相应的操作转换。在服务器端会维护两种环境下的操作,然后根据判断不同的客户端来进行相应的操作转换算法; 支持异构环境一致性维护的架构如图2,其中中间操作转换层负责针对不同的网络环境选择不同的操作转换算法进行一致性维护,使得异构环境下的数据保存一致。中间层判断不同客户端是通过判断http请求头中的userAgent字段来判断是来自移动客户端的请求还是来自PC客户端的请求。UserAgent记录了不同浏览器的版本信息,每个版本的浏览器UserAgent是不一样的,而移动浏览器和PC浏览器在这个字段上的值也是不一样的,所以可以根据这个字段来进行判断进而选择不同的操作转换算法; 步骤3、在上述的基础上,为了提高服务器的响应能力,本专利技术在客户端与服务器端加入了一层负载均衡层,以充分利用服务器资源。Node, js负载均衡架构如图3所示。在这一层中,负载均衡服务器会接受所有来自客户端的请求,然后根据集群中每个服务器的负载情况选择最优的路由路径来进行转发,并且实时更新各个服务器上的负载情况,以实现负载均衡的功能。系统采用DNS轮询的方式来进行负载均衡,DNS轮询是最简单的负载均衡方式。以域名作为访问入口,通过配置多条DNS A记录使得请求可以分配到不同的服务器。 在步骤3中,利用Node, js基于事件驱动的特点,通过事件轮询的机制带来的实时本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201410613054.html" title="文档协同编辑中的一致性维护方法原文来自X技术">文档协同编辑中的一致性维护方法</a>

【技术保护点】
一种文档协同编辑中的一致性维护方法,其特征在于,包括如下步骤:步骤1、在多人协同编辑的环境下,通过操作转换算法提供对于一致性维护的支持;步骤2、在步骤1的基础上,结合移动环境下的操作转换算法,使得一致性维护方法可以满足异构环境下的要求;步骤3、在步骤2的基础上,利用Node.js的特点,使得一致性维护方法提供并发操作的支持。

【技术特征摘要】
1.一种文档协同编辑中的一致性维护方法,其特征在于,包括如下步骤: 步骤1、在多人协同编辑的环境下,通过操作转换算法提供对于一致性维护的支持; 步骤2、在步骤I的基础上,结合移动环境下的操作转换算法,使得一致性维护方法可以满足异构环境下的要求; 步骤3、在步骤2的基础上,利用Node, js的特点,使得一致性维护方法提供并发操作的支持。2.根据权利要求1所述的文档协同编辑中的一致性维护方法,其特征在于:在步骤I中,利用传统操作转换算法提供对于数据一致性维护的支持;操作转换技术以其无锁、细粒度的乐观并发控制特性,成为特别适合此类协同应用系统的一致性维护方法。3.根据权利要求2所述的文档协同编辑...

【专利技术属性】
技术研发人员:黄敏林彬何擎昊
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东;44

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

1