吳 毓,陳軍華
(上海師范大學(xué)信息與機電工程學(xué)院,上海200234)
為了更好地保證數(shù)據(jù)的安全性和完整性,數(shù)據(jù)的同步備份對于企業(yè)和個人來說顯得尤為重要.大多數(shù)中小企業(yè)通過數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)進行自動或手工方式的同步備份,這通常要求本地服務(wù)器磁盤具備一定的存儲空間來存放同步備份后的數(shù)據(jù)[1-2];個人用戶數(shù)據(jù)主要存儲在移動設(shè)備和PC硬盤中,經(jīng)常往返于異地的用戶需要隨身攜帶這些設(shè)備或使用帶有備份功能的軟件來存儲數(shù)據(jù).
針對上述方法的不足,云計算提供的強大平臺和海量空間不僅減少了維護的人力成本和數(shù)據(jù)存儲的設(shè)備成本,而且用戶不需要專門的數(shù)據(jù)管理技術(shù),就可以利用瀏覽器進行數(shù)據(jù)的同步備份操作[3-4].
目前人們普遍接受的云定義是由NIST(美國國家標(biāo)準(zhǔn)技術(shù)研究所)所闡述的(2009):云計算是一種模型,人們使用它按需訪問一個可配置的計算資源池(如網(wǎng)絡(luò)、服務(wù)器、存儲等),只需最小化的管理工作量或服務(wù)提供商的支持就可以快速地開通和釋放資源[5].
因此云計算被理解為一種計算理念,而非具體的技術(shù).在理解云計算本質(zhì)的基礎(chǔ)上還要了解以下關(guān)鍵特性[5-7],見表 1.
表1 云特性概述
隨著云時代的到來,各大IT廠商推出了相關(guān)的云產(chǎn)品和云服務(wù).表2對比了目前四大主流云計算產(chǎn)品.
表2 四大主流廠商云計算產(chǎn)品比較
由于本系統(tǒng)使用關(guān)系型數(shù)據(jù)庫SQL Server和ASP.NET框架構(gòu)建Web門戶網(wǎng)站,對照表2云產(chǎn)品的特性得出,使用微軟Windows Azure比較符合本系統(tǒng)的需求.另外,其三個月的云計算資源免費試用也是選擇該平臺進行研究的重要原因之一[8-9].因此,本文作者正是基于微軟Windows Azure平臺,對PC數(shù)據(jù)同步備份系統(tǒng)進行研究與實現(xiàn).
表3簡要分析了PC數(shù)據(jù)需要備份及還原的幾種情況[1].
表3 PC數(shù)據(jù)備份及還原的情況
對于本地數(shù)據(jù)庫來說,目前微軟SQL Server提供了完整備份、增量備份、差異備份和混合備份4種方法[10],適用于不同的數(shù)據(jù)備份環(huán)境;對于個人數(shù)據(jù)來說,常用的數(shù)據(jù)備份方法有傳統(tǒng)手工方法和使用帶同步備份功能的軟件.隨著數(shù)據(jù)規(guī)模的不斷增長,上述方法需要更多的服務(wù)器和移動設(shè)備來承載這些數(shù)據(jù).這樣,不僅需要用戶做好日常服務(wù)器的維護管理,還要在后期的設(shè)備購買上投入大量的資本.
針對上述需求存在的不足,提出了基于Windows Azure云環(huán)境下的PC數(shù)據(jù)同步備份方法.該系統(tǒng)使用云計算技術(shù)和分層結(jié)構(gòu)模式,架設(shè)在Windows Azure云平臺之上,以ASP.NET技術(shù)構(gòu)建前端Web頁面,以微軟SQL Server和Visual Studio 2012 Express for Web為后臺數(shù)據(jù)庫管理和應(yīng)用程序開發(fā)工具,實現(xiàn)PC數(shù)據(jù)(即本地數(shù)據(jù)庫數(shù)據(jù)和個人數(shù)據(jù))一鍵備份至云端及云端數(shù)據(jù)還原至本地的功能,并通過SQL Azure數(shù)據(jù)管理系統(tǒng)進行云端數(shù)據(jù)的維護和管理.最后,將該Web應(yīng)用程序部署至Azure云環(huán)境,提供統(tǒng)一的PC數(shù)據(jù)同步備份訪問平臺.圖1和圖2分別給出了PC數(shù)據(jù)同步備份的系統(tǒng)功能模塊流程圖和體系架構(gòu)示意圖.
圖1 系統(tǒng)功能模塊流程圖
圖2 PC數(shù)據(jù)同步備份體系架構(gòu)示意圖
PC數(shù)據(jù)同步備份系統(tǒng)以數(shù)據(jù)庫與架構(gòu)共享為主的多用戶結(jié)構(gòu)來設(shè)計SQL Azure數(shù)據(jù)庫及其表結(jié)構(gòu),如表4、5和6所示.
表4 用戶信息表UserInfo
表5 數(shù)據(jù)庫信息表DbInfo
表6 收藏夾信息表FavourInfo
Windows Azure應(yīng)用程序的開發(fā)環(huán)境主要利用微軟提供的Windows Azure SDK(軟件開發(fā)工具包1.8.1版本)相關(guān)技術(shù),與傳統(tǒng)開發(fā)所需的計算配置相比,本系統(tǒng)需要配置以下開發(fā)環(huán)境,如表7所示:
表7 本系統(tǒng)開發(fā)環(huán)境配置
首先在Visual Studio中創(chuàng)建云應(yīng)用程序SynApp.圖3為SynApp的項目組成列表.其次,在Windows Azure平臺中創(chuàng)建Azure Server云數(shù)據(jù)庫服務(wù)器及相應(yīng)數(shù)據(jù)庫DbInfo及其表結(jié)構(gòu),來存儲同步備份至云端的PC數(shù)據(jù).需要注意的是,云端數(shù)據(jù)庫服務(wù)器還需設(shè)置防火墻規(guī)則供用戶進行云端訪問.由于本系統(tǒng)供所有用戶進行Web門戶網(wǎng)站的訪問,因此開放服務(wù)器的有效IP地址范圍是0.0.0.0-255.255.255.255.圖5顯示了添加的防火墻規(guī)則.
圖3 SynApp項目組成
圖4 Windows Azure平臺
圖5 添加防火墻規(guī)則
3.3.1 本地數(shù)據(jù)庫備份及還原
用戶登錄本系統(tǒng)后,選擇“本地數(shù)據(jù)庫”按鈕,出現(xiàn)如圖6界面.
圖6 DbBackup.a(chǎn)spx頁面
首先,用戶輸入以下信息:①本地數(shù)據(jù)庫服務(wù)器IP地址(使得用戶具有訪問云數(shù)據(jù)庫的權(quán)限);②待備份的數(shù)據(jù)庫名;③登錄數(shù)據(jù)庫服務(wù)器的用戶名和密碼(讀取本地數(shù)據(jù)庫中的數(shù)據(jù)信息).
其次,連接SQL Azure數(shù)據(jù)庫.與傳統(tǒng)連接字符串不同的是,云端數(shù)據(jù)庫的用戶名以“賬戶名@服務(wù)器名”的形式命名.ADO.NET的連接字符串為:
<connectionStrings>
< add name="DefaultConnection"providerName="System.Data.SqlClient"connectionString="Data Source=jvrhkf1rdz.database.windows.net;Initial Catalog=SynInfo;Integrated Security=SSPI;uid=admin@jvrhkf1rdz;pwd=P@ssword;Connection Lifetime=500"/>
</connectionStrings>
最后,云應(yīng)用程序根據(jù)用戶輸入的參數(shù)信息,利用SqlConnection類和SqlCommand類分別連接本地數(shù)據(jù)庫和操作SQL Azure數(shù)據(jù)庫庫表中的數(shù)據(jù),如圖7和圖8分別給出了本地數(shù)據(jù)庫備份和還原功能的程序流程圖.
圖7 本地數(shù)據(jù)庫備份的程序流程圖
圖8 本地數(shù)據(jù)庫還原的程序流程圖
3.3.2 個人數(shù)據(jù)備份及還原
選擇“個人數(shù)據(jù)”按鈕后,顯示如圖9界面.首先,系統(tǒng)利用cookie自動記錄用戶選擇的收藏夾路徑信息,并使用Visual Studio提供的folderBrowserDialog控件來獲取用戶選擇的文件路徑.
其次,系統(tǒng)調(diào)用 LoadLinkFolders函數(shù),采用FileInfo類中的GetDirectories方法遍歷該目錄下的所有收藏夾文件名;根據(jù)收藏夾URL文件調(diào)用GetLinkFileUrl方法獲取對應(yīng)的網(wǎng)址鏈接,使用FileStream類中的GetAccessControl方法和StreamReader類中的ReadLine方法讀取文件.如圖10給出了備份的程序流程圖.
圖9 FavourBackup.a(chǎn)spx頁面
相應(yīng)地,當(dāng)用戶還原數(shù)據(jù)時,系統(tǒng)首先清空用戶選擇的收藏夾目錄,讀取云端數(shù)據(jù)庫中對應(yīng)的收藏夾數(shù)據(jù),使用File類中的CreateText方法把URL網(wǎng)址寫入Web文檔(即網(wǎng)絡(luò)快捷方式.url).如圖11給出了還原的程序流程圖,關(guān)鍵代碼如下:
需要注意的是,本系統(tǒng)默認用戶使用IE瀏覽器進行PC數(shù)據(jù)同步備份系統(tǒng)的操作,因此在IE瀏覽器下,可以需要使用JavaScript中的ActiveXObject對象,使得在IE上運行的Web應(yīng)用程序讀取本地文件信息.
采用二級部署方法,即先過渡(Staging)環(huán)境部署后生產(chǎn)(Producing)環(huán)境部署.部署成功后,外部用戶就可以通過唯一指定的訪問本系統(tǒng)的門戶網(wǎng)站.
圖10 個人數(shù)據(jù)備份的程序流程圖
圖11 個人數(shù)據(jù)還原的程序流程圖
作者利用“鍋爐能效云平臺”項目數(shù)據(jù)自行進行了本系統(tǒng)模擬測試.該數(shù)據(jù)庫包含6張表,每張表平均有10條數(shù)據(jù).經(jīng)過本系統(tǒng)測試運行后,大約3 min完成了PC數(shù)據(jù)的備份及還原.隨著數(shù)據(jù)量的增大,云應(yīng)用程序的運行時間也會相應(yīng)變長.如圖12和圖13顯示了已備份至云端的部分數(shù)據(jù).
圖12 已備份至DbInfo表的信息
圖13 已備份至FavourInfo表的信息
相比于常用的數(shù)據(jù)備份技術(shù),PC數(shù)據(jù)同步備份系統(tǒng)具有以下幾個優(yōu)勢,如表8所示.
表8 本系統(tǒng)與常見備份方法的比較
在介紹現(xiàn)有本地數(shù)據(jù)庫和個人數(shù)據(jù)同步備份方法的基礎(chǔ)上,針對PC數(shù)據(jù)和網(wǎng)絡(luò)應(yīng)用環(huán)境的特性,構(gòu)建一種在云環(huán)境下的PC數(shù)據(jù)同步備份系統(tǒng).該系統(tǒng)以數(shù)據(jù)備份和微軟云計算為研究重點,對本地數(shù)據(jù)庫數(shù)據(jù)(以“鍋爐能效云平臺”數(shù)據(jù)為例)和PC個人數(shù)據(jù)(以網(wǎng)頁收藏夾為例)分別進行備份和還原功能的設(shè)計與實現(xiàn),意在降低用戶管理數(shù)據(jù)的成本,提高數(shù)據(jù)的安全性和可靠性,從而使用戶真正感受云計算所帶來的高效與便利.
[1]魏祖寬,胡旺,鄭莉華,等.?dāng)?shù)據(jù)庫系統(tǒng)及應(yīng)用[M].北京:電子工業(yè)出版社,2012.
[2]ELMASRI R,NAVATHE SB.?dāng)?shù)據(jù)庫系統(tǒng)基礎(chǔ)[M].李翔鷹,劉鑌,邱海艷,等譯.北京:清華大學(xué)出版社,2011.
[3]RHOTON J,HAUKIOJA R.云計算架構(gòu):解決方案設(shè)計手冊[M].趙龍剛,金振林,譯.北京:機械工業(yè)出社,2012.
[4]虛擬化與云計算小組.云計算寶典:技術(shù)與實現(xiàn)[M].北京:電子工業(yè)出版社,2011.
[5]KALAGIAKOSP,KARAMPELASP.Cloud Computing Learning[C].5th International Conference on Application of Information and Communication Technologies.Baku:IEEE,2011.
[6]GONG C,LIU J,ZHANG Q,et al.The Characteristics of Cloud Computing[C].39th IEEE International Conference on Parallel Processing Workshops.San Diego:IEEE,2010.
[7]JADEJA Y,MODI K.Cloud Computing-concepts,architecture and challenges[C].2012 International Conference on Computing,Electronics and Electrical Technologies.Kumaracoil:IEEE,2012.
[8]徐子巖.實戰(zhàn)Windows Azure:微軟云計算平臺技術(shù)詳解[M].北京:電子工業(yè)出版社,2011.
[9]布魯內(nèi)蒂.Windows Azure從入門到精通[M].龍吟暉,譯.北京:清華大學(xué)出社,2012.
[10]劉志勇,劉徑舟.SQL Server 2008寶典[M].北京:電子工業(yè)出版社,2010.
上海師范大學(xué)學(xué)報·自然科學(xué)版2013年4期