欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于桌面虛擬化的文件同步方法與流程

文檔序號:12625757閱讀:384來源:國知局
一種基于桌面虛擬化的文件同步方法與流程

本發(fā)明涉及一種基于桌面虛擬化的文件同步方法,特別適用于桌面虛擬化應(yīng)用場景,同時針對不同大小的文件,動態(tài)采取不同同步策略,屬于計算機技術(shù)領(lǐng)域。



背景技術(shù):

桌面虛擬化技術(shù)為用戶提供了一種新的計算機使用方式,但是由于桌面虛擬化通常是遠程使用特點,往往需要用戶使用文件同步工具進行遠程主機和本地終端的文件同步。

傳統(tǒng)的文件同步工具在進行文件同步功能時往往采用文本差異比較、文件更新時間比較和分塊差異比較等方法,這些方法對小文件和文本文件有比較良好的性能表現(xiàn),但是,在對較大二進制文件進行比對過程中,由于不能對文件本身進行修改,往往采用內(nèi)容分塊算法,但是這種算法在兩份比對文件的差異位置不同時,性能不能保證穩(wěn)定,例如,CDC算法可能會出現(xiàn)病態(tài)現(xiàn)象,同時,每次文件比對都要求對兩份文件進行全文件掃描,所以對系統(tǒng)的計算資源消耗較大,并且由于比對過程中需要傳輸兩端的文件校驗信息,所以如果分塊算法對文件劃分粒度過小,也會導(dǎo)致網(wǎng)絡(luò)資源的損耗。

綜上,現(xiàn)有方法對于大二進制文件往往缺乏良好的支持,導(dǎo)致這些工具對大二進制文件進行同步時消耗大量計算和網(wǎng)絡(luò)資源。



技術(shù)實現(xiàn)要素:

針對現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于桌面虛擬化的文件同步方法;

本發(fā)明針對不同文件類型和大小動態(tài)調(diào)整文件同步策略進行文件同步的方法,針對不同的文件大小,動態(tài)選擇文件同步策略,同時,針對較大二進制文件,基于用戶提供的文件修改特征信息,使用不同的文件差異比較算法和切分方法,高效識別文件改動位置并將改動內(nèi)容發(fā)送,進行同步,避免傳送整個文件,節(jié)約大量的計算和網(wǎng)絡(luò)資源。

術(shù)語解釋

SOCKET,又稱"套接字",應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。

本發(fā)明的技術(shù)方案為:

一種基于桌面虛擬化的文件同步方法,包括管理節(jié)點MON、運行在用戶終端的Client(用戶)及運行在遠程虛擬主機的Server,所述管理節(jié)點MON用于保存用戶信息和該用戶對應(yīng)的遠程虛擬主機信息,用戶信息包括用戶對應(yīng)賬號、密碼以及終端網(wǎng)絡(luò)IP,所述遠程虛擬主機信息包括用戶對應(yīng)的遠程虛擬主機域名或IP、遠程虛擬主機訪問的用戶名及密碼,具體步驟包括:

(1)首次運行時,用戶提供用戶終端同步文件夾路徑和遠程虛擬主機同步文件夾路徑;

(2)啟動同步程序,進入步驟(3);

(3)Client連接管理節(jié)點MON,發(fā)送用戶自己的用戶信息,管理節(jié)點MON獲取用戶信息并進行驗證,如果用戶信息正確,在數(shù)據(jù)庫中查詢該用戶對應(yīng)的遠程虛擬主機信息并返回給Client,否則,重新執(zhí)行步驟(3)或提示錯誤;

(4)Client獲取對應(yīng)的遠程虛擬主機信息后,嘗試連接該遠程虛擬主機,若連接成功,則進行步驟(5),否則,返回步驟(3)或提示錯誤;

(5)Client將用戶終端同步文件夾路徑下的所有文件生成文件散列信息,文件散列信息是指對文件進行MD5運算得到的一段特定長度的二進制值,完成后,Client將用戶終端同步文件夾路徑下的目錄信息和所有文件的文件信息發(fā)送給該遠程虛擬主機的Server,所述文件信息包括文件名、修改時間、大小、文件散列信息;

