欢迎来到天天文库
浏览记录
ID:11352643
大小:31.00 KB
页数:9页
时间:2018-07-11
《虚拟磁盘机制在企业文档管理系统中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、虚拟磁盘机制在企业文档管理系统中的应用 摘要文档管理系统在个人PC上的形态基本上以网盘客户端的形式出现。网盘的确是个“盘”,需要保存文件、建立目录、同步数据等操作。既然是一个本地“盘”,那么把文档管理系统的客户端做成一个真正的“盘符”,或者说文件系统是最理想的形态【关键词】虚拟磁盘机制企业文档管理系统文档管理的客户端基础就是“网盘”,个人网盘因为没有太多的共享需求,所以可以直接使用扫描目录已发现变化,实现文档实时同步但是,在企业级文档管理场景下,“数据共享协作”是主要的文档同步来源。海量的共享
2、文档数据使得客户端无法像个人网盘那样实现全同步。这会导致本地设备存储空间被占满,并且整个企业网络都是文档下载流量。因此,只能实现成“触发式同步”。触发式”同步机制虽然能够解决海量文件全同步的问题,但是无法解决大文件格式,如视频、PDF、dwg等格式文件在窄带或者网络质量不好的场景下访问1基于“触发”机制的同步方式主流的文档管理产品客户端依赖windows的HOOK机制,通过拦截特定的文件操作API,来实现触发同步。抽象起来可以描述为“打开时全文档下载”和“关闭后全文档上传但是应用程序对于一个文件
3、的操作往往包含如下四个步骤:(1)打开文件(创建文档);(2)读取文档;(3)写入文档;(4)关闭文档当然,有时文档会只读不写,有时则是只写不读对于应用程序而言,打开的时候并不需要读取文档。只有在真正调用ReadFile(……)(或者类似函数)时,才会需要出发下载文档(如果文档没有下载的话)。而且程序不会在一次调用过程中读取整个文档,除非这个文档很小。应用程序通常一次ReadFile()调用会读取几K到几十K字节。无论是应用程序,还是用户,对于一次ReadFile()调用的响应要求大体会在几毫秒
4、到几十毫秒之间。换句话说,应用程序对于文档的读取请求是随机访问对于采用Hook机制的文档同步客户端而言,需要拦截打开、关闭、读取、写入等文档操作。并且做出正确的响应。但是APIHOOK并不能拦截到应用程序对于文件的所有访问。Windows的文件操作API很多,不同的windows版本还由变化。寻找到所有文件操作API尽管可以做到,但是相当耗费精力。最终一类特殊的文件方式使得程序无法完全捕捉到文档访问。一些程序,例如“记事本”,通过内存映射的方式打开文档,读写将不会通过API,而是直接读取内存地址
5、无法拦截到所有文件读写的API情况下,此时基于hook机制的客户端被迫在文件打开的时候挂住api调用,将文件下载到文档同步客户端缓存里。然后继续执行系统原生的文件打开操作,完成文件打开。而后,应用程序继续调用读取文件API,执行原生的读写。同样,在捕获到文件关闭的操作后,文档同步客户端开始执行文档上传逻辑(实际情况是延迟上传以便版本合并)这种基于hook机制的同步方式存在的缺陷很明显,应用程序对文件的读写被迫延迟到文档下载完成之后。如果文件是几百MB或者上GB打消,这种延迟将会非常明显。这个当前
6、基于HOOK机制的文档同步客户端很大的一个问题。而且视频类的流媒体打开时并不需要整个文件,它们往往只读取了一点内容(meta和几个KB字节)便可以开始播放。此时该机制的同步客户端会加剧此事的用户体验,令用户无法忍受由于文档在触发下载之后,仍旧通过windows原生的机制读取本地磁盘上的文件,缓存目录必须是开放的、读取可访问的。也就是说整个文档管理同步客户端在本地PC上的缓存目录时暴露的,无法隐藏的,不利于安全保护,也不利于后续进行细颗粒度缓存策略2基于虚拟磁盘机制的同步方式归结起来,hook机制
7、无法拦截所有的文件操作。而拦截所有文件访问的方案包括两类:用户态文件系统和网络文件系统用后台文件系统主要用于Unix系统上。最常用的是LINUX的fuse。Windows上缺乏很成熟的用户态文件系统。Docken不够稳定,缺乏使用案例,而且在Windows系统中无法解决蓝屏的问题。VHD技术是微软官方提供的虚拟磁盘技术,颇具潜力,但是尚不明确是否可以截获所有文件操作,需进一步考察网络文件系统支持的虚拟磁盘技术术语网络文件协议比较奇特的应用方式。其原理是将文档同步客户端实现成一个单用户单挂载的网络
8、文件系统的服务器。运行在客户机器上。然后在客户机上挂载成一个网络卷。当应用程序访问这个卷上的文件时,网络文件系统就会将访问操作传递给文档同步客户端程序,从而实现文件操作拦截。作为网络文件系统服务器,必然会拦截到所有网络访问。当前,海量的文件共享协作场景下比较合适的网络协议是SMB系列。SMB协议很复杂,实现起来有较大的工作量,但是其功能比较完整,在Windows和osx上的兼容性较好无论哪种技术,虚拟磁盘方式会带来很多收益。首先,虚拟磁盘模式下,包括读写在内的文件访问都有本地文档管理客户端实现,
此文档下载收益归作者所有