当前位置: 首页 > 专利查询>复旦大学专利>正文

基于操作效果关系的选择性撤销方法技术

技术编号:3998061 阅读:232 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于计算机支持的协同工作技术领域,具体是一种基于操作效果关系的选择性撤销方法。包括:操作之间Do-Undo关系的跟踪、程序的控制算法、处理本地Do/Undo操作、处理远程Do/Undo操作、整合本地操作及整合远程操作。Undo是分布式交互协同应用程序不可或缺的重要功能之一。本发明专利技术可以支持用户撤消操作日志中的任何操作,在各个用户间实现数据的一致性维护。

【技术实现步骤摘要】

本专利技术属于计算机支持的协同工作(Computer Support Cooperative Work)技术 领域,具体涉及一种,该方法可以使得用户在分布式 协同应用程序中,任意地撤销操作日志中的任何历史操作。本专利技术利用操作之间的操作效 果关系,自动地处理用户操作之间的复杂的Do-Undo关系,在各个协同站点间实现数据的 一致性维护。
技术介绍
Undo是交互式应用程序不可或缺的重要功能之一。许多日常的单用户应用程序, 包括文本编辑器、编程软件、设计工具、Web浏览器等都允许用户按时间顺序撤消最近的若 干个历史操作。Undo通常用于用户层面的错误恢复,比如修正拼写错误等。同时由于Undo 机制能撤消错误操作所带来的不良影响,它也可以鼓励用户探索不熟悉的应用程序功能。与单用户应用程序中的Undo机制相比,在协同应用程序中实现Undo机制需要面 临很多的技术挑战。当用户分布地并行工作时,由于并发性,本地和远程操作可能会被任意 地交叉执行。而用户的Undo请求可能是指撤消最后一个本地操作或也可能是指撤销最后 一个在本地执行的操作(可能是本地产生操作,也可能是远程站点产生操作)。用户要撤销 的是最后一个本地操作时,该操作执行后可能又有其它的远程操作已经在本地被执行。因 此,该操作的定义上下文已经不是当前的文档状态,撤销该操作也就不能靠简单地执行其 逆操作来完成。而用户要撤销最后一个远程操作时,系统则要准确无误地判定要撤销是哪 个用户所执行的哪个操作。否则,该Undo请求在不同的站点上就可能会有不同的执行效 果,引起不可预测的系统行为。在分布式的协同环境中,由于用户要撤销操作的定义状态可能已不是当前的文档 状态,协同环境下的Undo机制需要支持Selective Undo以撤消操作日志中任何所选操作 的操作效果。由于操作转换技术可以对任意的一对操作进行转换以交换其执行顺序,操作 转换技术是在分布式协同系统中实现Selective Undo非常理想和有效的工具。操作转换 的这种特性使得去除某个历史操作的效果并重新安排操作日志中操作的执行顺序成为可 能。在极端情况下,借助操作转换技术我们甚至可以任意地组织历史操作的执行顺序,有选 择性地保留需要的操作效果,去除不需要的操作效果。
技术实现思路
本专利技术的目的在于提出一种,具体是构建一 个可以选择性撤销任何历史操作的算法框架。该算法框架包括操作之间Do-Undo关系的跟 踪、程序的控制算法、处理本地Do/Undo操作、处理远程Do/Undo操作、整合本地操作及整合 远程操作。下面先介绍一些相关的基本概念。具有高交互性的协同应用程序的一个重要目标就是本地操作的高响应性,即本地操作的无延迟执行。实现操作的无延迟执行的一个重要手段就数据的全复制式结构,即每 个站点保留一份数据副本,用户的操作在本地可以立即执行,然后发送给其它站点。每个站 点拥有一个用以记录历史操作的操作日志H和用以缓存其它未处理的来自于其它站点远 程操作的接收队列RQ。在分布式系统中,基于状态向量(State Vector)的逻辑时间戳被广泛用来判别操 作之间的因果关系(Causal Relationship)。一个时间戳是一个向量,向量的每一维表示一 个站点,而向量中这一维上的值表示已经执行了这个站点中的操作的数量。每个站点拥有 一个代表本地状态的状态向量sv。由于来自同一个站点的操作都是顺序执行的,于是一个 时间戳可以表示在该时间戳的状态下已执行了哪些操作,如果一个时间戳中所有已执行的 操作都包含在另一个时间戳的已执行操作中,则两个时间戳满足因果关系,否则是并发关 系。如果两个操作ol和o2具有因果先于关系,则记为ol — o2 ;如果两个操作ol和o2具 有并发关系,则记为ol I I 02。每个操作产生后,本地站点的状态向量会作为逻辑时间戳附在 该操作上。一种Undo方案首先要解决如何在操作日志中选择要撤销的历史操作。操作日志 中的操作可以使用其下标i来索引,例如H。在基于向量时间戳的系统中,给定一个已存 在的向量时间戳v,我们可以在操作日志中找到一个唯一与之对应的历史操作H。我们 用符号imdo(i)来表示用户要撤销操作日志中第i个操作。操作之间Do-Undo关系的跟踪每个操作o是一个具有如下属性的九元组(id,type,pos,char,v,dv,tv,ov,uv) 0. id是产生操作o的站点id ;o. type是操作的类型,为ins或者del ;o. pos是o的操作位 置;o. char是o插入或删除效果字符。另外的5个属性都与向量时间戳有关系,它们分别 是 o.V:o的向量时间戳集合; o. dv 由依赖于o的操作的向量时间戳构成的集合; o. tv 由效果字符与o的效果字符冲突的操作的向量时间戳构成的集合; o. ov 如果o是一个Undo操作,则o. ov是它要撤销的原始操作的向量时间戳; 否则,0.0V = 0; o. uv 如果o曾经被某个操作0'撤销,则o. UV = 0' . v ;否则,0. uv = 0。我们用上述这些向量时间戳来跟踪操作之间的相互关系。比如,若操作0'撤销了 操作0,那么0.UV = 0' .V并且0' .0V = 0.Vo同时,它们效果字符的操作位置相同,故 0' .tv = o.v,并且0'在操作日志中紧跟着0存放。如果多个操作删除了同一效果字符 或者它们撤销了同一个原始操作,那么,它们在H中将被合并为一个操作0而且o. V是这些 操作的向量时间戳构成的集合。我们定义三个用以判定两个操作之间操作效果序的操作符。操作符< e 给定任意的两个操作ol和02,当ol和o2定义在相同的文档状态上 时,ol < e o2如果下述三个条件之一成立(l)ol. pos < o2. pos ;(2) ol. pos = o2. pos, ol. type = ins, o2. type = del ;(3) ol. pos = o2. pos, ol. type = o2. type = ins, ol. id < o2. id。当ol和02定义在相邻的文档状态上时,ol < e o2如果下述两个条件之一成立(l)ol. pos < o2. pos ;(2)ol. pos = o2. pos, ol. type = o2. type = del。操作符> e :> e是与操作符< e对称的操作符。给定任意的两个操作ol和02, 当ol和o2定义在相同的文档状态上时,ol > e o2如果下述三个条件之一成立(l)ol. pos > o2. pos ;(2)ol. pos = o2. pos, ol. type = del, o2. type = ins ;(3) ol. pos = o2. pos, ol. type = o2. type = ins, ol. id > o2. id。当ol和o2定义在相邻的文档状态上时,ol > e o2如果下述两个条件之一成立(l)ol. pos > o2. pos ;(2)ol. pos = o2. pos, ol. type 本文档来自技高网
...