(6)Server接收到Client發(fā)送的用戶終端同步文件夾路徑下的目錄信息和所有文件的文件信息后,將該遠程虛擬主機同步文件夾路徑下的所有文件生成文件散列信息,并將Client發(fā)送的用戶終端同步文件夾路徑下所有文件的文件散列信息與該遠程虛擬主機同步文件夾路徑下的所有文件的文件散列信息進行比對,比對方法為:如果文件滿足條件a或條件b,則判定該文件為需要進行文件同步的文件,否則,則判定該文件為不需要進行文件同步的文件;條件a是指:屬于只存在于用戶終端同步文件夾路徑下的文件或只存在于遠程虛擬主機同步文件夾路徑下的文件;條件b是指:用戶終端同步文件夾路徑下的文件的文件名與遠程虛擬主機同步文件夾路徑下的某文件的文件名相同且文件散列信息不同;

(7)判斷是否需要用戶手動提供步驟(6)確定的需要進行文件同步的文件的修改特征信息,判斷方法如下:

A、用戶根據(jù)同步時間需求或自己所常用文件內(nèi)容特性設(shè)定一個文件大小閾值MFS(max file size);MFS的取值范圍是由實際用戶自行確定的,其意義是用戶確定一個文件大小值,當需要同步的文件小于此數(shù)值時,便不進行文件比對工作,直接進行全文件傳輸,其單位可以為Byte、KB、MB、GB等文件容量單位。

B、針對步驟(6)確定的所有的需要進行文件同步的文件,小于MFS的被標記為直接傳輸,大于等于MFS的被標記為需要用戶提供文件修改特征信息;

C、列舉被標記為需要用戶提供文件修改特征信息的文件列表,同時由用戶通過可視界面人為地為文件列表中的文件選定文件修改特征信息的選項,文件修改特征信息的選項包括首部添加、首部修改、全文件同步、尾部修改、尾部添加;

D、針對被標記為直接傳輸?shù)奈募捅贿x定為全文件同步的文件,進行直接同步;針對被選定為首部添加、首部修改、尾部修改、尾部添加的文件,進行分塊同步。

根據(jù)本發(fā)明優(yōu)選的,所述步驟D中,針對被標記為直接傳輸?shù)奈募捅贿x定為全文件同步的文件,進行直接同步,具體步驟包括:如果文件滿足條件a,則直接使用SOCKET或文件傳輸協(xié)議將文件存在端發(fā)送到另一端,滿足條件a時,該文件只存在于用戶終端或遠程虛擬主機端,此文件存在的一端將其稱為文件存在端,發(fā)送過程即是將文件從文件存在端發(fā)送至另一端;如果文件滿足:與用戶終端同步文件夾路徑下的文件或遠程虛擬主機同步文件夾路徑下的文件具有相同的文件名,則按照兩個文件更新時間,從較晚更新一端將該文件發(fā)送到另一端,并替換與其文件名相同的文件。

根據(jù)本發(fā)明優(yōu)選的,所述步驟D中,針對被選定為首部添加、首部修改、尾部修改、尾部添加的文件,進行分塊同步,具體步驟包括:

針對被標記為首部添加、首部修改、尾部修改或尾部添加的需同步文件,該文件必然在Client和Server中都存在并且文件名相同。對此多種情況采取不同文件比較和同步策略,分別如下。

①針對被選定為首部添加的文件,取用戶終端和遠程虛擬主機端兩端中修改時間較早的文件,取該文件大小FS(file size)作為參考值,從修改時間較晚的文件中,以文件尾部為基點,向前取FS大小,截取剩余部分,將剩余部分發(fā)送給另一端,另一端獲取剩余部分,將其合并至其本地文件首部,完成文件同步,本地文件就是所述的另一端自己本地的文件;

②針對被選定為尾部添加的文件,取用戶終端和遠程虛擬主機端兩端中修改時間較早的文件,取其文件大小FS1(file size)作為參考值,從修改時間較晚的文件中,以文件首部為基點,向后取FS1大小,截取剩余部分,將剩余部分發(fā)送給另一端,另一端獲取剩余部分,將其合并至本地文件尾部,完成文件同步;

③針對被選定為首部修改的文件,進行分塊同步,具體步驟包括:

