專利名稱:數(shù)據(jù)同步的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及不中斷升級(jí)過(guò)程中數(shù)據(jù)同步的方法。
背景技術(shù):
目前在通信領(lǐng)域中軟件的升級(jí)普遍存在,升級(jí)過(guò)程中容易造成業(yè)務(wù)中斷,在電信業(yè)務(wù)可靠性要求越來(lái)越高的今天,升級(jí)不中斷業(yè)務(wù)成為非常迫切的需求?,F(xiàn)有的設(shè)備升級(jí)主要過(guò)程如下(11)升級(jí)前主備板都正常運(yùn)行,運(yùn)行的都是舊版本;(12)主板和備板都加載新的程序和配置數(shù)據(jù);(13)復(fù)位兩塊主控板讓新的程序生效。
可以看出,在升級(jí)過(guò)程中兩塊主控板都經(jīng)過(guò)了復(fù)位,業(yè)務(wù)中斷不可避免。
由于現(xiàn)有的技術(shù)局限,暫時(shí)還做不到主控板不復(fù)位而將新的程序軟件替換舊的程序軟件運(yùn)行,所以軟件升級(jí)主控板復(fù)位不可避免。現(xiàn)在普遍的做法是利用主備倒換的功能來(lái)實(shí)現(xiàn)升級(jí)業(yè)務(wù)不中斷的功能,步驟如下(21)升級(jí)前主備板都正常運(yùn)行,運(yùn)行的都是舊版本;(22)備板升級(jí)到新的版本;(23)主板將數(shù)據(jù)同步到備板;(24)數(shù)據(jù)同步完畢主備倒換,新的主板(原來(lái)的備板)開(kāi)始使用新的版本程序控制業(yè)務(wù)的運(yùn)行;(25)新的備板(原來(lái)的主板)升級(jí)到新的版本。
在上面的操作過(guò)程中,第(23)步是關(guān)鍵,因?yàn)橹挥兄靼宓臄?shù)據(jù)完全同步到備板,主備才能進(jìn)行倒換,才能保證倒換后業(yè)務(wù)不發(fā)生任何的中斷。由于此時(shí)主備版本不同,主板同步到備板的數(shù)據(jù),備板不能保證完全識(shí)別和理解。所以不同版本的數(shù)據(jù)同步是解決升級(jí)不中斷業(yè)務(wù)的關(guān)鍵。
主備同步的數(shù)據(jù)可分為兩類,一類是用戶的配置數(shù)據(jù),另一類是動(dòng)態(tài)運(yùn)行數(shù)據(jù)。配置數(shù)據(jù)可以通過(guò)先以文件的形式導(dǎo)出然后使用外部工具升級(jí)到新版本再加載到備板的方式進(jìn)行同步,但是動(dòng)態(tài)數(shù)據(jù)是和系統(tǒng)的動(dòng)態(tài)運(yùn)行狀態(tài)相關(guān),不能采用此種方式,動(dòng)態(tài)數(shù)據(jù)的同步只能是在主備板運(yùn)行的過(guò)程中通過(guò)消息傳遞的方式同步過(guò)來(lái)。
升級(jí)不中斷業(yè)務(wù)的場(chǎng)景下動(dòng)態(tài)數(shù)據(jù)的同步面臨一個(gè)難點(diǎn)數(shù)據(jù)同步時(shí)主備版本不一致,主板同步過(guò)去的數(shù)據(jù)備板按照新版本的數(shù)據(jù)定義規(guī)則來(lái)理解會(huì)存在差異。如何正確識(shí)別舊版本同步過(guò)來(lái)的數(shù)據(jù)以及如何將同步過(guò)來(lái)的數(shù)據(jù)轉(zhuǎn)換成新版本理解的數(shù)據(jù)是目前存在的一個(gè)問(wèn)題。
正是由于上述問(wèn)題的存在,動(dòng)態(tài)運(yùn)行數(shù)據(jù)在升級(jí)過(guò)程中其實(shí)是丟失的,無(wú)法保證升級(jí)不中斷業(yè)務(wù)。要實(shí)現(xiàn)升級(jí)不中斷業(yè)務(wù),關(guān)鍵的技術(shù)是解決動(dòng)態(tài)數(shù)據(jù)的同步問(wèn)題。
現(xiàn)有的主備板動(dòng)態(tài)數(shù)據(jù)同步方案的應(yīng)用場(chǎng)景不是升級(jí)場(chǎng)景,而是正常的備板起保護(hù)作用的場(chǎng)景,此時(shí)主板和備板運(yùn)行的都是完全相同的軟件,在該軟件中將主備板上的動(dòng)態(tài)數(shù)據(jù)按照功能劃分為一個(gè)個(gè)的同步數(shù)據(jù)塊,每個(gè)同步數(shù)據(jù)塊都包含若干描述某一相同功能的動(dòng)態(tài)數(shù)據(jù),各個(gè)同步數(shù)據(jù)塊的大小和內(nèi)容都可能各不相同,每個(gè)同步數(shù)據(jù)塊都有兩級(jí)索引進(jìn)行標(biāo)識(shí),一是模塊標(biāo)識(shí),二是模塊內(nèi)的同步塊序號(hào),模塊標(biāo)識(shí)表明該同步塊屬于哪個(gè)模塊,同步塊序號(hào)標(biāo)識(shí)該同步塊在該模塊內(nèi)的編號(hào),模塊號(hào)+同步塊序號(hào)唯一標(biāo)識(shí)一個(gè)同步數(shù)據(jù)塊。由于主備軟件完全一致,所以在主備板上模塊號(hào)數(shù)目和定義以及同步塊序號(hào)的數(shù)目和定義都是絕對(duì)一致的,主板將一個(gè)同步塊發(fā)送到備板只要攜帶模塊號(hào)+同步塊序號(hào)即可,備板接收到該同步數(shù)據(jù)塊,根據(jù)模塊號(hào)+同步塊序號(hào)就能唯一識(shí)別該同步塊,備板將接收到的同步塊數(shù)據(jù)覆蓋自己的相應(yīng)塊即可。如圖1所示。
正常運(yùn)行的過(guò)程中,如果主板的動(dòng)態(tài)數(shù)據(jù)發(fā)生變化,主板會(huì)將該變化的動(dòng)態(tài)數(shù)據(jù)所在的同步數(shù)據(jù)塊發(fā)送給備板,備板識(shí)別該同步數(shù)據(jù)塊后將其內(nèi)容覆蓋自己的相應(yīng)塊,從而達(dá)到備板同步主板的動(dòng)態(tài)數(shù)據(jù)的目的。當(dāng)主板發(fā)生故障時(shí),由于備板的軟件、配置數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)都是和主板完全一致,所以主備倒換不會(huì)中斷業(yè)務(wù)。
該同步方案可行的前提要求主板和備板的同步塊的標(biāo)識(shí)以及相同標(biāo)識(shí)的同步塊的內(nèi)容完全一致,這只能在同一個(gè)軟件版本中才能實(shí)現(xiàn)。所以該方案只解決了主備軟件完全一致的情況下動(dòng)態(tài)數(shù)據(jù)同步的問(wèn)題。在升級(jí)場(chǎng)景下,由于備板軟件已經(jīng)先行升級(jí)到了新的軟件,新的軟件中動(dòng)態(tài)塊數(shù)目和內(nèi)容與舊的軟件相比都可能有修改,此時(shí)采用該同步方案無(wú)法正確的識(shí)別該同步塊,并且識(shí)別后內(nèi)容也不能采用覆蓋的方式,因?yàn)樾屡f版本軟件中塊的內(nèi)容可能不一致,所以該方案在升級(jí)場(chǎng)景下無(wú)法正確的將動(dòng)態(tài)數(shù)據(jù)同步到備板。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種數(shù)據(jù)同步的方法,以解決升級(jí)過(guò)程中業(yè)務(wù)中斷的問(wèn)題。
本發(fā)明的實(shí)施例提供了一種不中斷升級(jí)過(guò)程中數(shù)據(jù)的同步方法,包括A、在新版本軟件中設(shè)置與舊版本軟件中相同的數(shù)據(jù)塊編號(hào);B、建立新版本軟件與舊版本軟件數(shù)據(jù)塊內(nèi)容轉(zhuǎn)換的轉(zhuǎn)換函數(shù),并在數(shù)據(jù)從未升級(jí)設(shè)備同步到已升級(jí)設(shè)備時(shí)調(diào)用該轉(zhuǎn)換函數(shù)。
本發(fā)明的實(shí)施例通過(guò)在新版本軟件中設(shè)置與舊軟件版本中相同的數(shù)據(jù)塊編號(hào),解決了新舊版本軟件中數(shù)據(jù)塊標(biāo)識(shí)一致性的問(wèn)題,并通過(guò)在新版本軟件中建立數(shù)據(jù)塊內(nèi)容轉(zhuǎn)換的函數(shù),保證了新版本軟件能夠識(shí)別同步過(guò)來(lái)的數(shù)據(jù)塊的內(nèi)容,實(shí)現(xiàn)數(shù)據(jù)在不同的軟件版本間的同步問(wèn)題,從而實(shí)現(xiàn)了升級(jí)過(guò)程不中斷業(yè)務(wù)的功能,滿足了運(yùn)營(yíng)商的迫切需求。升級(jí)不中斷業(yè)務(wù)功能的應(yīng)用將會(huì)極大提高運(yùn)營(yíng)商的服務(wù)質(zhì)量和運(yùn)營(yíng)可靠性。
圖1為現(xiàn)有技術(shù)中動(dòng)態(tài)數(shù)據(jù)同步方法的示意圖。
圖2為本發(fā)明實(shí)施例的數(shù)據(jù)同步方法第一實(shí)施例流程示意圖。
圖3為本發(fā)明實(shí)施例的第一實(shí)施例關(guān)于設(shè)置新版本軟件與舊版本軟件數(shù)據(jù)塊標(biāo)識(shí)一致性示意圖。
圖4為本發(fā)明實(shí)施例的第一實(shí)施例關(guān)于數(shù)據(jù)同步轉(zhuǎn)換函數(shù)實(shí)現(xiàn)過(guò)程示意圖。
圖5為本發(fā)明實(shí)施例的數(shù)據(jù)同步方法第二實(shí)施例流程示意圖。
圖6為本發(fā)明實(shí)施例的第二實(shí)施例關(guān)于設(shè)置新版本軟件與舊版本軟件數(shù)據(jù)塊標(biāo)識(shí)一致性示意圖。
圖7為本發(fā)明實(shí)施例的第二實(shí)施例關(guān)于數(shù)據(jù)同步轉(zhuǎn)換函數(shù)實(shí)現(xiàn)過(guò)程示意圖。
圖8為本發(fā)明實(shí)施例的關(guān)于轉(zhuǎn)換函數(shù)指針鏈表結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下將舉實(shí)施例并參照附圖,對(duì)本發(fā)明方案進(jìn)行進(jìn)一步詳細(xì)的說(shuō)明。
參考圖2,該圖為本發(fā)明實(shí)施例的不中斷升級(jí)過(guò)程中數(shù)據(jù)同步方法的第一實(shí)施例流程圖,其主要過(guò)程如下步驟201在新版本軟件中設(shè)置與舊版本軟件中相同的動(dòng)態(tài)數(shù)據(jù)塊編號(hào);在新版本軟件中設(shè)置與舊版本軟件中相同的動(dòng)態(tài)數(shù)據(jù)塊編號(hào),即保證新版本軟件中同一數(shù)據(jù)塊的標(biāo)識(shí)與舊版本軟件中的標(biāo)識(shí)相同,在此基礎(chǔ)上,如果新增數(shù)據(jù)塊,其標(biāo)識(shí)只能采用新增的編號(hào),以不影響舊版本中數(shù)據(jù)塊的編號(hào)。參考圖3,軟件V1.0中模塊M有N個(gè)同步數(shù)據(jù)塊,則在新版本軟件V2.0中模塊M中塊1對(duì)應(yīng)V1.0中模塊M中的塊1,V2.0中塊N對(duì)應(yīng)V1.0中的塊N,如果在V2.0的模塊M中增加一新的同步數(shù)據(jù)塊,則其編號(hào)為N+1。如果出現(xiàn)塊標(biāo)識(shí)需要減少的情況,只要在塊編號(hào)上保留這些不再使用的編號(hào),功能上去掉減少的塊的功能即可。
步驟202建立新版本軟件與舊版本軟件動(dòng)態(tài)數(shù)據(jù)塊內(nèi)容轉(zhuǎn)換的函數(shù),并將動(dòng)態(tài)數(shù)據(jù)從未升級(jí)設(shè)備同步到已升級(jí)設(shè)備時(shí)調(diào)用該轉(zhuǎn)換函數(shù)。
具體實(shí)現(xiàn)如下參考圖4,該圖為本發(fā)明實(shí)施例一關(guān)于數(shù)據(jù)同步轉(zhuǎn)換函數(shù)實(shí)現(xiàn)過(guò)程示意圖,轉(zhuǎn)換函數(shù)實(shí)現(xiàn)的是從V1.0到V2.0的轉(zhuǎn)換。其中,V1.0中模塊M包含N個(gè)數(shù)據(jù)塊,V2.0中模塊M包含N個(gè)數(shù)據(jù)塊,V2.0中塊1的內(nèi)容發(fā)生了變化,塊1的標(biāo)識(shí)為模塊M+塊1需要用轉(zhuǎn)換函數(shù)對(duì)其內(nèi)容進(jìn)行轉(zhuǎn)換。該轉(zhuǎn)換函數(shù)將塊1的內(nèi)容格式變換到V2.0定義的塊1的內(nèi)容格式,以保證V2.0軟件的應(yīng)用程序能夠理解,實(shí)現(xiàn)模塊M的動(dòng)態(tài)同步塊1從V1.0到V2.0的同步。
該轉(zhuǎn)換函數(shù)由V2.0的軟件開(kāi)發(fā)人員具體編寫(xiě)和掛接,該轉(zhuǎn)換函數(shù)只適用于模塊M中的塊1的轉(zhuǎn)換,且只適用在V1.0到V2.0之間的轉(zhuǎn)換,即任何一個(gè)轉(zhuǎn)換函數(shù)都是針對(duì)一個(gè)特定塊從特定版本升級(jí)到特定版本的。轉(zhuǎn)換函數(shù)的入口參數(shù)為塊1的結(jié)構(gòu)內(nèi)容,函數(shù)內(nèi)部經(jīng)過(guò)轉(zhuǎn)換出口參數(shù)攜帶V2.0定義的塊1的結(jié)構(gòu)內(nèi)容。函數(shù)原型可以定義為int Module-M-Block-1-Convert-From-V1.0-To-V2.0(V1.0塊1結(jié)構(gòu)*pBlock1,V2.0塊1結(jié)構(gòu)*pBlock2)參數(shù)說(shuō)明pBlock1指針指向轉(zhuǎn)換前的同步數(shù)據(jù)塊,pBlock2指針指向轉(zhuǎn)換后的同步數(shù)據(jù)塊。
新版本新增一個(gè)同步塊的轉(zhuǎn)換函數(shù),那么新申請(qǐng)一個(gè)數(shù)據(jù)結(jié)構(gòu)掛接到該同步塊的指針鏈表中。參考圖8,該圖為本發(fā)明關(guān)于轉(zhuǎn)換函數(shù)指針鏈表結(jié)構(gòu)示意圖。同步塊的指針鏈表采用排序的方式,這樣便于備板接收到同步數(shù)據(jù)塊后從前到后按順序執(zhí)行轉(zhuǎn)換函數(shù)。
由于升級(jí)前的版本是不確定的,在新的版本上為每個(gè)內(nèi)容有變化的同步塊掛接一個(gè)從升級(jí)前的版本到新版本的轉(zhuǎn)換函數(shù),轉(zhuǎn)換時(shí)采用相鄰版本逐一轉(zhuǎn)換的方式實(shí)現(xiàn),每個(gè)版本只需要考慮和上一個(gè)相鄰舊版本的數(shù)據(jù)塊轉(zhuǎn)換問(wèn)題。
版本逐一升級(jí)的方法為所有的軟件版本按照軟件版本發(fā)布順序排序,例如V1.0->V2.0->V3.0->V4.0->V5.0->V6.0,從一個(gè)舊版本升級(jí)到一個(gè)新版本不是一步到位,而是采用按照版本順序逐級(jí)升級(jí)上來(lái),轉(zhuǎn)換函數(shù)也不是直接調(diào)用一個(gè)從舊版本到新版本的轉(zhuǎn)換函數(shù),而是按照順序調(diào)用該同步塊在這兩個(gè)升級(jí)版本中間的所有轉(zhuǎn)換函數(shù)。例如塊X從V2.0同步到V6.0后,在V6.0的軟件中不是直接調(diào)用塊X的從V2.0到V6.0的轉(zhuǎn)換函數(shù),而是先調(diào)用塊X從V2.0到V3.0的轉(zhuǎn)換函數(shù),將轉(zhuǎn)換得到的同步塊內(nèi)容再經(jīng)過(guò)塊X從V3.0到V4.0的轉(zhuǎn)換函數(shù)轉(zhuǎn)換......直到最后調(diào)用塊X從V5.0到V6.0的轉(zhuǎn)換函數(shù)得到V6.0能夠理解的塊內(nèi)容。如果調(diào)用過(guò)程中某相鄰兩個(gè)版本沒(méi)有掛接轉(zhuǎn)換函數(shù)(如果相鄰兩個(gè)版本間塊X內(nèi)容沒(méi)有變化,這兩個(gè)版本就沒(méi)有掛接轉(zhuǎn)換函數(shù))則直接跳過(guò)繼續(xù)調(diào)用下一個(gè)轉(zhuǎn)換函數(shù)。
動(dòng)態(tài)數(shù)據(jù)塊同步過(guò)程中,備板接收到主板同步過(guò)來(lái)的數(shù)據(jù)塊,根據(jù)攜帶的模塊號(hào)+同步塊號(hào)找到備板上對(duì)應(yīng)的唯一的同步塊,從而找到該同步塊掛接的轉(zhuǎn)換函數(shù)鏈表,根據(jù)主板的版本號(hào)(舊版本號(hào))確定轉(zhuǎn)換函數(shù)鏈表第一個(gè)被轉(zhuǎn)換的函數(shù),然后按照順序從該函數(shù)開(kāi)始逐一執(zhí)行鏈表上的轉(zhuǎn)換函數(shù)直至末尾,最后一個(gè)轉(zhuǎn)換函數(shù)轉(zhuǎn)換完畢就可以得到新軟件版本上該同步塊內(nèi)容,新軟件能夠正確的理解此同步塊,將該內(nèi)容發(fā)送給應(yīng)用模塊使用。
如果新版本軟件中與舊版本軟件對(duì)應(yīng)的數(shù)據(jù)塊的內(nèi)容沒(méi)有發(fā)生變化,由于新版本軟件能夠識(shí)別該塊的內(nèi)容,所以,對(duì)該沒(méi)變化的數(shù)據(jù)塊內(nèi)容可以不設(shè)置轉(zhuǎn)換函數(shù);也可以針對(duì)該數(shù)據(jù)塊設(shè)置轉(zhuǎn)換函數(shù),只是該轉(zhuǎn)換函數(shù)不進(jìn)行任何轉(zhuǎn)換,其實(shí)現(xiàn)方式如上所述,同樣能夠?qū)崿F(xiàn)數(shù)據(jù)同步的目的。
參考圖5,該圖為本發(fā)明實(shí)施例的不中斷升級(jí)過(guò)程中數(shù)據(jù)同步方法的第二實(shí)施例流程圖,其主要過(guò)程如下步驟501在新版本軟件中設(shè)置與舊版本軟件中相同的動(dòng)態(tài)數(shù)據(jù)塊編號(hào),即保證新版本軟件中同一數(shù)據(jù)塊的標(biāo)識(shí)與舊版本軟件中的標(biāo)識(shí)相同,在此基礎(chǔ)上,如果新增數(shù)據(jù)塊,其標(biāo)識(shí)只能采用新增的編號(hào),以不影響舊版本中數(shù)據(jù)塊的編號(hào)。參考圖6,軟件V1.0中模塊M有N個(gè)同步數(shù)據(jù)塊,則在新版本軟件V2.0中模塊M中塊1對(duì)應(yīng)V1.0中模塊M中的塊1,V2.0中塊N對(duì)應(yīng)V1.0中的塊N,如果在V2.0的模塊M中增加一新的同步數(shù)據(jù)塊,其編號(hào)為N+1。如果出現(xiàn)塊標(biāo)識(shí)需要減少的情況,只要在塊編號(hào)上保留這些不再使用的編號(hào),功能上去掉減少的塊的功能即可。
步驟502建立新版本軟件與舊版本軟件動(dòng)態(tài)數(shù)據(jù)塊內(nèi)容轉(zhuǎn)換的函數(shù),并將動(dòng)態(tài)數(shù)據(jù)從未升級(jí)設(shè)備同步到已升級(jí)設(shè)備時(shí)調(diào)用該轉(zhuǎn)換函數(shù)。
具體實(shí)現(xiàn)如下參考圖7,該圖為本發(fā)明實(shí)施例二關(guān)于數(shù)據(jù)同步轉(zhuǎn)換函數(shù)實(shí)現(xiàn)過(guò)程示意圖,轉(zhuǎn)換函數(shù)實(shí)現(xiàn)的是從V1.0到V4.0的轉(zhuǎn)換。其中,V1.0中模塊M包含N個(gè)數(shù)據(jù)塊,V4.0中模塊M包含N個(gè)數(shù)據(jù)塊,V4.0中塊1的內(nèi)容發(fā)生了變化,塊1的標(biāo)識(shí)為模塊M+塊1,需要用轉(zhuǎn)換函數(shù)對(duì)其內(nèi)容進(jìn)行轉(zhuǎn)換。
當(dāng)模塊M中的塊1從V1.0同步到V4.0后,如果塊1的內(nèi)容發(fā)生了變化,則V4.0的軟件須有一個(gè)轉(zhuǎn)換函數(shù),由該轉(zhuǎn)換函數(shù)將塊1的內(nèi)容格式變換到V4.0定義的塊1的內(nèi)容格式,以保證V4.0軟件的應(yīng)用程序能夠理解,實(shí)現(xiàn)模塊M的動(dòng)態(tài)同步塊1從V1.0到V4.0的同步。
該轉(zhuǎn)換函數(shù)由V4.0的軟件開(kāi)發(fā)人員具體編寫(xiě)和掛接,該轉(zhuǎn)換函數(shù)只適用于模塊M中的塊1的轉(zhuǎn)換,且只適用在V1.0到V4.0之間的轉(zhuǎn)換,即任何一個(gè)轉(zhuǎn)換函數(shù)都是針對(duì)一個(gè)特定塊從特定版本升級(jí)到特定版本的。轉(zhuǎn)換函數(shù)的入口參數(shù)為塊1的結(jié)構(gòu)內(nèi)容,函數(shù)內(nèi)部經(jīng)過(guò)轉(zhuǎn)換出口參數(shù)攜帶V4.0定義的塊1的結(jié)構(gòu)內(nèi)容。函數(shù)原型可以定義為int Module-M-Block-1-Convert-From-V1.0-To-V4.0(V1.0塊1結(jié)構(gòu)*pBlock1,V4.0塊1結(jié)構(gòu)*pBlock4)參數(shù)說(shuō)明pBlock1指針指向轉(zhuǎn)換前的同步數(shù)據(jù)塊,pBlock4指針指向轉(zhuǎn)換后的同步數(shù)據(jù)塊。
新版本新增一個(gè)同步塊的轉(zhuǎn)換函數(shù),那么新申請(qǐng)一個(gè)數(shù)據(jù)結(jié)構(gòu)掛接到該同步塊的指針鏈表中。參考圖8,該圖為本發(fā)明關(guān)于轉(zhuǎn)換函數(shù)指針鏈表結(jié)構(gòu)示意圖。同步塊的指針鏈表采用排序的方式,這樣便于備板接收到同步數(shù)據(jù)塊后從前到后按順序執(zhí)行轉(zhuǎn)換函數(shù)。
本實(shí)施例是在新的版本上為每個(gè)內(nèi)容有變化的同步塊掛接一個(gè)從升級(jí)前的版本到新版本的轉(zhuǎn)換函數(shù),由于升級(jí)前的版本是不確定的,實(shí)際轉(zhuǎn)換時(shí)不是采用相鄰版本逐一轉(zhuǎn)換,而是以以前所有的舊版本為參考,每個(gè)同步塊對(duì)應(yīng)每個(gè)以前的舊版本都掛接一個(gè)轉(zhuǎn)換函數(shù),數(shù)據(jù)同步時(shí)備板對(duì)接收到的數(shù)據(jù)不需要相鄰版本逐一調(diào)用轉(zhuǎn)換函數(shù),而是調(diào)用唯一的從舊版本到新版本的轉(zhuǎn)換函數(shù)。此方案提高了數(shù)據(jù)同步的效率,但是新版本開(kāi)發(fā)時(shí)需要考慮和所有以前的舊版本相比同步數(shù)據(jù)塊的變化情況。
動(dòng)態(tài)數(shù)據(jù)塊同步過(guò)程中,備板接收到主板同步過(guò)來(lái)的數(shù)據(jù)塊,根據(jù)攜帶的模塊號(hào)+同步塊號(hào)找到備板上對(duì)應(yīng)的唯一的同步塊,從而找到該同步塊掛接的轉(zhuǎn)換函數(shù)鏈表,根據(jù)主板的版本號(hào)(舊版本號(hào))確定轉(zhuǎn)換函數(shù)鏈表,找到舊版本到新版本直接轉(zhuǎn)換的函數(shù),就可以得到新軟件版本上該同步塊內(nèi)容,新軟件能夠正確的理解此同步塊,將該內(nèi)容發(fā)送給應(yīng)用模塊使用。
本發(fā)明的實(shí)施例通過(guò)在新版本軟件中設(shè)置與舊軟件版本中相同的數(shù)據(jù)塊編號(hào),解決了新舊版本軟件中數(shù)據(jù)塊標(biāo)識(shí)一致性的問(wèn)題,并通過(guò)在新版本軟件中建立數(shù)據(jù)塊內(nèi)容轉(zhuǎn)換的函數(shù),保證了新版本軟件能夠識(shí)別同步過(guò)來(lái)的數(shù)據(jù)塊的內(nèi)容,實(shí)現(xiàn)數(shù)據(jù)在不同的軟件版本間的同步問(wèn)題,從而實(shí)現(xiàn)了升級(jí)過(guò)程不中斷業(yè)務(wù)的功能,滿足了運(yùn)營(yíng)商的迫切需求。升級(jí)不中斷業(yè)務(wù)功能的應(yīng)用將會(huì)極大提高運(yùn)營(yíng)商的服務(wù)質(zhì)量和運(yùn)營(yíng)可靠性。
如果新版本軟件中與舊版本軟件對(duì)應(yīng)的數(shù)據(jù)塊的內(nèi)容沒(méi)有發(fā)生變化,由于新版本軟件能夠識(shí)別該塊的內(nèi)容,所以,對(duì)該沒(méi)變化的數(shù)據(jù)塊內(nèi)容可以不設(shè)置轉(zhuǎn)換函數(shù);也可以針對(duì)該數(shù)據(jù)塊設(shè)置轉(zhuǎn)換函數(shù),只是該轉(zhuǎn)換函數(shù)不進(jìn)行任何轉(zhuǎn)換,其實(shí)現(xiàn)方式如上所述,同樣能夠?qū)崿F(xiàn)數(shù)據(jù)同步的目的。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)同步的方法,用于不中斷升級(jí)過(guò)程中數(shù)據(jù)的同步,其特征在于A、在新版本軟件中設(shè)置與舊版本軟件中相同的數(shù)據(jù)塊編號(hào);B、建立新版本軟件與舊版本軟件數(shù)據(jù)塊內(nèi)容轉(zhuǎn)換的轉(zhuǎn)換函數(shù),并在數(shù)據(jù)從未升級(jí)設(shè)備同步到已升級(jí)設(shè)備時(shí)調(diào)用該轉(zhuǎn)換函數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A進(jìn)一步包括在新版本軟件中增加新的數(shù)據(jù)塊時(shí),保留已有的數(shù)據(jù)塊編號(hào),新增的編號(hào)在已有編號(hào)的基礎(chǔ)之上增設(shè)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B進(jìn)一步包括所述調(diào)用的轉(zhuǎn)換函數(shù)實(shí)現(xiàn)新版本軟件與舊版本軟件中同一數(shù)據(jù)塊內(nèi)容的轉(zhuǎn)換。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B進(jìn)一步包括所述調(diào)用的轉(zhuǎn)換函數(shù)對(duì)數(shù)據(jù)塊內(nèi)容的轉(zhuǎn)換針對(duì)的是一個(gè)單個(gè)數(shù)據(jù)塊。
5.根據(jù)權(quán)利要求1所述的方法,其特這在于,所述步驟B進(jìn)一步包括所述調(diào)用的轉(zhuǎn)換函數(shù)對(duì)數(shù)據(jù)塊內(nèi)容的轉(zhuǎn)換針對(duì)的是內(nèi)容有變化的數(shù)據(jù)塊。
6.根據(jù)權(quán)利要求1或5所述的方法,其特征在于,所述步驟B進(jìn)一步包括所述調(diào)用的轉(zhuǎn)換函數(shù)對(duì)數(shù)據(jù)塊內(nèi)容的轉(zhuǎn)換是根據(jù)軟件版本順序逐級(jí)轉(zhuǎn)換。
7.根據(jù)權(quán)利要求1或5所述的方法,其特征在于,所述步驟B進(jìn)一步包括所述調(diào)用的轉(zhuǎn)換函數(shù)對(duì)數(shù)據(jù)塊內(nèi)容的轉(zhuǎn)換是從舊版本軟件直接轉(zhuǎn)換到新版本軟件。
8.根據(jù)權(quán)利要求1或5所述的方法,其特征在于,所述步驟B進(jìn)一步包括設(shè)置轉(zhuǎn)換函數(shù)時(shí),將所述轉(zhuǎn)換函數(shù)掛接到該轉(zhuǎn)換函數(shù)所轉(zhuǎn)換的數(shù)據(jù)塊的指針鏈表中。
9.根據(jù)權(quán)利要求1或5所述的方法,其特征在于,所述步驟B進(jìn)一步包括所述轉(zhuǎn)換函數(shù)進(jìn)行轉(zhuǎn)換時(shí),該轉(zhuǎn)換函數(shù)的入口參數(shù)為舊版本軟件所轉(zhuǎn)換數(shù)據(jù)塊的結(jié)構(gòu)內(nèi)容,出口參數(shù)中攜帶有新版本軟件定義的所轉(zhuǎn)換數(shù)據(jù)塊的結(jié)構(gòu)內(nèi)容。
全文摘要
本發(fā)明公開(kāi)了一種數(shù)據(jù)同步的方法,用于不中斷升級(jí)過(guò)程中動(dòng)態(tài)數(shù)據(jù)的同步,主要包括如下步驟A.在新版本軟件中設(shè)置與舊版本軟件中相同的動(dòng)態(tài)數(shù)據(jù)塊編號(hào);B.建立新版本軟件與舊版本軟件同步數(shù)據(jù)塊內(nèi)容轉(zhuǎn)換的函數(shù),并將動(dòng)態(tài)數(shù)據(jù)從未升級(jí)設(shè)備同步到已升級(jí)設(shè)備時(shí)調(diào)用該轉(zhuǎn)換函數(shù),完成動(dòng)態(tài)數(shù)據(jù)的同步。通過(guò)本發(fā)明所提供的方法,解決了新舊版本軟件中數(shù)據(jù)塊標(biāo)識(shí)一致性的問(wèn)題,并保證了新版本軟件能夠識(shí)別同步過(guò)來(lái)的數(shù)據(jù)塊的內(nèi)容,實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)在不同的軟件版本間的同步問(wèn)題,從而實(shí)現(xiàn)了升級(jí)過(guò)程不中斷業(yè)務(wù)的功能,滿足了運(yùn)營(yíng)商的迫切需求。升級(jí)不中斷業(yè)務(wù)功能的應(yīng)用將會(huì)極大提高運(yùn)營(yíng)商的服務(wù)質(zhì)量和運(yùn)營(yíng)可靠性。
文檔編號(hào)G06F9/445GK1976301SQ200610157240
公開(kāi)日2007年6月6日 申請(qǐng)日期2006年12月2日 優(yōu)先權(quán)日2006年12月2日
發(fā)明者程林 申請(qǐng)人:華為技術(shù)有限公司