本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)一致性認(rèn)證的方法和裝置。
背景技術(shù):
目前,分布式系統(tǒng)間數(shù)據(jù)認(rèn)證的方法是:本系統(tǒng)通過接口調(diào)用方式獲取其他分布式系統(tǒng)全部數(shù)據(jù),在本系統(tǒng)側(cè)進(jìn)行雙側(cè)數(shù)據(jù)對(duì)比;由于每條數(shù)據(jù)有可能是一個(gè)數(shù)據(jù)集合,包含多個(gè)參數(shù),每個(gè)參數(shù)的類型及值不一樣,比對(duì)過程需要對(duì)每條數(shù)據(jù)中的每個(gè)參數(shù)分別進(jìn)行比對(duì);如果存在不一致參數(shù),則認(rèn)為該條數(shù)據(jù)在雙側(cè)存在不一致性。
由于分布式系統(tǒng)間存在大量數(shù)據(jù),數(shù)據(jù)認(rèn)證比對(duì)過程會(huì)嚴(yán)重影響事務(wù)并發(fā)程度,不能滿足大量并發(fā)驗(yàn)證的需求;如果采用兩階段提交(2PC,Two-phase commit)協(xié)議或三階段提交(3PC,Three-phase commit)協(xié)議,會(huì)引起網(wǎng)絡(luò)上的通信量增大,受網(wǎng)絡(luò)帶寬限制,會(huì)使用戶陷入長(zhǎng)時(shí)間的不可忍受的等待狀態(tài);或遇到頻繁的事務(wù)失敗,重新啟動(dòng)事務(wù)太多,造成應(yīng)用程序運(yùn)行效率低下。并且,由于各分布式系統(tǒng)可能存在底層數(shù)據(jù)模型不同,導(dǎo)致數(shù)據(jù)存儲(chǔ)方式不同。另外,每條數(shù)據(jù)集合包含的數(shù)據(jù)類型繁多、數(shù)據(jù)量大,分布式系統(tǒng)間需要對(duì)所有數(shù)據(jù)集合中的數(shù)據(jù)進(jìn)行稽核,往往會(huì)由于數(shù)據(jù)格式兼容性、解析出錯(cuò)等問題使得系統(tǒng)面臨性能瓶頸。
顯然,現(xiàn)有的數(shù)據(jù)一致性認(rèn)證方法采用全量數(shù)據(jù)集合比對(duì)、比對(duì)時(shí)間長(zhǎng)、比對(duì)工作復(fù)雜、應(yīng)用程序運(yùn)行效率低下,是亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例期望提供一種數(shù)據(jù)一致性認(rèn)證的方法和裝置,能 提高數(shù)據(jù)一致性認(rèn)證的效率,縮短認(rèn)證時(shí)間。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)一致性認(rèn)證的方法,所述方法包括:
采用加密算法分別加密第一分布式系統(tǒng)和第二分布式系統(tǒng)中需要進(jìn)行一致性認(rèn)證的數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合,獲取生成的第一驗(yàn)證碼和第二驗(yàn)證碼;
對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼,確定所述數(shù)據(jù)對(duì)象的一致性。
上述方案中,所述方法還包括:
記錄所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳;
記錄所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳;
所述加密算法包括:消息摘要算法5(MD5,Message Digest Algorithm 5)、三重?cái)?shù)據(jù)加密算法(3DES,Triple Data Encryption Algorithm)。
上述方案中,所述對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼,確定所述認(rèn)證數(shù)據(jù)對(duì)象的一致性,包括:
對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼是否相等;
如果所述第一驗(yàn)證碼和所述第二驗(yàn)證碼相等,則確定所述數(shù)據(jù)對(duì)象認(rèn)證一致,并記錄本次認(rèn)證一致的時(shí)間戳;
如果所述第一驗(yàn)證碼和所述第二驗(yàn)證碼不相等,則將所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳作為過濾基準(zhǔn)點(diǎn),分別在所述第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中,過濾出所述基準(zhǔn)點(diǎn)及之后維護(hù)的各數(shù)據(jù)集合,并列出差異數(shù)據(jù)。
上述方案中,所述分別在所述第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中,過濾出所述基準(zhǔn)點(diǎn)及之后維護(hù)的各數(shù)據(jù)集合,并列出差異數(shù)據(jù);包括:
對(duì)比所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的各數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳和所述基準(zhǔn)點(diǎn),獲取所述維護(hù)時(shí)間戳在基準(zhǔn)點(diǎn)及之后的所有變更數(shù)據(jù)集合;
比較所述第一分布式系統(tǒng)中的各所述變更數(shù)據(jù)集合的第一關(guān)鍵字和所述第二分布式系統(tǒng)中的各所述變更數(shù)據(jù)集合的第二關(guān)鍵字;
如果所述第一關(guān)鍵字和所述第二關(guān)鍵字不相等,則列出所述第一關(guān)鍵字對(duì) 應(yīng)的變更數(shù)據(jù)集合和所述第二關(guān)鍵字對(duì)應(yīng)的變更數(shù)據(jù)集合,并標(biāo)注新增;
如果所述第一關(guān)鍵字和所述第二關(guān)鍵字相等,則逐條對(duì)比第一分布式系統(tǒng)中的所述變更數(shù)據(jù)集合和第二分布式系統(tǒng)中的所述變更數(shù)據(jù)集合的維護(hù)時(shí)間戳,并列出維護(hù)時(shí)間戳不同的變更數(shù)據(jù)集合之間的差異數(shù)據(jù),并標(biāo)注更新;
所述關(guān)鍵字,包括:字段名、參數(shù)。
上述方案中,所述方法還包括:將第一分布式系統(tǒng)和第二分布式系統(tǒng)中所述對(duì)象數(shù)據(jù)最后一次認(rèn)證一致的時(shí)間戳更新為所述本次認(rèn)證一致的時(shí)間戳;
所述記錄所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳,包括:記錄對(duì)所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的各數(shù)據(jù)集合進(jìn)行新增、修改、刪除的時(shí)間戳。
本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)一致性認(rèn)證的裝置,所述裝置包括:加密模塊、認(rèn)證模塊,其中,
所述加密模塊,用于采用加密算法分別加密第一分布式系統(tǒng)和第二分布式系統(tǒng)中需要進(jìn)行一致性認(rèn)證的數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合,獲取生成的第一驗(yàn)證碼和第二驗(yàn)證碼;
所述認(rèn)證模塊,用于對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼,確定所述數(shù)據(jù)對(duì)象的一致性。
上述方案中,所述裝置還包括:記錄模塊,用于記錄所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳;記錄所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳;
所述加密算法,包括:MD5、3DES。
上述方案中,所述認(rèn)證模塊,具體用于:
對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼是否相等;
如果所述第一驗(yàn)證碼和所述第二驗(yàn)證碼相等,則確定所述數(shù)據(jù)對(duì)象認(rèn)證一致,并記錄本次認(rèn)證一致的時(shí)間戳;
如果所述第一驗(yàn)證碼和所述第二驗(yàn)證碼不相等,則將所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳作為過濾基準(zhǔn)點(diǎn),分別在所述第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中,過濾出所述基準(zhǔn)點(diǎn)及之后維護(hù)的各數(shù)據(jù)集合,并列出差異數(shù)據(jù)。
上述方案中,所述認(rèn)證模塊分別在所述第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中,過濾出所述基準(zhǔn)點(diǎn)及之后維護(hù)的各數(shù)據(jù)集合,并列出差異數(shù)據(jù);包括:
對(duì)比所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的各數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳和所述基準(zhǔn)點(diǎn),獲取所述維護(hù)時(shí)間戳在基準(zhǔn)點(diǎn)及之后的所有變更數(shù)據(jù)集合;
比較所述第一分布式系統(tǒng)中的各所述變更數(shù)據(jù)集合的第一關(guān)鍵字和所述第二分布式系統(tǒng)中的各所述變更數(shù)據(jù)集合的第二關(guān)鍵字;
如果所述第一關(guān)鍵字和所述第二關(guān)鍵字不相等,則列出所述第一關(guān)鍵字對(duì)應(yīng)的變更數(shù)據(jù)集合和所述第二關(guān)鍵字對(duì)應(yīng)的變更數(shù)據(jù)集合,并標(biāo)注新增;
如果所述第一關(guān)鍵字和所述第二關(guān)鍵字相等,則逐條對(duì)比第一分布式系統(tǒng)中的所述變更數(shù)據(jù)集合和第二分布式系統(tǒng)中的所述變更數(shù)據(jù)集合的維護(hù)時(shí)間戳,并列出維護(hù)時(shí)間戳不同的變更數(shù)據(jù)集合之間的差異數(shù)據(jù),并標(biāo)注更新;
所述關(guān)鍵字,包括:字段名、參數(shù)。
上述方案中,所述記錄模塊,還用于將第一分布式系統(tǒng)和第二分布式系統(tǒng)中所述對(duì)象數(shù)據(jù)最后一次認(rèn)證一致的時(shí)間戳更新為所述本次認(rèn)證一致的時(shí)間戳;
所述記錄所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳,包括:記錄對(duì)所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的各數(shù)據(jù)集合進(jìn)行新增、修改、刪除的時(shí)間戳。
本發(fā)明實(shí)施例所提供的數(shù)據(jù)一致性認(rèn)證的方法和裝置,采用加密算法分別加密第一分布式系統(tǒng)和第二分布式系統(tǒng)中需要進(jìn)行一致性認(rèn)證的數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合,獲取生成的第一驗(yàn)證碼和第二驗(yàn)證碼;對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼,確定所述數(shù)據(jù)對(duì)象的一致性。進(jìn)一步的,記錄所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳;列出最后一次認(rèn)證一致的時(shí)間戳同時(shí)和之后進(jìn)行維護(hù)的數(shù)據(jù)集合的差異數(shù)據(jù)。如此,將數(shù)據(jù)集合加密生成校驗(yàn)碼,僅通過比較時(shí)間戳和校驗(yàn)碼的方式代替繁重的比對(duì)工作,最終使得數(shù)據(jù)一致性認(rèn)證更具高效性,不僅比對(duì)操作簡(jiǎn)單方便、能縮短認(rèn)證時(shí)間,并且更具安全性。
附圖說明
圖1為本發(fā)明實(shí)施例一致性認(rèn)證的方法的流程示意圖;
圖2為本發(fā)明實(shí)施例分布式系統(tǒng)間數(shù)據(jù)一致性稽核整體流程的示意圖;
圖3為本發(fā)明實(shí)施例針對(duì)數(shù)據(jù)集合生成校驗(yàn)碼的步驟的流程示意圖;
圖4為本發(fā)明實(shí)施例雙方系統(tǒng)比對(duì)校驗(yàn)碼的流程示意圖;
圖5為本發(fā)明實(shí)施例在數(shù)據(jù)集合中過濾出變更數(shù)據(jù)的流程示意圖;
圖6為本發(fā)明實(shí)施例在A系統(tǒng)中分析展現(xiàn)變更數(shù)據(jù)的流程示意圖;
圖7為本發(fā)明實(shí)施例一致性認(rèn)證的裝置的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例中,采用加密算法分別加密第一分布式系統(tǒng)和第二分布式系統(tǒng)中需要進(jìn)行一致性認(rèn)證的數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合,獲取生成的第一驗(yàn)證碼和第二驗(yàn)證碼;對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼,確定所述數(shù)據(jù)對(duì)象的一致性;
進(jìn)一步的,記錄所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳;列出最后一次認(rèn)證一致的時(shí)間戳同時(shí)和之后進(jìn)行維護(hù)的的數(shù)據(jù)集合的差異數(shù)據(jù)。
下面結(jié)合實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。
本發(fā)明實(shí)施例提供的數(shù)據(jù)一致性認(rèn)證的方法,如圖1所示,包括:
步驟101:采用加密算法分別加密第一分布式系統(tǒng)和第二分布式系統(tǒng)中需要進(jìn)行一致性認(rèn)證的數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合,獲取生成的第一驗(yàn)證碼和第二驗(yàn)證碼;
通常,分布式系統(tǒng)中有多個(gè)數(shù)據(jù)對(duì)象,一個(gè)數(shù)據(jù)對(duì)象會(huì)對(duì)應(yīng)多個(gè)數(shù)據(jù)集合,數(shù)據(jù)認(rèn)證通常是對(duì)某一個(gè)數(shù)據(jù)對(duì)象進(jìn)行認(rèn)證,認(rèn)證兩個(gè)分布式系統(tǒng)中某個(gè)數(shù)據(jù)對(duì)象對(duì)應(yīng)的全部數(shù)據(jù)集合是否一致。這里,第一分布式系統(tǒng)和所述第二分布式系統(tǒng)使用加密算法,分別對(duì)自身系統(tǒng)中需要進(jìn)行認(rèn)證的數(shù)據(jù)對(duì)象的全部數(shù)據(jù)集合進(jìn)行加密,分別生成唯一的驗(yàn)證碼:第一驗(yàn)證碼、第二驗(yàn)證碼;所述加密算法包括:MD5、3DES;這里可以采用32位MD5加密算法進(jìn)行加密;
實(shí)際應(yīng)用中,所述第一分布式系統(tǒng)可以是應(yīng)用系統(tǒng),所述第二分布式系統(tǒng)可以是認(rèn)證系統(tǒng);可以由所述第一分布式系統(tǒng)發(fā)起分布式系統(tǒng)間數(shù)據(jù)一致性稽核任務(wù);第一分布式系統(tǒng)和所述第二分布式系統(tǒng)約定需要進(jìn)行一致性認(rèn)證的數(shù)據(jù)對(duì)象,兩個(gè)系統(tǒng)分別對(duì)自身系統(tǒng)中需要進(jìn)行認(rèn)證的數(shù)據(jù)對(duì)象的全部數(shù)據(jù)集合進(jìn)行加密,分別生成唯一的驗(yàn)證碼:第一驗(yàn)證碼和第二驗(yàn)證碼;所述第二驗(yàn)證碼可以由所述第二分布式系統(tǒng)發(fā)送到所述第一分布式系統(tǒng)進(jìn)行下一步處理。
本發(fā)明實(shí)施例提供的方法還包括:記錄所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳;記錄所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳。對(duì)分布式系統(tǒng)的所有數(shù)據(jù)集合做維護(hù)時(shí)都需要記錄維護(hù)時(shí)間,所述數(shù)據(jù)集合的維護(hù),包括:對(duì)數(shù)據(jù)集合進(jìn)行新增、修改、刪除等操作。同時(shí),記錄第一分布式系統(tǒng)和第二分布式系統(tǒng)中所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳。其中,所述第一分布式系統(tǒng)和第二分布式系統(tǒng)可以包括多個(gè)數(shù)據(jù)對(duì)象,所述數(shù)據(jù)對(duì)象可以包括多個(gè)數(shù)據(jù)集合。
步驟102:對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼,確定所述數(shù)據(jù)對(duì)象的一致性;
這里,對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼是否相等;如果所述第一驗(yàn)證碼和所述第二驗(yàn)證碼相等,則表明所述第一分布式系統(tǒng)中進(jìn)行認(rèn)證的數(shù)據(jù)對(duì)象的全部數(shù)據(jù)集合和所述第二分布式系統(tǒng)中進(jìn)行認(rèn)證的數(shù)據(jù)對(duì)象的全部數(shù)據(jù)集合一致,如此,確定所述數(shù)據(jù)對(duì)象的一致性認(rèn)證結(jié)果為數(shù)據(jù)一致,同時(shí),記錄本次數(shù)據(jù)認(rèn)證一致時(shí)間戳;并將第一分布式系統(tǒng)和第二分布式系統(tǒng)中所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳更新為所述本次數(shù)據(jù)認(rèn)證一致的時(shí)間戳;
如果所述第一驗(yàn)證碼和所述第二驗(yàn)證碼不相等,將所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳作為過濾基準(zhǔn)點(diǎn),分別在所述第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中,過濾出所述基準(zhǔn)點(diǎn)及之后維護(hù)的各數(shù)據(jù)集合,并列出差異數(shù)據(jù);
具體的,首先,檢索出雙方系統(tǒng)在進(jìn)行數(shù)據(jù)一致性稽核任務(wù)中所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳;然后,所述第一分布式系統(tǒng)和第二分布式系統(tǒng)遍歷自身系統(tǒng)中所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的每條數(shù)據(jù)集合最后一次變更的時(shí)間戳;最 后,將所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳作為過濾基準(zhǔn)點(diǎn),對(duì)比所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的各數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳和所述基準(zhǔn)點(diǎn),獲取所述維護(hù)時(shí)間戳在基準(zhǔn)點(diǎn)及之后的所有變更數(shù)據(jù)集合;
實(shí)際應(yīng)用中,所述對(duì)比驗(yàn)證碼可以在所述第一分布式系統(tǒng)中進(jìn)行,所述第一分布式系統(tǒng)過濾出所述第一分布式系統(tǒng)中維護(hù)時(shí)間在所述基準(zhǔn)點(diǎn)及之后的數(shù)據(jù)集合;并由所述第一分布式系統(tǒng)將所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳發(fā)送給所述第二分布式系統(tǒng),由所述第二分布式系統(tǒng)過濾出所述第二分布式系統(tǒng)中維護(hù)時(shí)間在所述基準(zhǔn)點(diǎn)及之后的數(shù)據(jù)集合;由于在各個(gè)時(shí)間點(diǎn)均有可能進(jìn)行數(shù)據(jù)集合維護(hù),因此,會(huì)濾出各個(gè)維護(hù)時(shí)間點(diǎn)的多組變更數(shù)據(jù)集合。
更進(jìn)一步的,所述列出差異數(shù)據(jù)為列出所述第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中變更數(shù)據(jù)集合的差異數(shù)據(jù),包括:比較所述第一分布式系統(tǒng)中的各所述變更數(shù)據(jù)集合的第一關(guān)鍵字和所述第二分布式系統(tǒng)中的各所述變更數(shù)據(jù)集合的第二關(guān)鍵字;如果所述第一關(guān)鍵字和所述第二關(guān)鍵字不相等,則列出所述第一關(guān)鍵字對(duì)應(yīng)的變更數(shù)據(jù)集合和所述第二關(guān)鍵字對(duì)應(yīng)的變更數(shù)據(jù)集合,并標(biāo)注新增;如果所述第一關(guān)鍵字和所述第二關(guān)鍵字相等,則逐條對(duì)比第一分布式系統(tǒng)中的所述變更數(shù)據(jù)集合和第二分布式系統(tǒng)中的所述變更數(shù)據(jù)集合的維護(hù)時(shí)間,并列出維護(hù)時(shí)間不同的變更數(shù)據(jù)集合中的數(shù)據(jù)差異,并標(biāo)注更新;所述關(guān)鍵字,包括:字段名、參數(shù);
實(shí)際應(yīng)用中,可以遍歷所述第一分布式系統(tǒng)中的所述變更數(shù)據(jù)集合,提取每條變更數(shù)據(jù)集合的第一關(guān)鍵字;遍歷所述第二分布式系統(tǒng)中的所述變更數(shù)據(jù)集合,提取每條變更數(shù)據(jù)集合的第二關(guān)鍵字;這里,關(guān)鍵字可以是字段名、參數(shù),比如:所述變更數(shù)據(jù)集合是一張表格,那么,關(guān)鍵字就可以是每欄的字段名。對(duì)比第一關(guān)鍵字和第二關(guān)鍵字,如果所述第一關(guān)鍵字和第二關(guān)鍵字不同,則在數(shù)據(jù)一致性稽核任務(wù)的執(zhí)行結(jié)果列表中分別展現(xiàn)所述第一關(guān)鍵字和第二關(guān)鍵字對(duì)應(yīng)的兩條數(shù)據(jù)集合,并標(biāo)注為新增。如果所述第一關(guān)鍵字和第二關(guān)鍵字相同,則對(duì)比兩條變更數(shù)據(jù)集合的維護(hù)時(shí)間,如果維護(hù)時(shí)間不同,則比對(duì)的所述兩條變更數(shù)據(jù)集合中數(shù)據(jù)差異項(xiàng),并標(biāo)注為更新。對(duì)于所述第一關(guān)鍵字和第 二關(guān)鍵字相同,維護(hù)時(shí)間也相同的變更數(shù)據(jù)集合不做其他處理。
所述列出的差異數(shù)據(jù)結(jié)合和差異數(shù)據(jù)可以由維護(hù)人員來做進(jìn)一步處理。
下面結(jié)合具體示例對(duì)本發(fā)明產(chǎn)生的積極效果作進(jìn)一步詳細(xì)的描述。
本發(fā)明示例采用MD5加密算法對(duì)分布式系統(tǒng)中的全體數(shù)據(jù)集合進(jìn)行加密,分布式系統(tǒng)中創(chuàng)建、刪除、變更的數(shù)據(jù)集合均要記錄時(shí)間,分布式系統(tǒng)通過接口調(diào)用方式獲取到針對(duì)全體數(shù)據(jù)集合生成的MD5碼;并且,在生成MD5碼時(shí)記錄一個(gè)時(shí)間戳,分布式系統(tǒng)對(duì)雙方的MD5碼進(jìn)行比對(duì),對(duì)MD5碼不一致的數(shù)據(jù)集合通過時(shí)間戳過濾出變化的數(shù)據(jù),并通過調(diào)用接口獲取變化的數(shù)據(jù)保存于本地系統(tǒng),保證分布式系統(tǒng)間數(shù)據(jù)一致性,結(jié)合附圖具體說明如下。
分布式系統(tǒng)間數(shù)據(jù)一致性稽核整體流程,如圖2所示,包括:
步驟201:開始分布式系統(tǒng)間數(shù)據(jù)一致性稽核任務(wù);
步驟202:針對(duì)數(shù)據(jù)集合A系統(tǒng)和B系統(tǒng)分別生成各自的校驗(yàn)碼;
本步驟中,當(dāng)A系統(tǒng)向B系統(tǒng)發(fā)起數(shù)據(jù)一致性稽核信號(hào)時(shí),A系統(tǒng)和B系統(tǒng)針對(duì)約定的數(shù)據(jù)對(duì)象,如:某種業(yè)務(wù)部門的組織機(jī)構(gòu),分別對(duì)各自系統(tǒng)中該數(shù)據(jù)對(duì)象的所有數(shù)據(jù)集合進(jìn)行加密;每個(gè)數(shù)據(jù)集合包括多個(gè)參數(shù),如:一個(gè)業(yè)務(wù)部門的組織機(jī)構(gòu)是一個(gè)數(shù)據(jù)集合,該數(shù)據(jù)集合包括:標(biāo)識(shí)(ID,Identity)、父級(jí)ID、及名稱。本發(fā)明示例使用32位MD5加密算法對(duì)全部數(shù)據(jù)集合進(jìn)行加密,各自生成唯一的驗(yàn)證碼;A系統(tǒng)生成校驗(yàn)碼為a,B系統(tǒng)生成校驗(yàn)碼為b;
步驟203:B系統(tǒng)將生成的MD5校驗(yàn)碼b發(fā)送給A系統(tǒng),A系統(tǒng)對(duì)校驗(yàn)碼a和校驗(yàn)b進(jìn)行比對(duì);
步驟204:A系統(tǒng)將步驟203中校驗(yàn)碼比對(duì)的結(jié)果返回給B系統(tǒng),B系統(tǒng)根據(jù)校驗(yàn)碼的比對(duì)結(jié)果自動(dòng)過濾出變更數(shù)據(jù)并發(fā)送至A系統(tǒng);
步驟205:A系統(tǒng)將步驟204中B系統(tǒng)發(fā)送來的變更數(shù)據(jù)進(jìn)行解析,A系統(tǒng)對(duì)每個(gè)數(shù)據(jù)集合進(jìn)行拆分,根據(jù)每條數(shù)據(jù)集合記錄的時(shí)間戳進(jìn)行A、B系統(tǒng)間的數(shù)據(jù)比對(duì),并以列表形式區(qū)分展現(xiàn)A系統(tǒng)和B系統(tǒng)的差異項(xiàng);
步驟206:結(jié)束分布式系統(tǒng)間數(shù)據(jù)一致性稽核任務(wù)。
圖3為針對(duì)上述分布式系統(tǒng)間數(shù)據(jù)一致性稽核整體流程中步驟202的詳細(xì)描述,如圖3所示,生成校驗(yàn)碼的過程包括:
步驟301:A系統(tǒng)向B系統(tǒng)發(fā)送雙側(cè)數(shù)據(jù)進(jìn)行一致性稽核的請(qǐng)求;
步驟302:A系統(tǒng)針對(duì)約定的數(shù)據(jù)對(duì)象的所有數(shù)據(jù)集合進(jìn)行加密,所述約定的數(shù)據(jù)對(duì)象可以是某種業(yè)務(wù)部門的組織機(jī)構(gòu);每個(gè)數(shù)據(jù)集合包括多個(gè)參數(shù),如一個(gè)業(yè)務(wù)部門的組織機(jī)構(gòu)是一個(gè)數(shù)據(jù)集合,該數(shù)據(jù)集合包括:ID、父級(jí)ID、及名稱;
本發(fā)明實(shí)施例使用32位MD5加密算法對(duì)全部數(shù)據(jù)集合進(jìn)行加密,生成唯一的驗(yàn)證碼,假設(shè)A系統(tǒng)生成校驗(yàn)碼為a;
步驟303:A系統(tǒng)在對(duì)全部數(shù)據(jù)集合加密生成校驗(yàn)碼a時(shí)記錄時(shí)間戳timA1;
步驟304:B系統(tǒng)接收到數(shù)據(jù)一致性稽核通知;
步驟305:B系統(tǒng)針對(duì)約定的數(shù)據(jù)對(duì)象的所有數(shù)據(jù)集合進(jìn)行加密,所述約定的數(shù)據(jù)對(duì)象可以是某種業(yè)務(wù)部門的組織機(jī)構(gòu);每個(gè)數(shù)據(jù)集合包括多個(gè)參數(shù),如:一個(gè)業(yè)務(wù)部門的組織機(jī)構(gòu)是一個(gè)數(shù)據(jù)集合,該數(shù)據(jù)集合包括ID、父級(jí)ID、及名稱;
本發(fā)明實(shí)施例使用32位MD5加密算法對(duì)全部數(shù)據(jù)集合進(jìn)行加密,生成唯一的驗(yàn)證碼,假設(shè)B系統(tǒng)生成校驗(yàn)碼為b;
步驟306:B系統(tǒng)在對(duì)全部數(shù)據(jù)集合加密生成校驗(yàn)碼b時(shí)記錄時(shí)間戳timB1;
步驟307:B系統(tǒng)將生成的校驗(yàn)碼b發(fā)送至A系統(tǒng)。
這里,步驟301和步驟304為并發(fā)進(jìn)行,A系統(tǒng)和B系統(tǒng)可以同時(shí)進(jìn)行加密,生成校驗(yàn)碼和記錄時(shí)間戳。
圖4為針對(duì)上述分布式系統(tǒng)間數(shù)據(jù)一致性稽核整體流程中步驟203的詳細(xì)描述,如圖4所示,雙方系統(tǒng)比對(duì)校驗(yàn)碼的流程包括:
步驟401:A系統(tǒng)接收到從B系統(tǒng)發(fā)送來的校驗(yàn)碼b;
步驟402:A系統(tǒng)針對(duì)A系統(tǒng)生成的校驗(yàn)碼a和B系統(tǒng)發(fā)送來的校驗(yàn)碼b 進(jìn)行比對(duì);
步驟403:比對(duì)校驗(yàn)碼a和b的值,如果a=b,也即雙方通過MD5算法對(duì)各自系統(tǒng)中的全部數(shù)據(jù)集合生成的校驗(yàn)碼相同,則轉(zhuǎn)到步驟404;如果a≠b,也即雙方生成的校驗(yàn)碼不相同,則轉(zhuǎn)到步驟406;
步驟404:A系統(tǒng)記錄本次比對(duì)結(jié)果為“數(shù)據(jù)一致”;
步驟405:A系統(tǒng)針對(duì)數(shù)據(jù)比對(duì)一致記錄時(shí)間戳SameTim;結(jié)束本次處理流程;
步驟406:A系統(tǒng)記錄本次比對(duì)結(jié)果為“數(shù)據(jù)不一致”;
步驟407:A系統(tǒng)針對(duì)數(shù)據(jù)比對(duì)不一致記錄時(shí)間戳DiffTim;
步驟408:A系統(tǒng)檢索出雙方系統(tǒng)在進(jìn)行數(shù)據(jù)一致性稽核任務(wù)中最后一次比對(duì)結(jié)果為“數(shù)據(jù)一致”的時(shí)間戳SameTim;
步驟409:A系統(tǒng)遍歷自身系統(tǒng)中每條數(shù)據(jù)集合最后一次變更的時(shí)間戳timA;
步驟410:比對(duì)每條數(shù)據(jù)集合最后一次變更時(shí)間戳timA和SameTim。如果SameTim<=timA,則轉(zhuǎn)到步驟411,如果SameTim>timA,則轉(zhuǎn)到步驟409;
步驟411:將SameTim<=timA的數(shù)據(jù)集合加入到數(shù)據(jù)變更表TableA中;結(jié)束本次處理流程;
步驟412:A系統(tǒng)將最后一次比對(duì)結(jié)果為“數(shù)據(jù)一致”的時(shí)間戳SameTim發(fā)送至B系統(tǒng)。
這里,步驟409和步驟412可以并發(fā)進(jìn)行,如此,A系統(tǒng)和B系統(tǒng)可以同步進(jìn)行數(shù)據(jù)集合的過濾。
圖5為針對(duì)上述分布式系統(tǒng)間數(shù)據(jù)一致性稽核整體流程中步驟204的詳細(xì)描述,如圖5所示,數(shù)據(jù)集合中過濾出變更數(shù)據(jù)的流程包括:
步驟501:B系統(tǒng)接收到從A系統(tǒng)發(fā)送來的時(shí)間戳SameTim;
步驟502:B系統(tǒng)遍歷自身系統(tǒng)中每條數(shù)據(jù)集合最后一次變更的時(shí)間戳timB;
步驟503:比對(duì)每條數(shù)據(jù)集合最后一次變更時(shí)間戳timB和SameTim,如果 SameTim<=timB,則轉(zhuǎn)到步驟504,如果Sametim>timB,則轉(zhuǎn)到步驟502;
步驟504:將SameTim<=timB的數(shù)據(jù)集合加入到數(shù)據(jù)變更表TableB中;
步驟505:B系統(tǒng)對(duì)本系統(tǒng)中所有數(shù)據(jù)集合比對(duì)完成后生成的數(shù)據(jù)變更表TableB發(fā)送給A系統(tǒng)。
圖6為針對(duì)上述分布式系統(tǒng)間數(shù)據(jù)一致性稽核整體流程中步驟205的詳細(xì)描述,如圖6所示,A系統(tǒng)中分析展現(xiàn)變更數(shù)據(jù)的流程包括:
步驟601:A系統(tǒng)接收到B系統(tǒng)發(fā)送的數(shù)據(jù)變更表TableB;
步驟602:A系統(tǒng)解析數(shù)據(jù)變更表TableB,獲取到每條變更數(shù)據(jù)的關(guān)鍵字KeyB;
步驟603:A系統(tǒng)遍歷自身系統(tǒng)生成的數(shù)據(jù)變更表TableA,獲取到每條變更數(shù)據(jù)的關(guān)鍵字KeyA;
步驟604:比對(duì)數(shù)據(jù)變更表TableA和數(shù)據(jù)變更表TableB中的關(guān)鍵字KeyA和KeyB。如果KeyA≠KeyB,則轉(zhuǎn)到步驟605,如果KeyA=KeyB,則轉(zhuǎn)到步驟606;
步驟605:在數(shù)據(jù)一致性稽核任務(wù)的執(zhí)行結(jié)果列表中分別展現(xiàn)關(guān)鍵字為KeyA和KeyB的兩條數(shù)據(jù),并標(biāo)注為新增;結(jié)束本次處理流程;
步驟606:比對(duì)KeyA對(duì)應(yīng)數(shù)據(jù)集合的變更時(shí)間timA和KeyB對(duì)應(yīng)數(shù)據(jù)集合的變更時(shí)間timB。如果timA≠timB,則轉(zhuǎn)步驟607,如果timA=timB,則轉(zhuǎn)到步驟608;
步驟607:比對(duì)關(guān)鍵字為KeyA和KeyB的兩條數(shù)據(jù)集合中參數(shù)差異項(xiàng),并標(biāo)注為更新;結(jié)束本次處理流程;
步驟608:不作處理。
本發(fā)明實(shí)施例提供的數(shù)據(jù)一致性認(rèn)證的裝置,如圖7所示,包括:加密模塊11、認(rèn)證模塊12,其中,
所述加密模塊11,用于采用MD5分別加密第一分布式系統(tǒng)和第二分布式系統(tǒng)中需要進(jìn)行一致性認(rèn)證的數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合,獲取生成的第一驗(yàn)證碼和第二驗(yàn)證碼;
通常,分布式系統(tǒng)中有多個(gè)數(shù)據(jù)對(duì)象,一個(gè)數(shù)據(jù)對(duì)象會(huì)對(duì)應(yīng)多個(gè)數(shù)據(jù)集合,數(shù)據(jù)認(rèn)證通常是對(duì)某一盒數(shù)據(jù)對(duì)象進(jìn)行認(rèn)證,認(rèn)證兩個(gè)分布式系統(tǒng)中某個(gè)數(shù)據(jù)對(duì)象對(duì)應(yīng)的全部數(shù)據(jù)集合是否一致。這里,所述加密模塊11使用加密算法,對(duì)第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中需要進(jìn)行認(rèn)證的數(shù)據(jù)對(duì)象的全部數(shù)據(jù)集合進(jìn)行加密,分別生成唯一的驗(yàn)證碼:第一驗(yàn)證碼、第二驗(yàn)證碼;所述加密算法包括:MD5、3DES;這里可以采用32位MD5加密算法進(jìn)行加密;
實(shí)際應(yīng)用中,所述第一分布式系統(tǒng)可以是應(yīng)用系統(tǒng),所述第二分布式系統(tǒng)可以是認(rèn)證系統(tǒng);可以由所述第一分布式系統(tǒng)發(fā)起分布式系統(tǒng)間數(shù)據(jù)一致性稽核任務(wù);第一分布式系統(tǒng)和所述第二分布式系統(tǒng)約定需要進(jìn)行一致性認(rèn)證的數(shù)據(jù)對(duì)象,兩個(gè)系統(tǒng)分別對(duì)自身系統(tǒng)中需要進(jìn)行認(rèn)證的數(shù)據(jù)對(duì)象的全部數(shù)據(jù)集合進(jìn)行加密,分別生成唯一的驗(yàn)證碼:第一驗(yàn)證碼和第二驗(yàn)證碼;所述第二驗(yàn)證碼可以由所述第二分布式系統(tǒng)發(fā)送到所述第一分布式系統(tǒng)進(jìn)行下一步處理。
本發(fā)明實(shí)施例提供的裝置,還包括:記錄模塊13,用于記錄所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳;記錄所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳。對(duì)分布式系統(tǒng)的所有數(shù)據(jù)集合做維護(hù)時(shí)都需要記錄維護(hù)時(shí)間,所述數(shù)據(jù)集合的維護(hù),包括:對(duì)數(shù)據(jù)集合進(jìn)行新增、修改、刪除等操作。同時(shí),記錄第一分布式系統(tǒng)和第二分布式系統(tǒng)中所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳。其中,所述第一分布式系統(tǒng)和第二分布式系統(tǒng)可以包括多個(gè)數(shù)據(jù)對(duì)象,所述數(shù)據(jù)對(duì)象可以包括多個(gè)數(shù)據(jù)集合。
所述認(rèn)證模塊12,用于對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼,確定所述數(shù)據(jù)對(duì)象的一致性。
這里,對(duì)比所述第一驗(yàn)證碼和所述第二驗(yàn)證碼是否相等;如果所述第一驗(yàn)證碼和所述第二驗(yàn)證碼相等,則表明所述第一分布式系統(tǒng)中進(jìn)行認(rèn)證的數(shù)據(jù)對(duì)象的全部數(shù)據(jù)集合和所述第二分布式系統(tǒng)中進(jìn)行認(rèn)證的數(shù)據(jù)對(duì)象的全部數(shù)據(jù)集合一致,如此,確定所述數(shù)據(jù)對(duì)象的一致性認(rèn)證結(jié)果為數(shù)據(jù)一致,同時(shí),所述記錄模塊13記錄本次數(shù)據(jù)認(rèn)證一致時(shí)間戳;并將第一分布式系統(tǒng)和第二分布式系統(tǒng)中所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳更新為所述本次數(shù)據(jù)認(rèn)證一致 的時(shí)間戳;
如果所述第一驗(yàn)證碼和所述第二驗(yàn)證碼不相等,將所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳作為過濾基準(zhǔn)點(diǎn),分別在所述第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中,過濾出所述基準(zhǔn)點(diǎn)及之后維護(hù)的各數(shù)據(jù)集合,并列出差異數(shù)據(jù);
具體的,首先,檢索出雙方系統(tǒng)在進(jìn)行數(shù)據(jù)一致性稽核任務(wù)中所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳;然后,所述第一分布式系統(tǒng)和第二分布式系統(tǒng)遍歷自身系統(tǒng)中所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的每條數(shù)據(jù)集合最后一次變更的時(shí)間戳;最后,將所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳作為過濾基準(zhǔn)點(diǎn),對(duì)比所述數(shù)據(jù)對(duì)象對(duì)應(yīng)的各數(shù)據(jù)集合進(jìn)行維護(hù)的時(shí)間戳和所述基準(zhǔn)點(diǎn),獲取所述維護(hù)時(shí)間戳在基準(zhǔn)點(diǎn)及之后的所有變更數(shù)據(jù)集合;
實(shí)際應(yīng)用中,所述對(duì)比驗(yàn)證碼可以在所述第一分布式系統(tǒng)中進(jìn)行,所述第一分布式系統(tǒng)過濾出所述第一分布式系統(tǒng)中維護(hù)時(shí)間在所述基準(zhǔn)點(diǎn)及之后的數(shù)據(jù)集合;并由所述第一分布式系統(tǒng)將所述數(shù)據(jù)對(duì)象最后一次認(rèn)證一致的時(shí)間戳發(fā)送給所述第二分布式系統(tǒng),由所述第二分布式系統(tǒng)過濾出所述第二分布式系統(tǒng)中維護(hù)時(shí)間在所述基準(zhǔn)點(diǎn)及之后的數(shù)據(jù)集合;由于在各個(gè)時(shí)間點(diǎn)均有可能進(jìn)行數(shù)據(jù)集合維護(hù),因此,會(huì)濾出各個(gè)維護(hù)時(shí)間點(diǎn)的多組變更數(shù)據(jù)集合。
更進(jìn)一步的,所述列出差異數(shù)據(jù)為列出所述第一分布式系統(tǒng)和所述第二分布式系統(tǒng)中變更數(shù)據(jù)集合的差異數(shù)據(jù),包括:比較所述第一分布式系統(tǒng)中的各所述變更數(shù)據(jù)集合的第一關(guān)鍵字和所述第二分布式系統(tǒng)中的各所述變更數(shù)據(jù)集合的第二關(guān)鍵字;如果所述第一關(guān)鍵字和所述第二關(guān)鍵字不相等,則列出所述第一關(guān)鍵字對(duì)應(yīng)的變更數(shù)據(jù)集合和所述第二關(guān)鍵字對(duì)應(yīng)的變更數(shù)據(jù)集合,并標(biāo)注新增;如果所述第一關(guān)鍵字和所述第二關(guān)鍵字相等,則逐條對(duì)比第一分布式系統(tǒng)中的所述變更數(shù)據(jù)集合和第二分布式系統(tǒng)中的所述變更數(shù)據(jù)集合的維護(hù)時(shí)間,并列出維護(hù)時(shí)間不同的變更數(shù)據(jù)集合中的數(shù)據(jù)差異,并標(biāo)注更新;所述關(guān)鍵字,包括:字段名、參數(shù);
實(shí)際應(yīng)用中,可以遍歷所述第一分布式系統(tǒng)中的所述變更數(shù)據(jù)集合,提取每條變更數(shù)據(jù)集合的第一關(guān)鍵字;遍歷所述第二分布式系統(tǒng)中的所述變更數(shù)據(jù) 集合,提取每條變更數(shù)據(jù)集合的第二關(guān)鍵字;這里,關(guān)鍵字可以是字段名、參數(shù),比如:所述變更數(shù)據(jù)集合是一張表格,那么,關(guān)鍵字就可以是每欄的字段名。對(duì)比第一關(guān)鍵字和第二關(guān)鍵字,如果所述第一關(guān)鍵字和第二關(guān)鍵字不同,則在數(shù)據(jù)一致性稽核任務(wù)的執(zhí)行結(jié)果列表中分別展現(xiàn)所述第一關(guān)鍵字和第二關(guān)鍵字對(duì)應(yīng)的兩條數(shù)據(jù)集合,并標(biāo)注為新增。如果所述第一關(guān)鍵字和第二關(guān)鍵字相同,則對(duì)比兩條變更數(shù)據(jù)集合的維護(hù)時(shí)間,如果維護(hù)時(shí)間不同,則比對(duì)的所述兩條變更數(shù)據(jù)集合中數(shù)據(jù)差異項(xiàng),并標(biāo)注為更新。對(duì)于所述第一關(guān)鍵字和第二關(guān)鍵字相同,維護(hù)時(shí)間也相同的變更數(shù)據(jù)集合不做其他處理。
所述列出的差異數(shù)據(jù)結(jié)合和差異數(shù)據(jù)可以由維護(hù)人員來做進(jìn)一步處理。
在實(shí)際應(yīng)用中,所述加密模塊11、認(rèn)證模塊12、記錄模塊13均可由分布式系統(tǒng)中的中央處理器(CPU)、微處理器(MPU)、數(shù)字信號(hào)處理器(DSP)、或現(xiàn)場(chǎng)可編程門陣列(FPGA)等實(shí)現(xiàn)。
以上所述,僅為本發(fā)明的佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。