(Ⅰ)取用戶終端和遠程虛擬主機端兩端中修改時間較早的文件,取其文件大小FS2(file size)作為參考值,F(xiàn)S2/2位置作為標記位置MP(mark point),標記位置是指將文件起始位置作為0,位置向后移動特定大小的數(shù)值,例如,F(xiàn)S2/2位置是二分之一文件大小數(shù)值,將MP作為步進位SP(step point);

(Ⅱ)計算用戶終端和遠程虛擬主機端兩端文件從標記位置MP至文件尾的散列值,并進行比較,若散列值相同,則保留MP作為切割位CP(cut point),MP進行取半操作,重新執(zhí)行步驟(Ⅱ),直至散列值不同或MP<MFS;若散列值不同,SP變?yōu)镾P*0.5,保留MP作為切割位CP(cut point),MP變?yōu)镸P+SP,重新執(zhí)行步驟(Ⅱ),直至(FS-MP)<MFS或散列值相同;

(Ⅲ)計算完成后,截取修改時間較晚文件的0至CP段發(fā)送給另一端,另一端獲取剩余部分,將其合并至本地文件首部,完成文件同步;

④針對被選定為尾部修改的文件,進行分塊同步,具體步驟包括:

(Ⅳ)取用戶終端和遠程虛擬主機端兩端中修改時間較早的文件,取其文件大小FS3(file size)作為參考值,從FS3/2位置作為標記位置MP1(mark point),將此MP1數(shù)值作為步進位SP1(step point);

(Ⅴ)計算用戶終端和遠程虛擬主機端兩端文件從首部至MP1的散列值,并進行比較,若散列值不同,保留MP1作為切割位CP1(cut point),MP1取半操作,重新執(zhí)行步驟(Ⅴ),直至散列值比較結(jié)果相同或MP1<MFS為止;若此散列值相同,SP1變?yōu)镾P1+(FS3-SP1)/2,保留MP1作為切割位CP(cut point),同時MP1變?yōu)镸P1+SP1,重新執(zhí)行步驟(Ⅴ),直至FS3-MP1<MFS或散列值不同為止;

(Ⅵ)計算完成后,截取修改時間較晚文件的CP至文件尾段發(fā)送給另一端,另一端獲取剩余部分,將其合并至本地文件尾部,完成文件同步。

本發(fā)明的有益效果為:

1、本發(fā)明中,在文件同步過程中,如果所需要同步的文件是需要進行差異比對的較大二進制文件,那么在比對過程中,采取二分法讀取文件內(nèi)容來尋找文件不同部分,在比對過程中,用戶終端和遠程虛擬主機端只需要交換幾次文件散列信息,而不是頻繁交換基于其他分塊算法生成的文件內(nèi)容特征信息,可以在文件比對過程中節(jié)省大量網(wǎng)絡(luò)資源,同時,在生成文件散列信息過程中,由于采用二分法思想,可以不需要讀取全部文件內(nèi)容,能夠節(jié)省節(jié)點的大量計算和IO資源,最后,由于在同步過程中只需要傳輸差異部分,不需要傳輸所有文件,同樣也節(jié)省了大量網(wǎng)絡(luò)資源。

2、本發(fā)明中,由用戶終端和遠程虛擬主機端直接連接,不需要中心節(jié)點參與工作,中心節(jié)點只是負責啟動時的身份驗證和基本節(jié)點信息發(fā)布,避免了單點故障的可能,顯著提高了在桌面虛擬化應(yīng)用和其他需要文件同步應(yīng)用場景中的文件同步效率。

附圖說明

圖1為本發(fā)明所述一種基于桌面虛擬化的文件同步方法的流程示意圖;

圖2為針對被選定為首部修改的文件進行分塊同步的過程示意圖;

具體實施方式

下面結(jié)合說明書附圖和實施例對本發(fā)明作進一步限定,但不限于此。

實施例

一種基于桌面虛擬化的文件同步方法,包括管理節(jié)點MON、運行在用戶終端的Client(用戶)及運行在遠程虛擬主機的Server,所述管理節(jié)點MON用于保存用戶信息和該用戶對應(yīng)的遠程虛擬主機信息,用戶信息包括用戶對應(yīng)賬號、密碼以及終端網(wǎng)絡(luò)IP,所述遠程虛擬主機信息包括用戶對應(yīng)的遠程虛擬主機域名或IP、遠程虛擬主機訪問的用戶名及密碼,如圖1所示,具體步驟包括:

