淺談基于域的網(wǎng)絡(luò)磁盤(pán)系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)
淺談基于域的網(wǎng)絡(luò)磁盤(pán)系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)
摘要:該文設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于Windows Server 2003域的網(wǎng)絡(luò)磁盤(pán)系統(tǒng),主要討論網(wǎng)絡(luò)磁盤(pán)的共享文件夾劃分、基于Windows Server 2003域的賬戶(hù)權(quán)限管理、文件操作實(shí)時(shí)監(jiān)測(cè)服務(wù)ShareDocWatcher、文件更新提醒及網(wǎng)絡(luò)磁盤(pán)共享文件夾圖形化導(dǎo)航等功能。該網(wǎng)絡(luò)磁盤(pán)系統(tǒng)基于微軟的.Net Framework 4.0平臺(tái)使用C#語(yǔ)言開(kāi)發(fā),采用IIS6.0+XML的Windows Server 2003服務(wù)器平臺(tái),前臺(tái)使用HTML語(yǔ)言與Javascript技術(shù),后臺(tái)使用C# 4.0開(kāi)發(fā)語(yǔ)言。
關(guān)鍵詞:網(wǎng)絡(luò)磁盤(pán);Windows Server 2003域;活動(dòng)目錄;C#;Javascript;FileSystemWatcher
在企事業(yè)單位,各部門(mén)經(jīng)常需要在個(gè)人計(jì)算機(jī)上存放一些普通的電子文件資料和一些局部范圍查閱的電子文件資料,平時(shí)還得定期把電子化文件資料轉(zhuǎn)存到移動(dòng)磁盤(pán)或刻錄到光盤(pán)里。在這種工作模式下,各部門(mén)經(jīng)常需要重復(fù)手工備份電子文件資料的工作,工作單調(diào)、量大,當(dāng)部門(mén)的計(jì)算機(jī)出現(xiàn)硬盤(pán)損壞時(shí),還來(lái)不及備份的電子文件資料將丟失,甚至當(dāng)備份介質(zhì)又無(wú)法讀取時(shí),所有的電子文件資料將全部丟失,給單位和個(gè)人造成很大的損失。
隨著企事業(yè)單位信息化程度的進(jìn)一步提高,基于域的網(wǎng)絡(luò)磁盤(pán)應(yīng)運(yùn)而生。它的出現(xiàn),在根本上把人從手工備份電子化文件資料的重復(fù)工作中解脫出來(lái),減輕了各部門(mén)的工作量,同時(shí),實(shí)現(xiàn)了各部門(mén)電子化文件資料的統(tǒng)一管理,又可利用磁盤(pán)陣列技術(shù)實(shí)現(xiàn)電子化文件資料的冗余備份。相比于傳統(tǒng)的電子化文件資料保存方式,網(wǎng)絡(luò)磁盤(pán)系統(tǒng)具有以下主要優(yōu)點(diǎn):
1)界面友好,易學(xué)易用
網(wǎng)絡(luò)磁盤(pán)系統(tǒng)采用B/S架構(gòu),人機(jī)交互方便。文件操作跟在windows系統(tǒng)中一樣,復(fù)制文件直接拖動(dòng)復(fù)制,刪除修改直接點(diǎn)擊右鍵。
2) 可靠性,安全性
網(wǎng)絡(luò)磁盤(pán)系統(tǒng)基于Windows Server 2003域,利用活動(dòng)目錄進(jìn)行文件操作的賬戶(hù)權(quán)限管理,保證了網(wǎng)絡(luò)磁盤(pán)的可靠安全。同時(shí),利用文件服務(wù)器的磁盤(pán)陣列技術(shù)實(shí)現(xiàn)電子化文件資料的冗余備份。
3) 擴(kuò)展性
網(wǎng)絡(luò)磁盤(pán)系統(tǒng)擴(kuò)展性強(qiáng),滿(mǎn)足未來(lái)的擴(kuò)展需要。當(dāng)需要更改共享文件夾的共享時(shí),只需在文件服務(wù)器上的共享文件夾和在Windows Server 2003活動(dòng)目錄中的安全組進(jìn)行操作即可。
1 網(wǎng)絡(luò)磁盤(pán)系統(tǒng)的詳細(xì)設(shè)計(jì)
本網(wǎng)絡(luò)磁盤(pán)系統(tǒng)分為4個(gè)部分:構(gòu)建Windows Server 2003域模式,在域中建立安全組作為網(wǎng)絡(luò)磁盤(pán)系統(tǒng)的共享權(quán)限容器;在Windows Server 2003操作系統(tǒng)上,按照需求在文件服務(wù)器上劃分多個(gè)共享文件夾,并設(shè)置共享文件夾的共享權(quán)限,共享權(quán)限的劃分是以Windows Server 2003域模式下的活動(dòng)目錄的安全組為基本單位;對(duì)共享文件夾的文件操作的實(shí)時(shí)監(jiān)測(cè),并把監(jiān)測(cè)結(jié)果保存到指定的XML文件;前臺(tái)頁(yè)面一方面自動(dòng)調(diào)用指定的XML文件以實(shí)時(shí)顯示共享文件夾的文件操作的實(shí)時(shí)信息,另一方面設(shè)計(jì)了共享文件夾圖形化導(dǎo)航以方便用戶(hù)通過(guò)瀏覽器直接訪問(wèn)網(wǎng)絡(luò)磁盤(pán)系統(tǒng)。
1.1 構(gòu)建Windows Server 2003域模式
Windows Server 2003域模式有利于對(duì)網(wǎng)絡(luò)資源、人員的統(tǒng)一管理。下面介紹Windows Server 2003建域的過(guò)程:
1)在單位的局域網(wǎng)內(nèi)部署一臺(tái)域控制器以搭建Windows Server 2003域,局域網(wǎng)內(nèi)的所有計(jì)算機(jī)都加入該域;
2)在活動(dòng)目錄的用戶(hù)和計(jì)算機(jī)管理中建立一個(gè)組織單元,即“職工OU”,并在該組織單元里按照部門(mén)建立多個(gè)子組織單元,用以存放本部門(mén)的職工域賬戶(hù);
3)在活動(dòng)目錄的用戶(hù)和計(jì)算機(jī)管理中建立一個(gè)組織單元,即“共享安全組OU”,作為共享文件夾共享權(quán)限的容器,在其中按照需求建立多個(gè)安全組,并在對(duì)應(yīng)的安全組內(nèi)添加相應(yīng)的職工域賬戶(hù)。
1.2 共享文件夾的劃分
1)在一臺(tái)使用RAID5磁盤(pán)陣列技術(shù)的文件服務(wù)器上建立一個(gè)目錄,即“單位共享文件夾”,用于存放所有的共享文件夾;
2)在“單位共享文件夾”目錄中按照需求創(chuàng)建多個(gè)共享文件夾,以活動(dòng)目錄中的“共享安全組”組織單元中的安全組為基本單位為共享文件夾分別設(shè)置共享權(quán)限,實(shí)現(xiàn)不同的安全組內(nèi)的職工域賬戶(hù)有不同的共享權(quán)限,即完全控制、讀取及更改;
3)開(kāi)啟該文件服務(wù)器的SERVER服務(wù)。
4)創(chuàng)建包含共享文件夾配置信息的XML文件DocInfo.xml,該文件包括共享文件夾的四方面配置信息:共享文件夾的UNC路徑(XML元素名稱(chēng)為ShareName)、共享文件夾在文件服務(wù)器的物理路徑(XML元素名稱(chēng)為PhysicalPath)、共享文件夾的管理部門(mén)(XML元素名稱(chēng)為Author)及共享文件夾在前臺(tái)頁(yè)面的圖形顯示位置(XML元素名稱(chēng)為DisplayDir)。
1.3 共享文件夾中的文件操作的實(shí)時(shí)監(jiān)測(cè)服務(wù)ShareDocWatcher
共享文件夾中的文件操作的實(shí)時(shí)監(jiān)測(cè)服務(wù)ShareDocWatcher是在.NET Framework 4.0框架下,通過(guò)C#語(yǔ)言調(diào)用.Net的FileSystemWatcher類(lèi)庫(kù)開(kāi)發(fā),實(shí)現(xiàn)共享文件夾內(nèi)文件的刪除、新建及重命名操作的實(shí)時(shí)監(jiān)測(cè),并通過(guò)C#語(yǔ)言調(diào)用.Net類(lèi)庫(kù)把相應(yīng)的信息寫(xiě)入保存最近一天對(duì)共享文件夾中的文件操作的實(shí)時(shí)監(jiān)測(cè)信息的XML文件和監(jiān)測(cè)日志文件中。
1.3.1 創(chuàng)建Windows服務(wù)項(xiàng)目ShareDocWatcher
ShareDocWatcher項(xiàng)目使用VS2010利用Visual C#語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)共享文件夾中的文件操作的實(shí)時(shí)監(jiān)測(cè)服務(wù)ShareDocWatcher。它包含一個(gè)Service1核心組件類(lèi),用于定義共享文件夾中的文件操作的實(shí)時(shí)監(jiān)測(cè)Windows服務(wù)的內(nèi)容。其中,Service1核心組件類(lèi)包含5個(gè)核心方法和2個(gè)公用方法,使用3個(gè)變量(xmlpath表示用于保存共享文件夾的配置信息的XML文件,xmlpath1表示用于保存對(duì)共享文件夾中的文件操作的監(jiān)測(cè)信息的XML文件,logpath表示用于保存網(wǎng)絡(luò)磁盤(pán)監(jiān)測(cè)日志信息的日志文件)。 1)WriteLog使用C#語(yǔ)言調(diào)用.Net類(lèi)庫(kù)FileStream類(lèi)庫(kù)與StreamWriter類(lèi)庫(kù)把ShareDocWatcher服務(wù)的日志信息與異常信息寫(xiě)入logpath所指定的日志文件中。
2)方法WriteDocLog通過(guò)C#調(diào)用XmlDocument類(lèi)庫(kù)把最近一天的對(duì)共享文件夾中的文件操作的監(jiān)測(cè)信息寫(xiě)入xmlpath1所指定的XML文件中。
3)Start()方法用于啟動(dòng)ShareDocWatcher服務(wù),設(shè)計(jì)原理是通過(guò)C#調(diào)用XmlDocument類(lèi)庫(kù)載入DocInfo.xml,為XML文件中的每一個(gè)共享文件夾根據(jù)其相應(yīng)的配置信息分別創(chuàng)建一個(gè)FileSystemWatcher對(duì)象,配置FileSystemWatcher對(duì)象屬性,關(guān)聯(lián)FileSystemWatcher對(duì)象事件(Created、Deleted及Renamed事件)與事件處理函數(shù),并調(diào)用WriteLog方法把開(kāi)啟ShareDocWatcher服務(wù)的操作結(jié)果寫(xiě)入logpath所指定的日志文件中。
4)End()方法用于停止ShareDocWatcher服務(wù),設(shè)計(jì)原理是停止ShareDocWatcher服務(wù),并調(diào)用WriteLog方法把停止ShareDocWatcher服務(wù)的操作結(jié)果寫(xiě)入logpath所指定的日志文件中。
5)leSystemWatcher對(duì)象的事件處理函數(shù)FileWatcher_Created()用于監(jiān)測(cè)共享文件夾中的新建文件操作,設(shè)計(jì)原理是當(dāng)共享文件夾下有文件創(chuàng)建操作時(shí),通過(guò)C#調(diào)用FileInfo類(lèi)庫(kù)獲取新文件的屬性信息,并結(jié)合x(chóng)mlpath所指定的XML文件調(diào)用XmlTextReader類(lèi)庫(kù)獲取新文件所涉及的共享文件夾配置信息,并WriteDocLog方法把相關(guān)信息保存到xmlpath1所指定的XML文件以供前臺(tái)調(diào)用,其中,通過(guò)對(duì)文件的后綴名(后綴名為tmp、TMP)或文件名為T(mén)humbs.db或文件名包含一些特殊字符的過(guò)濾,實(shí)現(xiàn)對(duì)一些特殊文件的新建操作不予監(jiān)測(cè)。
6)leSystemWatcher對(duì)象的事件處理函數(shù)FileWatcher_Deleted()用于監(jiān)測(cè)共享文件夾中的文件刪除操作,設(shè)計(jì)原理是當(dāng)共享文件夾下有文件刪除操作時(shí),通過(guò)C#調(diào)用FileInfo類(lèi)庫(kù)獲取被刪除文件的屬性信息,并調(diào)用XmlDocument類(lèi)庫(kù)查詢(xún)xmlpath1所指定的XML文件是否有被刪除文件的信息記錄,若有,刪除xmlpath1所指定的XML文件中的相應(yīng)信息記錄并保存,其中,通過(guò)對(duì)文件的后綴名(后綴名為tmp、TMP)或文件名包含一些特殊字符的過(guò)濾,實(shí)現(xiàn)對(duì)一些特殊文件的刪除操作不予監(jiān)測(cè)。
7)leSystemWatcher對(duì)象的事件處理函數(shù)FileWatcher_Renamed()用于監(jiān)測(cè)共享文件夾中的重命名文件操作,設(shè)計(jì)原理是當(dāng)共享文件夾下有文件重命名操作時(shí),通過(guò)C#調(diào)用FileInfo類(lèi)庫(kù)獲取重命名文件的屬性信息,調(diào)用XmlDocument類(lèi)庫(kù)查詢(xún)xmlpath1所指定的XML文件是否有被重命名文件的信息記錄,若有,修改xmlpath1所指定的XML文件的相應(yīng)信息記錄并保存,其中,通過(guò)對(duì)文件的后綴名(后綴名為tmp、TMP)或文件名包含一些特殊字符的過(guò)濾,實(shí)現(xiàn)一些特殊文件的重命名操作不予監(jiān)測(cè)。
1.3.2 生成服務(wù)的MSI安裝包
1)使用VS2010創(chuàng)建安裝項(xiàng)目ShareDocWatcherSetup,設(shè)置主輸出來(lái)自項(xiàng)目ShareDocWatcher和內(nèi)容文件來(lái)自項(xiàng)目ShareDocWatcher,使項(xiàng)目ShareDocWatcher加入到安裝項(xiàng)目ShareDocWatcherSetup中來(lái)。
2) 在安裝項(xiàng)目ShareDocWatcherSetup執(zhí)行生成安裝程序ShareDocWatcherSetup.msi的操作。
1.3.3 安裝并啟用共享文件夾的文件操作監(jiān)測(cè)服務(wù)
在文件服務(wù)器上運(yùn)行ShareDocWatcherSetup.msi以安裝ShareDocWatcher服務(wù)并啟用該服務(wù)。
1.4 前臺(tái)顯示頁(yè)面設(shè)計(jì)
前臺(tái)顯示頁(yè)面實(shí)現(xiàn)兩個(gè)功能:共享文件夾的圖形化導(dǎo)航和實(shí)時(shí)顯示最近一天的文件更新信息,即訪問(wèn)NewDoc.xml文件。其采用Frame框架結(jié)構(gòu),使用Html語(yǔ)言與Javascript技術(shù)開(kāi)發(fā)實(shí)現(xiàn)。
1.4.1 共享文件夾的圖形化鏈接
共享文件夾的圖形化導(dǎo)航頁(yè)面使用Mindjet MindManager設(shè)計(jì),按照部門(mén)劃分,即一個(gè)部門(mén)一個(gè)圖形化導(dǎo)航界面,各共享文件夾按照星型結(jié)構(gòu)排布。共享鏈接使用UNC路徑方式訪問(wèn)。
1.4.2 實(shí)時(shí)顯示一天內(nèi)的最新有操作文件
實(shí)時(shí)顯示最近一天的文件更新信息所涉及的文件操作包括新建、刪除及重命名等,即訪問(wèn)NewDoc.xml文件。該文件包括文件更新的發(fā)布部門(mén)、操作所涉及的文件名、操作日期及文件的UNC訪問(wèn)路徑。其利用Javascript的XMLHttpRequest對(duì)象提供在不重新加載頁(yè)面的情況下實(shí)時(shí)讀取NewDoc.xml文件實(shí)現(xiàn)。
2 系統(tǒng)測(cè)試
測(cè)試是網(wǎng)絡(luò)磁盤(pán)系統(tǒng)開(kāi)發(fā)的最后一個(gè)階段,也是質(zhì)量保證的至關(guān)重要的一個(gè)環(huán)節(jié)。通過(guò)對(duì)網(wǎng)絡(luò)磁盤(pán)系統(tǒng)的功能測(cè)試和數(shù)據(jù)測(cè)試,本系統(tǒng)達(dá)到預(yù)期的效果。
3 結(jié)束語(yǔ)
本文首先介紹了網(wǎng)絡(luò)磁盤(pán)系統(tǒng)開(kāi)發(fā)的必要性,然后從4個(gè)方面詳細(xì)敘述了網(wǎng)絡(luò)磁盤(pán)系統(tǒng)的設(shè)計(jì):構(gòu)建Windows Server 2003域模式、共享文件夾的劃分、共享文件夾操作的實(shí)時(shí)監(jiān)測(cè)服務(wù)及前臺(tái)顯示頁(yè)面設(shè)計(jì)。其中,主要講述了共享文件夾操作的實(shí)時(shí)監(jiān)測(cè)服務(wù)的具體實(shí)現(xiàn)過(guò)程。
參考文獻(xiàn):
[1] 王小科, 徐薇. C#4.0從入門(mén)到精通[M]. 2版. 北京: 清華大學(xué)出版社, 2010.
[2] 陳景亮, 鐘小平, 趙麗萍, 等. 網(wǎng)絡(luò)操作系統(tǒng)―Windows Server 2003配置與管理[M]. 北京: 人民郵電出版社, 2011.