一種數(shù)據(jù)庫(kù)同步方法、服務(wù)器及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例公開(kāi)了一種數(shù)據(jù)庫(kù)同步方法,包括:接收從服務(wù)器的同步請(qǐng)求;同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間;根據(jù)同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到同步請(qǐng)求對(duì)應(yīng)的第一歷史操作數(shù)據(jù);第一歷史操作數(shù)據(jù)為業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù);按操作時(shí)間先后,將第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù);第一時(shí)刻晚于第二時(shí)刻;返回同步數(shù)據(jù)至從服務(wù)器。采用本發(fā)明,可減少主服務(wù)器對(duì)從服務(wù)器的同步操作,可縮小同步操作時(shí)的數(shù)據(jù)傳輸量,從而提高同步效率,節(jié)約網(wǎng)絡(luò)資源。
【專利說(shuō)明】—種數(shù)據(jù)庫(kù)同步方法、服務(wù)器及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫(kù)同步方法、服務(wù)器及系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)據(jù)庫(kù)可視為存儲(chǔ)電子文件的處所,用戶可以對(duì)文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。隨著信息技術(shù)的發(fā)展,數(shù)據(jù)庫(kù)的同步越來(lái)越重要?,F(xiàn)有的數(shù)據(jù)庫(kù)同步技術(shù)有數(shù)據(jù)庫(kù)日志同步方法,該數(shù)據(jù)庫(kù)日志同步方法通過(guò)監(jiān)聽(tīng)源數(shù)據(jù)庫(kù)的日志,來(lái)捕獲源數(shù)據(jù)庫(kù)的數(shù)據(jù)變化信息,從而實(shí)現(xiàn)源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的同步;現(xiàn)有的數(shù)據(jù)庫(kù)同步技術(shù)還有基于文件的數(shù)據(jù)庫(kù)同步方法,該基于文件的數(shù)據(jù)庫(kù)同步方法以文件方式從源端數(shù)據(jù)庫(kù)向目標(biāo)端數(shù)據(jù)庫(kù)進(jìn)行同步。
[0003]但是,由于各個(gè)從服務(wù)器需要的數(shù)據(jù)不同,同步的時(shí)候,主服務(wù)器需要根據(jù)條件篩選,同時(shí),各個(gè)從服務(wù)器都部署在不同的網(wǎng)絡(luò)中,上述現(xiàn)有的數(shù)據(jù)庫(kù)同步技術(shù)造成主服務(wù)器進(jìn)行頻繁的同步操作,同步操作中傳輸?shù)臄?shù)據(jù)量大。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題是提供一種數(shù)據(jù)庫(kù)同步方法及系統(tǒng),可減少主服務(wù)器對(duì)從服務(wù)器的同步操作,可縮小同步操作時(shí)的數(shù)據(jù)傳輸量,從而提高同步效率,節(jié)約網(wǎng)絡(luò)資源。為解決上述問(wèn)題,本發(fā)明的技術(shù)方案為:
[0005]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫(kù)同步方法,該方法包括兩個(gè)方面的內(nèi)容。其中一個(gè)方面的內(nèi)容為主服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法,包括:
[0006]接收從服務(wù)器的同步請(qǐng)求;所述同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間;
[0007]根據(jù)所述同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到所述同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的第一歷史操作數(shù)據(jù);所述第一歷史操作數(shù)據(jù)為所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù);
[0008]按操作時(shí)間先后,將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù);所述第一時(shí)刻晚于所述第二時(shí)刻;
[0009]返回所述同步數(shù)據(jù)至所述從服務(wù)器。
[0010]具體的,所述將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù)包括:按操作時(shí)間先后,從后往前以迭代的方式將所述第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)進(jìn)行合并來(lái)得到同步數(shù)據(jù)。
[0011]具體的,所述根據(jù)所述同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到所述同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的第一歷史操作數(shù)據(jù)包括:
[0012]根據(jù)所述參照時(shí)間在所述全部歷史操作數(shù)據(jù)中過(guò)濾出晚于所述參照時(shí)間的歷史操作數(shù)據(jù);
[0013]根據(jù)所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)在所述晚于所述參照時(shí)間的歷史操作數(shù)據(jù)中過(guò)濾出所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù)為所述第一歷史操作數(shù)據(jù)。
[0014]具體的,所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)包括多個(gè)子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí);所述將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù)包括:
[0015]將所述第一歷史操作數(shù)據(jù)按所述子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)分類;
[0016]按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù);
[0017]打包所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)為所述同步數(shù)據(jù)。
[0018]具體的,在所述返回所述同步數(shù)據(jù)至所述從服務(wù)器之前,如果所述同步數(shù)據(jù)中包含附件信息時(shí),則為所述附件信息對(duì)應(yīng)的附件生成下載地址,并返回所述下載地址至所述從服務(wù)器。
[0019]具體的,在所述按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中時(shí),如果所述同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)與所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)相同的字段,則將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息。
[0020]具體的,所述打包所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)為所述同步數(shù)據(jù)包括:按操作時(shí)間的先后順序組織所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)形成所述同步數(shù)據(jù)的數(shù)據(jù)包。
[0021]具體的,在所述返回所述下載地址至所述從服務(wù)器之后,包括:
[0022]接收所述從服務(wù)器的附件下載請(qǐng)求;
[0023]發(fā)送所述下載地址對(duì)應(yīng)的附件至所述從服務(wù)器。
[0024]具體的,所述歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息包括歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作;將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息包括:
[0025]將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容;
[0026]將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作。
[0027]其中另一個(gè)方面的內(nèi)容為從服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法,包括:
[0028]發(fā)送同步請(qǐng)求至主服務(wù)器;所述同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間;
[0029]接收主服務(wù)器發(fā)送的同步數(shù)據(jù);所述同步數(shù)據(jù)為晚于所述參照時(shí)間的所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的歷史操作數(shù)據(jù);
[0030]根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)。
[0031]具體的,所述根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)包括:
[0032]在所述本地?cái)?shù)據(jù)庫(kù)找到所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù);
[0033]根據(jù)所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容來(lái)更新所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。
[0034]具體的,在所述根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)之后,記錄所述更新完成的時(shí)間;所述更新完成的時(shí)間用作下一個(gè)同步周期的參照時(shí)間。
[0035]具體的,在所述接收主服務(wù)器發(fā)送的同步數(shù)據(jù)之后,如果所述同步數(shù)據(jù)中包含附件的下載地址,根據(jù)所述下載地址發(fā)送下載請(qǐng)求至所述主服務(wù)器;從所述主服務(wù)器下載所述下載地址對(duì)應(yīng)的附件。
[0036]具體的,所述根據(jù)所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容來(lái)更新所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)包括:
[0037]如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為刪除動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)刪除;或
[0038]如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為添加動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的字段添加到所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中;或
[0039]如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為修改動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的字段覆蓋所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中的所述字段。
[0040]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫(kù)同步的主服務(wù)器,所述主服務(wù)器包括:
[0041]同步請(qǐng)求接收模塊,用于接收從服務(wù)器的同步請(qǐng)求;所述同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間;
[0042]過(guò)濾模塊,用于根據(jù)所述同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到所述同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的第一歷史操作數(shù)據(jù);所述第一歷史操作數(shù)據(jù)為所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù);
[0043]合并模塊,用于按操作時(shí)間先后,將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù);所述第一時(shí)刻晚于所述第二時(shí)刻;
[0044]同步數(shù)據(jù)發(fā)送模塊,用于返回所述同步數(shù)據(jù)至所述從服務(wù)器。
[0045]具體的,所述合并模塊具體用于按操作時(shí)間先后,從后往前以迭代的方式將所述第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)進(jìn)行合并來(lái)得到同步數(shù)據(jù)。
[0046]具體的,所述過(guò)濾模塊包括:
[0047]第一過(guò)濾模塊,用于根據(jù)所述參照時(shí)間在所述全部歷史操作數(shù)據(jù)中過(guò)濾出晚于所述參照時(shí)間的歷史操作數(shù)據(jù);
[0048]第二過(guò)濾模塊,用于根據(jù)所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)在所述晚于所述參照時(shí)間的歷史操作數(shù)據(jù)中過(guò)濾出所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù)為所述第一歷史操作數(shù)據(jù)。
[0049]具體的,所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)包括多個(gè)子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí);所述合并模塊包括:
[0050]分類模塊,用于將所述第一歷史操作數(shù)據(jù)按所述子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)分類;
[0051]歷史操作合并模塊,用于按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù);
[0052]打包模塊,用于打包所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)為所述同步數(shù)據(jù)。
[0053]具體的,還包括附件處理模塊,用于在所述返回所述同步數(shù)據(jù)至所述從服務(wù)器之前,如果所述同步數(shù)據(jù)中包含附件信息時(shí),則為所述附件信息對(duì)應(yīng)的附件生成下載地址,并返回所述下載地址至所述從服務(wù)器。
[0054]具體的,還包括覆蓋模塊,用于在所述歷史操作合并模塊執(zhí)行所述按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)的步驟時(shí),
[0055]如果所述同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)與所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)相同的字段,則將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息。
[0056]具體的,所述打包模塊具體用于按操作時(shí)間的先后順序組織所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)形成所述同步數(shù)據(jù)的數(shù)據(jù)包。
[0057]具體的,還包括下載處理模塊,用于在所述附件處理模塊執(zhí)行所述返回所述下載地址至所述從服務(wù)器的步驟之后,接收所述從服務(wù)器的附件下載請(qǐng)求;發(fā)送所述下載地址對(duì)應(yīng)的附件至所述從服務(wù)器。
[0058]具體的,所述覆蓋模塊包括:
[0059]操作內(nèi)容覆蓋模塊,用于將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容;
[0060]操作動(dòng)作覆蓋模塊,用于將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作。
[0061]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫(kù)同步的從服務(wù)器,所述從服務(wù)器包括:
[0062]同步請(qǐng)求模塊,用于發(fā)送同步請(qǐng)求至主服務(wù)器;所述同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間;
[0063]同步數(shù)據(jù)接收模塊,用于接收主服務(wù)器發(fā)送的同步數(shù)據(jù);所述同步數(shù)據(jù)為晚于所述參照時(shí)間的所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的歷史操作數(shù)據(jù);
[0064]更新模塊,用于根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)。
[0065]具體的,所述更新模塊包括:
[0066]業(yè)務(wù)數(shù)據(jù)定位模塊,用于在所述本地?cái)?shù)據(jù)庫(kù)找到所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù);
[0067]業(yè)務(wù)數(shù)據(jù)更新模塊,用于根據(jù)所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容來(lái)更新所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。
[0068]具體的,還包括:記錄模塊,用于在所述更新模塊執(zhí)行所述根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)的步驟之后,記錄所述更新完成的時(shí)間;所述更新完成的時(shí)間用作下一個(gè)同步周期的參照時(shí)間。
[0069]具體的,還包括下載模塊,用于在所述同步數(shù)據(jù)接收模塊執(zhí)行所述接收主服務(wù)器發(fā)送的同步數(shù)據(jù)的步驟之后,如果所述同步數(shù)據(jù)中包含附件的下載地址,根據(jù)所述下載地址發(fā)送下載請(qǐng)求至所述主服務(wù)器;從所述主服務(wù)器下載所述下載地址對(duì)應(yīng)的附件。
[0070]具體的,所述業(yè)務(wù)數(shù)據(jù)更新模塊包括:
[0071]第一更新模塊,用于如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為刪除動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)業(yè)務(wù)數(shù)據(jù)刪除;或
[0072]第二更新模塊,用于如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為添加動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的字段添加到所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中;或
[0073]第三更新模塊,用于如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為修改動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的字段覆蓋所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中的所述字段。
[0074]另外,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)庫(kù)同步的系統(tǒng),所述系統(tǒng)包括主服務(wù)器和從服務(wù)器,其中所述主服務(wù)器為上述全部?jī)?nèi)容所述的主服務(wù)器,所述從服務(wù)器為上述全部?jī)?nèi)容所述的從服務(wù)器,這里不再贅述。
[0075]通過(guò)實(shí)施本發(fā)明實(shí)施例,主服務(wù)器接收從服務(wù)器的同步請(qǐng)求,根據(jù)從服務(wù)器的同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)來(lái)得到該同步請(qǐng)求對(duì)應(yīng)的歷史操作數(shù)據(jù),合并該同步請(qǐng)求對(duì)應(yīng)的歷史操作數(shù)據(jù)來(lái)得到從服務(wù)器的同步數(shù)據(jù),發(fā)送該同步數(shù)據(jù)至從服務(wù)器,可減少主服務(wù)器對(duì)從服務(wù)器的同步操作,可縮小同步操作時(shí)的數(shù)據(jù)傳輸量,從而提高同步效率,節(jié)約網(wǎng)絡(luò)資源。
【專利附圖】
【附圖說(shuō)明】
[0076]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0077]圖1是本發(fā)明的一種實(shí)施例提供的主服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程圖;
[0078]圖2是本發(fā)明的一種實(shí)施例提供的從服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程圖;
[0079]圖3是本發(fā)明的另一種實(shí)施例提供的主服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程圖;
[0080]圖4是本發(fā)明實(shí)施例提供的歷史操作數(shù)據(jù)合并的示意圖;
[0081]圖5是本發(fā)明的一種實(shí)施例提供的主服務(wù)器的結(jié)構(gòu)示意圖;
[0082]圖6是本發(fā)明的一種實(shí)施例提供的主服務(wù)器的過(guò)濾模塊的結(jié)構(gòu)示意圖;
[0083]圖7是本發(fā)明的一種實(shí)施例提供的主服務(wù)器的合并模塊的結(jié)構(gòu)示意圖;
[0084]圖8是本發(fā)明的另一種實(shí)施例提供的主服務(wù)器的結(jié)構(gòu)示意圖;
[0085]圖9是本發(fā)明的第三種實(shí)施例提供的主服務(wù)器的結(jié)構(gòu)示意圖;
[0086]圖10是本發(fā)明第三種實(shí)施例提供的主服務(wù)器的覆蓋模塊的結(jié)構(gòu)示意圖;
[0087]圖11是本發(fā)明第四種實(shí)施例提供的主服務(wù)器的結(jié)構(gòu)示意圖;
[0088]圖12是本發(fā)明一種實(shí)施例提供的從服務(wù)器的結(jié)構(gòu)示意圖;
[0089]圖13是本發(fā)明一種實(shí)施例提供的從服務(wù)器的更新模塊的結(jié)構(gòu)示意圖;
[0090]圖14是本發(fā)明一種實(shí)施例提供的從服務(wù)器的業(yè)務(wù)數(shù)據(jù)更新模塊的結(jié)構(gòu)示意圖;
[0091]圖15是本發(fā)明另一種實(shí)施例提供的從服務(wù)器的結(jié)構(gòu)示意圖;
[0092]圖16是本發(fā)明第三種實(shí)施例提供的從服務(wù)器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0093]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0094]需要說(shuō)明的是,在本發(fā)明實(shí)施例中使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實(shí)施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
[0095]參見(jiàn)圖1,是本發(fā)明的一種實(shí)施例提供的主服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程圖。如圖所示本實(shí)施例中的主服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程可以包括:
[0096]步驟SlOl:接收從服務(wù)器的同步請(qǐng)求。
[0097]具體的,主服務(wù)器接收從服務(wù)器發(fā)送的同步請(qǐng)求,該同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間。從服務(wù)器可以將自身需要的業(yè)務(wù),上一次同步完成的時(shí)間(即參照時(shí)間)以及從服務(wù)器的身份標(biāo)識(shí)傳送給主服務(wù)器;主服務(wù)器接收到從服務(wù)器發(fā)送的同步請(qǐng)求之后,可根據(jù)該同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
[0098]步驟S103:根據(jù)同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到同步請(qǐng)求對(duì)應(yīng)的第一歷史操作數(shù)據(jù)。
[0099]具體的,歷史操作數(shù)據(jù)庫(kù)可用于存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的歷史操作記錄;該歷史操作記錄即為歷史操作數(shù)據(jù),可包括對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行的新增、截取、更新、刪除等操作以及這些操作的內(nèi)容,還可包括業(yè)務(wù)數(shù)據(jù)的標(biāo)識(shí),操作時(shí)間,附件信息等;其中,歷史操作數(shù)據(jù)中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)可以是該業(yè)務(wù)數(shù)據(jù)的唯一標(biāo)識(shí),還可以是具體某個(gè)模塊下的業(yè)務(wù)數(shù)據(jù)的標(biāo)識(shí),這里不限制歷史操作數(shù)據(jù)和其對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)的關(guān)系的表現(xiàn)形式。
[0100]具體的,該同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間;第一歷史操作數(shù)據(jù)為該業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于該參照時(shí)間的歷史操作數(shù)據(jù)。步驟S103可具體包括:根據(jù)該參照時(shí)間在歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù)中過(guò)濾出晚于該參照時(shí)間的歷史操作數(shù)據(jù);根據(jù)該業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)在所述晚于所述參照時(shí)間的歷史操作數(shù)據(jù)中過(guò)濾出該業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于該參照時(shí)間的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)。
[0101]主服務(wù)器可根據(jù)同步請(qǐng)求中的參照時(shí)間過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的歷史操作數(shù)據(jù),得到晚于參照時(shí)間的歷史操作數(shù)據(jù),即得到上一次同步完成之后新產(chǎn)生的歷史操作數(shù)據(jù);在此之后,主服務(wù)器可根據(jù)同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)來(lái)過(guò)濾上述晚于參照時(shí)間的歷史操作數(shù)據(jù)來(lái)得到該業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的歷史操作數(shù)據(jù),該數(shù)據(jù)即為從服務(wù)器請(qǐng)求的數(shù)據(jù)。
[0102]步驟S105:按操作時(shí)間先后,將第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù)。
[0103]具體的,上述第一時(shí)刻晚于上述第二時(shí)刻,可理解的,上述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)中的在后的歷史操作數(shù)據(jù);同理,上述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)中的在先的歷史操作數(shù)據(jù)。
[0104]具體的,主服務(wù)器可根據(jù)業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),操作動(dòng)作,操作內(nèi)容,附件信息,以及操作時(shí)間進(jìn)行合并,合并重復(fù)操作為一個(gè)操作。這里重復(fù)操作可包括對(duì)于同一業(yè)務(wù)數(shù)據(jù)的不同操作時(shí)間的歷史操作記錄,例如,在廣播電視系統(tǒng)中,總服務(wù)器的編輯處對(duì)同一節(jié)目信息的不同時(shí)間的編輯動(dòng)作即為該節(jié)目信息的重復(fù)歷史操作。
[0105]具體實(shí)現(xiàn)中,主服務(wù)器可將第一歷史操作數(shù)據(jù)中的全部歷史操作數(shù)據(jù)按照操作時(shí)間排序,并將操作時(shí)間在后的歷史操作數(shù)據(jù)合并到操作時(shí)間在前的歷史操作數(shù)據(jù)中,從而得到同步數(shù)據(jù)。例如,對(duì)于同一業(yè)務(wù)數(shù)據(jù),時(shí)刻Tl的歷史操作數(shù)據(jù)A對(duì)字段T的操作動(dòng)作為“修改”,操作內(nèi)容為“abc”,時(shí)刻T2的歷史操作數(shù)據(jù)B對(duì)字段T的操作動(dòng)作為“修改”,操作內(nèi)容為“abcd”,其中時(shí)刻T2晚于時(shí)刻Tl,則歷史操作數(shù)據(jù)B合并到歷史操作數(shù)據(jù)A中,合并后的歷史操作數(shù)據(jù)的操作動(dòng)作為“修改”,操作內(nèi)容為“abed”。
[0106]需要說(shuō)明的,歷史操作數(shù)據(jù)中的“添加”或“修改”等操作動(dòng)作的直接操作對(duì)象為業(yè)務(wù)數(shù)據(jù)中的字段,但是歷史操作數(shù)據(jù)中的“刪除”這一操作動(dòng)作的直接操作對(duì)象為業(yè)務(wù)數(shù)據(jù),則在第一歷史操作數(shù)據(jù)中,如果在后的歷史操作數(shù)據(jù)的操作動(dòng)作為“刪除”,則可直接將該在后的歷史操作數(shù)據(jù)之前的歷史操作記錄全部刪除;相應(yīng)的,如果從服務(wù)器接收到的同步數(shù)據(jù)中存在操作動(dòng)作為“刪除”的歷史操作數(shù)據(jù),從服務(wù)器直接刪除該歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。例如,對(duì)于同一業(yè)務(wù)數(shù)據(jù),時(shí)刻Tl的歷史操作數(shù)據(jù)A的操作動(dòng)作為對(duì)字段T的“修改”,操作內(nèi)容為“abc”,時(shí)刻T2的歷史操作數(shù)據(jù)B的操作動(dòng)作為“刪除”,其中時(shí)刻T2晚于時(shí)刻Tl,則直接刪除該業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的時(shí)刻T2之前的全部歷史操作數(shù)據(jù)。示例僅僅是本發(fā)明實(shí)施例的一種實(shí)現(xiàn)方式,實(shí)際使用中還可以不同,不應(yīng)構(gòu)成限定。
[0107]最優(yōu)的,主服務(wù)器可以按操作時(shí)間先后,從后往前以迭代的方式將第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)進(jìn)行合并來(lái)得到同步數(shù)據(jù),即主服務(wù)器可以以迭代的方式依次將第一歷史操作數(shù)據(jù)中的在后的歷史操作數(shù)據(jù)合并到第一歷史操作數(shù)據(jù)中的在先的歷史數(shù)據(jù)中得到第一歷史操作數(shù)據(jù)的最終數(shù)據(jù),具體實(shí)現(xiàn)可參見(jiàn)圖3的步驟S311中的內(nèi)容。
[0108]可選的,主服務(wù)器還可從第一歷史操作數(shù)據(jù)中歷取出連續(xù)相鄰的部分歷史操作數(shù)據(jù),將該連續(xù)相鄰的部分歷史操作數(shù)據(jù)按照操作時(shí)間排序,并將該連續(xù)相鄰的部分歷史操作數(shù)據(jù)中操作時(shí)間在后的歷史操作數(shù)據(jù)合并到操作時(shí)間在前的歷史操作數(shù)據(jù)中,用以減少第一歷史操作數(shù)據(jù)的部分重復(fù)操作。
[0109]需要說(shuō)明的,上述同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)可以是單一業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),也可以是單個(gè)模塊下的多個(gè)子業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)的集合,還可以是其他組合形式的業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),這里不應(yīng)構(gòu)成限定。相應(yīng)的,對(duì)于非單一業(yè)務(wù)的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),主服務(wù)器可分別對(duì)各個(gè)業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的歷史操作數(shù)據(jù)進(jìn)行合并操作,并將各個(gè)業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的合并后的歷史操作數(shù)據(jù)打包為同步數(shù)據(jù)。特別的,如果上述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)包含多個(gè)子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),主服務(wù)器可按照子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)將第一歷史操作數(shù)據(jù)分類;在每一類歷史操作數(shù)據(jù)的合并過(guò)程中,主服務(wù)器可按操作時(shí)間先后,從后往前以迭代的方式將每一類第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)進(jìn)行合并。
[0110]步驟S107:返回同步數(shù)據(jù)至從服務(wù)器。
[0111]具體的,主服務(wù)器可將從服務(wù)器發(fā)送的同步請(qǐng)求對(duì)應(yīng)的同步數(shù)據(jù)發(fā)送給從服務(wù)器。具體實(shí)現(xiàn)中,主服務(wù)器可以根據(jù)同步請(qǐng)求中包含的從服務(wù)器的身份標(biāo)識(shí)來(lái)定位接收同步數(shù)據(jù)的從服務(wù)器。
[0112]具體的,在返回同步數(shù)據(jù)至從服務(wù)器之前,如果該同步數(shù)據(jù)中包含附件信息時(shí),主服務(wù)器可為該附件信息對(duì)應(yīng)的附件生成下載地址,并返回下載地址至從服務(wù)器。在主服務(wù)器返回附件下載地址至從服務(wù)器之后,主服務(wù)器可接收從服務(wù)器的附件下載請(qǐng)求;并發(fā)送下載地址對(duì)應(yīng)的附件至從服務(wù)器。
[0113]參見(jiàn)圖2,是本發(fā)明的一種實(shí)施例提供的從服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程圖。如圖所示本實(shí)施例中的從服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程可以包括:
[0114]步驟S201:發(fā)送同步請(qǐng)求至主服務(wù)器。
[0115]具體的,從服務(wù)器可以將自身需要的業(yè)務(wù),上一次同步完成的時(shí)間(即參照時(shí)間)以及從服務(wù)器的身份標(biāo)識(shí)傳送給主服務(wù)器。需要說(shuō)明的,從服務(wù)器發(fā)送同步請(qǐng)求的方式可以是按預(yù)設(shè)時(shí)間間隔定時(shí)向主服務(wù)器發(fā)起請(qǐng)求,還可以由用戶觸發(fā)來(lái)發(fā)起請(qǐng)求,這里不作限制。
[0116]步驟S203:接收主服務(wù)器發(fā)送的同步數(shù)據(jù)。
[0117]具體的,從服務(wù)器接收主服務(wù)器發(fā)送的同步數(shù)據(jù)。在接收主服務(wù)器發(fā)送的同步數(shù)據(jù)之后,如果同步數(shù)據(jù)中包含附件的下載地址,從服務(wù)器可根據(jù)該下載地址發(fā)送下載請(qǐng)求至主服務(wù)器;并從主服務(wù)器下載該下載地址對(duì)應(yīng)的附件。
[0118]步驟S205:根據(jù)同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)。
[0119]具體的,從服務(wù)器可在本地?cái)?shù)據(jù)庫(kù)找到同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù);并可根據(jù)同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和該歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容來(lái)更新該歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。實(shí)際應(yīng)用中,如果同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為刪除動(dòng)作,從服務(wù)器則可直接將該歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)刪除;或如果同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為添加動(dòng)作,從服務(wù)器則可將該歷史操作數(shù)據(jù)對(duì)應(yīng)的字段添加到該歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中;或如果同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為修改動(dòng)作,從服務(wù)器則可將該歷史操作數(shù)據(jù)對(duì)應(yīng)的字段覆蓋該歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中的該字段。
[0120]進(jìn)一步的,在從服務(wù)器根據(jù)最終的同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)之后,從服務(wù)器記錄該次更新完成的時(shí)間;該次更新完成的時(shí)間用作下一個(gè)同步周期的參照時(shí)間。
[0121]參見(jiàn)圖3,是本發(fā)明的另一種實(shí)施例提供的主服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程圖。如圖所示本實(shí)施例中的主服務(wù)器側(cè)的數(shù)據(jù)庫(kù)同步方法的流程可以包括:
[0122]步驟S301:接收從服務(wù)器的同步請(qǐng)求。
[0123]具體的,具體實(shí)現(xiàn)方式可參見(jiàn)步驟SlOl中的內(nèi)容。
[0124]步驟S303:根據(jù)同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)。
[0125]具體的,歷史操作數(shù)據(jù)庫(kù)可用于存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的歷史操作記錄;該歷史操作記錄即為歷史操作數(shù)據(jù),可包括對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行的新增、截取、更新、刪除等操作以及這些操作的內(nèi)容,還可包括業(yè)務(wù)數(shù)據(jù)的標(biāo)識(shí),操作時(shí)間,附件信息等;其中,歷史操作數(shù)據(jù)中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)可以是該業(yè)務(wù)數(shù)據(jù)的唯一標(biāo)識(shí),還可以是具體某個(gè)模塊下的業(yè)務(wù)數(shù)據(jù)的標(biāo)識(shí),這里不限制歷史操作數(shù)據(jù)和其對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)的關(guān)系的表現(xiàn)形式。
[0126]主服務(wù)器可根據(jù)同步請(qǐng)求中的參照時(shí)間過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的歷史操作數(shù)據(jù),得到晚于參照時(shí)間的歷史操作數(shù)據(jù),即得到上一次同步完成之后新產(chǎn)生的歷史操作數(shù)據(jù);在此之后,主服務(wù)器可根據(jù)同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)來(lái)過(guò)濾上述晚于參照時(shí)間的歷史操作數(shù)據(jù)來(lái)得到該業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的歷史操作數(shù)據(jù),該數(shù)據(jù)即為從服務(wù)器請(qǐng)求的數(shù)據(jù)。
[0127]步驟S305:將過(guò)濾后的歷史操作數(shù)據(jù)按業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)分類。
[0128]具體的,上述同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)可以是單一業(yè)務(wù)的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),也可以是單個(gè)模塊下的多個(gè)業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)的集合,還可以是其他組合形式的業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。
[0129]具體的,當(dāng)上述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)包括多個(gè)子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)時(shí),主服務(wù)器可將第一歷史操作數(shù)據(jù)按子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)分類。
[0130]步驟S307:判斷同一類第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)與第二時(shí)刻的歷史操作數(shù)據(jù)是否對(duì)應(yīng)相同的字段。
[0131]具體的,上述第一時(shí)刻晚于上述第二時(shí)刻,可理解的,上述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)中的在后的歷史操作數(shù)據(jù);同理,上述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)中的在先的歷史操作數(shù)據(jù)。
[0132]具體的,如果同一類第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)與第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)相同的字段,則主服務(wù)器執(zhí)行步驟S309 ;否則,執(zhí)行步驟S311。
[0133]步驟S309:將第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息。
[0134]具體的,上述第一時(shí)刻晚于上述第二時(shí)刻,可理解的,上述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)中的在后的歷史操作數(shù)據(jù);同理,上述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)中的在先的歷史操作數(shù)據(jù)。
[0135]具體的,如果同一類第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)與第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)相同的字段,主服務(wù)器可將第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息。歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息可包括歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容。具體實(shí)現(xiàn)中,主服務(wù)器將第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容覆蓋第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容;主服務(wù)器將第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作覆蓋第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作。
[0136]步驟S311:將同一類第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到第二時(shí)刻的歷史操作數(shù)據(jù)中。
[0137]具體的,上述第一時(shí)刻晚于上述第二時(shí)刻,可理解的,上述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)中的在后的歷史操作數(shù)據(jù);同理,上述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)為第一歷史操作數(shù)據(jù)中的在先的歷史操作數(shù)據(jù)。
[0138]具體的,如果同一類第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)與第二時(shí)刻的歷史操作數(shù)據(jù)不對(duì)應(yīng)相同的字段,主服務(wù)器可按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的上述第一時(shí)刻的歷史操作數(shù)據(jù)合并到同一類第一歷史操作數(shù)據(jù)中的上述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)。
[0139]最優(yōu)的,對(duì)于同一類第一歷史操作數(shù)據(jù)的合并,主服務(wù)器可以按操作時(shí)間先后,從后往前以迭代的方式將所述第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)進(jìn)行合并來(lái)得到同步數(shù)據(jù)。具體實(shí)現(xiàn)中,迭代式的合并過(guò)程可參見(jiàn)圖4,其中,歷史操作數(shù)據(jù)401為同一類第一歷史操作數(shù)據(jù)中的按操作時(shí)間先后排列的歷史操作數(shù)據(jù),403為401所示的歷史操作數(shù)據(jù)的合并結(jié)果,405為時(shí)間軸;第一次合并的初始值可為離參照時(shí)間最近的時(shí)刻的歷史操作數(shù)據(jù),即圖4中的“N”,第一次合并的結(jié)果為“合并I ” ;“合并I ”作為第二次合并的初始值,第二次合并的結(jié)果為“合并2” 合并2”作為第三次合并的初始值,第三次合并的結(jié)果為“合并3”;依此反復(fù),最終可得到最終的合并結(jié)果,即為同一類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)。
[0140]需要說(shuō)明的,歷史操作數(shù)據(jù)中的“添加”或“修改”等操作動(dòng)作的直接操作對(duì)象為業(yè)務(wù)數(shù)據(jù)中的字段,但是歷史操作數(shù)據(jù)中的“刪除”這一操作動(dòng)作的直接操作對(duì)象為業(yè)務(wù)數(shù)據(jù),則在同一類第一歷史操作數(shù)據(jù)中,如果在后的歷史操作數(shù)據(jù)的操作動(dòng)作為“刪除”,則可直接將該在后的歷史操作數(shù)據(jù)之前的歷史操作記錄全部刪除;相應(yīng)的,如果從服務(wù)器接收到的同步數(shù)據(jù)中存在操作動(dòng)作為“刪除”的歷史操作數(shù)據(jù),從服務(wù)器直接刪除該歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。例如,對(duì)于同一業(yè)務(wù)數(shù)據(jù),時(shí)刻Tl的歷史操作數(shù)據(jù)A的操作動(dòng)作為對(duì)字段T的“修改”,操作內(nèi)容為“abc”,時(shí)刻T2的歷史操作數(shù)據(jù)B的操作動(dòng)作為“刪除”,其中時(shí)刻T2晚于時(shí)刻Tl,則直接刪除該業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的時(shí)刻T2的歷史操作數(shù)據(jù)以及時(shí)刻T2之前的全部歷史操作數(shù)據(jù)。示例僅僅是本發(fā)明實(shí)施例的一種實(shí)現(xiàn)方式,實(shí)際使用中還可以不同,不應(yīng)構(gòu)成限定。
[0141]具體實(shí)現(xiàn)中,圖4所示的迭代式的合并過(guò)程可以為:
[0142]新建第一容器用于存放將401所示的同一類第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù),新建第二容器用于存放401所示的同一類第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)的當(dāng)前合并結(jié)果403。
[0143]從第一容器中取出最新的歷史操作數(shù)據(jù);
[0144]判斷第二容器中是否為空,如果第二容器為空,則將第一容器中取出的最新的歷史操作數(shù)據(jù)放入第二容器中;如果第二容器不為空,則將第二容器中的數(shù)據(jù)取出與第一容器中取出的最新的歷史操作數(shù)據(jù)合并,在合并過(guò)程中如果兩份數(shù)據(jù)有相同的字段,則用最新的歷史操作數(shù)據(jù)的該字段覆蓋第二容器中取出的數(shù)據(jù)的該字段,最新的歷史操作數(shù)據(jù)的操作信息覆蓋第二容器中取出的數(shù)據(jù)的操作信息;
[0145]然后把合并結(jié)果重新放入第二容器中,等待下次合并;
[0146]重復(fù)上述過(guò)程直到第一容器中的歷史操作數(shù)據(jù)全部完成合并,則第二容器中存放的數(shù)據(jù)即為第一容器中最初存放的全部歷史操作數(shù)據(jù)的合并結(jié)果。
[0147]需要說(shuō)明的,圖4所示的迭代式的合并過(guò)程僅僅是本發(fā)明實(shí)施例提供的一種歷史操作數(shù)據(jù)的合并方式,實(shí)際應(yīng)用中還可以通過(guò)非迭代的方式來(lái)實(shí)現(xiàn)歷史操作數(shù)據(jù)的合并,當(dāng)在后的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為“刪除”時(shí),則直接刪除該歷史操作數(shù)據(jù)之前的歷史操作數(shù)據(jù),這里不作限制。
[0148]步驟S313:打包各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)為同步數(shù)據(jù)。
[0149]具體的,主服務(wù)器可按操作時(shí)間的先后順序組織各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)形成同步數(shù)據(jù)的數(shù)據(jù)包。
[0150]步驟S315:發(fā)送同步數(shù)據(jù)至從服務(wù)器。
[0151]具體的,具體實(shí)現(xiàn)方式可參見(jiàn)步驟S107中的內(nèi)容。
[0152]參見(jiàn)圖5,是本發(fā)明的一種實(shí)施例提供的主服務(wù)器的結(jié)構(gòu)示意圖。如圖5所示的主服務(wù)器50可至少包括:同步請(qǐng)求接收模塊501、過(guò)濾模塊503、合并模塊505以及同步數(shù)據(jù)發(fā)送模塊507。其中:
[0153]同步請(qǐng)求接收模塊501,用于接收從服務(wù)器的同步請(qǐng)求;同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間;
[0154]過(guò)濾模塊503,用于根據(jù)所述同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到所述同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的第一歷史操作數(shù)據(jù);所述第一歷史操作數(shù)據(jù)為所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù);
[0155]合并模塊505,用于按操作時(shí)間先后,將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù);所述第一時(shí)刻晚于所述第二時(shí)刻;
[0156]同步數(shù)據(jù)發(fā)送模塊507,用于返回同步數(shù)據(jù)至從服務(wù)器。
[0157]具體的,合并模塊505可具體按操作時(shí)間先后,從后往前以迭代的方式將所述第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)進(jìn)行合并來(lái)得到同步數(shù)據(jù)。
[0158]進(jìn)一步的,具體實(shí)現(xiàn)中,過(guò)濾模塊503可如圖6所示包括第一過(guò)濾模塊5031和第二過(guò)濾模塊5033。其中:
[0159]第一過(guò)濾模塊5031,用于根據(jù)所述參照時(shí)間在所述全部歷史操作數(shù)據(jù)中過(guò)濾出晚于所述參照時(shí)間的歷史操作數(shù)據(jù);
[0160]第二過(guò)濾模塊5033,用于根據(jù)所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)在所述晚于所述參照時(shí)間的歷史操作數(shù)據(jù)中過(guò)濾出所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù)為所述第一歷史操作數(shù)據(jù)。
[0161]更進(jìn)一步的,具體實(shí)現(xiàn)中,合并模塊505可如圖7所示包括:分類模塊5051、歷史操作合并模塊5053以及打包模塊5055。其中:
[0162]分類模塊5051,用于將同步請(qǐng)求對(duì)應(yīng)的第一歷史操作數(shù)據(jù)按業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)分類;
[0163]歷史操作合并模塊5053,用于按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù);打包模塊5055,用于打包各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)為同步數(shù)據(jù)。
[0164]打包模塊5055可具體按操作時(shí)間的先后順序組織各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)形成同步數(shù)據(jù)的數(shù)據(jù)包。
[0165]參見(jiàn)圖8,是本發(fā)明的另一種實(shí)施例提供的主服務(wù)器的結(jié)構(gòu)示意圖。進(jìn)一步的,更詳細(xì)的示出了主服務(wù)器50的結(jié)構(gòu),如圖8所示的主服務(wù)器50包括:同步請(qǐng)求接收模塊501、過(guò)濾模塊503、合并模塊505以及同步數(shù)據(jù)發(fā)送模塊507外,還可包括附件處理模塊509。其中:
[0166]附件處理模塊509,用于在返回所述同步數(shù)據(jù)至從服務(wù)器之前,如果同步數(shù)據(jù)中包含附件信息時(shí),則為該附件信息對(duì)應(yīng)的附件生成下載地址,并返回下載地址至從服務(wù)器。
[0167]參見(jiàn)圖9,是本發(fā)明的第三種實(shí)施例提供的主服務(wù)器的結(jié)構(gòu)示意圖。進(jìn)一步的,更詳細(xì)的示出了主服務(wù)器50的結(jié)構(gòu),如圖9所示的主服務(wù)器50包括:同步請(qǐng)求接收模塊501、過(guò)濾模塊503、合并模塊505以及同步數(shù)據(jù)發(fā)送模塊507外,還可包括覆蓋模塊511。其中:
[0168]覆蓋模塊511,用于在歷史操作合并模塊5053執(zhí)行所述按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)的步驟時(shí),如果所述同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)與所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)相同的字段,則將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息。
[0169]更進(jìn)一步,覆蓋模塊511還可如圖10所示包括:操作內(nèi)容覆蓋模塊5111和操作動(dòng)作覆蓋模塊5113。其中:
[0170]操作內(nèi)容覆蓋模塊5111,用于將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容;
[0171]操作動(dòng)作覆蓋模塊5113,用于將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作。
[0172]參見(jiàn)圖11,是本發(fā)明的第四種實(shí)施例提供的主服務(wù)器的結(jié)構(gòu)示意圖。進(jìn)一步的,更詳細(xì)的示出了主服務(wù)器50的結(jié)構(gòu),如圖11所示的主服務(wù)器50包括:同步請(qǐng)求接收模塊501、過(guò)濾模塊503、合并模塊505、同步數(shù)據(jù)發(fā)送模塊507以及附件處理模塊509外,還可包括下載處理模塊513。其中:
[0173]下載處理模塊513,用于在附件處理模塊509返回下載地址至從服務(wù)器的之后,接收從服務(wù)器的附件下載請(qǐng)求;發(fā)送下載地址對(duì)應(yīng)的附件至從服務(wù)器。
[0174]參見(jiàn)圖12,是本發(fā)明一種實(shí)施例提供的從服務(wù)器的結(jié)構(gòu)示意圖。如圖12所示的從服務(wù)器60可至少包括:同步請(qǐng)求模塊601、同步數(shù)據(jù)接收模塊603以及更新模塊605。其中:
[0175]同步請(qǐng)求模塊601,用于發(fā)送同步請(qǐng)求至主服務(wù)器;同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間;
[0176]同步數(shù)據(jù)接收模塊603,用于接收主服務(wù)器發(fā)送的同步數(shù)據(jù);同步數(shù)據(jù)為晚于參照時(shí)間的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的歷史操作數(shù)據(jù);
[0177]更新模塊605,用于根據(jù)同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)。
[0178]進(jìn)一步的,更新模塊605可如圖13所示包括:業(yè)務(wù)數(shù)據(jù)定位模塊6051和業(yè)務(wù)數(shù)據(jù)更新模塊6053。其中:
[0179]業(yè)務(wù)數(shù)據(jù)定位模塊6051,用于在本地?cái)?shù)據(jù)庫(kù)找到同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù);
[0180]業(yè)務(wù)數(shù)據(jù)更新模塊6053,用于根據(jù)同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容來(lái)更新歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。
[0181]更進(jìn)一步的,業(yè)務(wù)數(shù)據(jù)更新模塊6053可如圖14所示包括:第一更新模塊60531、第二更新模塊60533以及第三更新模塊60535。其中:
[0182]第一更新模塊60531,用于如果同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為刪除動(dòng)作,則將歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)刪除;或
[0183]第二更新模塊60533,用于如果同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為添加動(dòng)作,則將歷史操作數(shù)據(jù)對(duì)應(yīng)的字段添加到歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中;或
[0184]第三更新模塊60535,用于如果同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為修改動(dòng)作,則將歷史操作數(shù)據(jù)對(duì)應(yīng)的字段覆蓋歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中的字段。
[0185]參見(jiàn)圖15,是本發(fā)明另一種實(shí)施例提供的從服務(wù)器的結(jié)構(gòu)示意圖。進(jìn)一步的,更詳細(xì)的闡述了從服務(wù)器60的結(jié)構(gòu),如圖15所示的從服務(wù)器60包括:同步請(qǐng)求模塊601、同步數(shù)據(jù)接收模塊603以及更新模塊605外,還可包括:記錄模塊607。其中:
[0186]記錄模塊607,用于在更新模塊605根據(jù)同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)之后,記錄更新完成的時(shí)間;該更新完成的時(shí)間用作下一個(gè)同步周期的參照時(shí)間。
[0187]參見(jiàn)圖16,是本發(fā)明第三種實(shí)施例提供的從服務(wù)器的結(jié)構(gòu)示意圖。進(jìn)一步的,更詳細(xì)的闡述了從服務(wù)器60的結(jié)構(gòu),如圖16所示的從服務(wù)器60包括:同步請(qǐng)求模塊601、同步數(shù)據(jù)接收模塊603以及更新模塊605外,還可包括:下載模塊609。其中:
[0188]下載模塊609,用于在同步數(shù)據(jù)接收模塊603接收主服務(wù)器發(fā)送的同步數(shù)據(jù)之后,如果同步數(shù)據(jù)中包含附件的下載地址,根據(jù)該下載地址發(fā)送下載請(qǐng)求至主服務(wù)器;從主服務(wù)器下載該下載地址對(duì)應(yīng)的附件。
[0189]相應(yīng)的,本發(fā)明實(shí)施例還提供了實(shí)施上述方案的系統(tǒng),包括主服務(wù)器和從服務(wù)器,其中:
[0190]該主服務(wù)器可為上述圖5至圖11任一個(gè)實(shí)施例中的主服務(wù)器50 ;
[0191]該從服務(wù)器可為上述圖12至圖16任一個(gè)實(shí)施例中的從服務(wù)器60。
[0192]綜上所述,通過(guò)實(shí)施本發(fā)明實(shí)施例,主服務(wù)器接收從服務(wù)器的同步請(qǐng)求,根據(jù)從服務(wù)器的同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)來(lái)得到該同步請(qǐng)求對(duì)應(yīng)的歷史操作數(shù)據(jù),合并該同步請(qǐng)求對(duì)應(yīng)的歷史操作數(shù)據(jù)來(lái)得到從服務(wù)器的同步數(shù)據(jù),發(fā)送該同步數(shù)據(jù)至從服務(wù)器,可減少主服務(wù)器對(duì)從服務(wù)器的同步操作,可縮小同步操作時(shí)的數(shù)據(jù)傳輸量,從而提高同步效率,節(jié)約網(wǎng)絡(luò)資源。
[0193]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
[0194]以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)庫(kù)同步方法,其特征在于,包括: 接收從服務(wù)器的同步請(qǐng)求;所述同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間; 根據(jù)所述同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到所述同步請(qǐng)求對(duì)應(yīng)的第一歷史操作數(shù)據(jù);所述第一歷史操作數(shù)據(jù)為業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù); 按操作時(shí)間先后,將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù);所述第一時(shí)刻晚于所述第二時(shí)刻; 返回所述同步數(shù)據(jù)至所述從服務(wù)器。
2.如權(quán)利要求1所述的方法,其特征在于,所述按操作時(shí)間先后,將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù)包括:按操作時(shí)間先后,從后往前以迭代的方式將所述第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)進(jìn)行合并來(lái)得到同步數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到所述同步請(qǐng)求對(duì)應(yīng)的第一歷史操作數(shù)據(jù)包括: 根據(jù)所述參照時(shí)間在所述全部歷史操作數(shù)據(jù)中過(guò)濾出晚于所述參照時(shí)間的歷史操作數(shù)據(jù); 根據(jù)所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)在所述晚于所述參照時(shí)間的歷史操作數(shù)據(jù)中過(guò)濾出所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù)為所述第一歷史操作數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)包括多個(gè)子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí);所述將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù)包括: 將所述第一歷史操作數(shù)據(jù)按所述子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)分類; 按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù); 打包所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)為所述同步數(shù)據(jù)。
5.如權(quán)利要求1所述的方法,其特征在于,在所述返回所述同步數(shù)據(jù)至所述從服務(wù)器之前,如果所述同步數(shù)據(jù)中包含附件信息時(shí),則為所述附件信息對(duì)應(yīng)的附件生成下載地址,并返回所述下載地址至所述從服務(wù)器。
6.如權(quán)利要求4所述的方法,其特征在于,在所述按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中時(shí), 如果所述同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)與所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)相同的字段,則將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息。
7.如權(quán)利要求4所述的方法,其特征在于,所述打包所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)為所述同步數(shù)據(jù)包括:按操作時(shí)間的先后順序組織所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)形成所述同步數(shù)據(jù)的數(shù)據(jù)包。
8.如權(quán)利要求5所述的方法,其特征在于,在所述返回所述下載地址至所述從服務(wù)器之后,包括: 接收所述從服務(wù)器的附件下載請(qǐng)求; 發(fā)送所述下載地址對(duì)應(yīng)的附件至所述從服務(wù)器。
9.如權(quán)利要求6所述的方法,其特征在于,所述歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息包括歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作;將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息包括: 將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容; 將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作。
10.一種數(shù)據(jù)庫(kù)同步方法,其特征在于,包括: 發(fā)送同步請(qǐng)求至主服務(wù)器;所述同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間; 接收主服務(wù)器發(fā)送的同步數(shù)據(jù);所述同步數(shù)據(jù)為晚于所述參照時(shí)間的所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的歷史操作數(shù)據(jù); 根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)。
11.如權(quán)利要求10所述的方法,其特征在于,所述根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)包括: 在所述本地?cái)?shù)據(jù)庫(kù)找到所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù); 根據(jù)所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容來(lái)更新所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。
12.如權(quán)利要求10所述的方法,其特征在于,在所述根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)之后,記錄所述更新完成的時(shí)間;所述更新完成的時(shí)間用作下一個(gè)同步周期的參照時(shí)間。
13.如權(quán)利要求10所述的方法,其特征在于,在所述接收主服務(wù)器發(fā)送的同步數(shù)據(jù)之后,如果所述同步數(shù)據(jù)中包含附件的下載地址,根據(jù)所述下載地址發(fā)送下載請(qǐng)求至所述主服務(wù)器;從所述主服務(wù)器下載所述下載地址對(duì)應(yīng)的附件。
14.如權(quán)利要求11所述的方法,其特征在于,所述根據(jù)所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容來(lái)更新所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)包括: 如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為刪除動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)刪除;或 如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為添加動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的字段添加到所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中;或 如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為修改動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的字段覆蓋所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中的所述字段。
15.一種數(shù)據(jù)庫(kù)同步的主服務(wù)器,其特征在于,包括: 同步請(qǐng)求接收模塊,用于接收從服務(wù)器的同步請(qǐng)求;所述同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間; 過(guò)濾模塊,用于根據(jù)所述同步請(qǐng)求過(guò)濾歷史操作數(shù)據(jù)庫(kù)中的全部歷史操作數(shù)據(jù),得到所述同步請(qǐng)求中的業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的第一歷史操作數(shù)據(jù);所述第一歷史操作數(shù)據(jù)為所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù); 合并模塊,用于按操作時(shí)間先后,將所述第一歷史操作數(shù)據(jù)中的第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述第一歷史操作數(shù)據(jù)中的第二時(shí)刻的歷史操作數(shù)據(jù)來(lái)得到同步數(shù)據(jù);所述第一時(shí)刻晚于所述第二時(shí)刻; 同步數(shù)據(jù)發(fā)送模塊,用于返回所述同步數(shù)據(jù)至所述從服務(wù)器。
16.如權(quán)利要求15所述的主服務(wù)器,其特征在于,所述合并模塊具體用于按操作時(shí)間先后,從后往前以迭代的方式將所述第一歷史操作數(shù)據(jù)中的歷史操作數(shù)據(jù)進(jìn)行合并來(lái)得到同步數(shù)據(jù)。
17.如權(quán)利要求15所述的主服務(wù)器,其特征在于,所述過(guò)濾模塊包括: 第一過(guò)濾模塊,用于根據(jù)所述參照時(shí)間在所述全部歷史操作數(shù)據(jù)中過(guò)濾出晚于所述參照時(shí)間的歷史操作數(shù)據(jù); 第二過(guò)濾模塊,用于根據(jù)所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)在所述晚于所述參照時(shí)間的歷史操作數(shù)據(jù)中過(guò)濾出所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的晚于所述參照時(shí)間的歷史操作數(shù)據(jù)為所述第一歷史操作數(shù)據(jù)。
18.如權(quán)利要求15所述的主服務(wù)器,其特征在于,所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)包括多個(gè)子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí);所述合并模塊包括: 分類模塊,用于將所述第一歷史操作數(shù)據(jù)按所述子業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)分類; 歷史操作合并模塊,用于按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù); 打包模塊,用于打包所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)為所述同步數(shù)據(jù)。
19.如權(quán)利要求15所述的主服務(wù)器,其特征在于,還包括附件處理模塊,用于在所述返回所述同步數(shù)據(jù)至所述從服務(wù)器之前,如果所述同步數(shù)據(jù)中包含附件信息時(shí),則為所述附件信息對(duì)應(yīng)的附件生成下載地址,并返回所述下載地址至所述從服務(wù)器。
20.如權(quán)利要求18所述的主服務(wù)器,其特征在于,還包括覆蓋模塊,用于在所述歷史操作合并模塊執(zhí)行所述按操作時(shí)間先后將同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)合并到所述同一類第一歷史操作數(shù)據(jù)中的所述第二時(shí)刻的歷史操作數(shù)據(jù)中來(lái)分別得到各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)的步驟時(shí), 如果所述同一類第一歷史操作數(shù)據(jù)中的所述第一時(shí)刻的歷史操作數(shù)據(jù)與所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)相同的字段,則將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作信息。
21.如權(quán)利要求18所述的主服務(wù)器,其特征在于,所述打包模塊具體用于按操作時(shí)間的先后順序組織所述各類第一歷史操作數(shù)據(jù)的最終數(shù)據(jù)形成所述同步數(shù)據(jù)的數(shù)據(jù)包。
22.如權(quán)利要求19所述的主服務(wù)器,其特征在于,還包括下載處理模塊,用于在所述附件處理模塊執(zhí)行所述返回所述下載地址至所述從服務(wù)器的步驟之后,接收所述從服務(wù)器的附件下載請(qǐng)求;發(fā)送所述下載地址對(duì)應(yīng)的附件至所述從服務(wù)器。
23.如權(quán)利要求20所述的主服務(wù)器,其特征在于,所述覆蓋模塊包括: 操作內(nèi)容覆蓋模塊,用于將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容; 操作動(dòng)作覆蓋模塊,用于將所述第一時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作覆蓋所述第二時(shí)刻的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作。
24.一種數(shù)據(jù)庫(kù)同步的從服務(wù)器,其特征在于,包括: 同步請(qǐng)求模塊,用于發(fā)送同步請(qǐng)求至主服務(wù)器;所述同步請(qǐng)求包括業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí),參照時(shí)間; 同步數(shù)據(jù)接收模塊,用于接收主服務(wù)器發(fā)送的同步數(shù)據(jù);所述同步數(shù)據(jù)為晚于所述參照時(shí)間的所述業(yè)務(wù)數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的歷史操作數(shù)據(jù); 更新模塊,用于根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)。
25.如權(quán)利要求24所述的從服務(wù)器,其特征在于,所述更新模塊包括: 業(yè)務(wù)數(shù)據(jù)定位模塊,用于在所述本地?cái)?shù)據(jù)庫(kù)找到所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù); 業(yè)務(wù)數(shù)據(jù)更新模塊,用于根據(jù)所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作和歷史操作數(shù)據(jù)對(duì)應(yīng)的操作內(nèi)容來(lái)更新所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。
26.如權(quán)利要求24所述的從服務(wù)器,其特征在于,還包括:記錄模塊,用于在所述更新模塊執(zhí)行所述根據(jù)所述同步數(shù)據(jù)更新本地?cái)?shù)據(jù)庫(kù)的步驟之后,記錄所述更新完成的時(shí)間;所述更新完成的時(shí)間用作下一個(gè)同步周期的參照時(shí)間。
27.如權(quán)利要求24所述的從服務(wù)器,其特征在于,還包括下載模塊,用于在所述同步數(shù)據(jù)接收模塊執(zhí)行所述接收主服務(wù)器發(fā)送的同步數(shù)據(jù)的步驟之后,如果所述同步數(shù)據(jù)中包含附件的下載地址,根據(jù)所述下載地址發(fā)送下載請(qǐng)求至所述主服務(wù)器;從所述主服務(wù)器下載所述下載地址對(duì)應(yīng)的附件。
28.如權(quán)利要求25所述的從服務(wù)器,其特征在于,所述業(yè)務(wù)數(shù)據(jù)更新模塊包括: 第一更新模塊,用于如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為刪除動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)刪除;或 第二更新模塊,用于如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為添加動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的字段添加到所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中;或第三更新模塊,用于如果所述同步數(shù)據(jù)中的歷史操作數(shù)據(jù)對(duì)應(yīng)的操作動(dòng)作為修改動(dòng)作,則將所述歷史操作數(shù)據(jù)對(duì)應(yīng)的字段覆蓋所述歷史操作數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)中的所述字段。
29.一種數(shù)據(jù)庫(kù)同步的系統(tǒng),其特征在于,包括主服務(wù)器和從服務(wù)器,其中: 所述主服務(wù)器為權(quán)利要求15-23任一項(xiàng)所述的數(shù)據(jù)庫(kù)同步的主服務(wù)器; 所述從服務(wù)器為權(quán)利要求24-28任一項(xiàng)所述的數(shù)據(jù)庫(kù)同步的從服務(wù)器。
【文檔編號(hào)】H04L29/08GK104270424SQ201410474391
【公開(kāi)日】2015年1月7日 申請(qǐng)日期:2014年9月17日 優(yōu)先權(quán)日:2014年9月17日
【發(fā)明者】鄒強(qiáng) 申請(qǐng)人:深圳創(chuàng)維數(shù)字技術(shù)有限公司, 深圳市創(chuàng)維軟件有限公司