[发明专利]协同编辑中数据冲突模块的加锁方法有效
申请号: | 200710051008.0 | 申请日: | 2007-12-27 |
公开(公告)号: | CN101196829A | 公开(公告)日: | 2008-06-11 |
发明(设计)人: | 陈雷霆;何明耘;蔡洪斌;邱航;房春兰 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F17/24 |
代理公司: | 成都九鼎天元知识产权代理有限公司 | 代理人: | 熊晓果;吴彦峰 |
地址: | 611731四川省成都*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 协同 编辑 数据 冲突 模块 加锁 方法 | ||
技术领域
本发明涉及协同编辑加锁方法,尤其是涉及一种协同编辑中数据冲突模块的加锁方法。
背景技术
随着大型编辑需求的产生和网络技术的不断发展,分布式的协同编辑系统应运而生并开始了飞速的发展。协同编辑系统结构分为主编辑节点和协编辑节点。主编辑节点创建会话,协编辑节点参与会话,在会话过程中,最重要的任务就是在保证效率的前提下,发现和解决多人同时编辑可能存在的冲突,于是便引入了对编辑对象加锁的机制,加锁机制主要有以下几种:传统的加锁法、tickle锁、floor控制、可逆执行(Undo/Redo)和操作转换等。
传统的加锁法最突出的优点是设计和实现较为简单,它能保证具体上下文的语义完整性,但是它在分布式协同编辑中无法保证加锁位置的一致性。tickle锁方法适合于分节加锁的实时分布式协同编辑的并发控制,然而,无法提供多个编辑者对节内的同时编辑。JCE(Java Collaborative Envirment)中的协同编辑采用了floor控制方法,每个协作编者只有获得floor才能进行编辑操作,较适合讨论式的协作编辑,不适合实时无约束的协作编辑。在可逆操作(Undo,Redo)算法中,操作可以立即执行,但与操作有关的信息将被保留下来,以便在必要的时候取消该操作。这种方法的用户响应性能良好,但其需要定义操作的全程时序,这是相当困难的。操作转换算法能自动地解决冲突而无需手工干预,有良好的实时响应性,能保持收敛性和维护意愿,但是它不能保证上下文的语义完整性。
加锁技术分为乐观锁技术和悲观锁技术。乐观锁不锁定任何东西,当事务更新记录时,事务会进行检查,看看自从自己上次读取了这条记录之后,是否有其它事务修改了这条记录,如果被其它事务修改了,这个事务通常会回滚,然后重新尝试,更新数据的时候执行这个代价不高的检查,能够避免弄丢其它数据的修改,而且,只有发现修改冲突的时候,才引起事务重来一遍的额外开销。
悲观锁机制假设并发更新冲突会发生,所以不管冲突是否真的发生,都会引入额外的锁开销,但是,这个额外开销比完全隔离事务的额外开销要小得多,使用悲观锁的事务会锁住读取的记录,防止其它事务读取和更新这些记录,其它事务会一直阻塞,直到这个事务的提交或者回滚释放了锁,悲观锁能够防止修改丢失,并且能够提供一定程度读取的一致性,因为它能防止本事务读取的记录被其它事务修改,然而,由于悲观锁不防止新纪录的增加,因而执行同样的查询可能返回不同的结果集。
与本发明相关的现有技术:
现有技术一的技术方案:
中国专利,申请号为200510049259.6,发明名称为《基于语义锁实现图案协同设计中的语义保持方法》,该技术方案的缺点:主要注重于语义的锁定,是在传统加锁方式之中添加了对语义的处理,但没有对加锁方式进行本质的改进,因而无法避免独占资源或者编辑内容被回滚的问题,同时,基于语义的应用在文字处理方面有一定的作用,但移植性差,无法广泛应用于各种协同编辑系统。
现有技术二的技术方案
中国专利,申请号为200510049260.9,发明名称为《图案协同设计中的语义一致性维护的方法》,该技术方案的的缺点:主要注重于语义冲突的避免,在没有使用加锁机制的情况下,从语义方面进行冲突的规避。由于没有引入加锁,使该方案无法适应其它的应用需求,移植性差;同时,在冲突的处理过程中,无法达到使用了加锁机制的效果,因此,该方案也无法广泛应用于各种协同编辑系统。
发明内容
本发明的目的是提供一种协同编辑效率高,处理冲突灵活、易于实现的协同编辑中数据冲突模块中的加锁方法,解决了目前的协同编辑加锁机制各自存在问题,无法做到人性化的协同、协调的问题。
为了达到上述目的,本发明采用如下技术方案:一种协同编辑中数据冲突模块的加锁方法,每个协作者对自己编辑位置范围的锁定都要得到自己所在组的主编节点的认可,每个协作者有且仅有一把锁,在锁定范围内可任意进行各种编辑操作;在每个节点都保存了一份组内成员的锁表,当本地加锁操作发生时,首先扫描本地的锁表,看有没有与别人的锁有冲突,如果有,则首先要通过优先级的判断,来确定该资源应该由那方使用,判断的结果有:
(1)、维持原始的加锁;这种情况下,请求加锁的操作不能进行;
(2)、抢夺原来的加锁;但是这个请求必须通过服务器的允许;
(3)、提示用户仲裁;这种情况发生在优先级相同的两个加锁冲突时,如果用户不愿意仲裁中断任务的进行,可以关闭仲裁而使用默认的乐观锁回滚方法;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710051008.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置