论文部分内容阅读
随着信息革命的进行,计算机技术的飞速发展和网络通信的普及,人与人之间的交互已经逐渐跨越了时间和空间上的鸿沟,使得协同操作成为可能。协同编辑系统,是为了实现多人同时在线编辑文档的正确性和一致性需求而设计的。协同编辑系统具备以下的基本功能:只有具有相应权限的用户才可以对文档进行相应的操作,没有权限或者权限不够的用户不可以进行他无权限的操作;文件需要系统性地管理;用户编辑文档时要进行并发控制与一致性维护,防止文档的不同副本出现不一致性;文档在编辑过程中可以实现版本控制,利用Undo操作实现文档的操作撤销使文档回退到历史版本;该系统采用的是集中式的体系结构,前端用户对文档的所做所有操作都需要传递到服务器作用于数据库文档表的文档记录上,为了防止同一片文档因为不同的用户编辑导致他们各自的文档副本出现了不一致,必须及时的将每一个用户对他的文档副本所做的操作同步到其他用户的文档副本中。为了实现上述系统所具备的功能,本人主要设计了权限控制,文件管理,并发操作控制,操作回退,消息推送等五个模块。权限控制模块主要进行了以下设计:对文件进行操作时在线文件需要进行读写权限控制,有编辑权限的可以实现在线编辑,有读取文件权限的只能进行在线查看,文件创建时,要为文件赋予读者写者以及处理好文件如何继承上层文件夹权限,文件权限修改时,要重新定义文件与上层文件夹以及子文件的权限关系;文件管理模块主要实现对在线文档进行系统化的文件管理,用户可以创建/删除文件,上传/下载文件,导入/导出文件,复制/移动文件到特定位置,收藏/取消收藏文件,文件重命名,显示最近更新的文件,按名字模糊查找文件等基本文件系统管理;并发操作控制模块主要考虑多人同时在线编辑同一篇文档时,各个用户只对自己的副本进行编辑,这样不同用户的副本在各自的编辑下会接受用户的不同操作,这必然会引发一致性维护问题,即不同用户的不同副本产生了不一致,操作转换技术允许用户无约束地执行本地操作,它会将各个用户有冲突的操作进行转换后作用于文档,而不需要额外地申请锁或操作令牌。因此,即使用户在高延迟的广域网上进行协作,也可以获得很好的本地响应性。同时,操作转换技术会保留所有用户操作的效果,将所有用户操作的效果在不改变其“操作意愿”的前提下进行自动合并,避免了操作之间的覆盖和重写,使用操作转换算法实现有编辑权限的用户同时编辑同一篇文档时保证文档的正确性和一致性,保证文档不发生错误;操作回退模块使用户可以看到文档从建立到现在所有的历史记录,利用操作合并执行Undo操作,使文档回退到历史的某个版本;消息推送模块使用前后端全双工通信的WebSocket协议实现一个用户对一篇文档进行的操作要实时展示到别的用户的这个文档的副本中。系统编码实现之后,采用V模型进行系统的测试,首先对各个模块的各个子功能进行了单元测试,再将各个模块下的子功能串联在一起进行集成测试,最后通过完整的一个使用流程对系统进行系统测试,测试完成后,通过打包服务器将代码打包发布到服务器上,外部用户即可通过远程登陆,在浏览器前端通过UI使用系统。