(1)首次運行時,用戶提供用戶終端同步文件夾路徑和遠程虛擬主機同步文件夾路徑;

(2)啟動同步程序,進入步驟(3);

(3)Client連接管理節(jié)點MON,發(fā)送用戶自己的用戶信息,管理節(jié)點MON獲取用戶信息并進行驗證,如果用戶信息正確,在數(shù)據(jù)庫中查詢該用戶對應(yīng)的遠程虛擬主機信息并返回給Client,否則,重新執(zhí)行步驟(3)或提示錯誤;

(4)Client獲取對應(yīng)的遠程虛擬主機信息后,嘗試連接該遠程虛擬主機,若連接成功,則進行步驟(5),否則,返回步驟(3)或提示錯誤;

(5)Client將用戶終端同步文件夾路徑下的所有文件生成文件散列信息,文件散列信息是指對文件進行MD5運算得到的一段特定長度的二進制值,完成后,Client將用戶終端同步文件夾路徑下的目錄信息和所有文件的文件信息發(fā)送給該遠程虛擬主機的Server,所述文件信息包括文件名、修改時間、大小、文件散列信息;

(6)Server接收到Client發(fā)送的用戶終端同步文件夾路徑下的目錄信息和所有文件的文件信息后,將該遠程虛擬主機同步文件夾路徑下的所有文件生成文件散列信息,并將Client發(fā)送的用戶終端同步文件夾路徑下所有文件的文件散列信息與該遠程虛擬主機同步文件夾路徑下的所有文件的文件散列信息進行比對,比對方法為:如果文件滿足條件a或條件b,則判定該文件為需要進行文件同步的文件,否則,則判定該文件為不需要進行文件同步的文件;條件a是指:屬于只存在于用戶終端同步文件夾路徑下的文件或只存在于遠程虛擬主機同步文件夾路徑下的文件;條件b是指:用戶終端同步文件夾路徑下的文件的文件名與遠程虛擬主機同步文件夾路徑下的某文件的文件名相同且文件散列信息不同;

(7)判斷是否需要用戶手動提供步驟(6)確定的需要進行文件同步的文件的修改特征信息,判斷方法如下:

A、用戶根據(jù)同步時間需求或自己所常用文件內(nèi)容特性設(shè)定一個文件大小閾值MFS(max file size);MFS的取值范圍是由實際用戶自行確定的,其意義是用戶確定一個文件大小值,當需要同步的文件小于此數(shù)值時,便不進行文件比對工作,直接進行全文件傳輸,其單位可以為Byte、KB、MB、GB等文件容量單位。

B、針對步驟(6)確定的所有的需要進行文件同步的文件,小于MFS的被標記為直接傳輸,大于等于MFS的被標記為需要用戶提供文件修改特征信息;

C、列舉被標記為需要用戶提供文件修改特征信息的文件列表,同時由用戶通過可視界面人為地為文件列表中的文件選定文件修改特征信息的選項,文件修改特征信息的選項包括首部添加、首部修改、全文件同步、尾部修改、尾部添加;

D、針對被標記為直接傳輸?shù)奈募捅贿x定為全文件同步的文件,進行直接同步;針對被選定為首部添加、首部修改、尾部修改、尾部添加的文件,進行分塊同步。

所述步驟D中,針對被標記為直接傳輸?shù)奈募捅贿x定為全文件同步的文件,進行直接同步,具體步驟包括:如果文件滿足條件a,則直接使用SOCKET或文件傳輸協(xié)議將文件存在端發(fā)送到另一端,滿足條件a時,該文件只存在于用戶終端或遠程虛擬主機端,此文件存在的一端將其稱為文件存在端,發(fā)送過程即是將文件從文件存在端發(fā)送至另一端;如果文件滿足:與用戶終端同步文件夾路徑下的文件或遠程虛擬主機同步文件夾路徑下的文件具有相同的文件名,則按照兩個文件更新時間,從較晚更新一端將該文件發(fā)送到另一端,并替換與其文件名相同的文件。

所述步驟D中,針對被選定為首部添加、首部修改、尾部修改、尾部添加的文件,進行分塊同步,具體步驟包括:

針對被標記為首部添加、首部修改、尾部修改或尾部添加的需同步文件,該文件必然在Client和Server中都存在并且文件名相同。對此多種情況采取不同文件比較和同步策略,分別如下。

