论文部分内容阅读
协同组编著的提出,是为了支持多个用户在不同的计算机终端同时协同处理共享文档。不同于以往的一致性维护模型,在协同环境下用户期待他人的参与,于是系统并不需要非常严格的序列化限制,相反却对操作的响应时间和操作的自由性有着较高的要求。组编辑是这一类一致性维护问题的广泛接受的抽象研究模型。对组编辑的研究是寻找协同环境下的一个统一的模型及其解决方法。传统基于锁或者序列化的一致性维护方法无法满足操作的响应时间和操作自由性的要求;而现有的协同环境下的一致性维护方法无法支持关系操作。本文的主要研究工作如下:
提出了一个基于地址空间转换的一致性维护方法,通过回溯数据的地址空间到操作产生的时刻,保证操作在所有站点拥有相同的执行环境。其中线性结构用来表示多个对象间的全序关系,是整个一致性维护算法的重要基础;而树型结果表示了一个结构化的数据关系,并且用来支持基于关系的操作表示。本文的算法可以实现协同环境下的一致性维护模型,并满足相应的操作正确性的验证条件。
进一步,本文讨论了一致性维护的四个相关问题:(1)通过精简操作的历史队列,实现算法持续执行时的效率优化;(2)通过引入对象节点的删除计数器,实现对文档的协同编著中的Undo操作支持;(3)介绍了一个新的支持单站点上共享数据的并发操作的时间戳模型;(4)通过引入空操作NOOP且保持事务操作和相应的NOOP操作同时执行,保证事务操作的序列化。
最后,对算法的理论分析和实验的结果表明,在分布式环境中,本文的算法不依赖于站点间的网络延迟,拥有更高的效率,以及更好的用户感受。本文的方法在CoAutoCAD演示系统中得到了具体的应用,也证明了本文算法拥有在不改变已有的商业软件的前提下,可以实现软件的协同化的能力。