浅谈基于域的网络磁盘系统的设计实现
摘要:该文设计实现了一个基于Windows Server 2003域的网络磁盘系统,主要讨论网络磁盘的共享文件夹划分、基于Windows Server 2003域的账户权限管理、文件操作实时监测服务ShareDocWatcher、文件更新提醒及网络磁盘共享文件夹图形化导航等功能。该网络磁盘系统基于微软的.Net Framework 4.0平台使用C#语言开发,采用IIS6.0+XML的Windows Server 2003服务器平台,前台使用HTML语言与Javascript技术,后台使用C# 4.0开发语言。
关键词:网络磁盘;Windows Server 2003域;活动目录;C#;Javascript;FileSystemWatcher
在企事业单位,各部门经常需要在个人计算机上存放一些普通的电子文件资料和一些局部范围查阅的电子文件资料,平时还得定期把电子化文件资料转存到移动磁盘或刻录到光盘里。在这种工作模式下,各部门经常需要重复手工备份电子文件资料的工作,工作单调、量大,当部门的计算机出现硬盘损坏时,还来不及备份的电子文件资料将丢失,甚至当备份介质又无法读取时,所有的电子文件资料将全部丢失,给单位和个人造成很大的损失。
随着企事业单位信息化程度的进一步提高,基于域的网络磁盘应运而生。它的出现,在根本上把人从手工备份电子化文件资料的重复工作中解脱出来,减轻了各部门的工作量,同时,实现了各部门电子化文件资料的统一管理,又可利用磁盘阵列技术实现电子化文件资料的冗余备份。相比于传统的电子化文件资料保存方式,网络磁盘系统具有以下主要优点:
1)界面友好,易学易用
网络磁盘系统采用B/S架构,人机交互方便。文件操作跟在windows系统中一样,复制文件直接拖动复制,删除修改直接点击右键。
2) 可靠性,安全性
网络磁盘系统基于Windows Server 2003域,利用活动目录进行文件操作的账户权限管理,保证了网络磁盘的可靠安全。同时,利用文件服务器的磁盘阵列技术实现电子化文件资料的冗余备份。
3) 扩展性
网络磁盘系统扩展性强,满足未来的扩展需要。当需要更改共享文件夹的共享时,只需在文件服务器上的共享文件夹和在Windows Server 2003活动目录中的安全组进行操作即可。
1 网络磁盘系统的详细设计
本网络磁盘系统分为4个部分:构建Windows Server 2003域模式,在域中建立安全组作为网络磁盘系统的共享权限容器;在Windows Server 2003操作系统上,按照需求在文件服务器上划分多个共享文件夹,并设置共享文件夹的共享权限,共享权限的划分是以Windows Server 2003域模式下的活动目录的安全组为基本单位;对共享文件夹的文件操作的实时监测,并把监测结果保存到指定的XML文件;前台页面一方面自动调用指定的XML文件以实时显示共享文件夹的文件操作的实时信息,另一方面设计了共享文件夹图形化导航以方便用户通过浏览器直接访问网络磁盘系统。
1.1 构建Windows Server 2003域模式
Windows Server 2003域模式有利于对网络资源、人员的统一管理。下面介绍Windows Server 2003建域的过程:
1)在单位的局域网内部署一台域控制器以搭建Windows Server 2003域,局域网内的所有计算机都加入该域;
2)在活动目录的用户和计算机管理中建立一个组织单元,即“职工OU”,并在该组织单元里按照部门建立多个子组织单元,用以存放本部门的职工域账户;
3)在活动目录的用户和计算机管理中建立一个组织单元,即“共享安全组OU”,作为共享文件夹共享权限的容器,在其中按照需求建立多个安全组,并在对应的安全组内添加相应的职工域账户。
1.2 共享文件夹的划分
1)在一台使用RAID5磁盘阵列技术的文件服务器上建立一个目录,即“单位共享文件夹”,用于存放所有的共享文件夹;
2)在“单位共享文件夹”目录中按照需求创建多个共享文件夹,以活动目录中的“共享安全组”组织单元中的安全组为基本单位为共享文件夹分别设置共享权限,实现不同的安全组内的职工域账户有不同的共享权限,即完全控制、读取及更改;
3)开启该文件服务器的SERVER服务。
4)创建包含共享文件夹配置信息的XML文件DocInfo.xml,该文件包括共享文件夹的四方面配置信息:共享文件夹的UNC路径(XML元素名称为ShareName)、共享文件夹在文件服务器的物理路径(XML元素名称为PhysicalPath)、共享文件夹的管理部门(XML元素名称为Author)及共享文件夹在前台页面的图形显示位置(XML元素名称为DisplayDir)。
1.3 共享文件夹中的文件操作的实时监测服务ShareDocWatcher
共享文件夹中的文件操作的实时监测服务ShareDocWatcher是在.NET Framework 4.0框架下,通过C#语言调用.Net的FileSystemWatcher类库开发,实现共享文件夹内文件的删除、新建及重命名操作的实时监测,并通过C#语言调用.Net类库把相应的信息写入保存最近一天对共享文件夹中的文件操作的实时监测信息的XML文件和监测日志文件中。
1.3.1 创建Windows服务项目ShareDocWatcher
ShareDocWatcher项目使用VS2010利用Visual C#语言开发实现共享文件夹中的文件操作的实时监测服务ShareDocWatcher。它包含一个Service1核心组件类,用于定义共享文件夹中的文件操作的实时监测Windows服务的内容。其中,Service1核心组件类包含5个核心方法和2个公用方法,使用3个变量(xmlpath表示用于保存共享文件夹的配置信息的XML文件,xmlpath1表示用于保存对共享文件夹中的文件操作的监测信息的XML文件,logpath表示用于保存网络磁盘监测日志信息的日志文件)。 1)WriteLog使用C#语言调用.Net类库FileStream类库与StreamWriter类库把ShareDocWatcher服务的日志信息与异常信息写入logpath所指定的日志文件中。
2)方法WriteDocLog通过C#调用XmlDocument类库把最近一天的对共享文件夹中的文件操作的监测信息写入xmlpath1所指定的XML文件中。
3)Start()方法用于启动ShareDocWatcher服务,设计原理是通过C#调用XmlDocument类库载入DocInfo.xml,为XML文件中的每一个共享文件夹根据其相应的配置信息分别创建一个FileSystemWatcher对象,配置FileSystemWatcher对象属性,关联FileSystemWatcher对象事件(Created、Deleted及Renamed事件)与事件处理函数,并调用WriteLog方法把开启ShareDocWatcher服务的操作结果写入logpath所指定的日志文件中。
4)End()方法用于停止ShareDocWatcher服务,设计原理是停止ShareDocWatcher服务,并调用WriteLog方法把停止ShareDocWatcher服务的操作结果写入logpath所指定的日志文件中。
5)leSystemWatcher对象的事件处理函数FileWatcher_Created()用于监测共享文件夹中的新建文件操作,设计原理是当共享文件夹下有文件创建操作时,通过C#调用FileInfo类库获取新文件的属性信息,并结合xmlpath所指定的XML文件调用XmlTextReader类库获取新文件所涉及的共享文件夹配置信息,并WriteDocLog方法把相关信息保存到xmlpath1所指定的XML文件以供前台调用,其中,通过对文件的后缀名(后缀名为tmp、TMP)或文件名为Thumbs.db或文件名包含一些特殊字符的过滤,实现对一些特殊文件的新建操作不予监测。
6)leSystemWatcher对象的事件处理函数FileWatcher_Deleted()用于监测共享文件夹中的文件删除操作,设计原理是当共享文件夹下有文件删除操作时,通过C#调用FileInfo类库获取被删除文件的属性信息,并调用XmlDocument类库查询xmlpath1所指定的XML文件是否有被删除文件的信息记录,若有,删除xmlpath1所指定的XML文件中的相应信息记录并保存,其中,通过对文件的后缀名(后缀名为tmp、TMP)或文件名包含一些特殊字符的过滤,实现对一些特殊文件的删除操作不予监测。
7)leSystemWatcher对象的事件处理函数FileWatcher_Renamed()用于监测共享文件夹中的重命名文件操作,设计原理是当共享文件夹下有文件重命名操作时,通过C#调用FileInfo类库获取重命名文件的属性信息,调用XmlDocument类库查询xmlpath1所指定的XML文件是否有被重命名文件的信息记录,若有,修改xmlpath1所指定的XML文件的相应信息记录并保存,其中,通过对文件的后缀名(后缀名为tmp、TMP)或文件名包含一些特殊字符的过滤,实现一些特殊文件的重命名操作不予监测。
1.3.2 生成服务的MSI安装包
1)使用VS2010创建安装项目ShareDocWatcherSetup,设置主输出来自项目ShareDocWatcher和内容文件来自项目ShareDocWatcher,使项目ShareDocWatcher加入到安装项目ShareDocWatcherSetup中来。
2) 在安装项目ShareDocWatcherSetup执行生成安装程序ShareDocWatcherSetup.msi的操作。
1.3.3 安装并启用共享文件夹的文件操作监测服务
在文件服务器上运行ShareDocWatcherSetup.msi以安装ShareDocWatcher服务并启用该服务。
1.4 前台显示页面设计
前台显示页面实现两个功能:共享文件夹的图形化导航和实时显示最近一天的文件更新信息,即访问NewDoc.xml文件。其采用Frame框架结构,使用Html语言与Javascript技术开发实现。
1.4.1 共享文件夹的图形化链接
共享文件夹的图形化导航页面使用Mindjet MindManager设计,按照部门划分,即一个部门一个图形化导航界面,各共享文件夹按照星型结构排布。共享链接使用UNC路径方式访问。
1.4.2 实时显示一天内的最新有操作文件
实时显示最近一天的文件更新信息所涉及的文件操作包括新建、删除及重命名等,即访问NewDoc.xml文件。该文件包括文件更新的发布部门、操作所涉及的文件名、操作日期及文件的UNC访问路径。其利用Javascript的XMLHttpRequest对象提供在不重新加载页面的情况下实时读取NewDoc.xml文件实现。
2 系统测试
测试是网络磁盘系统开发的最后一个阶段,也是质量保证的至关重要的一个环节。通过对网络磁盘系统的功能测试和数据测试,本系统达到预期的效果。
3 结束语
本文首先介绍了网络磁盘系统开发的必要性,然后从4个方面详细叙述了网络磁盘系统的设计:构建Windows Server 2003域模式、共享文件夹的划分、共享文件夹操作的实时监测服务及前台显示页面设计。其中,主要讲述了共享文件夹操作的实时监测服务的具体实现过程。
参考文献:
[1] 王小科, 徐薇. C#4.0从入门到精通[M]. 2版. 北京: 清华大学出版社, 2010.
[2] 陈景亮, 钟小平, 赵丽萍, 等. 网络操作系统―Windows Server 2003配置与管理[M]. 北京: 人民邮电出版社, 2011.