李慧玲,張吉宇
(長治學院 計算機系,山西 長治 046011)
信息化時代的到來,使得數(shù)據(jù)越來越多,結(jié)構(gòu)也越來越復雜化,絕大部分企業(yè)信息都是以電子的形式進行保存,如果信息管理系統(tǒng)一旦出現(xiàn)故障,信息數(shù)據(jù)發(fā)生丟失或損壞,一般很難修復,為了應(yīng)對突如其來的故障,文件備份越來越重要.例如公司中SVN服務(wù)器是統(tǒng)一管理代碼的系統(tǒng),應(yīng)用SVN進行工作的步驟,首先,第一步是從SVN服務(wù)器上下載工作組最新任務(wù),然后進入自己所在的項目組,即可開始工作,隔一段時間就向服務(wù)器中自己的項目組提交一次代碼[1].若要結(jié)束今天的工作,把今天所做的工作提交到服務(wù)器項目組中,每天的工作都是如此.每次都是先從服務(wù)器上下載前一天的工作進度,接著做,然后下班之前把當天的工作提交給服務(wù)器.如果SVN服務(wù)器發(fā)生故障的話,假如沒有備份文件,那么工作人員就沒有辦法進行正常工作.通過SVN備份工具可以進一步提高信息數(shù)據(jù)的安全性,防止出現(xiàn)意外故障時,能極大地減少公司的損失.
SVN在企業(yè)中應(yīng)用較為廣泛,因一個項目需要多人開發(fā),利用這個工具可以達到共享資源的目的.運用Quartz,Spring,Sftp,ZIP,XML等技術(shù)基于Java開發(fā)和設(shè)計出SVN自動備份工具,可以大大降低SVN服務(wù)器發(fā)生故障帶來的風險.該SVN備份工具不僅可以用于SVN倉庫的備份,還可以用于各種數(shù)據(jù)的備份保護,用戶根據(jù)需求,可以自己更改配置文件.程序中盡可能做到了參數(shù)配置化,方便用戶根據(jù)自己的需求去改變配置文件來配置定時與任務(wù),配置文件不會影響代碼的健壯性,使得代碼運行維護輕松許多,并且方便用戶的使用.
防止SVN發(fā)生故障丟失文件,需要定時對SVN做備份,并將備份文件上傳到云服務(wù)器.開發(fā)SVN備份工具可以有效防止SVN發(fā)生故障造成的損失.集中式代碼管理的核心是服務(wù)器,如果SVN倉庫一旦發(fā)生故障,項目成員可以在工作之前從服務(wù)器下載工作任務(wù),即可完成任務(wù),下班之前進行提交.每天完成的任務(wù)都在服務(wù)器上.如果服務(wù)器斷開,項目組成員是無法進行工作的.所以,在個人電腦出現(xiàn)故障時,可以直接從云服務(wù)器上獲取丟失的工作,在員工下班前,可以把自己今天工作的內(nèi)容備份壓縮,然后上傳到云服務(wù)器.
此備份工具應(yīng)該滿足以下的功能需求:1)用戶可以實現(xiàn)文件自動化備份、壓縮、上傳以及上傳完成后自動刪除本地備份的文件和壓縮包.2)備份工具可以定時實現(xiàn)自動備份功能.3)可以根據(jù)不同的需求進行增量備份和全局備份.4)用戶可以根據(jù)需求更改配置文件,具體流程圖見圖1.
圖1 SVN備份工具的備份流程圖
開發(fā)此備份工具選用了Java、Quartz技術(shù)、Spring框架、SFTP技術(shù)以及XML等技術(shù).Java具有強大的、易于使用的聯(lián)網(wǎng)能力,非常適合開發(fā)分布式計算的程序.Java中自帶的JVM可實現(xiàn)移植,只要在不同的操作系統(tǒng)上植入不同版本的JVM,Java程序就可以在各個平臺上移植.Quartz是一個作業(yè)調(diào)度系統(tǒng)(a job scheduling system),Quartz不但可以集成到其他的軟件系統(tǒng)中,而且也可以獨立運行的[2].本系統(tǒng)的核心就是定時對SVN倉庫進行備份,就是Quartz技術(shù)在定時任務(wù)調(diào)度的應(yīng)用.Quratz的優(yōu)勢在于功能強大且簡單易上手.當系統(tǒng)遇到調(diào)度問題時,通過簡單的Quartz范例就可以完成對時間的任何調(diào)用.根據(jù)用戶的不同需求可以完全自由地更改配置來達到效果,這就是Quartz的功能強大之處,同時編寫項目中的代碼也簡單自然(natural).Spring是一個開源的應(yīng)用開發(fā)框架,它的目的是用于簡化企業(yè)級應(yīng)用開發(fā)過程中的侵入性;同時, Spring為整個系統(tǒng)提供了一個整體的解決方案,項目組成員除了可以利用它本身提供的功能外,也可與第三方框架進行整合應(yīng)用,可根據(jù)實際情況選擇合適的技術(shù)進行開發(fā).
SFTP是Secure File Transfer Protocol的縮寫,是安全文件傳送協(xié)議.SSH是Secure Shell的縮寫.上傳操作完成后,通過客戶端登錄到云服務(wù)器就可以方便地查看上傳情況.備份工具用的是SSH和Secure File Transfer Client這兩個軟件進行驗證.可以直接連接云服務(wù)器進行查看.
因為需求是定時甚至每天對SVN倉庫進行備份,備份文件日積月累就會變得異常龐大,所以要對備份文件進行壓縮以后上傳給云服務(wù)器.Java API中封裝了關(guān)于壓縮的類ZipEntry.系統(tǒng)中正是通過將這個類的實例添加進壓縮流中,從而實現(xiàn)對文件的壓縮.
SVN自動備份工具組由文件備份、文件壓縮、文件上傳、文件刪除等幾個功能模塊組成.這個工具的設(shè)計是基于平臺化的理念,可以用于各種數(shù)據(jù)的備份保護.盡可能做到了參數(shù)配置化,方便用戶根據(jù)自己的需求去改變配置文件,配置文件不會影響代碼的健壯性,使得代碼運行維護輕松許多.當然,SVN備份工具還存在一些不足,如對文件的壓縮格式單一,只能壓縮為zip格式,但是備份工具整體功能上來說還是比較完善的.