【技术保护点】
基于操作效果关系的选择性撤销方法,其特征在于利用操作效果序跟踪操作之间的Do-Undo关系,并利用历史操作之间的操作效果关系处理本地和远程的Do/Undo操作;其控制算法包含三个线程L、R和N:线程N用来接收远程操作,线程L和R分别用来处理本地和远程的Do/Undo操作;其中处理本地和远程的Do/Undo操作的算法分别包含两个Do/Undo操作整合过程integrateL和integrateR;整个选择性撤销方法分为两部分:对本地Do/Undo操作的处理和对远程Do/Undo操作的处理;其中:对本地Do/Undo操作的处理流程为:1)若本地操作为Do操作,程序执行本地操作,然后调用integrateL过程将本地Do操作按操作效果序添加到操作日志中;2)若本地操作为Undo操作,根据该操作与其原始操作之间的操作效果序产生该操作的逆操作,记录该操作与其原始操作之间的Do-Undo关系后按照处理Do操作的方式进行整合处理;对远程Do/Undo操作的处理流程为:1)若远程操作为Do操作,调用integrateR过程产生一个可以在当前文档状态正确执行的操作形式,执行该操作并将其添加到操作日志中;2)若远程操作为Undo操作,扫描操作日志来定位其原始操作,如果其原始操作已经被该远程操作的并发操作所撤销,则将该远程操作与其效果等价的并发操作进行合并,否则记录该远程操作与其原始操作之间的Do-Undo关系。然后,按照处理远程Do操作的方式处理该Undo操作。...

【技术特征摘要】

【专利技术属性】
技术研发人员:邵斌李杜顾宁
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

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

1