電子公文管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
版本控制主要是通過(guò)獲取文件最近修改時(shí)間來(lái)實(shí)現(xiàn)的。具體來(lái)說(shuō)包括以下步驟:1)系統(tǒng)啟動(dòng)時(shí),通過(guò)oracle中的sysdate函數(shù)取得數(shù)據(jù)庫(kù)服務(wù)器的當(dāng)前時(shí)間,并將客戶端時(shí)間與服務(wù)器時(shí)間進(jìn)行自動(dòng)同步;2)臨時(shí)公文上傳到服務(wù)器進(jìn)行備份時(shí),獲得文件的最近修改時(shí)間并保存在數(shù)據(jù)庫(kù)中的updatetime字段中;3)檢查本地文件與數(shù)據(jù)庫(kù)備份文件是否一致時(shí),再次獲得本地文件的最近修改時(shí)間,通過(guò)與數(shù)據(jù)庫(kù)中保存的時(shí)間進(jìn)行比
較完成。
獲取文件最近修改時(shí)間功能實(shí)現(xiàn),主要是通過(guò)windows的api函數(shù)findfirstfile()獲得文件屬性數(shù)據(jù),該數(shù)據(jù)的ftlastwritetime屬性即為文件的最后修改時(shí)間。值得注意的是,該屬性獲得的是用32位表示的文件時(shí)間戳,為操作系統(tǒng)使用。要想轉(zhuǎn)換為用戶能看懂的本地系統(tǒng)時(shí)間,需要通過(guò)filetimetolocalfiletime()、filetimetosystemtime()以及systemtimetodatetime()函數(shù)進(jìn)行轉(zhuǎn)換。
4 測(cè)試驗(yàn)證
為了驗(yàn)證依據(jù)上述分析設(shè)計(jì)的有效性,對(duì)已實(shí)現(xiàn)的公文管理系統(tǒng)進(jìn)行了測(cè)試驗(yàn)證。
4.1 實(shí)驗(yàn)設(shè)置
試驗(yàn)在2臺(tái)pc機(jī)組成的局域網(wǎng)內(nèi)進(jìn)行。數(shù)據(jù)庫(kù)服務(wù)器的基本配置為piv 2.0g cpu,1g內(nèi)存,120g硬盤(pán),其上安裝了oracle 9i;客戶端pc機(jī)配置為piii 1g cpu,512m內(nèi)存,80g硬盤(pán),安裝了oracle客戶端和office 軟件。
實(shí)驗(yàn)數(shù)據(jù)集為某單位-.6產(chǎn)生的500個(gè)實(shí)際公文文件,大小從50k到500k不等,平均大小約為200k。在其上進(jìn)行了存儲(chǔ)開(kāi)銷(xiāo)比較、查詢性能、自動(dòng)歸檔性能以及全文檢索性能的實(shí)驗(yàn)。
4.2 實(shí)驗(yàn)結(jié)果
采用三種存儲(chǔ)方案對(duì)公文進(jìn)行存儲(chǔ),考查隨公文數(shù)增加不同方案存儲(chǔ)開(kāi)銷(xiāo)之間的差異,如圖3所示。其中方案一為所有元素均分離存儲(chǔ);方案二為僅存儲(chǔ)完整的公文文件;方案三為本文采取的折中方案。
可以看出,方案一所需空間最小,方案二其次,方案三所需空間最大。這是因?yàn)椋桨敢粌H保存了必須的文本內(nèi)容,而且不同元素之間相互無(wú)重疊冗余;而方案二存儲(chǔ)的完整文件除了包含字符格式、字體等信息外,還包含doc文件必須的文件格式頭等內(nèi)容,因此所需空間較大。方案三在方案二的基礎(chǔ)上還冗余存儲(chǔ)了一些元素內(nèi)容,因此所需空間最大。但總體看來(lái),方案三與方案二相比,額外所需的存儲(chǔ)空間并不是很大,約占文件大小的0.5~1%左右。
三種存儲(chǔ)方案下普通查詢的效率和原文檔恢復(fù)所需時(shí)間分
比較別如圖4、圖5所示。可以看出,方案三普通查詢的效率與方案一幾乎沒(méi)有差別,受益于oracle數(shù)據(jù)庫(kù)管理系統(tǒng)的查詢性能,在實(shí)驗(yàn)數(shù)據(jù)規(guī)模上返回結(jié)果的時(shí)間為毫秒級(jí);而方案二由于需要還原文件后再進(jìn)行全文檢索,所需時(shí)間較長(zhǎng),尤其隨著數(shù)據(jù)庫(kù)中記錄數(shù)增加所需時(shí)間也線性增加,當(dāng)數(shù)據(jù)規(guī)模較大時(shí)難以滿足用戶需求。而在文檔恢復(fù)方面,方案一需要將所有內(nèi)容進(jìn)行重組,并按照公文承辦規(guī)定設(shè)置相關(guān)元素的格式等,所需時(shí)間為秒級(jí),而且恢復(fù)效果較差;而方案二和方案三直接從數(shù)據(jù)庫(kù)中讀取完整文檔并恢復(fù),所需時(shí)間僅為毫秒級(jí)。
在采用第三種存儲(chǔ)方案實(shí)現(xiàn)的系統(tǒng)中,隨歸檔文檔數(shù)的增加,系統(tǒng)自動(dòng)歸檔所需時(shí)間情況如圖6所示。可以看出,系統(tǒng)具有較高的自動(dòng)分析和批量歸檔功能,平均每個(gè)文檔所需的分析歸檔時(shí)間不足1秒。因此能夠較好滿足歸檔需求。