论文部分内容阅读
近几年来,计算机支持的协同工作作为一个重要的研究领域越来越受到人们的重视,目前正处于蓬勃发展之中。本文研究CSCW的一个分支――实时协同文本编辑系统。实时协同文本编辑系统允许多人协作实时地完成对同一个文档的编辑。协同编辑系统要解决许多技术问题,特别是在出现并发操作的情况下维护文档的一致性的问题。本文在研究了现有的并发控制算法的基础上,提出了一种新的一致性维护算法――折叠式操作变换(FOPT)算法,并在该算法的基础上构建了一个基于Eclipse的实时协同编辑插件,该插件可以对分布式虚拟结对编程提供支持。FOPT算法包含三个部分,因果关系维护、操作变换和垃圾操作回收。因果关系维护使用熟知的基于状态向量的技术,通过使用状态向量来捕获操作之间的因果关系,并保证只有满足因果顺序的操作才能调度去变换和执行。操作变换是我们的主要关注和贡献,其主要思想是通过合理地组织操作历史缓冲记录使之与文档本身形成一种映射关系,并在操作变换的过程中采用隐藏/恢复并发操作的机制来解决并发冲突。垃圾操作回收将对操作变换来说无用的操作从历史缓冲区中去除,从而减少内存的消耗。文中我们对算法进行了详细描述并给出了具体的例子加以说明。Eclipse实时协同编辑插件的设计与实现是我们关注的另外一个重点。我们分别从通信层、会话管理、协同感知、一致性维护及与Eclipse集成这几个方面对系统的设计与实现问题进行了考察。在通信层,我们采用了Jabber作为通信平台,并在此基础上设计了一个可进行消息恢复的可靠传输机制。会话管理机制对于组织一群用户参与的协作来说是非常重要的,我们设计了一个基于发起人模式的会话管理协议,该会话管理协议能够支持一种特定的协作编程模式,并且允许站点中途加入会话。在协同感知方面,我们利用了Jabber作为即时通信平台所拥有的一些固有特性,简化了系统的开发。在设计插件的过程中,我们也对Eclipse技术进行了研究,开源的、高度可扩展的Eclipse平台大大方便了我们的开发。