①針對被選定為首部添加的文件,取用戶終端和遠程虛擬主機端兩端中修改時間較早的文件,取該文件大小FS(file size)作為參考值,從修改時間較晚的文件中,以文件尾部為基點,向前取FS大小,截取剩余部分,將剩余部分發(fā)送給另一端,另一端獲取剩余部分,將其合并至其本地文件首部,完成文件同步;

②針對被選定為尾部添加的文件,取用戶終端和遠程虛擬主機端兩端中修改時間較早的文件,取其文件大小FS1(file size)作為參考值,從修改時間較晚的文件中,以文件首部為基點,向后取FS1大小,截取剩余部分,將剩余部分發(fā)送給另一端,另一端獲取剩余部分,將其合并至本地文件尾部,完成文件同步;

③針對被選定為首部修改的文件,進行分塊同步,具體步驟包括:

(Ⅰ)取用戶終端和遠程虛擬主機端兩端中修改時間較早的文件,取其文件大小FS2(file size)作為參考值,F(xiàn)S2/2位置作為標記位置MP(mark point),標記位置是指將文件起始位置作為0,位置向后移動特定大小的數(shù)值,例如,F(xiàn)S2/2位置是二分之一文件大小數(shù)值,將MP作為步進位SP(step point);

(Ⅱ)計算用戶終端和遠程虛擬主機端兩端文件從標記位置MP至文件尾的散列值,并進行比較,若散列值相同,則保留MP作為切割位CP(cut point),MP進行取半操作,重新執(zhí)行步驟(Ⅱ),直至散列值不同或MP<MFS;若散列值不同,SP變?yōu)镾P*0.5,保留MP作為切割位CP(cut point),MP變?yōu)镸P+SP,重新執(zhí)行步驟(Ⅱ),直至(FS-MP)<MFS或散列值相同;

(Ⅲ)計算完成后,截取修改時間較晚文件的0至CP段發(fā)送給另一端,另一端獲取剩余部分,將其合并至本地文件首部,完成文件同步;

步驟③如圖2所示,具體步驟如下:

E、二分法第一次進行切割,比較右側(cè)部分的文件散列信息;

F、右側(cè)部分的文件散列信息相同,切割位向左移動MP/2進行第二次切割;

G、繼續(xù)比較右側(cè)文件散列信息,結(jié)果相同,繼續(xù)向左移動切割位;

H、第三次切割,比較結(jié)果不同,將第二次切割位作為最終結(jié)果,文件比較完成。

④針對被選定為尾部修改的文件,進行分塊同步,具體步驟包括:

(Ⅳ)取用戶終端和遠程虛擬主機端兩端中修改時間較早的文件,取其文件大小FS3(file size)作為參考值,從FS3/2位置作為標記位置MP1(mark point),將此MP1數(shù)值作為步進位SP1(step point);

(Ⅴ)計算用戶終端和遠程虛擬主機端兩端文件從首部至MP1的散列值,并進行比較,若散列值不同,保留MP1作為切割位CP1(cut point),MP1取半操作,重新執(zhí)行步驟(Ⅴ),直至散列值比較結(jié)果相同或MP1<MFS為止;若此散列值相同,SP1變?yōu)镾P1+(FS3-SP1)/2,保留MP1作為切割位CP(cut point),同時MP1變?yōu)镸P1+SP1,重新執(zhí)行步驟(Ⅴ),直至FS3-MP1<MFS或散列值不同為止;

(Ⅵ)計算完成后,截取修改時間較晚文件的CP至文件尾段發(fā)送給另一端,另一端獲取剩余部分,將其合并至本地文件尾部,完成文件同步。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
衢州市| 林甸县| 林芝县| 河北区| 广西| 阜平县| 沂源县| 伊春市| 张北县| 库尔勒市| 五指山市| 高尔夫| 丹棱县| 阜宁县| 报价| 获嘉县| 岳西县| 莆田市| 延边| 乐都县| 攀枝花市| 冕宁县| 博兴县| 东城区| 江安县| 烟台市| 博客| 瓦房店市| 常州市| 吴堡县| 龙口市| 沾益县| 固阳县| 马关县| 绥江县| 蓬莱市| 曲松县| 怀宁县| 大渡口区| 大洼县| 玛多县|