專利名稱:一種數(shù)據(jù)同步方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤指一種數(shù)據(jù)同步方法和裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)設(shè)備由最初的集中式處理,逐步發(fā)展成分布 式處理。分布式架構(gòu)的網(wǎng)絡(luò)設(shè)備一般由一個主控板和多個業(yè)務(wù)板構(gòu)成。其中 主控板用于完成整個網(wǎng)絡(luò)設(shè)備的管理和網(wǎng)絡(luò)協(xié)議的處理,業(yè)務(wù)板用于完成各 種業(yè)務(wù)的數(shù)據(jù)轉(zhuǎn)發(fā)處理。
為了使每個業(yè)務(wù)板都能夠正常轉(zhuǎn)發(fā)業(yè)務(wù)數(shù)據(jù),需要將每塊業(yè)務(wù)板的一些 基本端口連接信息等數(shù)據(jù)同步到其他業(yè)務(wù)板和主控板。同時為了靈活配置業(yè) 務(wù)端口,在一些高端的網(wǎng)絡(luò)設(shè)備中,還通過子卡的形式來支持業(yè)務(wù)板的不同 端口種類可在線更換,這樣就要求網(wǎng)絡(luò)設(shè)備能夠?qū)崟r更新子卡的端口配置信 息到全局。
為了保證業(yè)務(wù)板的數(shù)據(jù)能夠同步到所有單板, 一般采用發(fā)送確認(rèn)機(jī)制, 即業(yè)務(wù)板首先將自身的數(shù)據(jù)發(fā)送到主控板,然后由主控板將數(shù)據(jù)轉(zhuǎn)發(fā)到其他 的全部業(yè)務(wù)板,然后通過回應(yīng)的確認(rèn)數(shù)據(jù)包來確認(rèn)數(shù)據(jù)同步是否成功,同時 采用超時重傳機(jī)制來保證數(shù)據(jù)最終能夠同步成功。
圖1是現(xiàn)有技術(shù)中采用發(fā)送確認(rèn)機(jī)制實現(xiàn)數(shù)據(jù)同步的方法的流程圖。如
圖1所示,包括以下步驟
步驟101,業(yè)務(wù)板1在檢測到自身的子卡發(fā)生變化(如子卡插入或拔出) 后,將子卡的相關(guān)信息(如子卡型號,端口配置信息等)作為同步數(shù)據(jù)發(fā)送 給主控板。步驟102,主控板根據(jù)業(yè)務(wù)的配置情況,將所接收的同步數(shù)據(jù)發(fā)送給除 業(yè)務(wù)板1以外的所有其他業(yè)務(wù)板。
步驟103,接收到主控板同步數(shù)據(jù)的所有其他業(yè)務(wù)板,將所接收到的同 步數(shù)據(jù)同步到本地后,向主控板發(fā)送同步確認(rèn)消息。
步驟104,主控板,在接收到所有其他業(yè)務(wù)板的同步確認(rèn)消息后,向業(yè) 務(wù)板1發(fā)送同步確認(rèn)消息。
在上述采用發(fā)送確認(rèn)機(jī)制實現(xiàn)數(shù)據(jù)同步的方法流程中,由于數(shù)據(jù)包在傳 送的過程中可能丟失,因此采用超時重傳機(jī)制,也就是在數(shù)據(jù)包發(fā)送出后, 啟用超時定時器,在該定時器超時如果還沒有收到確認(rèn)信息,則重新發(fā)送數(shù) 據(jù)包, 一般在多次發(fā)送失敗后,認(rèn)為故障,不再重傳。如果系統(tǒng)中有新的業(yè) 務(wù)板插入,則主控板會把保存的全部配置信息發(fā)送給該新插入的業(yè)務(wù)板。
但是,上述結(jié)合發(fā)送確認(rèn)機(jī)制和超時重傳機(jī)制的數(shù)據(jù)同步方法,需要主 控板為每個業(yè)務(wù)板維護(hù)獨(dú)立的定時器和接收狀態(tài),處理比較復(fù)雜,特別是在 有多個業(yè)務(wù)板的子卡配置同時發(fā)生變化時,主控板必須能夠識別出所接收到 的同步確認(rèn)消息是對應(yīng)于那個業(yè)務(wù)板子卡配置信息的變化,所以需要分別標(biāo) 識出每次的同步過程,再與業(yè)務(wù)板的數(shù)目結(jié)合,處理非常復(fù)雜,容易出錯。 此外,上述方法一旦在主控板所保存的數(shù)據(jù)遭受意外破壞時,將會導(dǎo)致主控 板將錯誤的lt據(jù)同步給業(yè)務(wù)板,從而導(dǎo)致整個系統(tǒng)的數(shù)據(jù)轉(zhuǎn)發(fā)出現(xiàn)問題,只 能通過重新啟動系統(tǒng)來解決問題。
綜上所述,現(xiàn)有的數(shù)據(jù)同步方法,實現(xiàn)比較復(fù)雜,且在數(shù)據(jù)遭受意外破 壞時不能自愈。
發(fā)明內(nèi)容
本發(fā)明提供了 一種數(shù)據(jù)同步方法,該方法容易實現(xiàn)且在數(shù)據(jù)遭受意外破 壞時,能夠自愈。
本發(fā)明還提供了一種數(shù)據(jù)同步裝置,該裝置容易實現(xiàn)且在數(shù)據(jù)遭受意外 破壞時,能夠自愈。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實現(xiàn)的 本發(fā)明公開了一種數(shù)據(jù)同步方法,該方法包括
每當(dāng)預(yù)設(shè)條件被滿足時,主控板向各業(yè)務(wù)板發(fā)送核查消息;所述核查消 息中攜帶所述主控板保存的全局同步數(shù)據(jù);
每個業(yè)務(wù)板將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存的全局 同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致時,判斷所述不一致的數(shù)據(jù)是否是本業(yè)務(wù)板 的同步數(shù)據(jù),是則向主控板發(fā)送攜帶自身同步數(shù)據(jù)的核查失敗消息,否則才艮 據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù);
主控板在接收到來自業(yè)務(wù)板的核查失敗消息時,根據(jù)所述核查失敗消息 中的同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)。
本發(fā)明還公開了一種數(shù)據(jù)同步裝置,該裝置包括主控板和一個以上的 業(yè)務(wù)板,其中,
主控板,用于在每當(dāng)預(yù)設(shè)條件被滿足時,向各業(yè)務(wù)板發(fā)送攜帶自身保存 的全局同步數(shù)據(jù)的核查消息;用于在接收到來自業(yè)務(wù)板的核查失敗消息時, 根據(jù)所述核查失敗消息更新自身保存的全局同步數(shù)據(jù);
每個業(yè)務(wù)板,用于將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存的 全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致時,判斷所述不一致的數(shù)據(jù)是否是本業(yè) 務(wù)板的同步數(shù)據(jù),是則向主控板發(fā)送攜帶自身同步數(shù)據(jù)的核查失敗消息,否 則根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)。
由上述技術(shù)方案可見,本發(fā)明這種每當(dāng)預(yù)設(shè)條件被滿足時,主控板向各 業(yè)務(wù)板發(fā)送攜帶自身保存的全局同步數(shù)據(jù)的核查消息;而每個業(yè)務(wù)板將所接 收的核查消息中的全局同步數(shù)據(jù)與自身保存的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn) 不一致時,判斷所述不一致的數(shù)據(jù)是否是本業(yè)務(wù)板的同步數(shù)據(jù),是則向主控 板發(fā)送攜帶自身同步數(shù)據(jù)的核查失敗消息,從而使得主控板根據(jù)所述核查失 敗消息中的同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù),否則根據(jù)所述核查消息 中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)的技術(shù)方案,不需要記錄和 跟蹤復(fù)雜的狀態(tài),也不需要區(qū)分每一次同步事件的狀態(tài),因此容易實現(xiàn)。此外,當(dāng)主控板的全局同步數(shù)據(jù)遭受意外破壞時,相應(yīng)業(yè)務(wù)板通過比較獲知主 控保存的與自身對應(yīng)的同步數(shù)據(jù)錯誤時,向主控板發(fā)送攜帶自身正確的同步 數(shù)據(jù)的核查失敗消息,使得主控板能夠更正錯誤的同步數(shù)據(jù),并在下一次的 預(yù)設(shè)條件被滿足時,向各業(yè)務(wù)板發(fā)送更正后的全局同步數(shù)據(jù),達(dá)到自愈的目 的。
圖1是現(xiàn)有技術(shù)中采用發(fā)送確認(rèn)機(jī)制實現(xiàn)數(shù)據(jù)同步的方法的流程圖2是本發(fā)明實施例一種數(shù)據(jù)同步方法的流程圖3是本發(fā)明實施例一種數(shù)據(jù)同步裝置的組成結(jié)構(gòu)框圖。
具體實施例方式
圖2是本發(fā)明實施例一種數(shù)據(jù)同步方法的流程圖。如圖2所示,包括以下 步驟
步驟201,每當(dāng)預(yù)設(shè)條件被滿足時,主控板向各業(yè)務(wù)板發(fā)送核查消息; 所述核查消息中攜帶所述主控板保存的全局同步數(shù)據(jù)。
步驟202,每個業(yè)務(wù)板將所接收的核查消息中的全局同步數(shù)據(jù)與自身保 存的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致時,判斷所述不一致的數(shù)據(jù)是否是 本業(yè)務(wù)板的同步數(shù)據(jù),是則向主控板發(fā)送攜帶自身同步數(shù)據(jù)的核查失敗消 息,否則根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù) 據(jù);
步驟203,主控板在接收到來自業(yè)務(wù)板的核查失敗消息時,根據(jù)所述核 查失敗消息中的同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)。
圖2所示的上述數(shù)據(jù)同步方法,與圖l所示的現(xiàn)有的數(shù)據(jù)同步方法相比, 不需要記錄和跟蹤復(fù)雜的狀態(tài),也不需要區(qū)分每一次同步事件的狀態(tài),因此 容易實現(xiàn)。此外,在圖2所示的數(shù)據(jù)同步方法中,當(dāng)主控板的全局同步數(shù)據(jù) 遭受意外破壞時,相應(yīng)業(yè)務(wù)板可以通過比較核查消息中的以及自身保存的全局同步數(shù)據(jù)獲知主控保存的與自身對應(yīng)的同步數(shù)據(jù)錯誤,并向主控板發(fā)送攜 帶自身正確的同步數(shù)據(jù)的核查失敗消息,使得主控板能夠更正錯誤的同步數(shù) 據(jù),并在下一次的預(yù)設(shè)條件被滿足時,向各業(yè)務(wù)板發(fā)送更正后的全局同步數(shù) 據(jù)。這樣便可以達(dá)到自愈的目的。
可見,在圖2所示的數(shù)據(jù)同步方法,不是簡單的從主控板到業(yè)務(wù)板的數(shù) 據(jù)校準(zhǔn),而是有選擇的在主控板和業(yè)務(wù)板之間進(jìn)行雙向的數(shù)據(jù)校準(zhǔn),最終保 證每塊單板上都保存有同樣的一份正確的包含全部單板同步數(shù)據(jù)的全局?jǐn)?shù)據(jù)。
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面以業(yè)務(wù)板的子 卡配置數(shù)據(jù)為例,對本發(fā)明進(jìn)一步詳細(xì)說明。即在以下的具體實施例中,各 業(yè)務(wù)板的同步數(shù)據(jù)是該業(yè)務(wù)板本身的子卡配置數(shù)據(jù),全局同步數(shù)據(jù)是所有業(yè) 務(wù)板的子卡配置數(shù)據(jù)的集合。
具體實施例一
在本具體實施例一中,步驟201中所述的預(yù)設(shè)條件是預(yù)設(shè)的循環(huán)啟動定 時器超時,所述循環(huán)啟動定時器是在一次定時超時后會再次自動啟動的定時 器。此外在本實施例一中,主控板還設(shè)置一個同步狀態(tài)標(biāo)志,用于標(biāo)記自身 保存的全局同步數(shù)據(jù)的同步狀態(tài)。需要說明的是,同步狀態(tài)標(biāo)志的設(shè)置并不 是本發(fā)明解決技術(shù)問題的必要技術(shù)特征,只是在一些特定的情況下,系統(tǒng)可 能會用到這個信息,例如,在系統(tǒng)要求比較嚴(yán)格的情況下,需要將各業(yè)務(wù)板 的子卡配置數(shù)據(jù)完全正確地同步到各業(yè)務(wù)板和主控板后,各業(yè)務(wù)板才能開始 進(jìn)行業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)發(fā),此時根據(jù)同步狀態(tài)標(biāo)志各業(yè)務(wù)板可以知道子卡配置數(shù)據(jù) 是否已經(jīng)同步好,所以在以下實施例中考慮主控板設(shè)置并維護(hù)同步狀態(tài)標(biāo) 志,并向各業(yè)務(wù)發(fā)送同步狀態(tài)標(biāo)志。本實施例一還包括以下技術(shù)關(guān)鍵點
1、每個業(yè)務(wù)板在子卡配置發(fā)生變化(子卡插入或拔出等)時,立即向 主控板發(fā)送核查失敗消息,該核查失敗消息中攜帶該業(yè)務(wù)板的已經(jīng)變化的子 卡配置數(shù)據(jù)。主控板接收到核查失敗消息后根據(jù)其中的數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù),即更新全局同步數(shù)據(jù)中的該業(yè)務(wù)板的子卡配置數(shù)據(jù),同時設(shè) 置同步狀態(tài)標(biāo)志的狀態(tài)為"不同步"。
2、主控纟反啟動時就會啟動一個循環(huán)啟動定時器,每當(dāng)所述循環(huán)啟動定 時器超時,主控板就會將自身保存的全局同步數(shù)據(jù)和同步狀態(tài)標(biāo)志攜帶在核 查消息中發(fā)送給各業(yè)務(wù)板。
3 、各業(yè)務(wù)接收到核查消息后核查本地的全局同步數(shù)據(jù)是否與核查消息 中的全局同步數(shù)據(jù)一致,是則向主控板返回核查成功消息,否則進(jìn)一步判斷
不一致的數(shù)據(jù)是否是本板的同步數(shù)據(jù);如果不一致的數(shù)據(jù)不是本板的同步數(shù) 據(jù),則需要根據(jù)核查消息中的全局同步數(shù)據(jù)更新本地的全局同步數(shù)據(jù),然后 向主控板回復(fù)核查成功消息;如果不一致的數(shù)據(jù)是本板的同步數(shù)據(jù),則認(rèn)為 本板的同步數(shù)據(jù)是正確的,向本板的正確同步數(shù)據(jù)攜帶的核查失敗消息中返 回給主控板。
4、 主控板在向各業(yè)務(wù)板發(fā)送核查消息后,如果所有的業(yè)務(wù)板均返回核 查成功消息,則設(shè)置同步狀態(tài)標(biāo)志的狀態(tài)為"同步,,;如果至少有一個業(yè)務(wù) 板返回核查失敗消息,則設(shè)置同步狀態(tài)標(biāo)志為"不同步"。
5、 業(yè)務(wù)板接收到的核查消息中的同步狀態(tài)標(biāo)志為"同步,,,且核查消 息中的全局同步數(shù)據(jù)與本地的全局同步數(shù)據(jù)一致,則表明該業(yè)務(wù)板的上一次 數(shù)據(jù)同步成功。
例如,設(shè)網(wǎng)絡(luò)設(shè)備中包括1個主控板和編號為0 - 3的4個業(yè)務(wù)板,業(yè)務(wù) 板O配置了子卡A和B,業(yè)務(wù)板1配置了子卡C和D,業(yè)務(wù)板2配置了子 卡A和C,業(yè)務(wù)板3配置了子卡E和F。正常狀態(tài)下主控板和各業(yè)務(wù)板都保 存有包含各業(yè)務(wù)板的子卡配置數(shù)據(jù)的全局同步數(shù)據(jù)。當(dāng)業(yè)務(wù)板0的子卡A 拔出后,業(yè)務(wù)板0檢查到子卡拔出,向主控板發(fā)送核查失敗消息,該核查失 敗消息中攜帶業(yè)務(wù)板O的子卡配置數(shù)據(jù);主控板根據(jù)來自業(yè)務(wù)板0的核查失 敗消息更新本地保存全局同步數(shù)據(jù)中的業(yè)務(wù)板1所對應(yīng)的子卡配置數(shù)據(jù),并 設(shè)置同步狀態(tài)標(biāo)志為"不同步"。當(dāng)循環(huán)啟動定時器超時時,主控板啟動數(shù)據(jù)核查流程,向業(yè)務(wù)板0-3發(fā)送攜帶全局同步數(shù)據(jù)和同步狀態(tài)標(biāo)志的核查
消息。業(yè)務(wù)板0-3接收到核查消息后與自身保存的全局同步數(shù)據(jù)進(jìn)行比較, 其中,業(yè)務(wù)板l、 2、和3發(fā)現(xiàn)全局同步數(shù)據(jù)中的業(yè)務(wù)板0的子卡配置數(shù)據(jù) 不一致,根據(jù)所接收核查消息中內(nèi)容的更新本地保存的業(yè)務(wù)板0的子卡配置 數(shù)據(jù),向主控板返回核查成功消息;業(yè)務(wù)板O發(fā)現(xiàn)全局同步數(shù)據(jù)完全一致, 向主控板返回核查成功消息。主控板收到全部的核查成功消息后,更新同步 狀態(tài)標(biāo)志的狀態(tài)為"同步",則下一次循環(huán)啟動定時器超時時主控板發(fā)出的 核查消息中就攜帶狀態(tài)為"同步,,的同步狀態(tài)標(biāo)志了,此時業(yè)務(wù)板O可以根 據(jù)這個同步狀態(tài)標(biāo)志獲知上次更改的子卡配置數(shù)據(jù)(子卡A拔出)已經(jīng)同 步到了整個系統(tǒng)。
對于系統(tǒng)中子卡配置數(shù)據(jù)出現(xiàn)錯誤時的自愈》務(wù)復(fù)處理如下如果由于程 序異常,導(dǎo)致主控板上保存的業(yè)務(wù)板1的子卡配置數(shù)據(jù)被錯誤的修改,主控 板在定時器超時,會觸發(fā)數(shù)據(jù)核查流程,向全部業(yè)務(wù)板發(fā)送攜帶全局同步數(shù) 據(jù)和同步狀態(tài)標(biāo)志的核查消息;其中,業(yè)務(wù)板l收到核查消息后,發(fā)現(xiàn)主控 板核查消息中的業(yè)務(wù)板1的子卡配置數(shù)據(jù)與本板的子卡配置數(shù)據(jù)不符,對于 業(yè)務(wù)板l自己的子卡配置數(shù)據(jù)是正確的,所以向主控板返回核查失敗消息, 該核查失敗消息中攜帶正確的業(yè)務(wù)板1的子卡配置數(shù)據(jù);主控板接收到業(yè)務(wù) 板1發(fā)送的核查失敗消息后更新本地全局同步數(shù)據(jù)中的對應(yīng)業(yè)務(wù)板1的子卡 配置數(shù)據(jù),并設(shè)置同步狀態(tài)標(biāo)志的狀態(tài)為"不同步";下一次定時器超時時, 主控板再次觸發(fā)數(shù)據(jù)核查流程,就會將業(yè)務(wù)板1的正確的子卡配置數(shù)據(jù)同步 到其它業(yè)務(wù)板,即主控板向各業(yè)務(wù)板發(fā)送攜帶全局同步數(shù)據(jù)的核查消息,業(yè) 務(wù)板O、 2、 3在核查時就會發(fā)現(xiàn)自己保存的業(yè)務(wù)板1的子卡配置數(shù)據(jù)與核查 消息中的不一致,就會用核查數(shù)據(jù)中的業(yè)務(wù)板1的子卡配置數(shù)據(jù)更新自己保 存的全局同步數(shù)據(jù)中的業(yè)務(wù)板1的子卡配置數(shù)據(jù)。這樣錯誤的數(shù)據(jù)就能自動 被糾正,從而達(dá)到自愈的目的。
具體實施例二本具體實施例二與具體實施例 一 的區(qū)別僅在于,步驟201中所述的預(yù)設(shè)
條件包括預(yù)設(shè)的循環(huán)啟動定時器超時,和主控板接收到來自業(yè)務(wù)板的核查
失敗消息。即除了循環(huán)啟動定時器超時會觸發(fā)數(shù)據(jù)核查流程外,業(yè)務(wù)板發(fā)送 的核查失敗消息也會啟動數(shù)據(jù)核查流程。這里的核查失敗消息即包括業(yè)務(wù)板 自身的子卡配置數(shù)據(jù)發(fā)生變化時發(fā)送的核查失敗消息,也包括業(yè)務(wù)板在接收 到主控板發(fā)送的核查消息并發(fā)現(xiàn)不一致時發(fā)送的核查失敗消息。這種方案適
合對實時性要求比較高的場合。本實施例二包括以下技術(shù)關(guān)鍵點
1、 每個業(yè)務(wù)板在子卡配置發(fā)生變化(子卡插入或拔出等)時,立即向 主控板發(fā)送核查失敗消息,該核查失敗消息中攜帶該業(yè)務(wù)板的已經(jīng)變化的子 卡配置數(shù)據(jù)。主控板接收到核查失敗消息后根據(jù)其中的數(shù)據(jù)更新自身保存的 全局同步數(shù)據(jù),即更新全局同步數(shù)據(jù)中的該業(yè)務(wù)板的子卡配置數(shù)據(jù),同時設(shè) 置同步狀態(tài)標(biāo)志的狀態(tài)為"不同步",并且立即發(fā)起數(shù)據(jù)核查流程,將自身 保存的全局同步數(shù)據(jù)和同步狀態(tài)標(biāo)志攜帶在核查消息中發(fā)送給各業(yè)務(wù)板。
2、 主控板啟動時就會啟動一個循環(huán)啟動定時器,每當(dāng)所述循環(huán)啟動定 時器超時,主控板就會將自身保存的全局同步數(shù)據(jù)和同步狀態(tài)標(biāo)志攜帶在核 查消息中發(fā)送給各業(yè)務(wù)板。
3、 各業(yè)務(wù)接收到核查消息后核查本地的全局同步數(shù)據(jù)是否與核查消息 中的全局同步數(shù)據(jù)一致,是則向主控板返回核查成功消息,否則進(jìn)一步判斷 不一致的數(shù)據(jù)是否是本板的同步數(shù)據(jù);如果不一致的數(shù)據(jù)不是本板的同步數(shù) 據(jù),則需要根據(jù)核查消息中的全局同步數(shù)據(jù)更新本地的全局同步數(shù)據(jù),然后 向主控板回復(fù)核查成功消息;如果不一致的數(shù)據(jù)是本板的同步數(shù)據(jù),則認(rèn)為 本板的同步數(shù)據(jù)是正確的,向本板的正確同步數(shù)據(jù)攜帶的核查失敗消息中返 回纟會主控板。
4、 主控板在向各業(yè)務(wù)板發(fā)送核查消息后,如果所有的業(yè)務(wù)板均返回核 查成功消息,則設(shè)置同步狀態(tài)標(biāo)志的狀態(tài)為"同步,,;如果至少有一個業(yè)務(wù) 板返回核查失敗消息,則設(shè)置同步狀態(tài)標(biāo)志為"不同步,,,并再次觸發(fā)數(shù)據(jù) 核查流程。5、業(yè)務(wù)板接收到的核查消息中的同步狀態(tài)標(biāo)志為"同步",且核查消 息中的全局同步數(shù)據(jù)與本地的全局同步數(shù)據(jù)一致,則表明該業(yè)務(wù)板的數(shù)據(jù)同 步成功。
例如,仍設(shè)網(wǎng)絡(luò)設(shè)備中包括1個主控板和編號為0 - 3的4個業(yè)務(wù)板,業(yè) 務(wù)板O配置了子卡A和B,業(yè)務(wù)板1配置了子卡C和D,業(yè)務(wù)板2配置了 子卡A和C,業(yè)務(wù)板3配置了子卡E和F。正常狀態(tài)下主控板和各業(yè)務(wù)板都 保存有包含各業(yè)務(wù)板的子卡配置數(shù)據(jù)的全局同步數(shù)據(jù)。當(dāng)業(yè)務(wù)板0的子卡A 拔出后,業(yè)務(wù)板0檢查到子卡拔出,向主控板發(fā)送核查失敗消息,該核查失 敗消息中攜帶業(yè)務(wù)板0的子卡配置數(shù)據(jù);主控板根據(jù)來自業(yè)務(wù)板0的核查失 敗消息更新本地保存全局同步數(shù)據(jù)中的業(yè)務(wù)板1所對應(yīng)的子卡配置數(shù)據(jù),并 設(shè)置同步狀態(tài)標(biāo)志為"不同步",并立即觸發(fā)數(shù)據(jù)核查流程向業(yè)務(wù)板0-3 發(fā)送攜帶全局同步數(shù)據(jù)和同步狀態(tài)標(biāo)志的核查消息。業(yè)務(wù)板0-3接收到核 查消息后與自身保存的全局同步數(shù)據(jù)進(jìn)行比較,其中,業(yè)務(wù)板1、 2、和3 發(fā)現(xiàn)全局同步數(shù)據(jù)中的業(yè)務(wù)板O的子卡配置數(shù)據(jù)不一致,根據(jù)所接收核查消 息中內(nèi)容的更新本地保存的業(yè)務(wù)板0的子卡配置數(shù)據(jù),向主控板返回核查成 功消息;業(yè)務(wù)板0發(fā)現(xiàn)全局同步數(shù)據(jù)完全一致,向主控板返回核查成功消息。 主控板收到全部的核查成功消息后,更新同步狀態(tài)標(biāo)志的狀態(tài)為"同步", 則下一次循環(huán)啟動定時器超時時主控板發(fā)出的核查消息中就攜帶狀態(tài)為"同 步,,的同步狀態(tài)標(biāo)志了,此時業(yè)務(wù)板O可以根據(jù)這個同步狀態(tài)標(biāo)志獲知上次 更改的子卡配置數(shù)據(jù)(子卡A拔出)已經(jīng)同步到了整個系統(tǒng)。此外,定時 器的超時也會使主控板觸發(fā)數(shù)據(jù)核查流程,這里不再復(fù)述。
對于系統(tǒng)中子卡配置數(shù)據(jù)出現(xiàn)錯誤時的自愈修復(fù)處理如下如果由于程 序異常,導(dǎo)致主控板上保存的業(yè)務(wù)板1的子卡配置數(shù)據(jù)被錯誤的修改,則主 控板在定時器超時,會觸發(fā)數(shù)據(jù)核查流程,向全部業(yè)務(wù)板發(fā)送攜帶全局同步 數(shù)據(jù)的核查消息;其中,業(yè)務(wù)板l收到核查消息后,發(fā)現(xiàn)主控板核查消息中 的業(yè)務(wù)板1的子卡配置數(shù)據(jù)與本板的子卡配置數(shù)據(jù)不符,對于業(yè)務(wù)板1自己的子卡配置數(shù)據(jù)是正確的,所以向主控板返回核查失敗消息,該核查失敗消 息中攜帶正確的業(yè)務(wù)板1的子卡配置數(shù)據(jù);主控板接收到業(yè)務(wù)板1發(fā)送的核 查失敗消息后更新本地全局同步數(shù)據(jù)中的對應(yīng)業(yè)務(wù)板1的子卡配置數(shù)據(jù),設(shè) 置同步狀態(tài)標(biāo)志的狀態(tài)為"不同步,,,并立即再次觸發(fā)數(shù)據(jù)核查流程,將業(yè) 務(wù)板1的正確的子卡配置數(shù)據(jù)同步到其它業(yè)務(wù)板,即主控板向各業(yè)務(wù)板發(fā)送
攜帶全局同步數(shù)據(jù)的核查消息,業(yè)務(wù)板O、 2、 3在核查時就會發(fā)現(xiàn)自己保存 的業(yè)務(wù)板1的子卡配置數(shù)據(jù)與核查消息中的不一致,就會用核查數(shù)據(jù)中的業(yè) 務(wù)板1的子卡配置數(shù)據(jù)更新自己保存的全局同步數(shù)據(jù)中的業(yè)務(wù)板1的子卡配 置數(shù)據(jù)。
還需要說明的是,本發(fā)明上述實施例以業(yè)務(wù)板的子卡配置數(shù)據(jù)作為需要 同步的數(shù)據(jù)來說明本發(fā)明的技術(shù)方案,但本領(lǐng)域的技術(shù)人員可以理解對于其 他需要同步的數(shù)據(jù),同樣可以應(yīng)用本發(fā)明的技術(shù)方案。
接下來給出本發(fā)明一種數(shù)據(jù)同步裝置的組成結(jié)構(gòu)和各組成部分的功能。
圖3是本發(fā)明實施例一種數(shù)據(jù)同步裝置的組成結(jié)構(gòu)框圖。如圖3所示, 該裝置包括主控板301和一個以上的業(yè)務(wù)板302,其中
主控板301,用于在每當(dāng)預(yù)設(shè)條件被滿足時,向各業(yè)務(wù)板302發(fā)送攜帶 自身保存的全局同步數(shù)據(jù)的核查消息;用于在接收到來自業(yè)務(wù)板的核查失敗 消息時,根據(jù)所述核查失敗消息更新自身保存的全局同步數(shù)據(jù)。
每個業(yè)務(wù)板302,用于將所接收的核查消息中的全局同步數(shù)據(jù)與自身保 存的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致時,判斷所述不一致的數(shù)據(jù)是否是 本業(yè)務(wù)板的同步數(shù)據(jù),是則向主控板301發(fā)送攜帶自身同步數(shù)據(jù)的核查失敗 消息,否則根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù) 據(jù)。
在圖3中,主控板301,用于在循環(huán)啟動定時器超時,和/或,接收到業(yè) 務(wù)板302發(fā)送的核查失敗消息時,向各業(yè)務(wù)板302發(fā)送所述核查消息。
在圖3中,每個業(yè)務(wù)板302,進(jìn)一步用于在自身的同步數(shù)據(jù)發(fā)生變化時,將已經(jīng)變化的同步數(shù)據(jù)攜帶在核查失敗消息中發(fā)送給所述主控板301。主控
板301,用于在接收到所述核查失敗消息后,根據(jù)所述核查失敗消息中的同 步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù);主控板301,在循環(huán)定時器啟動時, 和/或,接收到業(yè)務(wù)板在判斷所述不一致的數(shù)據(jù)是本業(yè)務(wù)板的同步數(shù)據(jù)時發(fā) 送的核查失敗消息時,和/或,接收到業(yè)務(wù)板在自身的同步數(shù)據(jù)發(fā)生變化時 發(fā)送的核查失敗消息時,向各業(yè)務(wù)板發(fā)送核查消息。
在圖3中,業(yè)務(wù)板302,用于在將所接收的核查消息中的全局同步數(shù)據(jù) 與自身保存的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)一致時,進(jìn)一步向主控板301返 回核查成功消息;用于在將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存 的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致且不一致的數(shù)據(jù)不是本業(yè)務(wù)板的同步 數(shù)據(jù)時,在根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù) 據(jù)后,還向主控^反301返回核查成功消息。
在圖3中,主控板301,還用于設(shè)置同步狀態(tài)標(biāo)志;在向各業(yè)務(wù)板302 發(fā)送核查消息后,如果全部業(yè)務(wù)板返回核查確認(rèn)消息,則將所述同步狀態(tài)標(biāo) 志設(shè)置為"同步";在收到至少有一個業(yè)務(wù)板返回核查失敗消息時,將所述 同步狀態(tài)標(biāo)志設(shè)置為"不同步";向各業(yè)務(wù)板302發(fā)送核查消息的同時發(fā)送 所述同步狀態(tài)標(biāo)志。
由上述技術(shù)方案可見,本發(fā)明的技術(shù)方案,不需要記錄和跟蹤復(fù)雜的狀 態(tài),也不需要區(qū)分每一次同步事件的狀態(tài),因此容易實現(xiàn)。此外,當(dāng)主控板 的全局同步數(shù)據(jù)遭受意外破壞時,相應(yīng)業(yè)務(wù)板通過比較獲知主控保存的與自 身對應(yīng)的同步數(shù)據(jù)錯誤時,向主控板發(fā)送攜帶自身正確的同步數(shù)據(jù)的核查失 敗消息,使得主控板能夠更正錯誤的同步數(shù)據(jù),并在下一次的預(yù)設(shè)條件被滿 足時,向各業(yè)務(wù)板發(fā)送更正后的全局同步數(shù)據(jù),達(dá)到自愈的目的。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù) 范圍,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種數(shù)據(jù)同步方法,其特征在于,該方法包括每當(dāng)預(yù)設(shè)條件被滿足時,主控板向各業(yè)務(wù)板發(fā)送核查消息;所述核查消息中攜帶所述主控板保存的全局同步數(shù)據(jù);每個業(yè)務(wù)板將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致時,判斷所述不一致的數(shù)據(jù)是否是本業(yè)務(wù)板的同步數(shù)據(jù),是則向主控板發(fā)送攜帶自身同步數(shù)據(jù)的核查失敗消息,否則根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù);主控板在接收到來自業(yè)務(wù)板的核查失敗消息時,根據(jù)所述核查失敗消息中的同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)。
2、 如權(quán)利要求l所述的方法,其特征在于,所述預(yù)設(shè)條件包括循環(huán) 啟動定時器超時,和/或,主控板接收到業(yè)務(wù)板發(fā)送的核查失敗消息。
3、 如權(quán)利要求1或2所述的方法,其特征在于,該方法進(jìn)一步包括 每個業(yè)務(wù)板在自身的同步數(shù)據(jù)發(fā)生變化時,將已經(jīng)變化的同步數(shù)據(jù)攜帶在核查失敗消息中發(fā)送給所述主控板;所述主控板在接收到所述核查失敗消息后,根據(jù)所述核查失敗消息中的同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù);所述預(yù)設(shè)條件包括循環(huán)定時器啟動,和/或,主控板接收到業(yè)務(wù)板在判斷所述不一致的數(shù)據(jù)是本業(yè)務(wù)板的同步數(shù)據(jù)時發(fā)送的核查失敗消息,和/或,主控板接收到業(yè)務(wù)板在自身的同步數(shù)據(jù)發(fā)生變化時發(fā)送的核查失敗消 自
4、 如權(quán)利要求1或2所述的方法,其特征在于,該方法進(jìn)一步包括 當(dāng)每個業(yè)務(wù)板將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)一致時,該業(yè)務(wù)板向主控板返回核查成功消息; 當(dāng)每個業(yè)務(wù)板將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存的全 局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致且不一致的數(shù)據(jù)不是本業(yè)務(wù)板的同步數(shù)據(jù) 時,在根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)后向主控^反返回核查成功消息。
5、 如權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括 主控板設(shè)置同步狀態(tài)標(biāo)志;主控板向各業(yè)務(wù)板發(fā)送核查消息后,如果全部業(yè)務(wù)板返回核查確認(rèn)消 息,則將所述同步狀態(tài)標(biāo)志設(shè)置為"同步',;主控板在收到至少有一個業(yè)務(wù) 板返回核查失敗消息時,將所述同步狀態(tài)標(biāo)志設(shè)置為"不同步";主控板向各業(yè)務(wù)板發(fā)送核查消息的同時發(fā)送所述同步狀態(tài)標(biāo)志。
6、 一種數(shù)據(jù)同步裝置,其特征在于,該裝置包括主控板和一個以上 的業(yè)務(wù)板,其中,主控板,用于在每當(dāng)預(yù)設(shè)條件被滿足時,向各業(yè)務(wù)板發(fā)送攜帶自身保存 的全局同步數(shù)據(jù)的核查消息;用于在接收到來自業(yè)務(wù)板的核查失敗消息時, 根據(jù)所述核查失敗消息更新自身保存的全局同步數(shù)據(jù);每個業(yè)務(wù)板,用于將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存的 全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致時,判斷所述不一致的數(shù)據(jù)是否是本業(yè) 務(wù)板的同步數(shù)據(jù),是則向主控板發(fā)送攜帶自身同步數(shù)據(jù)的核查失敗消息,否 則根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)。
7、 如權(quán)利要求6所述的裝置,其特征在于,所述主控板,用于在循環(huán)啟動定時器超時,和/或,接收到業(yè)務(wù)板發(fā)送 的核查失敗消息時,向各業(yè)務(wù)板發(fā)送所述核查消息。
8、 如權(quán)利要求6或7所述的裝置,其特征在于所述每個業(yè)務(wù)板,進(jìn)一步用于在自身的同步數(shù)據(jù)發(fā)生變化時,將已經(jīng)變 化的同步數(shù)據(jù)攜帶在核查失敗消息中發(fā)送給所述主控板;所述主控板,用于在接收到所述核查失敗消息后,根據(jù)所述核查失敗消 息中的同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù);用于在循環(huán)定時器啟動時, 和/或,接收到業(yè)務(wù)板在判斷所述不一致的數(shù)據(jù)是本業(yè)務(wù)板的同步數(shù)據(jù)時發(fā) 送的核查失敗消息時,和/或,接收到業(yè)務(wù)板在自身的同步數(shù)據(jù)發(fā)生變化時 發(fā)送的核查失敗消息時,向各業(yè)務(wù)板發(fā)送核查消息。
9、 如權(quán)利要求6或7所述的裝置,其特征在于,所述每個業(yè)務(wù)板,用于在將所接收的核查消息中的全局同步數(shù)據(jù)與自身 保存的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)一致時,進(jìn)一步向主控板返回核查成功 消息;用于在將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存的全局同步 數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致且不一致的數(shù)據(jù)不是本業(yè)務(wù)板的同步數(shù)據(jù)時,在 根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)后,還向 主控纟反返回核查成功消息。
10、 如權(quán)利要求9所述的裝置,其特征在于,所述主控板,還用于設(shè)置同步狀態(tài)標(biāo)志;在向各業(yè)務(wù)板發(fā)送核查消息后, 如果全部業(yè)務(wù)^反返回核查確-〖人消息,則將所述同步狀態(tài)標(biāo)志設(shè)置為"同步"; 在收到至少有一個業(yè)務(wù)板返回核查失敗消息時,將所述同步狀態(tài)標(biāo)志設(shè)置為 "不同步";向各業(yè)務(wù)板發(fā)送核查消息的同時發(fā)送所述同步狀態(tài)標(biāo)志。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)同步方法,包括每當(dāng)預(yù)設(shè)條件被滿足時,主控板向各業(yè)務(wù)板發(fā)送核查消息;所述核查消息中攜帶所述主控板保存的全局同步數(shù)據(jù);每個業(yè)務(wù)板將所接收的核查消息中的全局同步數(shù)據(jù)與自身保存的全局同步數(shù)據(jù)進(jìn)行比較,發(fā)現(xiàn)不一致時,判斷所述不一致的數(shù)據(jù)是否是本業(yè)務(wù)板的同步數(shù)據(jù),是則向主控板發(fā)送攜帶自身同步數(shù)據(jù)的核查失敗消息,否則根據(jù)所述核查消息中的全局同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù);主控板在接收到來自業(yè)務(wù)板的核查失敗消息時,根據(jù)所述核查失敗消息中的同步數(shù)據(jù)更新自身保存的全局同步數(shù)據(jù)。本發(fā)明還公開了一種數(shù)據(jù)同步裝置。本發(fā)明的技術(shù)方案容易實現(xiàn)且在同步數(shù)據(jù)遭受意外破壞時,能夠自愈。
文檔編號H04L1/16GK101286834SQ20081011408
公開日2008年10月15日 申請日期2008年5月30日 優(yōu)先權(quán)日2008年5月30日
發(fā)明者盧勝文 申請人:杭州華三通信技術(shù)有限公司