基于标记和状态向量的带冲突检测的并发控制方法

文档序号:7613026阅读:118来源:国知局
专利名称:基于标记和状态向量的带冲突检测的并发控制方法
技术领域
本发明涉及一种计算机支持的协同工作(CSCW)的技术领域,尤指一种用于协同编辑支持物理上分布的多个协同者同时编辑同一文档的应用系统,用于保证操作冲突时一致性的基于标记和状态向量的带冲突检测的并发控制装置及其并发控制方法。
背景技术
协同编辑支持物理上分布的多个协同者同时编辑同一文档,这是一类重要的计算机支持的协同工作(CSCW)应用系统。协同编辑是典型的分布式应用系统,不但要求用户操作有很快的响应速度,通常还有以下特点对同一时刻进行操作的协作用户数目没有限制,对协作用户可以编辑的文档部分也不加制约,用户可在任意时刻编辑共享文档的任意部分。节点之间传送的信息主要是操作信息和参数以及必要的控制信息。但是,操作的并发性和网络传输延迟的不确定性使得维护并发操作的一致性变得相当困难。一个操作在远程节点执行产生的效果,若不加以调整和控制,则可能与操作在本地执行时产生的效果不一致,即与用户希望达到的效果不一致。这就是所谓的“维护操作意愿”问题。现有的维护操作意愿的方法主要是操作变换方法,其特点是着眼于操作本身,通过变换操作的参数来实现操作意愿的维护。但是,当节点规模稍大时,操作之间的关系变得非常复杂,考虑全面很不容易,其算法的设计难度较大。近年来,国内提出了“文档标注方法”,该方法立足于文档本身,通过对文档加标注屏蔽引起不一致的操作。该方法易于理解,算法设计也比较直观,但它在传递操作信息时需附加操作上下文,随着操作数的增加,操作上下文内容会越来越多,导致网络传输包长度不断增加,加剧网络负载。后面又有人提出“带状态向量的文档标注方法”,但该方法没有就如何实现提出可行方案,同时也没有冲突检测和处理,无法保证操作冲突时的一致性。因此,我们提出了“基于标记和状态向量的带冲突检测的实时协同编辑并发控制方法”。

