專利名稱:一種分級(jí)數(shù)據(jù)同步的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種分級(jí)數(shù)據(jù)同步的方法和設(shè)備。
背景技術(shù):
現(xiàn)代社會(huì)是信息社會(huì)。用戶可以隨時(shí)隨地進(jìn)行信息的接收和發(fā)送,可以隨時(shí)隨地 用一臺(tái)手持設(shè)備執(zhí)行設(shè)備中的應(yīng)用程序。而這種數(shù)據(jù)交互和執(zhí)行應(yīng)用程序的結(jié)果需要存 儲(chǔ)到手持設(shè)備中,也需要與其他數(shù)據(jù)設(shè)備中這種類型的數(shù)據(jù)保持一致。比如,在手機(jī)中和 PDA (Personal Digital Assistant),個(gè)人數(shù)字助理)中都存有通訊錄,在辦公室和家里的 PC機(jī)或者筆記本也都存有相同的通訊錄,人們希望這些設(shè)備中的信息能保持一致,當(dāng)其中 一個(gè)設(shè)備上的數(shù)據(jù)變化時(shí),可以操作其他設(shè)備中的數(shù)據(jù)做相應(yīng)的改變,這就是數(shù)據(jù)同步。通用同步協(xié)議的目標(biāo)是普遍適用。同步兩端可以是任何一種類型的網(wǎng)絡(luò)設(shè)備,在 任一種網(wǎng)絡(luò)上面,同步操作的數(shù)據(jù)可以是任何一種網(wǎng)絡(luò)數(shù)據(jù)。任一種移動(dòng)設(shè)備包括掌上電 腦、PDA、移動(dòng)電話、自動(dòng)計(jì)算機(jī)和桌面計(jì)算機(jī)。同時(shí)一個(gè)用戶可以通過不同的設(shè)備訪問、操 作同樣的數(shù)據(jù)集合。SYNCML(Synchronization Makeup Language,同步標(biāo)記語言)同步協(xié) 議就是為了實(shí)現(xiàn)這個(gè)目標(biāo)而應(yīng)運(yùn)而生的一個(gè)新的通用標(biāo)準(zhǔn)。在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題對(duì)于分級(jí)數(shù)據(jù)庫(kù),存在這樣的情形一方數(shù)據(jù)庫(kù)中一個(gè)數(shù)據(jù)項(xiàng)及其下屬所有子數(shù) 據(jù)項(xiàng)都被刪除了,或者一個(gè)數(shù)據(jù)項(xiàng)下的所有子數(shù)據(jù)項(xiàng)都被統(tǒng)一移動(dòng)到了另外一個(gè)數(shù)據(jù)項(xiàng) 下,當(dāng)發(fā)起同步時(shí),所有這些改動(dòng)都會(huì)發(fā)送給另一方,無疑這時(shí)將消耗很多的無線資源。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種分級(jí)數(shù)據(jù)同步的方法和設(shè)備以解決分級(jí)數(shù)據(jù)同 步過程中數(shù)據(jù)項(xiàng)發(fā)生成組改動(dòng)時(shí)的避免浪費(fèi)無線資源問題。為解決上述技術(shù)問題,一方面,提供了一種分級(jí)數(shù)據(jù)同步的方法,包括向服務(wù)器發(fā)送數(shù)據(jù)同步初始化消息;接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息; 判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng);若判斷為是,則向所述服務(wù)器發(fā)送相 應(yīng)處理指令以使所述服務(wù)器根據(jù)所述相應(yīng)處理指令處理所述服務(wù)器中的相應(yīng)數(shù)據(jù)項(xiàng)。另一方面還提供一種分級(jí)數(shù)據(jù)同步的方法,包括向客戶端設(shè)備發(fā)送數(shù)據(jù)同步初始化消息;接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消 息;判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng);若判斷為是,則向所述客戶端設(shè) 備發(fā)送相應(yīng)處理指令以使所述客戶端設(shè)備根據(jù)所述相應(yīng)處理指令處理所述客戶端設(shè)備中 的相應(yīng)數(shù)據(jù)項(xiàng)。另一方面還提供客戶端設(shè)備,包括;發(fā)送模塊用于向服務(wù)器發(fā)送數(shù)據(jù)同步初始化消息;接收模塊用于接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息;判斷模塊用于判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng);
同步模塊用于所述判斷模塊判斷為是時(shí),向所述服務(wù)器發(fā)送相應(yīng)處理指令以使 所述服務(wù)器根據(jù)所述相應(yīng)處理指令處理所述服務(wù)器中的相應(yīng)數(shù)據(jù)項(xiàng)。另一方面還提供一種服務(wù)器,包括發(fā)送模塊用于向客戶端設(shè)備發(fā)送數(shù)據(jù)同步初始化消息;接收模塊用于接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息;判斷模塊用于判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng);同步模塊用于所述判斷模塊判斷為是時(shí),向所述客戶端設(shè)備發(fā)送相應(yīng)處理指令 以使所述客戶端設(shè)備根據(jù)所述相應(yīng)處理指令處理所述客戶端設(shè)備中的相應(yīng)數(shù)據(jù)項(xiàng)。上述技術(shù)方案具有如下有益效果通過判斷確定本地分級(jí)數(shù)據(jù)庫(kù)中存在數(shù)據(jù)項(xiàng) 的成組改動(dòng)時(shí),向數(shù)據(jù)同步的另一方發(fā)送關(guān)于數(shù)據(jù)項(xiàng)的相應(yīng)處理指令以使所述數(shù)據(jù)同步的 另一方根據(jù)所述相應(yīng)處理指令處理所述客戶端設(shè)備中的相應(yīng)數(shù)據(jù)項(xiàng),實(shí)現(xiàn)了分級(jí)數(shù)據(jù)的同 步,避免了無線資源的浪費(fèi)。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例一客戶端發(fā)起數(shù)據(jù)同步的方法流程示意圖;圖2為本發(fā)明實(shí)施例二服務(wù)器發(fā)起數(shù)據(jù)同步的方法流程示意圖;圖3為本發(fā)明實(shí)施例三的數(shù)據(jù)項(xiàng)的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例三另一種數(shù)據(jù)項(xiàng)的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例三另一種數(shù)據(jù)項(xiàng)的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例四客戶端設(shè)備結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例四客戶端設(shè)備另一結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例五服務(wù)器結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例五服務(wù)器另一結(jié)構(gòu)示意具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明提供的第一實(shí)施例是提供了一種數(shù)據(jù)同步的方法,首先,應(yīng)用場(chǎng)景客戶端設(shè)備主動(dòng)發(fā)起的數(shù)據(jù)同步;如圖1所示,具體步驟如下步驟101、向服務(wù)器發(fā)送數(shù)據(jù)同步初始化消息;客戶端設(shè)備向服務(wù)器發(fā)送數(shù)據(jù)同步初始化消息,所述客戶端設(shè)備向服務(wù)器發(fā)送數(shù) 據(jù)同步的觸發(fā)條件取決于預(yù)先設(shè)定的策略,所述策略包括但不限于設(shè)備時(shí)間觸發(fā),例如,通
5過定時(shí)器設(shè)定時(shí)間,當(dāng)設(shè)定的時(shí)間到時(shí),所述客戶端設(shè)備發(fā)起數(shù)據(jù)同步;所述策略還可以包 括條件觸發(fā),例如,當(dāng)數(shù)據(jù)發(fā)生改變時(shí)所述客戶端設(shè)備發(fā)起數(shù)據(jù)同步,當(dāng)然還可以設(shè)定數(shù) 據(jù)改變到達(dá)一定數(shù)量時(shí)才觸發(fā)所述客戶端設(shè)備發(fā)起數(shù)據(jù)同步,也可以設(shè)定當(dāng)數(shù)據(jù)項(xiàng)發(fā)生成 組改動(dòng)時(shí)觸發(fā)所述客戶端設(shè)備發(fā)起數(shù)據(jù)同步;需要說明的是所述初始化消息的具體類型此 處不作限定,其中所述初始化消息攜帶有所屬客戶端設(shè)備的鑒權(quán)信息,設(shè)備能力,設(shè)備類型 ^fn 息;步驟102、接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息;客戶端設(shè)備接收服務(wù)器發(fā)送的所述數(shù)據(jù)同步初始化消息的響應(yīng)消息,需要說明的 是通過步驟101和步驟102實(shí)現(xiàn)了客戶端設(shè)備與服務(wù)器之間的身份鑒權(quán)、需要同步的數(shù)據(jù) 庫(kù)的協(xié)商、同步能力的協(xié)商以及同步數(shù)據(jù)類型的協(xié)商等;步驟103、判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng);客戶端設(shè)備判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng),所述數(shù)據(jù)項(xiàng)的成 組改動(dòng)包括但不限于數(shù)據(jù)項(xiàng)及所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)都被刪除;或者,數(shù)據(jù)項(xiàng)及所述數(shù) 據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)被移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下;或者,所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)被移動(dòng)到另一個(gè) 數(shù)據(jù)項(xiàng)下??蛻舳嗽O(shè)備上分級(jí)數(shù)據(jù)庫(kù)的數(shù)據(jù)項(xiàng)發(fā)生了成組改動(dòng),這些改動(dòng)都記錄在變化記錄 Changelog中,因此所述客戶端設(shè)備通過分析所述Changelog的紀(jì)錄就可判斷出是否存在 數(shù)據(jù)項(xiàng)的成組改動(dòng);步驟104、若判斷為是,則向所述服務(wù)器發(fā)送相應(yīng)處理指令以使所述服務(wù)器根據(jù)所 述相應(yīng)處理指令處理所述服務(wù)器中的相應(yīng)數(shù)據(jù)項(xiàng)。當(dāng)客戶端設(shè)備判斷存在數(shù)據(jù)項(xiàng)的成組改動(dòng)時(shí),向所述服務(wù)器發(fā)送相應(yīng)處理指令以 使所述服務(wù)器根據(jù)所述相應(yīng)處理指令處理所述服務(wù)器中的相應(yīng)數(shù)據(jù)項(xiàng);例如,當(dāng)如果數(shù)據(jù)項(xiàng)及其所述數(shù)據(jù)項(xiàng)的所有子數(shù)據(jù)項(xiàng)都被刪除了,那么針對(duì)該父 數(shù)據(jù)項(xiàng)的<Del>命令可以使用下面的格式DEL<URI> ? list = Struct其中“Struct”屬性以“? list = Struct”的形式附在父數(shù)據(jù)項(xiàng)URI的后面用來 表明需要把該數(shù)據(jù)項(xiàng)及其所述數(shù)據(jù)項(xiàng)的所有子數(shù)據(jù)項(xiàng)全部刪除;又例如,如果數(shù)據(jù)項(xiàng)及其所述數(shù)據(jù)項(xiàng)所有子數(shù)據(jù)項(xiàng)都被移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下, 那么針對(duì)該父數(shù)據(jù)項(xiàng)的〈Move〉命令可以使用下面的格式Move<URI> ? list = Struct其中“Struct”屬性以“? list = Struct”的形式附在父數(shù)據(jù)項(xiàng)URI的后面用來 表明需要把該數(shù)據(jù)項(xiàng)及其所述數(shù)據(jù)項(xiàng)的所有子數(shù)據(jù)項(xiàng)全部移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下;又例如,如果只是數(shù)據(jù)項(xiàng)下屬所有子數(shù)據(jù)項(xiàng)被移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下,那么針對(duì) 該父數(shù)據(jù)項(xiàng)的〈Move〉命令可以使用下面的格式Move<URI> ? list = Child其中“Struct”屬性以“? list = Struct”的形式附在父數(shù)據(jù)項(xiàng)URI的后面用來 表明需要把該數(shù)據(jù)項(xiàng)的下屬所有子數(shù)據(jù)項(xiàng)全部移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下;當(dāng)所述服務(wù)器接收到上述指令時(shí),執(zhí)行該指令,實(shí)現(xiàn)了分級(jí)數(shù)據(jù)的同步。可選的,當(dāng)所述服務(wù)器執(zhí)行完所述客戶端設(shè)備發(fā)送的指令后,即實(shí)現(xiàn)分級(jí)數(shù)據(jù)同步后,向所述客戶端設(shè)備返回處理結(jié)果,所述處理結(jié)果包括分級(jí)數(shù)據(jù)同步成功或分級(jí)數(shù)據(jù) 同步失敗,當(dāng)所述分級(jí)數(shù)據(jù)同步失敗時(shí)會(huì)返回失敗原因,例如,所述數(shù)據(jù)發(fā)生變化或所述數(shù) 據(jù)發(fā)生沖突等。使用該可選步驟可以使得客戶端設(shè)備確定分級(jí)數(shù)據(jù)同步是否成功,若失敗, 可通過失敗原因確定是否重新發(fā)起數(shù)據(jù)同步。例如,對(duì)于刪除指令,接收方服務(wù)器處理后,有下列情形1、數(shù)據(jù)項(xiàng)及其所述數(shù)據(jù)項(xiàng)的所有子數(shù)據(jù)項(xiàng)都被成功刪除,返回執(zhí)行成功的Status 代碼;2、由于接收方服務(wù)器的該數(shù)據(jù)項(xiàng)及其所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)也發(fā)生了一些改動(dòng) (包括新增了一些子數(shù)據(jù)項(xiàng)),所以沖突發(fā)生了,接收方依據(jù)沖突解決策略解決后,仍只能 刪除部分子數(shù)據(jù)項(xiàng),這時(shí)返回的Status代碼可以為“518”,該代碼定義如下
權(quán)利要求
一種分級(jí)數(shù)據(jù)同步的方法,其特征在于,包括向服務(wù)器發(fā)送數(shù)據(jù)同步初始化消息;接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息;判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng);若判斷為是,則向所述服務(wù)器發(fā)送相應(yīng)處理指令以使所述服務(wù)器根據(jù)所述相應(yīng)處理指令處理所述服務(wù)器中的相應(yīng)數(shù)據(jù)項(xiàng)。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述數(shù)據(jù)項(xiàng)的成組改動(dòng)包括 數(shù)據(jù)項(xiàng)及所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)都被刪除;或者,數(shù)據(jù)項(xiàng)及所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)被移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下;或者, 所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)被移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下。
3.根據(jù)權(quán)利要求1或2所述方法,其特征在于,所述方法還包括 接收所述服務(wù)器返回的處理結(jié)果。
4.一種分級(jí)數(shù)據(jù)同步的方法,其特征在于,包括 向客戶端設(shè)備發(fā)送數(shù)據(jù)同步初始化消息; 接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息;判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng);若判斷為是,則向所述客戶端設(shè)備發(fā)送相應(yīng)處理指令以使所述客戶端設(shè)備根據(jù)所述相 應(yīng)處理指令處理所述客戶端設(shè)備中的相應(yīng)數(shù)據(jù)項(xiàng)。
5.根據(jù)權(quán)利要求4所述方法,其特征在于,所述數(shù)據(jù)項(xiàng)的成組改動(dòng)包括 數(shù)據(jù)項(xiàng)及所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)都被刪除;或者,數(shù)據(jù)項(xiàng)及所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)被移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下;或者, 所述數(shù)據(jù)項(xiàng)的子數(shù)據(jù)項(xiàng)被移動(dòng)到另一個(gè)數(shù)據(jù)項(xiàng)下。
6.根據(jù)權(quán)利要求4或5所述方法,其特征在于,所述方法還包括 接收所述客戶端設(shè)備返回的處理結(jié)果。
7.一種客戶端設(shè)備,其特征在于,包括發(fā)送模塊用于向服務(wù)器發(fā)送數(shù)據(jù)同步初始化消息; 接收模塊用于接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息; 判斷模塊用于判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng); 同步模塊用于所述判斷模塊判斷為是時(shí),向所述服務(wù)器發(fā)送相應(yīng)處理指令以使所述 服務(wù)器根據(jù)所述相應(yīng)處理指令處理所述服務(wù)器中的相應(yīng)數(shù)據(jù)項(xiàng)。
8.根據(jù)權(quán)利要求7所述客戶端設(shè)備,其特征在于,所述客戶端設(shè)備還包括 處理結(jié)果接收模塊用于接收所述服務(wù)器返回的處理結(jié)果。
9.一種服務(wù)器,其特征在于,包括發(fā)送模塊用于向客戶端設(shè)備發(fā)送數(shù)據(jù)同步初始化消息; 接收模塊用于接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息; 判斷模塊用于判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng); 同步模塊用于所述判斷模塊判斷為是時(shí),向所述客戶端設(shè)備發(fā)送相應(yīng)處理指令以使 所述客戶端設(shè)備根據(jù)所述相應(yīng)處理指令處理所述客戶端設(shè)備中的相應(yīng)數(shù)據(jù)項(xiàng)。
10.根據(jù)權(quán)利要求9所述服務(wù)器,其特征在于,所述服務(wù)器還包括處理結(jié)果接收模塊用于接收所述客戶端設(shè)備返回的處理結(jié)果。
全文摘要
本發(fā)明實(shí)施例公開了一種分級(jí)數(shù)據(jù)同步的方法和設(shè)備,其中方法實(shí)施例的實(shí)現(xiàn)包括向服務(wù)器發(fā)送數(shù)據(jù)同步初始化消息,接收所述數(shù)據(jù)同步初始化消息的響應(yīng)消息,判斷本地分級(jí)數(shù)據(jù)庫(kù)中是否存在數(shù)據(jù)項(xiàng)的成組改動(dòng);若判斷為是,則向所述服務(wù)器發(fā)送相應(yīng)處理指令以使所述服務(wù)器根據(jù)所述相應(yīng)處理指令處理所述服務(wù)器中的相應(yīng)數(shù)據(jù)項(xiàng)。還提供了相應(yīng)的客戶端設(shè)備和服務(wù)器。本發(fā)明實(shí)施例可解決分級(jí)數(shù)據(jù)同步過程中數(shù)據(jù)項(xiàng)發(fā)生成組改動(dòng)時(shí)的避免浪費(fèi)無線資源問題。
文檔編號(hào)H04L29/06GK101997829SQ20091010935
公開日2011年3月30日 申請(qǐng)日期2009年8月18日 優(yōu)先權(quán)日2009年8月18日
發(fā)明者劉海濤, 宋悅, 王睿 申請(qǐng)人:華為終端有限公司