尚鵬
摘要:校園網(wǎng)用戶對文件存儲和分享的需求日益增加,傳統(tǒng)的存儲分享方式不能適應(yīng)這種需求。該文提出了一種基于云存儲的校園網(wǎng)云盤系統(tǒng),使用了網(wǎng)絡(luò)異步通訊模式應(yīng)對高負(fù)載的用戶并發(fā);使用了文件散列算法解決了網(wǎng)絡(luò)存儲的文件多拷貝現(xiàn)象,實(shí)現(xiàn)了多用戶共享一份拷貝;文件分享使用了對稱密鑰算法;使用廉價的分布式存儲方便存儲空間的擴(kuò)展。校園網(wǎng)云盤系統(tǒng)適應(yīng)了校園網(wǎng)網(wǎng)絡(luò)帶寬高,出口帶寬低的特點(diǎn),解決了師生的遠(yuǎn)程文件存儲與分享的問題。
關(guān)鍵詞:校園網(wǎng);云盤;存儲;分享
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)01-0076-03
隨著電腦和手機(jī)等電子設(shè)備在工作和生活中的日益的普及,高校師生在使用的過程中產(chǎn)生了大量的數(shù)據(jù)信息,如照片,視頻,課件,實(shí)驗(yàn)數(shù)據(jù)等。需要大量的磁盤空間存儲這些資料,傳統(tǒng)的本地存儲和遠(yuǎn)程的郵箱存儲由于存儲空間和帶寬的限制,不能提供大容量的高帶寬存儲空間。需要一種適用于校園網(wǎng)的個人文件存儲與分享系統(tǒng)。本文介紹了一種C/S構(gòu)建的基于云存儲的遠(yuǎn)程文件存儲、分享系統(tǒng)。
1 校園網(wǎng)云盤系統(tǒng)分析
云存儲是依靠高速網(wǎng)絡(luò)的分布式存儲方式,提供了低成本、易擴(kuò)展、可靠的海量存儲資源,將用戶的本地存儲遷移到遠(yuǎn)端的服務(wù)器群中。高校的校園網(wǎng)是用戶密集,數(shù)據(jù)存儲量大且頻繁,網(wǎng)絡(luò)劃分復(fù)雜,網(wǎng)絡(luò)利用率低;由于校園網(wǎng)特點(diǎn)和出口帶寬的限制,公共的網(wǎng)絡(luò)存儲方式不適應(yīng)于校園網(wǎng)用戶。校園網(wǎng)的萬兆主干、百兆到桌面的高速帶寬為大數(shù)據(jù)的存儲提供了極好的基礎(chǔ)設(shè)施,特別是用戶上網(wǎng)位置移動頻繁,云盤能夠在校園網(wǎng)的任何位置存取數(shù)據(jù)。因此,基于校園網(wǎng)的云盤是滿足師生存儲需求的最好解決方案。
2 系統(tǒng)總體設(shè)計
系統(tǒng)使用C/S模式??蛻舳素?fù)責(zé)用戶交互,實(shí)現(xiàn)用戶登錄,文件的上傳,同步,下載,重命名,刪除,分享等操作。服務(wù)器端分為三層:接入層,服務(wù)層以及云存儲層。接入層負(fù)責(zé)用戶認(rèn)證,監(jiān)控用戶信息,用戶通過接入層連接系統(tǒng),向服務(wù)層發(fā)出操作請求。服務(wù)層是系統(tǒng)的核心功能層,負(fù)責(zé)響應(yīng)接入層的請求,實(shí)現(xiàn)請求的操作。調(diào)用云存儲層的存儲功能,完成文件的存儲。云存儲層提供存儲資源,提供分布式的海量存儲。系統(tǒng)結(jié)構(gòu)如圖1所示。
3系統(tǒng)設(shè)計與實(shí)現(xiàn)
基于校園網(wǎng)的云盤系統(tǒng)分為用戶管理,文件的管理,數(shù)據(jù)傳輸,數(shù)據(jù)的多拷貝識別及分享,文件分布式存儲幾部分。
3.1用戶認(rèn)證登錄流程
登錄云盤錄賬號使用校園網(wǎng)的用戶賬戶,禁止用戶自己注冊賬號,校園網(wǎng)中的每個合法用戶都擁有一個“云盤”賬號。用戶管理和校園網(wǎng)用戶管理合二為一,能夠大大方便師生使用,同時保證了賬戶的安全。
客戶端通過接入層發(fā)出用戶的登錄請求,服務(wù)層接受用戶請求,查詢數(shù)據(jù)庫用戶名和密碼是否合法;用戶通過驗(yàn)證登錄系統(tǒng);用戶驗(yàn)證失敗,退回到請求狀態(tài)。
3.2數(shù)據(jù)傳輸
客戶端與服務(wù)器之間的數(shù)據(jù)傳輸使用基于TCP的套件字連接。服務(wù)器端使用了IOCP模型滿足高負(fù)載下的并發(fā)處理,滿足多用戶的并發(fā)數(shù)據(jù)傳輸。IOCP模型是一種I/O的異步操作,可以高效的處理多客戶端的數(shù)據(jù)交換。
clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
nRet = connect(clientSocket,(sockaddr*)&SockAddr, sizeof(SockAddr));
3.3文件上傳及管理
文件在存儲的過程中,經(jīng)常會出現(xiàn)相同的文件被不同的用戶分別存儲。為了節(jié)約云存儲資源和網(wǎng)絡(luò)帶寬,相同的文件在系統(tǒng)中只保存一份拷貝。
用戶上傳文件到云存儲,服務(wù)器會對比文件信息數(shù)據(jù)庫,判斷該文件是新文件還是舊文件。如果是新文件,則完整上傳文件數(shù)據(jù),并在數(shù)據(jù)庫記錄該文件的信息;否則不傳輸,使用已有的文件拷貝。文件上傳流程如圖2所示。
用戶在向服務(wù)器上傳文件前,先計算文件的識別碼(FileHash)。FileHash是文件的散列值,使用了MD5和SHA-1方法。
FileHash=MD5(file)+SHA(file) (1)
FileID=FileHash+FileName+FileLength (2)
FileHash、文件名和文件長度一起作為文件的唯一識別信息FileID??蛻舳嗽诒镜赜嬎阄募腇ileHash,合成FileID后傳輸給服務(wù)器;服務(wù)器檢索文件信息數(shù)據(jù)庫,如果沒有匹配,服務(wù)器通知客戶端上傳文件;如果有匹配,則不用上傳。
服務(wù)器接收文件后,要確定傳輸過程中的數(shù)據(jù)完整性。服務(wù)器重新計算文件的FileID,與客戶端計算的相比較,相同則接受正確,否則重傳。在文件在存儲過程中,服務(wù)器為正確接受的文件的建立元信息記錄,存儲到文件數(shù)據(jù)庫中。文件元信息記錄包括文件名稱,文件長度,識別信息,存儲位置,引用數(shù)(name,length,F(xiàn)ileID,place,quote)。字段place記錄了文件在云存儲的位置信息,字段quote記錄文件被用戶引用的次數(shù)。
服務(wù)器為每位用戶建立該用戶的文件列表,其中記錄了用戶擁有的所有文件的信息(name,length,place)。用戶文件的增加和刪除操作就是對文件列表中文件信息記錄的增加和刪除;文件的重命名只是修改了列表里的文件信息中的name字段。
3.4文件下載
用戶在客戶端選擇需要下載的文件,想服務(wù)器提出下載請求。服務(wù)器查找用戶的文件列表,找到選中文件的存儲位置,傳輸給客戶端。
3.5文件的分享
用戶間的文件分享方便地實(shí)現(xiàn)了數(shù)據(jù)共享。云盤的數(shù)據(jù)共享過程中避免了數(shù)據(jù)的拷貝,不用消耗大量的計算資源和存儲空間,不同用戶在云盤系統(tǒng)中共享一份文件的拷貝。
客戶端選擇需要分享的文件,向服務(wù)器申請共享;服務(wù)器隨機(jī)選擇分享碼K,使用加密算法E,對文件的FileID加密,計算出密文M,作為分享鏈接。
M=E(FileID,K) (3)
用戶將分享鏈接和分享傳給其他用戶。等到分享鏈接和分享碼的用戶,通過客戶端向服務(wù)器申請獲取分享文件,服務(wù)器接收請求,使用解密算法D,計算出FileID。
FileID=D(M,K) (4)
服務(wù)器查詢文件信息數(shù)據(jù)庫,得到被分享文件的信息(name,length,place)并添加到用戶的文件列表中。
3.6文件分布式存儲
文件存儲使用了分布式的云存儲方案。云存儲在大數(shù)據(jù)的存儲方面有著成本低,擴(kuò)展靈活,部署方便等優(yōu)點(diǎn)。采用的是開源項(xiàng)目OpenStack Object Storage(Swift),該方案便宜的標(biāo)準(zhǔn)硬件作為存儲介質(zhì),在硬件層上使用性散列技術(shù)和數(shù)據(jù)冗余性保證數(shù)據(jù)的高效和可靠性,具有較高的可伸縮性。
4 結(jié)束語
校園網(wǎng)云盤系統(tǒng)提供了便捷、快速的遠(yuǎn)程數(shù)據(jù)備份以及分享功能。它滿足師生對大容量的免費(fèi)存儲需求,豐富了校園網(wǎng)的應(yīng)用,為師生的學(xué)習(xí)和娛樂提供了更多的便捷,大大提高了校園網(wǎng)的使用效率。云盤系統(tǒng)相對于傳統(tǒng)的本地存儲,有巨大的優(yōu)勢,也是未來計算機(jī)存儲的發(fā)展趨勢。
參考文獻(xiàn):
[1] 周可,王樺,李春花.云存儲技術(shù)及其應(yīng)用[J].中興通訊技術(shù), 2010(4).
[2] 楊岳湘,鄧文平,鄧勁生.基于云存儲的網(wǎng)盤系統(tǒng)架構(gòu)及關(guān)鍵技術(shù)研究[J]. 電信科學(xué), 2012(10).
[3] 韓同欣,丁建元.基于云盤技術(shù)的文檔數(shù)據(jù)共享系統(tǒng)設(shè)計[J]. 中國科技信息,2014(21).
[4] 羊裔高.基于Hash函數(shù)加密方法的安全性研究[J].河北師范大學(xué)學(xué)報:自然科學(xué)版,2009(3).
[5] 李麗娜.網(wǎng)絡(luò)存儲系統(tǒng)性能優(yōu)化的設(shè)計和實(shí)現(xiàn)[J].微型電腦應(yīng)用,2010(8).