发明内容
为了克服上述不足之处,本发明的主要目的旨在提供一种没有服务器进行集中控制的并发算法,在文档标注方法的基础上引入了状态向量,优先级规则,实现对操作冲突的检测和解除,通过文档被插入标记和删除标记的操作,并按标记规则执行的基于标记和状态向量的带冲突检测的并发控制方法。
本发明要解决的技术问题是要解决操作的并发性和网络传输延迟的不确定性,要维护并发操作的一致性;要解决一个操作在远程节点执行产生的效果与操作在本地执行时产生的效果不一致,即与用户希望达到的效果不一致,就是所谓的“维护操作意愿”问题;要解决冲突检测和处理,保证操作冲突时的一致性问题;要解决状态向量,优先级规则,实现对操作冲突的检测和解除问题;要解决插入标记和删除标记的操作问题及如何按标记类型、标记规则执行等技术问题。
本发明解决其技术问题所采用的技术方案是本发明的装置由输入设备、输出设备、处理器等模块及互联网硬件环境等组成,其并发控制的客户端A包括输入设备、输出设备、处理器及网络接入设备模块等组件构成;其并发控制的客户端B也包括输入设备、输出设备、处理器及网络接入设备模块等组件构成;并发控制的客户端A与客户端B之间有互联网通讯联系。
所述的基于标记和状态向量的带冲突检测的并发控制装置的客户端A和客户端B的输入设备的输出端分别与输出设备和处理器的输入端相连接,处理器与网络接入设备之间有双向输入、输出线相连接,网络接入设备与互联网之间有双向输入、输出线相连接,处理器的输出端与输出设备的输入端相连接。
所述的基于标记和状态向量的带冲突检测的并发控制装置的输入设备或为手写输入板或为键盘或为触摸屏等;所述的输出设备或为显示器或为投影仪等;所述的处理器或为PC机或为掌上电脑PDA等;所述的网络接入设备或为网卡或为调制解调器等。
一种基于标记和状态向量的带冲突检测的并发控制方法,该方法是协同编辑支持物理上分布的多个协同者同时编辑同一文档的应用系统,协同编辑是典型的分布式应用系统,该方法为没有服务器进行集中控制的并发算法,并发控制是在各个客户端实现,在文档标注方法的基础上引入了状态向量,优先级规则,实现对操作冲突的检测和解除,通过文档被插入标记和删除标记的操作,并按标记规则和优先级规则执行远方节点操作,其具体工作步骤是a)、编辑、执行和保存客户端A通过熟人设备编辑文档,在本地输出设备上立即执行编辑效果,保存编辑操作;b)、打包、压缩和加密然后把编辑消息发送到处理器,进行编辑消息打包、压缩和加密;
c)、发送通过网络接入设备把编辑数据包发送到互联网;d)、解包、解压和解密客户端B的处理器通过网络接入设备收到客户端A发来的编辑消息包,进行解包、解压和解密,获得客户端A的绘图编辑类型和参数;e)、检测和处理客户端B的处理器同时根据保存在本地的编辑操列表对编辑操作进行冲突检测和处理,把处理后的编辑操作在输出设备上反映出来。
所述的基于标记和状态向量的带冲突检测的并发控制方法的工作流程软件的具体工作步骤是步骤1.初始化本地状态向量每个节点保存一个N维本地状态向量SV,N为设定的最大节点数,每个站点对应SV中一个分量,初始时将SV各分量置为0;步骤2.本地产生操作信息监听本地键盘、鼠标消息,产生操作信息;步骤3.发送操作消息及操作产生时本地状态向量将此时本地状态向量,连同操作信息打包发送之;步骤4.本地操作立即执行,更新本地状态向量将此本地操作立即执行,然后更新本地状态向量SV,将SV中本地节点对应向量增1,同时将该操作加入历史操作列表HL尾部;步骤5.接收远方节点操作消息及伴随状态向量监听进程接收到远方节点操作消息及伴随状态向量;步骤6.来自同一节点操作必须按操作在站点产生的先后顺序执行,因此早到操作需要等待之若来自i站点的操作不满足标记就绪条件,说明存在i站点上先于此操作产生的其他操作还没到达,此操作需等待,直至i站点上先于此操作产生的其他操作在本地已全部执行;步骤7.判断等待与否?如果等待,则进入添加到操作等待列表模块,若出现等待情况,则将远方节点操作加入操作等待列表;如果不等待,则进入根据伴随状态向量和本地状态向量判定状态是否一致模块,比较接收到的远方节点操作伴随状态向量和本地状态向量是否相等;步骤8.判断状态一致与否?如果状态一致,则进入按正常方式在本地执行远方节点操作模块,则将远方节点操作在本地执行之,然后将其加入本地历史操作列表尾部;如果状态不一致,则进入按操作在本地执行的先后顺序向后标记操作,并回溯状态向量,直至状态向量与远方节点操作的伴随向量一致,则将此时本地状态向量SV的值赋给一临时状态向量,自尾向头取出历史操作列表HL中操作项,判断其来源站点及类型,调用标记函数将其在文档中做标记,同时将临时变量中对应此操作的分量减1;重复上述过程,直至临时状态向量同传过来的操作的伴随状态向量相同;步骤9.按标记规则在本地执行远方节点操作判断是否存在操作冲突;若存在,则按优先级原则和标记规则执行远方节点,否则按标记规则执行远方节点操作;步骤10.去除所有标记调用标记去除函数,去除所有标记,将远方节点操作加入历史操作列表HL;
步骤11.操作等待列表是否存在满足执行条件的操作进入操作等待列表是否存在满足执行条件的操作模块;此次操作执行完毕,查找操作等待列表,若此时存在与刚执行的操作来源相同的操作满足标记就绪条件,则将其取出,按标记算法执行之;步骤12.判断存在与否?如果存在,则进入根据伴随状态向量和本地状态向量判定状态是否一致模块;如果不存在,则流程结束。
本发明的标记规则执行远方节点操作时,从文档首开始,对于每个插入标记,忽略其位置和内容,同时修改远方节点操作参数(将位置参数增1);对于删除标记,视其为文档的组成部分,远方节点操作参数不变。所有标记处理完成后,按最终修改后的操作参数执行远方节点操作。
本发明的操作冲突解除的优先级规则对于发生冲突的删除操作,可以说明,按标记规则可以自动解除操作冲突;对于发生冲突的插入操作,需按照一定策略(如按照站点编号大小),规定冲突操作的优先级。在按标记规则执行发生冲突的插入操作时,若远方节点操作的优先级高于本地冲突标记,则直接执行此操作;否则,按标记规则忽略该冲突标记,若此冲突标记的后继也是冲突标记,则继续比较两者的优先级,直至找到比远方节点操作优先级低的冲突标记,执行远方节点操作。
本发明的有益效果是本发明的算法在文档标注方法的基础上引入了状态向量,避免了操作上下文的传送;引入了优先级规则,实现了对操作冲突的检测和解除,解决了冲突操作的一致性问题;本方法易于理解,设计直观、通用,减少了操作信息交互内容,降低了网络传输量,缩短了响应时间。


