摘要:提出了面向版本管理的虛擬文件夾技術(shù),采用數(shù)據(jù)庫保存文件數(shù)據(jù)流,通過虛擬文件夾對(duì)文件系統(tǒng)進(jìn)行有效管理,實(shí)現(xiàn)了新舊版本文件的更新和恢復(fù)機(jī)制和文件保密的功能,并杜絕了病毒對(duì)文件系統(tǒng)的感染。該技術(shù)在企業(yè)的辦公文檔和技術(shù)圖檔的管理中得到了應(yīng)用。
關(guān)鍵詞:文檔;版本管理;虛擬文件夾
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A文章編號(hào):1009-3044(2008)28-0251-02
Research and Application of Version-oriented Virtual Folder in Documents and Drawings Management
CHEN Yu-ru1, SUN Yi2
(1.China Mobile Group Zhejiang Co.,Ltd. Pingyang Branch, Wenzhou 325400, China;2.Zhejiang Institute of Mechanical Electrical, Hangzhou 310053, China)
Abstract: The concept of version management oriented virtual folder was presented. The Documents were stored in the database, and were dominated by virtual folder, and were prevented from the virus. The version updating and restoring mechanism was provided. This technique has used on documents and drawings management.
Key words: document; version management; virtual folder
1 引言
文件是計(jì)算機(jī)的數(shù)據(jù)單元。對(duì)于計(jì)算機(jī)用戶來講,文件是至關(guān)重要的,因?yàn)樵谟?jì)算機(jī)上的所有操作結(jié)果都必須保存在文件中。用戶在使用計(jì)算機(jī)的過程中,經(jīng)常會(huì)遇到以下一系列的困擾。例如,用戶寫一篇文章,完成了初稿,在繼續(xù)完善時(shí),不想把初稿覆蓋,因此得把初稿另存一個(gè)副本,這樣隨著時(shí)間的推移,副本會(huì)越來越多,給文件的管理帶來不便。又如文件的保密功能,Windows操作系統(tǒng)中雖然可以設(shè)置登錄密碼,但別的用戶仍然可以輕易地將硬盤上的數(shù)據(jù)讀出,對(duì)于一機(jī)多用戶的場(chǎng)合更是如此,不能保證文檔的保密性。另外,在電腦病毒肆虐的今天,硬盤上的文件會(huì)輕易地被病毒感染,從而導(dǎo)致用戶多日的勞動(dòng)付諸東流。
那么怎么解決這些問題呢?本文提出面向版本管理的虛擬文件夾技術(shù),將用戶的重要文件保存到數(shù)據(jù)庫中,采用模擬Windows文件夾的虛擬文件夾對(duì)這些文檔以及它們的新舊版本進(jìn)行管理,以使用戶能象使用Windows資源管理器那樣方便地訪問、復(fù)制、更新和恢復(fù)這些文件。由于文件是經(jīng)過加密后保存在數(shù)據(jù)庫中的,用戶只有使用自己的帳戶和密碼,才能夠登錄系統(tǒng)訪問自己的資源,對(duì)于別的用戶這些資源是不可見的,因此即使在一機(jī)多用戶的情況下,仍然可以充分保證文件的保密性。同樣,病毒程序也無法感染這些文件資源。
2 面向版本管理的虛擬文件夾技術(shù)
文件夾是保存文件和子文件夾的地方。文件夾系統(tǒng)的結(jié)構(gòu)就象倒立的樹,處于頂部的是根目錄(樹干),根目錄下是子文件夾(樹枝),子文件夾可以包含自身的子文件夾和文件。但Windows的文件是不具有版本的,進(jìn)行復(fù)制操作時(shí),如果發(fā)生同一文件夾下具有同名文件的狀況,新的文件就會(huì)替換舊的文件,用戶以后再也不能恢復(fù)原先的文件。
所謂虛擬文件夾,指在Windows的文件系統(tǒng)之外提供一個(gè)獨(dú)立的文件系統(tǒng),用來保存和管理用戶的資料;所謂文檔,是指具有多個(gè)歷史版本的相關(guān)文件集合,其中文件一個(gè)是文檔的當(dāng)前版本,用戶打開該文檔,默認(rèn)打開當(dāng)前的文件版本,但隨時(shí)可以查看各個(gè)歷史版本文件,并可以將之激活為當(dāng)前的版本,而原先的當(dāng)前版本就退居為歷史版本。虛擬文件夾技術(shù)的優(yōu)點(diǎn)在于:1)虛擬文件夾是獨(dú)立于Windows文件夾之外的,用戶在Windows資源管理器中并不能找到這些文件,這樣就實(shí)現(xiàn)了文件的保密功能,并杜絕了病毒感染的可能性;2)文檔是基于版本的,一個(gè)文檔可以包含任意多個(gè)文件版本,即保存了用戶的編輯歷史,對(duì)于用戶而言,無需再將編輯歷史保存為許多副本,多個(gè)版本只呈現(xiàn)為一個(gè)文檔,管理起來要清晰簡(jiǎn)單地多,也可隨時(shí)打開和恢復(fù)歷史版本,避免了編輯歷史的丟失。
圖1是虛擬文件夾系統(tǒng)的結(jié)構(gòu)。文件夾的結(jié)構(gòu)與Windows文件系統(tǒng)類似,但其中的一個(gè)文檔可以包含任意多個(gè)版本的文件。要實(shí)現(xiàn)虛擬文件夾和版本管理,需要多種技術(shù)的支持,如虛擬文件夾如何構(gòu)建和保存,文件的入庫和出庫,文件操作、版本管理、文檔恢復(fù)、文檔的實(shí)時(shí)瀏覽等技術(shù)等,以下作一介紹。
2.1 虛擬文件夾構(gòu)建和保存
本文采用數(shù)據(jù)庫技術(shù)來實(shí)現(xiàn)虛擬文件夾?,F(xiàn)在多數(shù)數(shù)據(jù)庫管理系統(tǒng)提供了大二進(jìn)制數(shù)據(jù)類型,可以保存最大到1G以上的數(shù)據(jù),完全可以滿足保存一般文件的要求。一個(gè)文件在數(shù)據(jù)庫中體現(xiàn)為一條記錄,其二進(jìn)制數(shù)據(jù)就保存在一個(gè)數(shù)據(jù)類型為大二進(jìn)制的字段中。文件系統(tǒng)結(jié)構(gòu)樹的實(shí)現(xiàn),可以通過設(shè)置每個(gè)文件夾的父文件夾標(biāo)識(shí)號(hào)來實(shí)現(xiàn),在遍歷結(jié)構(gòu)樹時(shí),采用遞歸算法,可以訪問所有的子文件夾和文檔(如圖2所示)。
2.2 文件的入庫和出庫
文件的入庫是將文件的二進(jìn)制數(shù)據(jù)從Windows文件夾中讀出,并保存到數(shù)據(jù)庫中的虛擬文件夾的指定節(jié)點(diǎn)。出庫則把數(shù)據(jù)庫中的當(dāng)前文檔版本的大二進(jìn)制數(shù)據(jù)讀出,寫到Windows文件夾中用戶指定的文件中。對(duì)于文件夾的出入庫,則需要采用遞歸算法,以使指定文件夾中的子文件夾中的文件也能被讀出。入庫流程如圖3所示。由于文檔是采用版本管理的,因此該操作還可分為新文檔的出入庫和新版本的出入庫。
2.3 文件操作技術(shù)
文件操作包括文件復(fù)制、剪切、粘貼、搜索和打開等。其中,文檔的打開過程包括將文檔導(dǎo)出為到Windows文件系統(tǒng)中的臨時(shí)文件夾中,然后通過Automation服務(wù)器程序通知外部程序(如Word)打開該文檔,由用戶進(jìn)行編輯,外部程序編輯完關(guān)閉后,同樣通過Automation服務(wù)器程序通知虛擬文件夾管理系統(tǒng)對(duì)編輯完成的程序進(jìn)行新版本文檔的入庫。同時(shí)在數(shù)據(jù)庫中打開歷史表中記錄該文檔的打開信息,以便于日后查詢。
■
圖4文檔打開流程
2.4 版本管理和文檔恢復(fù)技術(shù)
版本管理功能包括版本更新、版本提升、版本刪除、版本恢復(fù)、版本信息查詢等。版本更新指當(dāng)用戶打開文檔,完成編輯后,系統(tǒng)就提示將編輯完成的文檔進(jìn)行入庫,入庫后就成為該文檔的最新版本,而原先的版本就退居為一個(gè)舊版本。版本提升是將文檔的一個(gè)舊版本提升為當(dāng)前版本;版本刪除是指舊版本放到回收站中,但不徹底刪除,還可以在回收站中恢復(fù)。版本信息查詢指用戶可以對(duì)任意一個(gè)版本文檔查詢其建立時(shí)間、文件大小和備注等信息,以找到自己所需的版本。以上這些功能構(gòu)成了一個(gè)有機(jī)整體,共同完成對(duì)版本的管理。
2.5 文檔恢復(fù)技術(shù)
文檔恢復(fù)包括已刪除文檔的還原、已刪除版本的還原以及虛擬文件夾的查錯(cuò)。為了避免用戶的誤刪除造成文檔的丟失,所有的刪除操作都是將文檔放入到回收站,是可還原的。在數(shù)據(jù)庫的實(shí)現(xiàn)上,刪除操作只是將文檔的Deleted字段設(shè)為1,并不將該記錄刪除,而在清空回收站時(shí)才將這些記錄徹底刪除。虛擬文件夾查錯(cuò)是指當(dāng)文件系統(tǒng)出現(xiàn)錯(cuò)誤,或用戶人工打開數(shù)據(jù)庫管理系統(tǒng)對(duì)數(shù)據(jù)表進(jìn)行編輯造成文件夾結(jié)構(gòu)樹層次關(guān)系錯(cuò)誤后,為了找到丟失的文檔而進(jìn)行的檢查,其原理是采用遞歸算法從根目錄開始進(jìn)行遍歷整個(gè)結(jié)構(gòu)樹,并將訪問到的節(jié)點(diǎn)標(biāo)志為正確,那么遍歷完成后數(shù)據(jù)庫中未標(biāo)志為正確的記錄就是錯(cuò)誤的節(jié)點(diǎn),將該節(jié)點(diǎn)移動(dòng)到查錯(cuò)結(jié)果中。
2.6 文檔的實(shí)時(shí)瀏覽技術(shù)
對(duì)于用戶來說,如果能在文檔管理系統(tǒng)的界面中直接打開文檔進(jìn)行瀏覽和編輯,就會(huì)感到更加便利。文檔的類型多種多樣,實(shí)現(xiàn)所有類型的文檔的實(shí)時(shí)瀏覽是不可能的,但對(duì)于常用的文檔,如Office文檔和文本文件等,則可以采用微軟的Web Browser控件打開和編輯。另外,象AutoCAD圖紙等,軟件廠商也提供了相應(yīng)的瀏覽控件,對(duì)這些控件開發(fā)專用的接口,即可實(shí)現(xiàn)對(duì)這些文檔的實(shí)時(shí)瀏覽。
3 技術(shù)的實(shí)現(xiàn)和應(yīng)用
本系統(tǒng)可以采用網(wǎng)絡(luò)版和單機(jī)版的模式。開發(fā)平臺(tái)采用Sybase公司的PowerBuilder 10.0。對(duì)于單機(jī)版,數(shù)據(jù)庫可采用Acess數(shù)據(jù)庫,無須安裝數(shù)據(jù)庫管理系統(tǒng);網(wǎng)絡(luò)版則采用SQL Server 2000。網(wǎng)絡(luò)版的系統(tǒng)架構(gòu)采用C/S模式,在客戶端安裝文檔管理系統(tǒng),數(shù)據(jù)庫安裝在服務(wù)器上。為了減小服務(wù)器的數(shù)據(jù)負(fù)擔(dān),也可采用分布式的數(shù)據(jù)庫結(jié)構(gòu),在用戶本地機(jī)器上安裝Access數(shù)據(jù)庫,在服務(wù)器上安裝SQL Server數(shù)據(jù)庫,文檔保存時(shí)其二進(jìn)制文檔保存在本地?cái)?shù)據(jù)庫上,而其它信息保存在服務(wù)器上,二者相互結(jié)合,避免在傳輸較大的文件時(shí)造成網(wǎng)絡(luò)瓶頸。系統(tǒng)界面如圖5所示。
該系統(tǒng)可用于企事業(yè)單位的文檔和圖檔的集中管理。目前該技術(shù)已經(jīng)在杭叉工程機(jī)械股份有限公司的企業(yè)信息化系統(tǒng)中得到應(yīng)用,對(duì)企業(yè)的辦公文檔和技術(shù)圖檔管理起到了良好的效果(文檔管理系統(tǒng)實(shí)例下載地址:http://www.changfengjixie.com/download/secretary2008.zip)。
近年來,叉車產(chǎn)品更新?lián)Q代加快,零部件圖紙的版本急劇增多,采用本技術(shù),并結(jié)合明細(xì)表處理技術(shù),在圖紙的管理上實(shí)現(xiàn)了版本化,并提高了安全性和保密性。
4 結(jié)束語
提出了面向版本管理的虛擬文件夾技術(shù),采用數(shù)據(jù)庫保存文件數(shù)據(jù)流,通過虛擬文件夾對(duì)文件系統(tǒng)進(jìn)行版本化管理;開發(fā)了基于版本的虛擬文件夾管理系統(tǒng),實(shí)現(xiàn)了文檔管理的保密性、安全性和版本化。同時(shí),該技術(shù)可以與明細(xì)表處理技術(shù)相結(jié)合,可以大幅度提高企業(yè)技術(shù)圖檔管理的效率。
參考文獻(xiàn):
[1] 馮向兵,莫蓉,桂元坤,等.基于設(shè)計(jì)知識(shí)的廣義版本管理研究及實(shí)現(xiàn)方法[J].中國(guó)制造業(yè)信息化,2006(3):17-21.
[2] 陳永輝,王振.基于產(chǎn)品結(jié)構(gòu)樹的圖文檔管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2006(1):20-22.
[3] 歐陽為民,蔡慶生.基于版本空間的并行概念學(xué)習(xí)[J].計(jì)算機(jī)研究與發(fā)展,1998(10):951-953.