本申請涉及通信技術(shù)領域,尤其涉及一種數(shù)據(jù)同步方法、更新方法及裝置。
背景技術(shù):
網(wǎng)絡存儲或者稱云存儲技術(shù)近年來發(fā)展迅速。網(wǎng)絡存儲技術(shù)一方面為客戶端設備的本地文件提供網(wǎng)絡存儲功能,另一方面可以實現(xiàn)多客戶端設備、多存儲設備或者多平臺儲存數(shù)據(jù)的自動同步功能。
用戶的文件以樹狀形式存儲在服務器端,其它客戶端設備與服務端通信,獲取或者提交文件樹的變化,實現(xiàn)各客戶端設備與服務器之間的文件同步,省去了用戶在各個客戶端設備之間對比和拷貝文件的過程,為移動時代用戶的文件存儲需求提供了方便。
典型的同步流程為:客戶端設備A的本地文件樹發(fā)生變化后,提交變化信息到服務器,實現(xiàn)到客戶端設備A與服務端數(shù)據(jù)一致;客戶端設備B感知并獲取到服務器端的變化信息,將客戶端設備B的本地文件樹同步為與服務器端一致。同步完成后,客戶端設備A與客戶端設備B的文件樹結(jié)構(gòu)達到一致。
申請內(nèi)容
本申請實施例提供一種數(shù)據(jù)同步方法及裝置,用以根據(jù)文件樹上待同步給客戶端設備的節(jié)點實現(xiàn)文件樹更新。
本申請實施例提供的數(shù)據(jù)同步方法,包括:
接收客戶端設備發(fā)送的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包括文件樹索引信息;
根據(jù)所述文件樹索引信息,獲取網(wǎng)絡側(cè)存儲的與所述文件樹索引信息對應 的第一文件樹;
確定所述第一文件樹上待同步給所述客戶端設備的節(jié)點,一個文件樹中除根節(jié)點以外的每個節(jié)點對應的一個文件或文件夾;
根據(jù)確定出的待同步給所述客戶端設備的節(jié)點,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,所述數(shù)據(jù)同步命令用于指示所述客戶端設備對所述客戶端設備存儲的與所述文件樹索引信息對應的第二文件樹進行更新。
優(yōu)選地,所述確定所述第一文件樹上待同步給所述客戶端設備的節(jié)點,包括:確定數(shù)據(jù)同步方式,所確定的數(shù)據(jù)同步方式包括全量更新或差量更新;根據(jù)確定的同步方式,確定所述第一文件樹上待同步給所述客戶端設備的節(jié)點。
優(yōu)選地,所述數(shù)據(jù)同步請求中還包括與所述文件樹索引信息對應的第二文件樹的版本號;
所述第一文件樹以及所述第二文件樹中,根節(jié)點的版本號與除根節(jié)點以外的其它所有節(jié)點中的最大版本號相同,文件樹的版本號與該文件樹的根節(jié)點的版本號相同;當文件樹中的一個節(jié)點更新時,該節(jié)點的版本號遞增。
優(yōu)選地,所述確定數(shù)據(jù)同步方式,包括:
確定所述第一文件樹中的有效節(jié)點數(shù),其中,一個文件樹上的有效節(jié)點是指該文件樹上除被標記為已刪除節(jié)點之外的所有節(jié)點;
確定所述第一文件樹與所述第二文件樹的差量節(jié)點數(shù),其中,所述第一文件樹與所述第二文件樹的差量節(jié)點是指所述第一文件樹上版本號大于所述第二文件樹的版本號的節(jié)點;
若所述差量節(jié)點數(shù)大于或等于所述有效節(jié)點數(shù)的n倍,則確定采用全量更新,否則確定采用差量更新,n≥1。
優(yōu)選地,所述數(shù)據(jù)同步請求中還包括同步方式指示信息,所述同步方式指示信息所指示的同步方式包括全量更新或差量更新;
所述確定數(shù)據(jù)同步方式,包括:
根據(jù)所述數(shù)據(jù)同步請求中包括的同步方式指示信息,確定數(shù)據(jù)同步方式。
優(yōu)選地,若所述同步方式指示信息為全量更新指示信息,則所述全量更新指示信息是所述客戶端設備在根據(jù)接收到的數(shù)據(jù)同步命令進行文件樹同步操作失敗后,攜帶于所述數(shù)據(jù)同步請求中的。
優(yōu)選地,所述根據(jù)確定的同步方式,確定所述第一文件樹上待同步給所述客戶端設備的節(jié)點,包括:
若確定出的同步方式為全量更新,則將所述第一文件樹上的有效節(jié)點確定為待同步給所述客戶端設備的節(jié)點;其中,一個文件樹上的有效節(jié)點是指該文件樹上除被標記為已刪除節(jié)點之外的所有節(jié)點;或者
若確定出的同步方式為差量更新,則將所述第一文件樹與所述第二文件樹的差量節(jié)點確定為待同步給所述客戶端設備的節(jié)點,其中,所述第一文件樹與所述第二文件樹的差量節(jié)點是指所述第一文件樹上版本號大于所述第二文件樹的版本號的節(jié)點。
優(yōu)選地,所述向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,包括:
根據(jù)確定出的所述第一文件樹上待同步給所述客戶端設備的節(jié)點,以及分頁大小參數(shù),確定總分頁頁數(shù),以及每頁對應的節(jié)點的更新信息;其中,所述分頁大小參數(shù)用節(jié)點數(shù)量表示,一個分頁對應的節(jié)點數(shù)量等于所述分頁大小參數(shù);
根據(jù)分頁順序,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,其中攜帶當前分頁對應的節(jié)點的更新信息、當前分頁的頁號以及總分頁頁數(shù)。
其中,根據(jù)分頁順序,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令之后,還包括:
接收所述客戶端設備再次發(fā)送的數(shù)據(jù)同步請求,其中攜帶有所請求的分頁的頁號;
根據(jù)所述客戶端設備再次發(fā)送的數(shù)據(jù)同步請求中攜帶的分頁頁號,獲取對應分頁所對應的節(jié)點的更新信息;
向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,其中攜帶有當前分頁對應的節(jié)點的更新信息、當前分頁的頁號以及總分頁頁數(shù)。
優(yōu)選地,若在向所述客戶端設備發(fā)送數(shù)據(jù)同步命令后,所述第一文件樹的版本號發(fā)生更新,則還包括:
將更新后的所述第一文件樹上,版本號大于所述第一文件樹更新前的版本號的節(jié)點的更新信息,發(fā)送給所述客戶端設備;或者
向所述客戶端設備發(fā)送通知消息,所述通知消息用于通知所述第一文件樹的版本號發(fā)生更新并征詢所述客戶端設備是否發(fā)起數(shù)據(jù)同步請求;其中,所述通知消息中包括所述第一文件樹更新后的版本號。
本申請實施例還提供了一種數(shù)據(jù)同步裝置,包括:
接收模塊,用于接收客戶端設備發(fā)送的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包括文件樹索引信息;
獲取模塊,用于根據(jù)所述文件樹索引信息,獲取網(wǎng)絡側(cè)存儲的與所述文件樹索引信息對應的第一文件樹;
確定模塊,用于確定所述第一文件樹上待同步給所述客戶端設備的節(jié)點,一個文件樹中除根節(jié)點以外的每個節(jié)點對應的一個文件或文件夾;
發(fā)送模塊,用于根據(jù)確定出的待同步給所述客戶端設備的節(jié)點,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,所述數(shù)據(jù)同步命令用于指示所述客戶端設備對所述客戶端設備存儲的與所述文件樹索引信息對應的第二文件樹進行更新。
優(yōu)選地,所述確定模塊具體用于:確定數(shù)據(jù)同步方式,所確定的數(shù)據(jù)同步方式包括全量更新或差量更新;根據(jù)確定的同步方式,確定所述第一文件樹上待同步給所述客戶端設備的節(jié)點。
其中,所述數(shù)據(jù)同步請求中還包括與所述文件樹索引信息對應的第二文件樹的版本號;所述第一文件樹以及所述第二文件樹中,根節(jié)點的版本號與除根節(jié)點以外的其它所有節(jié)點中的最大版本號相同,文件樹的版本號與該文件樹的根節(jié)點的版本號相同;當文件樹中的一個節(jié)點更新時,該節(jié)點的版本號遞增。
優(yōu)選地,所述確定模塊具體用于:
確定所述第一文件樹中的有效節(jié)點數(shù),其中,一個文件樹上的有效節(jié)點是 指該文件樹上除被標記為已刪除節(jié)點之外的所有節(jié)點;
確定所述第一文件樹與所述第二文件樹的差量節(jié)點數(shù),其中,所述第一文件樹與所述第二文件樹的差量節(jié)點是指所述第一文件樹上版本號大于所述第二文件樹的版本號的節(jié)點;
若所述差量節(jié)點數(shù)大于或等于所述有效節(jié)點數(shù)的n倍,則確定采用全量更新,否則確定采用差量更新,n≥1。
本申請實施例中,網(wǎng)絡側(cè)接收到客戶端設備發(fā)送的數(shù)據(jù)同步請求后,獲取網(wǎng)絡側(cè)存儲的對應的文件樹,確定該網(wǎng)絡側(cè)存儲的文件樹上需要待同步給客戶端設備的節(jié)點,并向客戶端設備發(fā)送數(shù)據(jù)同步命令,使客戶端設備根據(jù)該數(shù)據(jù)同步命令進行數(shù)據(jù)同步。與每次文件樹同步時將文件樹的全部節(jié)點發(fā)送給客戶端進行同步更新相比,可以提高數(shù)據(jù)同步效率。
本申請實施例還提供一種數(shù)據(jù)更新方法及裝置,用以實現(xiàn)基于文件樹的數(shù)據(jù)更新。
本實施例提供的數(shù)據(jù)更新方法,包括:
接收數(shù)據(jù)同步命令,所述數(shù)據(jù)同步命令中包括文件樹索引信息以及節(jié)點的更新信息;其中,一個文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾;
根據(jù)所述文件樹索引信息,獲取對應的待同步的文件樹;
根據(jù)所述數(shù)據(jù)同步命令中包括的節(jié)點的更新信息,更新所述待同步的文件樹;其中,一個文件樹中,根節(jié)點的版本號與除根節(jié)點以外的其他所有節(jié)點中的最大版本號相同,文件樹的版本號與該文件樹的根節(jié)點的版本號相同,當文件樹中的一個節(jié)點更新時,該節(jié)點的版本號遞增。
優(yōu)選地,所述節(jié)點的更新信息包括:待修改文件名稱的節(jié)點的在文件樹中的位置信息以及修改后的文件名;相應地,所述更新所述待同步的文件樹,包括:
根據(jù)所述待修改文件名稱的節(jié)點的位置信息,將所述待同步的文件樹上相 應節(jié)點的版本號加1,并更新該文件樹的版本號;
根據(jù)修改后的文件名稱,更新節(jié)點與文件的關聯(lián)關系中所述待修改文件名稱的節(jié)點所對應的文件的名稱。
優(yōu)選地,所述節(jié)點的更新信息包括:待修改文件夾名稱的節(jié)點在文件樹中的位置信息以及修改后的文件夾名稱;相應地,所述更新所述待同步的文件樹,包括:
根據(jù)所述待修改文件夾名稱的節(jié)點的位置信息,將所述待同步的文件樹上相應節(jié)點的版本號加1;
若所述待修改文件夾名稱的節(jié)點下包含子節(jié)點,則分別更新所述待修改文件夾名稱的節(jié)點下的所有子節(jié)點的版本號;其中,對于每個子節(jié)點,更新該子節(jié)點的版本號時,在該子節(jié)點當前的版本號上加上該子節(jié)點的父節(jié)點的版本差,所述父節(jié)點的版本差為該父節(jié)點更新后的版本號與更新前的版本號之差;
更新所述待同步的文件樹的版本號;
根據(jù)修改后的文件夾名稱,更新節(jié)點與文件夾的關聯(lián)關系中,所述待修改文件夾名稱的節(jié)點所對應的文件夾的名稱。
優(yōu)選地,所述節(jié)點的更新信息包括:待刪除的節(jié)點在文件樹中的位置信息;相應地,所述更新待同步的文件樹,包括:
根據(jù)所述待刪除的節(jié)點的位置信息,在所述待同步的文件樹上將相應節(jié)點標記為刪除;
將所述被標記為刪除的節(jié)點的版本號加1,并更新所述待同步的文件樹的版本號。
優(yōu)選地,所述節(jié)點的更新信息包括:待刪除的節(jié)點在文件樹中的位置信息;相應地,所述更新所述待同步的文件樹,包括:
根據(jù)所述待刪除的節(jié)點的位置信息,在所述待同步的文件樹上將相應節(jié)點標記為刪除,以及將所述被標記為刪除的節(jié)點的所有子節(jié)點標記為刪除;
分別將所述標記為刪除的節(jié)點的版本號加1,并更新所述待同步的文件樹 的版本號。
優(yōu)選地,所述節(jié)點的更新信息包括:新增加的節(jié)點在文件樹中的位置信息以及所述新增加的節(jié)點所對應的文件;相應地,所述更新所述待同步的文件樹,包括:
根據(jù)所述新增加的節(jié)點的位置信息,在所述待同步的文件樹上增加節(jié)點;
將新增加的節(jié)點的版本號設置為所述待同步的文件樹的版本號加1,并更新所述待同步的文件樹的版本號;
存儲所述新增加的節(jié)點所對應的文件,建立所述新增加的節(jié)點與該節(jié)點所對應的文件的關聯(lián)關系。
優(yōu)選地,所述節(jié)點的更新信息包括:新增加的節(jié)點在文件樹中的位置信息以及所述新增加的節(jié)點所對應的文件夾;相應地,所述更新所述待同步的文件樹,包括:
根據(jù)所述新增加的節(jié)點的位置信息,在所述待同步的文件樹上增加節(jié)點;
將新增加的節(jié)點的版本號設置為所述待同步的文件樹的版本號加1,并更新所述待同步的文件樹的版本號;
建立所述新增加的節(jié)點與該節(jié)點所對應的文件夾的關聯(lián)關系。
本申請實施例還提供了一種數(shù)據(jù)更新裝置,包括:
接收模塊,用于接收數(shù)據(jù)同步命令,所述數(shù)據(jù)同步命令中包括文件樹索引信息以及節(jié)點的更新信息;其中,一個文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾;
獲取模塊,用于根據(jù)所述文件樹索引信息,獲取對應的待同步的文件樹;
更新模塊,用于根據(jù)所述數(shù)據(jù)同步命令中包括的節(jié)點的更新信息,更新所述待同步的文件樹;其中,一個文件樹中,根節(jié)點的版本號與除根節(jié)點以外的其他所有節(jié)點中的最大版本號相同,文件樹的版本號與該文件樹的根節(jié)點的版本號相同,當文件樹中的一個節(jié)點更新時,該節(jié)點的版本號遞增。
本申請實施例中,接收到數(shù)據(jù)同步命令后,根據(jù)該數(shù)據(jù)同步命令中包含的 文件樹索引信息獲取對應的文件樹,根據(jù)該數(shù)據(jù)同步命令中包含的節(jié)點更新信息更新該文件樹,從而實現(xiàn)了基于文件樹的數(shù)據(jù)更新過程。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請實施例提供的網(wǎng)絡架構(gòu)示意圖;
圖2為本申請實施例提供的文件樹更新流程示意圖;
圖3為本申請實施例提供的文件樹版本號更新流程示意圖;
圖4至圖7分別為本申請實施例提供的文件樹更新示意圖;
圖8為本申請實施例提供的文件樹同步流程示意圖;
圖9為本申請實施例提供的文件樹同步過程中網(wǎng)絡側(cè)的文件樹發(fā)生更新的示意圖;
圖10為本申請實施例提供的數(shù)據(jù)更新裝置的結(jié)構(gòu)示意圖;
圖11為本申請實施例提供的數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖;
圖12為本申請實施例提供的客戶端設備的結(jié)構(gòu)示意圖;
圖13為本申請實施例提供的服務器的結(jié)構(gòu)示意圖。
具體實施方式
為了使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本申請作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部份實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。
圖1示例性地示出了本申請實施例適用的網(wǎng)絡系統(tǒng)架構(gòu)。
如圖1所示,該架構(gòu)中包括服務器101,服務器101通過網(wǎng)絡102與多個客戶端設備通信。所述網(wǎng)絡可以是無線通信網(wǎng)絡,也可以是有線通信網(wǎng)絡。
所述客戶端設備可包括無線通信設備,比如手機、平板電腦、穿戴設備等,所述客戶端設備也可以是個人計算機、筆記本電腦等。比如,圖中示出的客戶端設備包括:第一手機103、第二手機104、平板電腦105、筆記本電腦106、計算機107。
所述服務器101可以是采用云計算技術(shù)的服務器或服務器集群。服務器101能夠提供網(wǎng)絡存儲功能。
在實際應用中,該服務器101可為網(wǎng)盤服務器,提供文件通過功能,客戶端設備可與服務器101進行文件同步。比如,第二手機104的本地文件發(fā)生變化后,提交變化信息到服務器101,實現(xiàn)到第二手機104與服務端數(shù)據(jù)一致;平板電腦105感知并獲取到服務器端的變化信息,將平板電腦105的本地文件同步為與服務器端一致。同步完成后,第二手機04與平板電腦105的文件樹結(jié)構(gòu)達到一致。
用戶在使用文件同步功能時,一般需要使用用戶賬戶登錄服務器。一個用戶可以使用不同的登錄服務器使用文件同步功能,這樣一個用戶在這些客戶端設備上的文件與服務器上存儲的該用戶的文件保持同步。所有使用文件同步服務功能的用戶均分配有唯一用戶ID,客戶端設備上存儲的用戶文件,以及服務器上存儲的用戶文件,可以使用用戶ID進行索引或標識。一個用戶ID僅對于一個文件樹。
本申請實施例中,客戶端設備和服務器均以文件樹形式存儲文件。文件樹是指以樹形結(jié)構(gòu)存儲文件。文件樹包括一個根節(jié)點以及根節(jié)點下的各級節(jié)點,除根節(jié)點以外的任何一個節(jié)點標識一個文件或文件夾,如果一個節(jié)點標識一個文件夾且該文件夾下還有子文件夾和/或文件,則文件夾對應的節(jié)點下包含一個或多個子節(jié)點。如果一個節(jié)點對應一個文件,則該節(jié)點的屬性信息中可包含該文件的名稱、存儲位置信息等,如果一個節(jié)點對應一個文件夾,則該節(jié)點的屬 性信息可包含該文件夾的名稱、存儲位置信息等。
本申請實施例中,客戶端設備和服務器均以文件樹的形式存儲文件,客戶端設備在客戶端設備側(cè)存儲的文件樹與服務器在網(wǎng)絡側(cè)存儲的文件樹需要保持同步,文件樹中的每個節(jié)點均對應一個文件或文件夾。
本申請實施例中的文件樹具有以下特點:
-對應于每個文件樹維護有該文件樹的版本號,文件樹的版本號在每次節(jié)點更新時均會變化。本申請實施例中,以文件樹版本號遞增變化為例描述。
-對應于每個文件節(jié)點維護有該節(jié)點的版本號,一個節(jié)點的版本號在每次該節(jié)點發(fā)生變化時會變化;
-文件樹節(jié)點包括文件節(jié)點和文件夾節(jié)點,一個文件節(jié)點對應一個文件,一個文件夾節(jié)點對應一個文件夾;
-文件節(jié)點發(fā)生任何變化(比如增加文件節(jié)點、刪除文件節(jié)點或修改文件節(jié)點)時,目標節(jié)點新版本號=文件樹當前版本號+1,文件樹當前版本號=文件樹節(jié)點最大版本號;
-文件夾節(jié)點發(fā)生新增時,目標節(jié)點新版本號=文件樹當前版本號+1,文件樹當前版本號=文件樹節(jié)點最大版本號;
-文件夾節(jié)點發(fā)生刪除時,目標節(jié)點新版本號=文件樹當前版本號+1,文件樹當前版本號=文件樹節(jié)點最大版本號;文件夾節(jié)點及其子文件夾/子文件的節(jié)點直接刪除,版本號不發(fā)生變化
-文件夾節(jié)點發(fā)生修改時,目標節(jié)點新版本號=文件樹當前版本號+1,文件樹當前版本號=文件樹節(jié)點最大版本號;其子文件夾和子文件節(jié)點(向下遞歸)的版本號=當前版本號+目標節(jié)點版本差,版本差=目標節(jié)點新舊版本號之差;
-客戶端維護本地文件樹的版本號,每次更新完成后更新為與服務端文件樹版本號一致。
本實施例中,“文件/文件夾”的表達方式表示“文件和/或文件夾,以下描述中的“文件/文件夾”可按照此處的說明進行解釋。
基于圖1所示的系統(tǒng)架構(gòu),圖2示出了本申請實施例提供的一種數(shù)據(jù)更新流程,該流程可在客戶端設備側(cè)執(zhí)行,也可在服務器側(cè)執(zhí)行。
比如,在一些場景中,用戶登錄客戶端設備A,客戶端設備A自動啟動檢查文件是否有更新,如果有更新,則客戶端設備A向服務器發(fā)送數(shù)據(jù)同步命令,服務器根據(jù)該數(shù)據(jù)同步命令更新網(wǎng)絡側(cè)存儲的與該用戶的ID對應的文件樹,以使客戶端設備A上該用戶ID對應的文件樹與網(wǎng)絡側(cè)該用戶ID對應的文件樹保持同步,再例如,用戶修改客戶端設備A上的文件,客戶端設備A向服務器發(fā)送數(shù)據(jù)同步命令,服務器根據(jù)該數(shù)據(jù)同步命令更新網(wǎng)絡側(cè)存儲的與該用戶的ID對應的文件樹,以使客戶端設備A上該用戶ID對應的文件樹與網(wǎng)絡側(cè)該用戶ID對應的文件樹保持同步。再比如,在另一些場景中,服務器根據(jù)客戶端設備A發(fā)送的數(shù)據(jù)同步命令對某個用戶ID對應的文件樹更新后,向客戶端設備B發(fā)送數(shù)據(jù)同步命令,客戶端設備B根據(jù)該數(shù)據(jù)同步命令進行文件樹更新,以使客戶端設備B上該用戶ID對應的文件樹與網(wǎng)絡側(cè)該用戶ID對應的文件樹保持同步。
如圖2所示,該數(shù)據(jù)同步流程可包括以下步驟:
步驟201:接收數(shù)據(jù)同步命令,所述數(shù)據(jù)同步命令中包括文件樹索引信息以及節(jié)點的更新信息。
所述數(shù)據(jù)同步命令中至少包括文件樹的索引信息以及發(fā)生變更的節(jié)點的更新信息。如前所述,用戶ID可作為文件樹的索引信息,當然也不排除使用文件樹ID作為文件樹索引信息的情況,本申請實施例對此不作限制。所述數(shù)據(jù)同步命令中攜帶的節(jié)點的更新信息中,通常會包括操作類型指示信息。進一步地,根據(jù)文件操作類型的不同而不同,比如,節(jié)點的更新信息可包括:發(fā)生變更的節(jié)點在文件樹中的位置信息、發(fā)生變更的節(jié)點所對應的文件/文件夾。
舉例來說,根據(jù)文件/文件夾的操作類型,節(jié)點的更新信息的內(nèi)容可包括以 下幾種情況:
-對于修改文件名的操作,節(jié)點的更新信息可包括:待修改文件名稱的節(jié)點在文件樹中的位置信息以及修改后的文件名;
-對于修改文件夾名稱的操作,節(jié)點的更新信息可包括:待修改文件夾名稱的節(jié)點在文件樹中的位置信息以及修改后的文件夾名稱;
-對于刪除文件的操作,節(jié)點的更新信息可包括:待刪除的節(jié)點在文件樹中的位置信息;
-對于刪除文件夾的操作,節(jié)點的更新信息可包括:待刪除的節(jié)點在文件樹中的位置信息;
-對于新增加文件的操作,節(jié)點的更新信息可包括:新增加的節(jié)點在文件樹中的位置信息以及所述新增加的節(jié)點所對應的文件;
-對于新增加文件夾的操作,節(jié)點的更新信息可包括:新增加的節(jié)點在文件樹中的位置信息以及所述新增加的節(jié)點所對應的文件夾。
其中,節(jié)點在文件樹中的位置信息,可采用相對位置來表示,比如,通過指示出一個節(jié)點的父節(jié)點的標識,從而可以定位出該節(jié)點的位置。
步驟202:根據(jù)數(shù)據(jù)同步命令中的文件樹索引信息,獲取對應的待同步的文件樹。
如前所述,文件樹索引信息可以是用戶ID,該步驟中可根據(jù)用戶ID獲取網(wǎng)絡側(cè)存儲的與該用戶ID對應的文件樹。
進一步地,在根據(jù)用戶ID確定出待同步的文件樹后,可以鎖定該文件樹,以保證在對該文件樹進行更新的過程中,不會有其它操作對本次更新有任何影響。
步驟203:根據(jù)數(shù)據(jù)同步命令中的節(jié)點的更新信息,更新待同步的文件樹。進一步地,在完成文件樹更新操作后,可解除對該文件樹的鎖定。
如前所述,文件/文件夾的操作類型可包括:修改文件名的操作、修改文件夾名稱的操作、刪除文件的操作、刪除文件夾的操作、新增加文件的操作、新 增加文件夾的操作等。文件/文件夾的位置移動操作可轉(zhuǎn)化為在目的位置新增文件/文件夾的操作以及在源位置刪除文件/文件夾的操作,因此,下面僅以上述幾種操作類型對文件樹的根系過程進行描述。
(1)修改文件名的操作
此種情況下,數(shù)據(jù)同步命令中包含的節(jié)點的更新信息,可包括:待修改文件名稱的節(jié)點的在文件樹中的位置信息以及修改后的文件名。
步驟203的具體實現(xiàn)過程可以是:根據(jù)待修改文件名稱的節(jié)點的位置信息,將待同步的文件樹上相應節(jié)點的版本號加1,并更新該文件樹的版本號;根據(jù)修改后的文件名稱,更新節(jié)點與文件的關聯(lián)關系中該待修改文件名稱的節(jié)點所對應的文件的名稱。
其中,如前所述,文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾,節(jié)點與文件/文件夾的關聯(lián)關系可通過關聯(lián)關系表來保存,該關聯(lián)關系表中記錄了文件樹上的每個節(jié)點(除根節(jié)點以外)的標識信息,以及每個節(jié)點對應的文件/文件夾的存儲路徑(可包括存儲位置以及文件/文件夾名稱)。相應地,當文件名更新時,需要針對相應節(jié)點更新該關聯(lián)關系表中該節(jié)點所對應的文件的名稱。
(2)修改文件夾名稱的操作
此種情況下,數(shù)據(jù)同步命令中包含的節(jié)點的更新信息,可包括:待修改文件夾名稱的節(jié)點在文件樹中的位置信息以及修改后的文件夾名稱。
步驟203的具體實現(xiàn)過程可以是:根據(jù)待修改文件夾名稱的節(jié)點的位置信息,將待同步的文件樹上相應節(jié)點的版本號加1;若待修改文件夾名稱的節(jié)點下包含子節(jié)點,則分別更新該待修改文件夾名稱的節(jié)點下的所有子節(jié)點的版本號,其中,對于每個子節(jié)點,更新該子節(jié)點的版本號時,在該子節(jié)點當前的版本號的基礎上加上該子節(jié)點的父節(jié)點(即上述更新名稱的文件夾所對應的節(jié)點)的版本差,所述父節(jié)點的版本差為該父節(jié)點更新后的版本號與更新前的版本號之差;更新所述待同步的文件樹的版本號,比如更新為該文件樹上除根節(jié) 點以外的所有節(jié)點中的最大版本號。此為,還要根據(jù)修改后的文件夾名稱,更新節(jié)點與文件夾的關聯(lián)關系中,所述待修改文件夾名稱的節(jié)點所對應的文件夾的名稱。
其中,如前所述,文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾,節(jié)點與文件/文件夾的關聯(lián)關系可通過關聯(lián)關系表來保存。相應地,當文件夾名更新時,需要針對相應節(jié)點更新該關聯(lián)關系表中該節(jié)點所對應的文件夾的名稱。
(3)刪除文件的操作
此種情況下,數(shù)據(jù)同步命令中包含的節(jié)點的更新信息,可包括:待刪除的節(jié)點在文件樹中的位置信息。
步驟203的具體實現(xiàn)過程可以是:根據(jù)待刪除的節(jié)點的位置信息,在待同步的文件樹上將相應節(jié)點標記為刪除;將被標記為刪除的節(jié)點的版本號加1,并更新待同步的文件樹的版本號。
其中,如前所述,文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾,節(jié)點與文件/文件夾的關聯(lián)關系可通過關聯(lián)關系表來保存。相應地,當刪除文件時,可進一步地針對相應節(jié)點刪除該節(jié)點與文件的關聯(lián)關系信息。
(4)刪除文件夾的操作
此種情況下,數(shù)據(jù)同步命令中包含的節(jié)點的更新信息,可包括:待刪除的節(jié)點在文件樹中的位置信息。
步驟203的具體實現(xiàn)過程可以是:根據(jù)待刪除的節(jié)點的位置信息,在待同步的文件樹上將相應節(jié)點標記為刪除,以及將被標記為刪除的節(jié)點的所有子節(jié)點標記為刪除;分別將標記為刪除的節(jié)點的版本號加1,并更新待同步的文件樹的版本號。
其中,如前所述,文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾,節(jié)點與文件/文件夾的關聯(lián)關系可通過關聯(lián)關系表來保存。相應地,當刪除文件夾時,可進一步地針對相應節(jié)點刪除該節(jié)點與文件夾的關聯(lián)關系信息。
(5)新增加文件的操作
此種情況下,數(shù)據(jù)同步命令中包含的節(jié)點的更新信息,可包括:新增加的節(jié)點在文件樹中的位置信息以及所述新增加的節(jié)點所對應的文件。
步驟203的具體實現(xiàn)過程可以是:根據(jù)新增加的節(jié)點的位置信息,在待同步的文件樹上增加節(jié)點;將新增加的節(jié)點的版本號設置為待同步的文件樹的版本號加1,并更新待同步的文件樹的版本號;存儲新增加的節(jié)點所對應的文件,建立該新增加的節(jié)點與該節(jié)點所對應的文件的關聯(lián)關系。
其中,如前所述,文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾,節(jié)點與文件/文件夾的關聯(lián)關系可通過關聯(lián)關系表來保存。相應地,當新增加文件時,可在該關聯(lián)關系表中增加一條記錄,用來記錄該新增加的節(jié)點與對應的文件的關聯(lián)關系。
(6)新增加文件夾的操作
此種情況下,數(shù)據(jù)同步命令中包含的節(jié)點的更新信息,可包括:新增加的節(jié)點在文件樹中的位置信息以及所述新增加的節(jié)點所對應的文件夾。
步驟203的具體實現(xiàn)過程可以是:根據(jù)新增加的節(jié)點的位置信息,在待同步的文件樹上增加節(jié)點;將新增加的節(jié)點的版本號設置為待同步的文件樹的版本號加1,并更新待同步的文件樹的版本號;建立該新增加的節(jié)點與該節(jié)點所對應的文件夾的關聯(lián)關系。
其中,如前所述,文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾,節(jié)點與文件/文件夾的關聯(lián)關系可通過關聯(lián)關系表來保存。相應地,當新增加文件夾時,可在該關聯(lián)關系表中增加一條記錄,用來記錄該新增加的節(jié)點與對應的文件夾的關聯(lián)關系。
基于圖2所示的數(shù)據(jù)同步流程以及數(shù)據(jù)同步原理,圖3以對客戶端設備上的文件樹進行更新為例,示出了一種具體實施時的文件樹及節(jié)點的版本流程,該流程僅示出了文件樹版本以及節(jié)點版本的更新相關流程,可由客戶端設備或客戶端設備中的數(shù)據(jù)更新裝置執(zhí)行。
如圖3所示,當客戶端設備中的用戶文件/文件夾發(fā)生更新時(步驟301),該裝置該確定更新操作所對應的文件樹上的目標節(jié)點,更新目標節(jié)點的版本號,即,目標節(jié)點版本號=文件樹版本號+1(步驟302);
在步驟303中,如果判斷該目標節(jié)點對應一文件夾,則計算該目標節(jié)點的版本差:版本差=目標節(jié)點新版本號-目標節(jié)點舊版本號(步驟303~步驟304)。
在步驟305中,如果判斷為是刪除操作,則遍歷該目標節(jié)點下的所有子節(jié)點,并將遍歷到的子節(jié)點設置為刪除(步驟305、步驟309至步驟311)。在遍歷過程中,如果遍歷到的子節(jié)點對應的是文件,則更新文件樹的版本號:文件樹版本號=除根節(jié)點外所有節(jié)點中最大的版本號,并結(jié)束此版本更新流程(步驟312);如果遍歷到的子節(jié)點對應的是文件夾,則針對當前遍歷到的子節(jié)點,跳轉(zhuǎn)到步驟309執(zhí)行,以遍歷該子節(jié)點下的子節(jié)點,以此類推,直到遍歷完成該目標節(jié)點下的最低級別的子節(jié)點。
在步驟305中,如果判斷為不是刪除操作,則遍歷該目標節(jié)點的子節(jié)點,對遍歷到的子節(jié)點更新其版本號:子節(jié)點版本號=版本差+子節(jié)點當前版本號(步驟306、步驟307)。在遍歷過程中,如果遍歷到的子節(jié)點對應的是文件,則更新文件樹的版本號:文件樹版本號=除根節(jié)點外所有節(jié)點中最大的版本號,并結(jié)束此版本更新流程(步驟312);如果遍歷到的子節(jié)點對應的是文件夾,則針對當前遍歷到的子節(jié)點,跳轉(zhuǎn)到步驟306執(zhí)行,以遍歷該子節(jié)點下的子節(jié)點,以此類推,直到遍歷完成該目標節(jié)點下的最低級別的子節(jié)點。
在步驟303中,如果判斷該目標節(jié)點對應一文件,則更新文件樹的版本號:文件樹版本號=除根節(jié)點外所有節(jié)點中最大的版本號,并結(jié)束此版本更新流程(步驟312),并結(jié)束此版本更新流程。
優(yōu)選地,在一些實施例中,如果對目標節(jié)點的更新操作類型為刪除操作,則對于該目標節(jié)點的子節(jié)點的版本號可不做更新,并且將該目標節(jié)點及其所有子節(jié)點的狀態(tài)設置為已刪除,這樣可以保證用戶或者應用程序在誤刪除文件或文件夾時,可以找回被刪除的數(shù)據(jù)。在實際應用中,優(yōu)選地,也可以將文件樹 中標記為已刪除狀態(tài)的節(jié)點保留一段時間,比如一個月,如果超過了這個時間長度,則被標記為已刪除的節(jié)點將被從文件樹上刪除,這樣一方面給用戶恢復數(shù)據(jù)的操作保留了一段時間,另一方面也可以降低存儲設備的存儲空間開銷。
為了更清楚地說明文件樹的版本號以及文件樹中的節(jié)點的版本號的更新過程,下面以三種具有應用場景為例舉例說明。
場景一
參見圖4,文件樹更新過程包括:
(1)創(chuàng)建文件樹
創(chuàng)建根節(jié)點ROOT,目前尚未創(chuàng)建任何文件/文件夾,因此文件樹版本號為0,表示為ROOT(0)。以下描述中,括號內(nèi)的數(shù)字均表示該節(jié)點的版本號。
(2)在根目錄下創(chuàng)建文件夾:D1、D2、D3、D4;
在根節(jié)點ROOT下增加節(jié)點D1(1),根節(jié)點更新為ROOT(1);
在根節(jié)點ROOT下增加節(jié)點D2(2),根節(jié)點更新為ROOT(2);
在根節(jié)點ROOT下增加節(jié)點D3(2),根節(jié)點更新為ROOT(3);
在根節(jié)點ROOT下增加節(jié)點D2(4),根節(jié)點更新為ROOT(4);
(3)在文件夾D2下創(chuàng)建文件:F1、F2;
在節(jié)點D2下增加節(jié)點F1(5),根節(jié)點更新為ROOT(5);
在節(jié)點D2下增加節(jié)點F2(6),根節(jié)點更新為ROOT(6);
(4)在根目錄下創(chuàng)建文件夾:D5、D6、D7、D8;
在根節(jié)點ROOT下增加節(jié)點D5(7),根節(jié)點更新為ROOT(7);
在根節(jié)點ROOT下增加節(jié)點D6(8),根節(jié)點更新為ROOT(8);
在根節(jié)點ROOT下增加節(jié)點D7(9),根節(jié)點更新為ROOT(9);
在根節(jié)點ROOT下增加節(jié)點D8(10),根節(jié)點更新為ROOT(10);
(5)在文件夾D4下創(chuàng)建文件:F3、F4;
在節(jié)點D4下增加節(jié)點F3(11),根節(jié)點更新為ROOT(11);
在節(jié)點D4下增加節(jié)點F4(12),根節(jié)點更新為ROOT(12);
(6)在文件夾D5下創(chuàng)建文件:F5、F6、F7、F8;
在節(jié)點D5下增加節(jié)點F5(13),根節(jié)點更新為ROOT(13);
在節(jié)點D5下增加節(jié)點F6(14),根節(jié)點更新為ROOT(14);
在節(jié)點D5下增加節(jié)點F7(15),根節(jié)點更新為ROOT(15);
在節(jié)點D5下增加節(jié)點F8(16),根節(jié)點更新為ROOT(16);
(7)在文件夾D6下創(chuàng)建文件:F9、F10;
在節(jié)點D6下增加節(jié)點F9(17),根節(jié)點更新為ROOT(17);
在節(jié)點D6下增加節(jié)點F10(18),根節(jié)點更新為ROOT(18)。
場景二
基于圖4所示的文件樹,將節(jié)點D2對應的文件夾的名稱修改為D2New。
針對該文件夾名稱修改操作,參見圖5,將節(jié)點D2對應的文件夾名稱修改為D2New,相應地,該節(jié)點表示為節(jié)點D2New,并對該文件樹執(zhí)行以下版本更新操作:
更新節(jié)點D2New的版本號為19,更新根節(jié)點為ROOT(19);
更新節(jié)點D2New下的子節(jié)點F1的版本號為:5+(19-2)=22,更新根節(jié)點為ROOT(22);
更新節(jié)點D2New下的子節(jié)點F2的版本號為:6+(19-2)=23,更新根節(jié)點為ROOT(23)。
場景三
基于圖5所示的文件樹,刪除節(jié)點D4對應的文件夾。
針對該刪除文件夾的操作,參見圖6,對該文件樹執(zhí)行以下更新操作:
將節(jié)點D4標記為已刪除,更新節(jié)點D4的版本號為24,更新根節(jié)點為ROOT(24);
將節(jié)點D4下的子節(jié)點F3和子節(jié)點F4標記為刪除,不修改子節(jié)點F4和子節(jié)點F4的版本號。
場景四
基于圖6所示的文件樹,將文件夾D5移動至文件夾D2New下。
針對該移動文件夾的操作,參見圖7,對該文件樹執(zhí)行以下更新操作:
將節(jié)點D5及其子節(jié)點移動到節(jié)點D2New下,更新節(jié)點D5的版本號為25,更新根節(jié)點為ROOT(25);
更新節(jié)點F5的版本號為:13+(25-7)=31,更新根節(jié)點為ROOT(31);
更新節(jié)點F6的版本號為:14+(25-7)=32,更新根節(jié)點為ROOT(32);
更新節(jié)點F7的版本號為:15+(25-7)=33,更新根節(jié)點為ROOT(33);
更新節(jié)點F8的版本號為:16+(25-7)=34,更新根節(jié)點為ROOT(34)。
以上實施例描述了文件樹的更新過程。上述文件樹更新過程可應用于以下場景:客戶端設備向網(wǎng)絡側(cè)發(fā)送數(shù)據(jù)同步請求,以便將本客戶端設備上的文件樹與網(wǎng)絡側(cè)的文件樹保持同步。比如,當客戶端設備開啟后發(fā)送該數(shù)據(jù)同步請求,也可以是基于用戶的操作(比如用戶在數(shù)據(jù)同步請求界面中通過觸屏操作提交數(shù)據(jù)同步請求)發(fā)送該數(shù)據(jù)同步請求,或者,客戶端設備也可以根據(jù)設置的時間或周期發(fā)送該數(shù)據(jù)同步請求。
現(xiàn)有技術(shù)中常見的同步方法是,客戶端設備定時到服務器端請求更新,服務器端每次都返回當前服務器端最新的完整文件樹結(jié)構(gòu),然后客戶端設備與本地數(shù)據(jù)進行逐一對比并處理差異。
上述過程中,由于服務器每次均返回給客戶端設備全量數(shù)據(jù),一方面網(wǎng)絡傳輸數(shù)據(jù)量大,另一方面客戶端設備處理開銷大,進而導致客戶端設備執(zhí)行數(shù)據(jù)同步的效率較低。
可以看出,為了實現(xiàn)多客戶端設備的數(shù)據(jù)同步,其中一個重要環(huán)節(jié)就是對比客戶端設備與服務器端的文件樹差異,并實現(xiàn)差異同步更新處理。對此,本申請實施例提供了數(shù)據(jù)同步方案,以實現(xiàn)差異化同步更新處理。
下面結(jié)合圖8,對基于客戶端設備發(fā)送的數(shù)據(jù)同步請求進行數(shù)據(jù)同步的過程進行描述。
參見圖8,為本申請實施例提供的數(shù)據(jù)同步流程示意圖。該流程可由網(wǎng)絡 側(cè)的設備執(zhí)行,比如可由網(wǎng)絡側(cè)的服務器執(zhí)行,該服務器存儲有用戶的文件樹可以實現(xiàn)文件樹更新和同步操作,并可對客戶端設備發(fā)送的數(shù)據(jù)同步請求進行響應處理。進一步地,針對客戶端設備發(fā)送的數(shù)據(jù)同步請求,該服務器可以確定所采用的數(shù)據(jù)同步方式,比如采用全量更新還是差量更新,并根據(jù)所采用的數(shù)據(jù)同步方式將文件樹的節(jié)點信息發(fā)送給客戶端設備,從而實現(xiàn)客戶端設備與該服務器上的文件樹保持同步。
如圖所示,該流程可包括如下步驟:
步驟801:接收客戶端設備發(fā)送的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包括文件樹索引信息。
其中,文件樹索引信息的解釋說明可參見前述實施例,在此不再重復。
優(yōu)選地,所述數(shù)據(jù)同步請求中還可包括與該文件樹索引信息對應的該客戶端設備上存儲的文件樹的版本號。以下為描述方便,將同一文件樹索引信息所對應的在服務器端存儲的文件樹稱為第一文件樹,將在客戶端設備上存儲的文件樹稱為第二文件樹。服務器可根據(jù)該數(shù)據(jù)同步請求中攜帶的第二文件樹的版本號,確定是否需要執(zhí)行數(shù)據(jù)同步流程。比如,如果第二文件樹的版本號與網(wǎng)絡側(cè)存儲的第一文件樹的版本號相同,則表明客戶端設備和網(wǎng)絡側(cè)的文件樹已經(jīng)同步,則可以不再執(zhí)行后續(xù)同步流程。
步驟802:根據(jù)所述文件樹索引信息,獲取網(wǎng)絡側(cè)存儲的與所述文件樹索引信息對應的第一文件樹。
步驟803:確定第一文件樹上待同步給該客戶端設備的節(jié)點。
在具體實施時,可首先確定數(shù)據(jù)同步方式;然后根據(jù)確定出的數(shù)據(jù)同步方式,確定第一文件樹上待同步給該客戶端設備的節(jié)點。其中,所確定的數(shù)據(jù)同步方式包括全量更新或差量更新。相應地,若確定出的同步方式為全量更新,則將第一文件樹上的有效節(jié)點確定為待同步給該客戶端設備的節(jié)點;或者,若確定出的同步方式為差量更新,則將第一文件樹與第二文件樹的差量節(jié)點確定為待同步給該客戶端設備的節(jié)點。
其中,全量更新是指忽略客戶端設備現(xiàn)有文件樹結(jié)構(gòu)和網(wǎng)絡側(cè)變化歷史,更新文件樹上的所有節(jié)點;差量更新是指在客戶端設備現(xiàn)有文件樹的基礎上,根據(jù)網(wǎng)絡側(cè)變化情況,同步更新變化的那一部分節(jié)點。
服務器可以采用多種方法確定數(shù)據(jù)同步方式,以下列舉其中部分優(yōu)選的實現(xiàn)方法:
(1)數(shù)據(jù)同步方式確定方法一
確定第一文件樹中的有效節(jié)點數(shù),其中,一個文件樹上的有效節(jié)點是指該文件樹上除被標記為已刪除節(jié)點之外的所有節(jié)點;確定第一文件樹與第二文件樹的差量節(jié)點數(shù),其中,第一文件樹與第二文件樹的差量節(jié)點是指第一文件樹上版本號大于第二文件樹的版本號的節(jié)點;若差量節(jié)點數(shù)大于或等于有效節(jié)點數(shù)的n倍(n≥1),則確定采用全量更新,否則確定采用差量更新。在實際應用中,優(yōu)選地,n可以取值為2。
例如,網(wǎng)絡側(cè)的第一文件樹和客戶端設備的第二文件樹的版本號均為2000,文件樹上的節(jié)點數(shù)均為3000。如果此后,第一文件樹發(fā)生了以下更新過程:添加了2000個文件,此時第一文件樹的版本更新為4000,文件樹中有5000個節(jié)點;然后,又刪除其中一個文件夾節(jié)點下的4999個文件,此時第一文件樹的版本更新為5001,文件樹中剩余一個節(jié)點。當客戶端設備發(fā)起數(shù)據(jù)同步請求時,第一文件樹的有效節(jié)點數(shù)為1,差量節(jié)點樹為2000(第一文件樹的節(jié)點數(shù)5000減去第二文件樹的節(jié)點數(shù)3000的差值),因為差量節(jié)點數(shù)2000大于有效節(jié)點數(shù)1的2倍,即2000>2,因此服務器選擇的數(shù)據(jù)同步方式為全量更新。
該種數(shù)據(jù)同步確定方法中,如果差量節(jié)點數(shù)大于或等于有效節(jié)點數(shù)的n倍,則表明第一文件樹和第二文件樹的差異較大,此時采用全量更新可以更好地保證文件樹同步;如果差量節(jié)點數(shù)小于有效節(jié)點數(shù)的n倍,則表明第一文件樹和第二文件樹的差異相對較小,采用差量更新可以在保證文件樹同步的同時,減少網(wǎng)絡資源的開銷以及客戶端設備的處理操作開銷。
(2)數(shù)據(jù)同步方式確定方法二
數(shù)據(jù)同步請求中還可以包括同步方式指示信息,該同步方式指示信息所指示的同步方式包括全量更新或差量更新。相應地,服務器可根據(jù)數(shù)據(jù)同步請求中包括的同步方式指示信息確定數(shù)據(jù)同步方式。
其中,在一些場景中,若同步方式指示信息為全量更新指示信息,則該全量更新指示信息是客戶端設備在根據(jù)接收到的數(shù)據(jù)同步命令進行文件樹同步操作失敗后,攜帶于該數(shù)據(jù)同步請求中的。也就是說,在此之前,客戶端設備根據(jù)服務器發(fā)送的數(shù)據(jù)同步命令執(zhí)行文件樹同步操作時發(fā)生異常,操作失敗,為了保證文件樹的同步,該客戶端設備再次發(fā)起數(shù)據(jù)同步請求時,可請求進行全量更新,此時,數(shù)據(jù)同步請求中攜帶有全量更新指示信息。
除了以上數(shù)據(jù)同步方式確定方法,在一些實施例中,也可以默認采用差量更新,在差量更新失敗的情況下,可進一步采用全量更新。例如,客戶端設備根據(jù)服務器發(fā)送的數(shù)據(jù)同步命令執(zhí)行文件樹同步操作時發(fā)生異常,操作失敗,則向服務器反饋數(shù)據(jù)同步操作失敗信息,此時,服務器可確定采用全量更新的方式,指示該客戶端設備對文件樹進行全量更新。
步驟804:根據(jù)確定出的待同步給所述客戶端設備的節(jié)點,向該客戶端設備發(fā)送數(shù)據(jù)同步命令,所述數(shù)據(jù)同步命令用于指示該客戶端設備對該客戶端設備存儲的與該文件樹索引信息對應的第二文件樹進行更新。文件樹的更新過程可參見前述實施例,在此不再贅述。
上述流程中,優(yōu)選地,服務器在向客戶端設備發(fā)送數(shù)據(jù)同步命令之前,可先根據(jù)確定出的第一文件樹上待同步給客戶端設備的節(jié)點,以及分頁大小參數(shù),確定總分頁頁數(shù),以及每頁對應的節(jié)點的更新信息,然后,根據(jù)分頁順序,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,其中攜帶當前分頁對應的節(jié)點的更新信息、當前分頁的頁號以及總分頁頁數(shù)。
在實際應用中,由于一次需要同步的節(jié)點數(shù)量可能比較多,若在一次數(shù)據(jù)同步命令過程中將所有待同步的節(jié)點通知給客戶端設備,一方面可能會占用較大的網(wǎng)絡資源開銷,同時客戶端設備也可能占用較多的處理資源開銷,此外, 用戶可能會有中斷同步操作的需求,為此,本申請實施例給出一種采用分頁方式指示客戶端設備進行文件樹同步操作的方案。
具體地,在步驟804中,服務器每次向客戶端設備發(fā)送的數(shù)據(jù)同步命令中僅包含一頁內(nèi)容的節(jié)點信息。具體每頁的大小可由分頁大小參數(shù)指示,該參數(shù)可用節(jié)點數(shù)量來表示。例如,如果步驟803中確定出待同步給該客戶端設備的節(jié)點數(shù)量有100個,而分頁大小參數(shù)為10,則需要10頁(每頁包含10個節(jié)點的信息),即發(fā)送10個數(shù)據(jù)同步命令,才能將這100個節(jié)點的信息發(fā)送給客戶端設備。其中,分頁大小參數(shù)可預先設置,比如,可由系統(tǒng)約定,也可以允許客戶端設備自行設置和修改。如果由客戶端設備自行設置或修改,則客戶端設備發(fā)送的數(shù)據(jù)同步請求中可攜帶由該客戶端設備自行設置或修改的分頁大小參數(shù)。分頁大小參數(shù)的取值,可根據(jù)網(wǎng)絡狀況、服務器處理能力、客戶端設備處理能力來綜合考慮。
具體地,在步驟804中,服務器可根據(jù)確定出的第一文件樹上待同步給客戶端設備的節(jié)點以及分頁大小參數(shù),確定總分頁頁數(shù),以及每頁對應的節(jié)點的更新信息;然后,根據(jù)分頁順序,向該客戶端設備發(fā)送數(shù)據(jù)同步命令,其中攜帶當前分頁對應的節(jié)點的更新信息、當前分頁的頁號以及總分頁頁數(shù)。
進一步地,在根據(jù)分頁順序向客戶端設備發(fā)送數(shù)據(jù)同步命令之后,如果當前已發(fā)送的分頁還未到達最后一頁,則客戶端設備還可能通過數(shù)據(jù)同步請求來請求下一頁節(jié)點更新信息,這樣,服務器端還可包括以下步驟:
接收客戶端設備再次發(fā)送的數(shù)據(jù)同步請求,其中攜帶有所請求的分頁的頁號;根據(jù)客戶端設備再次發(fā)送的數(shù)據(jù)同步請求中攜帶的分頁頁號,獲取對應分頁所對應的節(jié)點的更新信息;向該客戶端設備發(fā)送數(shù)據(jù)同步命令,其中攜帶有當前分頁對應的節(jié)點的更新信息、當前分頁的頁號以及總分頁頁數(shù)。
在一些實施例中,服務器指示客戶端設備進行文件樹同步的過程中,對第一文件樹進行鎖樹操作,從而使得第一文件樹與第二文件樹的同步過程中,不允許對第一文件樹進行更新操作。
在另一些實施例中,服務器指示客戶端設備進行文件樹同步的過程中,可以不對第一文件樹進行鎖樹操作,即,在第一文件樹與第二文件樹的同步過程中,允許對第一文件樹進行更新操作。例如,在服務器采用分頁方式向客戶端設備發(fā)送節(jié)點更新信息的過程中,可以不對第二文件樹進行鎖樹操作,因此在該過程中,第二文件樹可能會發(fā)生更新。針對這種情況,本申請實施例給出了以下優(yōu)選方案,可以提升用戶體驗度以及實用價值。
若在向客戶端設備發(fā)送數(shù)據(jù)同步命令后,第一文件樹的版本號發(fā)生更新,則服務器可將更新后的第一文件樹上,版本號大于第一文件樹更新前的版本號的節(jié)點的更新信息,發(fā)送給該客戶端設備,從而將在步驟803之后第一文件樹上再次更新的節(jié)點的相關信息發(fā)送給客戶端設備,從而使客戶端設備上的第二文件樹與第一文件樹保持同步。服務器也可以向該客戶端設備發(fā)送通知消息,該通知消息用于通知第一文件樹的版本號發(fā)生更新并征詢該客戶端設備是否發(fā)起數(shù)據(jù)同步請求,如果客戶端設備根據(jù)該通知消息再次發(fā)送數(shù)據(jù)同步請求,則此后的流程可同前所述。進一步地,該通知消息中可可包括第一文件樹更新后的版本號,以便該客戶端設備將該版本號呈現(xiàn)給用戶,供用戶選擇是否再次發(fā)起數(shù)據(jù)同步請求。
為了更清楚地理解上述流程,下面結(jié)合一個具體應用場景描述在服務器采用分頁方式向客戶端設備發(fā)送待同步的節(jié)點的更新信息的過程中,網(wǎng)絡側(cè)的第一文件樹發(fā)生更新,此種情況下的處理操作。
此場景下,網(wǎng)絡側(cè)的第一文件樹如圖7所示。服務器確定出采用全量更新方式進行數(shù)據(jù)同步,每個分頁包含的最大節(jié)點數(shù)為3,按節(jié)點版本號從小到大的順序,各分頁對應的節(jié)點具體如下所示:
第1頁:D1(1)、D3(3)、D6(8);
第2頁:D7(9)、D8(10)、F9(17);
第3頁:F10(18)、D2New(19)、F1(22);
第4頁:F2(23)、D5(25)、F5(31);
第5頁:F6(32)、F7(33)、F8(34)。
當服務器向客戶端設備發(fā)送第3頁的節(jié)點更新信息后,網(wǎng)絡側(cè)的第一文件樹發(fā)生以下更新操作:節(jié)點D6及其子節(jié)點移動至節(jié)點D7下,第一文件樹更新后的結(jié)構(gòu)以及版本號可如圖9所示。
根據(jù)客戶端設備的請求,服務器按照之前確定出的5個分頁,將第4頁和第5頁的節(jié)點更新信息依次發(fā)給該客戶端設備。
第4頁:F2(23)、D5(25)、F5(31);
第5頁:F6(32)、F7(33)、F8(34)。
待上述5個分頁的節(jié)點更新信息發(fā)送完成之后,服務器向該客戶端設備發(fā)送通知消息,通知客戶端設備文件樹有更新,然后根據(jù)該客戶端設備繼續(xù)進行數(shù)據(jù)同步的請求,確定版本號大于34的節(jié)點,這些節(jié)點包括:
D6(35)、F9(44)、F10(45)
服務器以差量更新的方式指示客戶端設備進行文件樹同步,即,僅將這些節(jié)點的更新信息發(fā)送給客戶端設備。
通過以上描述可以看出,本申請實施例中,網(wǎng)絡側(cè)接收到客戶端設備發(fā)送的數(shù)據(jù)同步請求后,獲取網(wǎng)絡側(cè)存儲的對應的文件樹,確定數(shù)據(jù)同步方式,并根據(jù)確定出的數(shù)據(jù)同步方式確定需要待同步給客戶端設備的節(jié)點,并客戶端設備發(fā)送數(shù)據(jù)同步命令,使客戶端設備根據(jù)該數(shù)據(jù)同步命令進行數(shù)據(jù)同步。其中,如果確定出的數(shù)據(jù)同步方式為差量更新,則根據(jù)該同步方式確定出的待同步給客戶端設備的節(jié)點僅為文件樹中的部分節(jié)點,因此與現(xiàn)有技術(shù)中根據(jù)文件樹的全部節(jié)點進行全量同步的方式相比,可以提高數(shù)據(jù)同步效率。
基于相同的技術(shù)構(gòu)思,本申請實施例還提供了一種數(shù)據(jù)同步裝置,可用于前述數(shù)據(jù)同步流程,比如圖8所示的流程。該數(shù)據(jù)同步裝置可以是網(wǎng)絡側(cè)用于文件同步的服務器,也可以是該服務器中的用于實現(xiàn)文件同步的功能模塊。
參見圖10,為本申請實施例提供的數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖,該裝置可包括:接收模塊1001、獲取模塊1002、確定模塊1003以及發(fā)送模塊1004,其 中:
接收模塊1001,用于接收客戶端設備發(fā)送的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包括文件樹索引信息;
獲取模塊1002,用于根據(jù)所述文件樹索引信息,獲取網(wǎng)絡側(cè)存儲的與所述文件樹索引信息對應的第一文件樹;
確定模塊1003,用于確定所述第一文件樹上待同步給所述客戶端設備的節(jié)點,一個文件樹中除根節(jié)點以外的每個節(jié)點對應的一個文件或文件夾;
發(fā)送模塊1004,用于根據(jù)確定出的待同步給所述客戶端設備的節(jié)點,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,所述數(shù)據(jù)同步命令用于指示所述客戶端設備對所述客戶端設備存儲的與所述文件樹索引信息對應的第二文件樹進行更新。
優(yōu)選地,確定模塊1003可具體用于:確定數(shù)據(jù)同步方式,所確定的數(shù)據(jù)同步方式包括全量更新或差量更新;根據(jù)確定的同步方式,確定所述第一文件樹上待同步給所述客戶端設備的節(jié)點。
優(yōu)選地,所述數(shù)據(jù)同步請求中還包括與所述文件樹索引信息對應的第二文件樹的版本號;第一文件樹以及所述第二文件樹中,根節(jié)點的版本號與除根節(jié)點以外的其它所有節(jié)點中的最大版本號相同,文件樹的版本號與該文件樹的根節(jié)點的版本號相同;當文件樹中的一個節(jié)點更新時,該節(jié)點的版本號遞增。
優(yōu)選地,確定模塊1003可具體用于:確定所述第一文件樹中的有效節(jié)點數(shù),其中,一個文件樹上的有效節(jié)點是指該文件樹上除被標記為已刪除節(jié)點之外的所有節(jié)點;確定所述第一文件樹與所述第二文件樹的差量節(jié)點數(shù),其中,所述第一文件樹與所述第二文件樹的差量節(jié)點是指所述第一文件樹上版本號大于所述第二文件樹的版本號的節(jié)點;若所述差量節(jié)點數(shù)大于或等于所述有效節(jié)點數(shù)的n倍,則確定采用全量更新,否則確定采用差量更新,n≥1。
優(yōu)選地,數(shù)據(jù)同步請求中還包括同步方式指示信息,所述同步方式指示信息所指示的同步方式包括全量更新或差量更新;相應地,確定模塊1003可具體用于:根據(jù)所述數(shù)據(jù)同步請求中包括的同步方式指示信息,確定數(shù)據(jù)同步方 式。
其中,若所述同步方式指示信息為全量更新指示信息,則所述全量更新指示信息是所述客戶端設備在根據(jù)接收到的數(shù)據(jù)同步命令進行文件樹同步操作失敗后,攜帶于所述數(shù)據(jù)同步請求中的。
優(yōu)選地,確定模塊1003可具體用于:
若確定出的同步方式為全量更新,則將所述第一文件樹上的有效節(jié)點確定為待同步給所述客戶端設備的節(jié)點;其中,一個文件樹上的有效節(jié)點是指該文件樹上除被標記為已刪除節(jié)點之外的所有節(jié)點;或者
若確定出的同步方式為差量更新,則將所述第一文件樹與所述第二文件樹的差量節(jié)點確定為待同步給所述客戶端設備的節(jié)點,其中,所述第一文件樹與所述第二文件樹的差量節(jié)點是指所述第一文件樹上版本號大于所述第二文件樹的版本號的節(jié)點。
優(yōu)選地,發(fā)送模塊1004可具體用于:
根據(jù)確定出的所述第一文件樹上待同步給所述客戶端設備的節(jié)點,以及分頁大小參數(shù),確定總分頁頁數(shù),以及每頁對應的節(jié)點的更新信息;其中,所述分頁大小參數(shù)用節(jié)點數(shù)量表示,一個分頁對應的節(jié)點數(shù)量等于所述分頁大小參數(shù);
根據(jù)分頁順序,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,其中攜帶當前分頁對應的節(jié)點的更新信息、當前分頁的頁號以及總分頁頁數(shù)。
優(yōu)選地,接收模塊1001還可用于:在發(fā)送模塊1004根據(jù)分頁順序,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令之后,接收所述客戶端設備再次發(fā)送的數(shù)據(jù)同步請求,其中攜帶有所請求的分頁的頁號;發(fā)送模塊1004還用于:根據(jù)所述客戶端設備再次發(fā)送的數(shù)據(jù)同步請求中攜帶的分頁頁號,獲取對應分頁所對應的節(jié)點的更新信息,向所述客戶端設備發(fā)送數(shù)據(jù)同步命令,其中攜帶有當前分頁對應的節(jié)點的更新信息、當前分頁的頁號以及總分頁頁數(shù)。
優(yōu)選地,發(fā)送模塊1004還可用于:
若在向所述客戶端設備發(fā)送數(shù)據(jù)同步命令后,所述第一文件樹的版本號發(fā)生更新,則將更新后的所述第一文件樹上,版本號大于所述第一文件樹更新前的版本號的節(jié)點的更新信息,發(fā)送給所述客戶端設備;或者
向所述客戶端設備發(fā)送通知消息,所述通知消息用于通知所述第一文件樹的版本號發(fā)生更新并征詢所述客戶端設備是否發(fā)起數(shù)據(jù)同步請求;其中,所述通知消息中包括所述第一文件樹更新后的版本號。
基于相同的技術(shù)構(gòu)思,本申請實施例還提供了一種數(shù)據(jù)更新裝置,該裝置可以執(zhí)行前述實施例描述的數(shù)據(jù)更新流程,比如圖2所示的流程。該裝置可以是客戶端設備、也可以是網(wǎng)絡側(cè)用于實現(xiàn)文件同步的服務器,或者是該客戶端設備或服務器中實現(xiàn)文件更新和同步的功能模塊。
參見圖11,為本申請實施例提供的數(shù)據(jù)更新裝置的結(jié)構(gòu)示意圖,如圖所示,該裝置可包括:接收模塊1101、獲取模塊1102、更新模塊1103,其中:
接收模塊1101,用于接收數(shù)據(jù)同步命令,所述數(shù)據(jù)同步命令中包括文件樹索引信息以及節(jié)點的更新信息;其中,一個文件樹中除根節(jié)點以外的每個節(jié)點對應一個文件或文件夾;
獲取模塊1102,用于根據(jù)所述文件樹索引信息,獲取對應的待同步的文件樹;
更新模塊1103,用于根據(jù)所述數(shù)據(jù)同步命令中包括的節(jié)點的更新信息,更新所述待同步的文件樹;其中,一個文件樹中,根節(jié)點的版本號與除根節(jié)點以外的其他所有節(jié)點中的最大版本號相同,文件樹的版本號與該文件樹的根節(jié)點的版本號相同,當文件樹中的一個節(jié)點更新時,該節(jié)點的版本號遞增。
優(yōu)選地,所述節(jié)點的更新信息包括:待修改文件名稱的節(jié)點的在文件樹中的位置信息以及修改后的文件名。相應地,更新模塊1103可具體用于:根據(jù)所述待修改文件名稱的節(jié)點的位置信息,將所述待同步的文件樹上相應節(jié)點的版本號加1,并更新該文件樹的版本號;根據(jù)修改后的文件名稱,更新節(jié)點與文件的關聯(lián)關系中所述待修改文件名稱的節(jié)點所對應的文件的名稱。
優(yōu)選地,所述節(jié)點的更新信息包括:待修改文件夾名稱的節(jié)點在文件樹中的位置信息以及修改后的文件夾名稱。相應地,更新模塊1103可具體用于:根據(jù)所述待修改文件夾名稱的節(jié)點的位置信息,將所述待同步的文件樹上相應節(jié)點的版本號加1;若所述待修改文件夾名稱的節(jié)點下包含子節(jié)點,則分別更新所述待修改文件夾名稱的節(jié)點下的所有子節(jié)點的版本號;其中,對于每個子節(jié)點,更新該子節(jié)點的版本號時,在該子節(jié)點當前的版本號上加上該子節(jié)點的父節(jié)點的版本差,所述父節(jié)點的版本差為該父節(jié)點更新后的版本號與更新前的版本號之差;更新所述待同步的文件樹的版本號;根據(jù)修改后的文件夾名稱,更新節(jié)點與文件夾的關聯(lián)關系中,所述待修改文件夾名稱的節(jié)點所對應的文件夾的名稱。
優(yōu)選地,所述節(jié)點的更新信息包括:待刪除的節(jié)點在文件樹中的位置信息。相應地,更新模塊1103可具體用于:根據(jù)所述待刪除的節(jié)點的位置信息,在所述待同步的文件樹上將相應節(jié)點標記為刪除;將所述被標記為刪除的節(jié)點的版本號加1,并更新所述待同步的文件樹的版本號。
優(yōu)選地,所述節(jié)點的更新信息包括:待刪除的節(jié)點在文件樹中的位置信息。相應地,更新模塊1103可具體用于:根據(jù)所述待刪除的節(jié)點的位置信息,在所述待同步的文件樹上將相應節(jié)點標記為刪除,以及將所述被標記為刪除的節(jié)點的所有子節(jié)點標記為刪除;分別將所述標記為刪除的節(jié)點的版本號加1,并更新所述待同步的文件樹的版本號。
優(yōu)選地,所述節(jié)點的更新信息包括:新增加的節(jié)點在文件樹中的位置信息以及所述新增加的節(jié)點所對應的文件。相應地,更新模塊1103可具體用于:根據(jù)所述新增加的節(jié)點的位置信息,在所述待同步的文件樹上增加節(jié)點;將新增加的節(jié)點的版本號設置為所述待同步的文件樹的版本號加1,并更新所述待同步的文件樹的版本號;存儲所述新增加的節(jié)點所對應的文件,建立所述新增加的節(jié)點與該節(jié)點所對應的文件的關聯(lián)關系。
優(yōu)選地,所述節(jié)點的更新信息包括:新增加的節(jié)點在文件樹中的位置信息 以及所述新增加的節(jié)點所對應的文件夾。相應地,更新模塊1103可具體用于:根據(jù)所述新增加的節(jié)點的位置信息,在所述待同步的文件樹上增加節(jié)點;將新增加的節(jié)點的版本號設置為所述待同步的文件樹的版本號加1,并更新所述待同步的文件樹的版本號;建立所述新增加的節(jié)點與該節(jié)點所對應的文件夾的關聯(lián)關系。
基于相同的技術(shù)構(gòu)思,本申請實施例還提供了一種服務器。
參見圖12,為本申請實施例提供的服務器的結(jié)構(gòu)示意圖,如圖所示,該服務器可包括:接口1201、處理單元1202和存儲器1203。處理單元1202用于控制該裝置的操作;存儲器1203可以包括只讀存儲器和隨機存取存儲器,用于向處理單元1202提供指令和數(shù)據(jù)。存儲器1203的一部分還可以包括非易失行隨機存取存儲器(NVRAM)。該裝置的各個組件通過總線系統(tǒng)耦合在一起,其中總線系統(tǒng)1209除包括數(shù)據(jù)總線之外,還包括電源總線、控制總線和狀態(tài)信號總線。但是為了清楚說明起見,在圖中將各種總線都標為總線系統(tǒng)1209。
本發(fā)明實施例揭示的數(shù)據(jù)同步流程可以應用于處理單元1202中,或者由處理單元1202實現(xiàn)。在實現(xiàn)過程中,該裝置實現(xiàn)的數(shù)據(jù)同步流程的各步驟可以通過處理單元1202中的硬件的集成邏輯電路或者軟件形式的指令完成。處理單元1202可以是通用處理器、數(shù)字信號處理器、專用集成電路、現(xiàn)場可編程門陣列或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件,可以實現(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器1203,處理單元1202讀取存儲器1203中的信息,結(jié)合其硬件完成數(shù)據(jù)同步流程的步驟。
具體地,處理單元1202可被配置以執(zhí)行前述實施例所述的數(shù)據(jù)同步流程。 該流程的具體實現(xiàn)過程可參見前述圖8所示的流程,在此不再重復。
基于相同的技術(shù)構(gòu)思,本發(fā)明實施例還提供了一種設備。該設備可以是客戶端設備也可以是服務器,可實現(xiàn)前述實施例提供的數(shù)據(jù)更新流程。
參見圖13,為本申請實施例提供的設備的結(jié)構(gòu)示意圖,如圖所示,該設備可包括:接口1301、處理單元1302和存儲器1303。處理單元1302用于控制該裝置的操作;存儲器1303可以包括只讀存儲器和隨機存取存儲器,用于向處理單元1302提供指令和數(shù)據(jù)。存儲器1303的一部分還可以包括非易失行隨機存取存儲器(NVRAM)。該裝置的各個組件通過總線系統(tǒng)耦合在一起,其中總線系統(tǒng)1309除包括數(shù)據(jù)總線之外,還包括電源總線、控制總線和狀態(tài)信號總線。但是為了清楚說明起見,在圖中將各種總線都標為總線系統(tǒng)1309。
本發(fā)明實施例揭示的數(shù)據(jù)更新流程可以應用于處理單元1302中,或者由處理單元1302實現(xiàn)。在實現(xiàn)過程中,該裝置實現(xiàn)的數(shù)據(jù)更新流程的各步驟可以通過處理單元1302中的硬件的集成邏輯電路或者軟件形式的指令完成。處理單元1302可以是通用處理器、數(shù)字信號處理器、專用集成電路、現(xiàn)場可編程門陣列或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件,可以實現(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器1303,處理單元1302讀取存儲器1303中的信息,結(jié)合其硬件完成數(shù)據(jù)更新流程的步驟。
具體地,處理單元1302可被配置以執(zhí)行前述實施例所述的數(shù)據(jù)更新流程。該流程的具體實現(xiàn)過程可參見前述圖2所示的流程,在此不再重復。
本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和 /或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領域的技術(shù)人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。