下面结合附图和实施例对本发明进一步说明。
附图1是本发明总体结构的硬件环境方框图;附图2是本发明并发控制方法的流程图;附图中标号说明1-客户端A;2-客户端B;3-输入设备;4-输出设备;5-处理器;6-网络接入设备;7-互联网;11-初始化本地状态向量;12-本地产生操作信息;13-发送操作消息及操作产生时本地状态向量;14-本地操作立即执行,更新本地状态向量;15-接收远方节点操作消息及伴随状态向量;16-来自同一节点操作必须按操作在站点产生的先后顺序执行,因此早到操作需要等待;17-添加到操作等待列表;18-根据伴随状态向量和本地状态向量判定状态是否一致;19-按正常方式在本地执行远方节点操作;20-直至状态向量与远方节点操作的伴随向量一致;21-按标记规则在本地执行远方节点操作;22-去除所有标记;23-操作等待列表是否存在满足执行条件的操作;
24-等待?25-状态一致?26-存在?27-结束;具体实施方式
请参阅附图1所示,本发明的装置由输入设备、输出设备、处理器等模块及互联网硬件环境等组成,其并发控制的客户端A(1)包括输入设备(3)、输出设备(4)、处理器(5)及网络接入设备(6)模块等组件构成;其并发控制的客户端B(2)也包括输入设备(3)、输出设备(4)、处理器(5)及网络接入设备(6)模块等组件构成;并发控制的客户端A(1)与客户端B(2)之间有互联网(7)通讯联系。
所述的基于标记和状态向量的带冲突检测的并发控制装置的客户端A(1)和客户端B(2)的输入设备(3)的输出端分别与输出设备(4)和处理器(5)的输入端相连接,处理器(5)与网络接入设备(6)之间有双向输入、输出线相连接,网络接入设备(6)与互联网(7)之间有双向输入、输出线相连接,处理器(5)的输出端与输出设备(4)的输入端相连接。
所述的基于标记和状态向量的带冲突检测的并发控制装置的输入设备(3)或为手写输入板或为键盘或为触摸屏等;所述的输出设备(4)或为显示器或为投影仪等;所述的处理器(5)或为PC机或为掌上电脑PDA等;所述的网络接入设备(6)或为网卡或为调制解调器等。
一种基于标记和状态向量的带冲突检测的并发控制方法,该方法是协同编辑支持物理上分布的多个协同者同时编辑同一文档的应用系统,协同编辑是典型的分布式应用系统,该方法为没有服务器进行集中控制的并发算法,并发控制是在各个客户端实现,在文档标注方法的基础上引入了状态向量,优先级规则,实现对操作冲突的检测和解除,通过文档被插入标记和删除标记的操作,并按标记规则和优先级规则执行远方节点操作,其具体工作步骤是a)、编辑、执行和保存客户端A(1)通过熟人设备编辑文档,在本地输出设备(4)上立即执行编辑效果,保存编辑操作;b)、打包、压缩和加密然后把编辑消息发送到处理器(5),进行编辑消息打包、压缩和加密;c)、发送通过网络接入设备(6)把编辑数据包发送到互联网(7);d)、解包、解压和解密客户端B(2)的处理器(5)通过网络接入设备(6)收到客户端A(1)发来的编辑消息包,进行解包、解压和解密,获得客户端A(1)的绘图编辑类型和参数;e)、检测和处理客户端B(2)的处理器(5)同时根据保存在本地的编辑操列表对编辑操作进行冲突检测和处理,把处理后的编辑操作在输出设备(4)上反映出来。
请参阅附图2所示,所述的基于标记和状态向量的带冲突检测的并发控制方法的工作流程软件的具体工作步骤是步骤1.初始化本地状态向量(11)每个节点保存一个N维本地状态向量SV。N为设定的最大节点数,每个站点对应SV中一个分量。初始时将SV各分量置为0;
步骤2.本地产生操作信息(12)监听本地键盘、鼠标消息,产生操作信息;步骤3. 发送操作消息及操作产生时本地状态向量(13)(伴随状态向量)将此时本地状态向量,称之为伴随状态向量,连同操作信息打包发送之;步骤4.本地操作立即执行,更新本地状态向量(14)将此本地操作立即执行,然后更新本地状态向量SV,将SV中本地节点对应向量增1,同时将该操作加入历史操作列表HL尾部;步骤5.接收远方节点操作消息及伴随状态向量(15)监听进程接收到远方节点操作消息及伴随状态向量;步骤6.来自同一节点操作必须按操作在站点产生的先后顺序执行,因此早到操作需要等待(16)之若来自i站点的操作不满足标记就绪条件,说明存在i站点上先于此操作产生的其他操作还没到达,此操作需等待,直至i站点上先于此操作产生的其他操作在本地已全部执行;步骤7.判断等待(24)与否?如果等待,则进入添加到操作等待列表(17)模块,即若出现等待情况,则将远方节点操作加入操作等待列表(WaitingList);如果不等待,则进入根据伴随状态向量和本地状态向量判定状态是否一致(18)模块,比较接收到的远方节点操作伴随状态向量和本地状态向量是否相等;步骤8.判断状态一致(25)与否?如果状态一致,则进入按正常方式在本地执行远方节点操作(19)模块,即若相等,则将远方节点操作在本地执行之,然后将其加入本地历史操作列表尾部;如果状态不一致,则进入按操作在本地执行的先后顺序向后标记操作,并回溯状态向量,直至状态向量与远方节点操作的伴随向量一致(20),即若不相等,则将此时本地状态向量SV的值赋给一临时状态向量,自尾向头取出历史操作列表HL中操作项,判断其来源站点及类型,调用标记函数将其在文档中做标记,同时将临时变量中对应此操作的分量减1;重复上述过程,直至临时状态向量同传过来的操作的伴随状态向量相同;步骤9.按标记规则在本地执行远方节点操作(21)判断是否存在操作冲突;若存在,则按优先级原则和标记规则执行远方节点,否则按标记规则执行远方节点操作;步骤10.去除所有标记(22)调用标记去除函数,去除所有标记(22),将远方节点操作加入历史操作列表HL;步骤11.操作等待列表是否存在满足执行条件的操作(23)进入操作等待列表是否存在满足执行条件的操作(23)模块;此次操作执行完毕,查找操作等待列表,若此时存在与刚执行的操作来源相同的操作满足标记就绪条件,则将其取出,按标记算法执行之;步骤12.判断存在(26)与否?如果存在,则进入根据伴随状态向量和本地状态向量判定状态是否一致(18)模块;如果不存在,则流程结束(27)。
本发明专利的具体实施例在使用工作过程中还需作如下说明1)、标记类型说明文档被标记部分有两种类型(1)插入标记对于远方节点操作而言,这部分内容应该是不可见的,以屏蔽插入操作的影响;(2)删除标记对于远方节点操作而言,这部分内容应该是可见的,以屏蔽删除操作的影响。
2)、标记就绪定义设远方节点操作来自i站点,当操作伴随向量中RSV(i)比本地状态向量LSV(i)大1,称该操作为标记就绪。
3)、标记规则执行远方节点操作时,从文档首开始,对于每个插入标记,忽略其位置和内容,同时修改远方节点操作参数(将位置参数增1);对于删除标记,视其为文档的组成部分,远方节点操作参数不变。所有标记处理完成后,按最终修改后的操作参数执行远方节点操作。
4)、操作冲突定义若存在两个或两个以上节点在当前文档内容一致(本地SV相同)的情况下,对同一位置都进行插入操作或都进行删除操作,则称为操作冲突。
5)、操作冲突解除的优先级规则对于发生冲突的删除操作,可以说明,按标记规则可以自动解除操作冲突;对于发生冲突的插入操作,需按照一定策略(如按照站点编号大小),规定冲突操作的优先级。在按标记规则执行发生冲突的插入操作时,若远方节点操作的优先级高于本地冲突标记,则直接执行此操作;否则,按标记规则忽略该冲突标记,若此冲突标记的后继也是冲突标记,则继续比较两者的优先级,直至找到比远方节点操作优先级低的冲突标记,执行远方节点操作。
权利要求
1.一种基于标记和状态向量的带冲突检测的并发控制装置,该装置有输入设备、输出设备、处理器及互联网硬件环境,其特征在于并发控制的客户端A(1)包括输入设备(3)、输出设备(4)、处理器(5)及网络接入设备(6)模块组件构成;并发控制的客户端B(2)包括输入设备(3)、输出设备(4)、处理器(5)及网络接入设备(6)模块组件构成;并发控制的客户端A(1)与客户端B(2)之间有互联网(7)通讯联系。
2.根据权利要求1所述的基于标记和状态向量的带冲突检测的并发控制装置,其特征在于所述的客户端A(1)和客户端B(2)的输入设备(3)的输出端分别与输出设备(4)和处理器(5)的输入端相连接,处理器(5)与网络接入设备(6)之间有双向输入、输出线相连接,网络接入设备(6)与互联网(7)之间有双向输入、输出线相连接,处理器(5)的输出端与输出设备(4)的输入端相连接。
3.根据权利要求1所述的基于标记和状态向量的带冲突检测的并发控制装置,其特征在于所述的输入设备(3)或为手写输入板或为键盘或为触摸屏;所述的输出设备(4)或为显示器或为投影仪;所述的处理器(5)或为PC机或为掌上电脑PDA;所述的网络接入设备(6)或为网卡或为调制解调器。
4.一种基于标记和状态向量的带冲突检测的并发控制方法,该方法是协同编辑支持物理上分布的多个协同者同时编辑同一文档的应用系统,其特征在于该方法为没有服务器进行集中控制的并发算法,在文档标注方法的基础上引入了状态向量,优先级规则,实现对操作冲突的检测和解除,通过文档被插入标记和删除标记的操作,并按标记规则和优先级规则执行远方节点操作,其具体工作步骤是a)、编辑、执行和保存客户端A(1)通过熟人设备编辑文档,在本地输出设备(4)上立即执行编辑效果,保存编辑操作;b)、打包、压缩和加密然后把编辑消息发送到处理器(5),进行编辑消息打包、压缩和加密;c)、发送通过网络接入设备(6)把编辑数据包发送到互联网(7);d)、解包、解压和解密客户端B(2)的处理器(5)通过网络接入设备(6)收到客户端A(1)发来的编辑消息包,进行解包、解压和解密,获得客户端A(1)的绘图编辑类型和参数;e)、检测和处理客户端B(2)的处理器(5)同时根据保存在本地的编辑操列表对编辑操作进行冲突检测和处理,把处理后的编辑操作在输出设备(4)上反映出来。
5.根据权利要求4所述的基于标记和状态向量的带冲突检测的并发控制方法,其特征在于所述方法的工作流程软件的具体工作步骤是步骤1.初始化本地状态向量(11)每个节点保存一个N维本地状态向量SV,N为设定的最大节点数,每个站点对应SV中一个分量,初始时将SV各分量置为0;步骤2.本地产生操作信息(12)监听本地键盘、鼠标消息,产生操作信息;步骤3.发送操作消息及操作产生时本地状态向量(13)将此时本地状态向量,连同操作信息打包发送之;步骤4.本地操作立即执行,更新本地状态向量(14)将此本地操作立即执行,然后更新本地状态向量SV,将SV中本地节点对应向量增1,同时将该操作加入历史操作列表HL尾部;步骤5.接收远方节点操作消息及伴随状态向量(15)监听进程接收到远方节点操作消息及伴随状态向量;步骤6.来自同一节点操作必须按操作在站点产生的先后顺序执行,因此早到操作需要等待(16)若来自i站点的操作不满足标记就绪条件,说明存在i站点上先于此操作产生的其他操作还没到达,此操作需等待,直至i站点上先于此操作产生的其他操作在本地已全部执行;步骤7.判断等待(24)与否?如果等待,则进入添加到操作等待列表(17)模块,若出现等待情况,则将远方节点操作加入操作等待列表;如果不等待,则进入根据伴随状态向量和本地状态向量判定状态是否一致(18)模块,比较接收到的远方节点操作伴随状态向量和本地状态向量是否相等;步骤8.判断状态一致(25)与否?如果状态一致,则进入按正常方式在本地执行远方节点操作(19)模块,则将远方节点操作在本地执行之,然后将其加入本地历史操作列表尾部;如果状态不一致,则进入按操作在本地执行的先后顺序向后标记操作,并回溯状态向量,直至状态向量与远方节点操作的伴随向量一致(20),则将此时本地状态向量SV的值赋给一临时状态向量,自尾向头取出历史操作列表HL中操作项,判断其来源站点及类型,调用标记函数将其在文档中做标记,同时将临时变量中对应此操作的分量减1;重复上述过程,直至临时状态向量同传过来的操作的伴随状态向量相同;步骤9.按标记规则在本地执行远方节点操作(21)判断是否存在操作冲突;若存在,则按优先级原则和标记规则执行远方节点,否则按标记规则执行远方节点操作;步骤10.去除所有标记(22)调用标记去除函数,去除所有标记,将远方节点操作加入历史操作列表HL;步骤11.操作等待列表是否存在满足执行条件的操作(23)进入操作等待列表是否存在满足执行条件的操作(23)模块;此次操作执行完毕,查找操作等待列表,若此时存在与刚执行的操作来源相同的操作满足标记就绪条件,则将其取出,按标记算法执行之;步骤12.判断存在(26)与否?如果存在,则进入根据伴随状态向量和本地状态向量判定状态是否一致(18)模块;如果不存在,则流程结束(27)。
全文摘要
一种涉及计算机支持的协同工作(CSCW)技术领域的方法,尤指一种用于协同编辑支持物理上分布的多个协同者同时编辑同一文档的应用系统,用于保证操作冲突时一致性的基于标记和状态向量的带冲突检测的并发控制方法。本发明的装置由输入设备、输出设备、处理器等模块及互联网硬件环境等组成,本方法解决了冲突操作的一致性问题,为没有服务器进行集中控制的并发算法,实现对操作冲突的检测和解除,按标记规则和优先级规则执行远方节点操作等。本发明的优点本发明引入了状态向量,避免了操作上下文的传送;引入了优先级规则,实现了对操作冲突的检测和解除,该方法减少了操作信息交互内容,降低了网络传输量,缩短了响应时间。
文档编号H04L12/18GK1674524SQ20051002397
公开日2005年9月28日 申请日期2005年2月21日 优先权日2005年2月21日
发明者顾君忠, 吕钊, 崔修涛, 郭忠军, 何莉, 李卓辉 申请人:华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1