淺談基於域的網路磁碟系統的設計實現

  摘要:該文設計實現了一個基於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.