一種分布式設(shè)備及軟件版本兼容性維護(hù)的方法、系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種分布式設(shè)備軟件版本兼容性維護(hù)的方法和系統(tǒng),涉及分布式設(shè)備領(lǐng)域。本發(fā)明公開(kāi)的方法包括:發(fā)布復(fù)合版本軟件包文件,所述復(fù)合版本軟件包文件中攜帶分布式設(shè)備的主控板卡以及所有業(yè)務(wù)板卡的軟件文件;分布式設(shè)備的主控板卡讀取所述復(fù)合版本軟件包文件,升級(jí)本分布式設(shè)備的主控板卡以及所有業(yè)務(wù)板卡的軟件版本。本發(fā)明還公開(kāi)了一種分布式設(shè)備軟件版本兼容性維護(hù)的系統(tǒng)。本申請(qǐng)技術(shù)方案采用統(tǒng)一存儲(chǔ),統(tǒng)一升級(jí),自動(dòng)同步的方式快速、有效的保證各類型板卡軟件版本的兼容性。
【專利說(shuō)明】一種分布式設(shè)備及軟件版本兼容性維護(hù)的方法、系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式設(shè)備,特別涉及一種通用高效的軟件版本兼容性維護(hù)的管理方案。
【背景技術(shù)】
[0002]目前市場(chǎng)上的分布式設(shè)備主要為機(jī)框式設(shè)備,由主控板卡與業(yè)務(wù)板卡組成,業(yè)務(wù)板的數(shù)目較多,并且板卡類型不一致。一般機(jī)框式設(shè)備都支持不同類型的業(yè)務(wù)板混插,但是各種類型的業(yè)務(wù)板卡和主控板卡上不可能使用完全相同的軟件版本,故在一個(gè)分布式設(shè)備適用幾十種甚至上百種不同的系統(tǒng)軟件(即使是同一種板卡也會(huì)適用各種不同版本號(hào)的軟件版本)。因?yàn)橹骺匕宄袚?dān)著對(duì)整個(gè)設(shè)備與各個(gè)業(yè)務(wù)板的配置與管理功能,故要求各個(gè)板卡的系統(tǒng)軟件間可以正確的通信,也就是各個(gè)板卡上的版本要求相互兼容,目前這部分工作需要維護(hù)人員自己手動(dòng)操作完成,當(dāng)主控板卡和業(yè)務(wù)板卡不兼容時(shí),通過(guò)給主控板卡或者業(yè)務(wù)板卡升級(jí)更新版本來(lái)保證,具體采用如下兩種方案。
[0003]方案1:維護(hù)人員手工完成,當(dāng)發(fā)生不兼容時(shí),維護(hù)人員通過(guò)自己選擇可以兼容的軟件對(duì)主控板卡或者業(yè)務(wù)板卡升級(jí),從而達(dá)到保持設(shè)備兼容性的目的。
[0004]方案2:通過(guò)網(wǎng)管軟件將需要升級(jí)的各種單板文件(可兼容的)打包成軟件包,下載到網(wǎng)絡(luò)中存在的專用存儲(chǔ)單板上,之后通過(guò)該專用存儲(chǔ)單板對(duì)設(shè)備進(jìn)行升級(jí)。
[0005]很容易看出,采用方案I具有如下缺點(diǎn):
[0006]版本維護(hù)需要網(wǎng)管人員人工保證,需要對(duì)各個(gè)板卡進(jìn)行多次升級(jí)。
[0007]而采用方案2則存在如下缺點(diǎn):
[0008]同方案1,打包的文件由網(wǎng)管人員手工打包,各個(gè)版本的兼容性需要人工來(lái)判斷,各種版本數(shù)目眾多,不易維護(hù),容易出錯(cuò)。
[0009]需要一個(gè)專用的存儲(chǔ)單板,且需要占用分布式設(shè)備上槽位,降低設(shè)備能力。
[0010]綜上所述,目前分布式設(shè)備存在各種版本數(shù)目眾多,不易管理,并且版本的兼容性依賴人工觀察,容易出錯(cuò)。
【發(fā)明內(nèi)容】
[0011]本發(fā)明所要解決的技術(shù)問(wèn)題是,提供一種分布式設(shè)備及軟件版本兼容性維護(hù)的方法、系統(tǒng),以確保各類型板卡軟件版本之間的兼容性。
[0012]為了解決上述技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種分布式設(shè)備軟件版本兼容性維護(hù)的方法,該方法包括:
[0013]發(fā)布復(fù)合版本軟件包文件,所述復(fù)合版本軟件包文件中攜帶分布式設(shè)備的主控板卡以及一個(gè)或多個(gè)業(yè)務(wù)板卡的軟件文件,其中,所述分布式設(shè)備的主控板卡與業(yè)務(wù)板卡的軟件文件之間相互兼容;
[0014]分布式設(shè)備的主控板卡讀取所述復(fù)合版本軟件包文件,升級(jí)本分布式設(shè)備的主控板卡以及所有業(yè)務(wù)板卡的軟件版本。[0015]可選地,上述方法中,所述復(fù)合版本軟件包文件包括軟件包文件頭和軟件包文件體,所述軟件包文件體由分布式設(shè)備的主控板卡以及攜帶的業(yè)務(wù)板卡的軟件文件構(gòu)成。
[0016]可選地,上述方法中,所述業(yè)務(wù)板卡的軟件文件包括軟件文件頭和軟件文件體,其中,所述軟件文件頭包括如下信息:
[0017]文件標(biāo)識(shí),用于標(biāo)識(shí)此文件對(duì)應(yīng)的分布式設(shè)備的版本文件;
[0018]設(shè)備類型,用于標(biāo)識(shí)軟件版本文件適用的業(yè)務(wù)板卡類型;
[0019]版本文件類別,用于標(biāo)識(shí)系統(tǒng)軟件版本以及軟件包版本;
[0020]大版本號(hào),用于指示分布式設(shè)備中各板卡的軟件文件之間的兼容性;
[0021]小版本號(hào),規(guī)劃發(fā)布或測(cè)試版本的最小粒度。
[0022]可選地,上述方法中,所述分布式設(shè)備的主控板卡讀取所述復(fù)合版本軟件包文件后,一次性升級(jí)本主控板卡和業(yè)務(wù)板卡的軟件版本。
[0023]可選地,上述方法中,分布式設(shè)備的主控板卡讀取所述復(fù)合版本軟件包文件,升級(jí)本分布式設(shè)備的主控板卡以及業(yè)務(wù)板卡的軟件版本的過(guò)程如下:
[0024]所述分布式設(shè)備的主控板卡將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播;
[0025]所述分布式設(shè)備的業(yè)務(wù)板卡接收所廣播的軟件文件,根據(jù)所述軟件文件中的設(shè)備類型查找適合自身板卡類型的軟件文件,并將查找到的軟件文件保存到本地。
[0026]可選地,上述方法還包括:
[0027]所述分布式設(shè)備上業(yè)務(wù)板卡通過(guò)所述復(fù)合版本軟件包文件中本板卡的軟件文件頭信息自動(dòng)檢測(cè)自身版本和主控板卡的主控版本的兼容性
[0028]可選地,分布式設(shè)備將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播之前,上述方法還包括:
[0029]所述分布式設(shè)備的主控板卡發(fā)送升級(jí)開(kāi)始報(bào)文給業(yè)務(wù)板卡,該升級(jí)開(kāi)始報(bào)文中至少攜帶待升級(jí)文件大小和主控板支持的報(bào)文單幀長(zhǎng)度;
[0030]業(yè)務(wù)板卡接收到所述升級(jí)開(kāi)始報(bào)文后,回復(fù)響應(yīng)報(bào)文,該響應(yīng)報(bào)文中攜帶本業(yè)務(wù)板卡協(xié)商后的報(bào)文單幀長(zhǎng)度和發(fā)送速率信息;
[0031]主控板卡接收各個(gè)業(yè)務(wù)板卡的響應(yīng)報(bào)文,從中選擇報(bào)文單幀長(zhǎng)度的最小值以及發(fā)送速率的最小值,按照所選擇的報(bào)文單幀長(zhǎng)度的最小值對(duì)所述業(yè)務(wù)板卡的軟件文件進(jìn)行分片,并按照所選擇的發(fā)送速率的最小值依次廣播各分片。
[0032]可選地,上述方法中,將所述復(fù)合版本軟件包文件保存在閃存(CF)卡或者文件傳輸協(xié)議/簡(jiǎn)單文件傳輸協(xié)議(FTP/TFTP)服務(wù)器上;
[0033]所述分布式設(shè)備的主控板卡從CF卡或者FTP/TFTP服務(wù)器上讀取所述復(fù)合版本軟件包文件。
[0034]本發(fā)明還公開(kāi)了一種分布式設(shè)備,該設(shè)備包括一個(gè)主控板卡和兩個(gè)或兩個(gè)以上的業(yè)務(wù)板卡,其中:
[0035]主控板卡,讀取復(fù)合版本軟件包文件,升級(jí)本主控板卡的軟件版本,以及將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件下發(fā)給業(yè)務(wù)板卡;
[0036]業(yè)務(wù)板卡,根據(jù)所述主控板卡下發(fā)的軟件文件升級(jí)本業(yè)務(wù)板卡的軟件版本。
[0037]可選地,上述設(shè)備中,所述主控板卡,將述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件一次性下發(fā)以實(shí)現(xiàn)業(yè)務(wù)板卡的軟件版本的升級(jí)。
[0038]可選地,上述設(shè)備中,所述主控板卡,將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播;
[0039]所述業(yè)務(wù)板卡,接收所廣播的軟件文件,從所述軟件文件中查找適合自身板卡類型的軟件文件,并將查找到的軟件文件保存到本地以實(shí)現(xiàn)軟件版本的升級(jí)。
[0040]可選地,上述設(shè)備中,所述業(yè)務(wù)板卡,還通過(guò)所述復(fù)合版本軟件包文件中本板卡的軟件文件頭信息自動(dòng)檢測(cè)自身版本和主控板卡的主控版本的兼容性。
[0041]可選地,上述設(shè)備中,所述主控板卡,將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播之前,還發(fā)送升級(jí)開(kāi)始報(bào)文給業(yè)務(wù)板卡,該升級(jí)開(kāi)始報(bào)文中至少攜帶待升級(jí)文件大小和主控板支持的報(bào)文單幀長(zhǎng)度,以及接收各個(gè)業(yè)務(wù)板卡的響應(yīng)報(bào)文,從中選擇報(bào)文單幀長(zhǎng)度的最小值以及發(fā)送速率的最小值,按照所選擇的報(bào)文單幀長(zhǎng)度的最小值對(duì)所述業(yè)務(wù)板卡的軟件文件進(jìn)行分片,并按照所選擇的發(fā)送速率的最小值依次廣播各分片。
[0042]所述業(yè)務(wù)板卡,接收所述升級(jí)開(kāi)始報(bào)文,并回復(fù)響應(yīng)報(bào)文,該響應(yīng)報(bào)文中攜帶本業(yè)務(wù)板卡協(xié)商后的報(bào)文單幀長(zhǎng)度和發(fā)送速率信息。
[0043]本發(fā)明還公開(kāi)了一種分布式設(shè)備軟件版本兼容性維護(hù)的系統(tǒng),包括上述的分布式設(shè)備,以及:
[0044]版本發(fā)布單元,發(fā)布復(fù)合版本軟件包文件,所述復(fù)合版本軟件包文件中攜帶分布式設(shè)備的主控板卡以及一個(gè)或多個(gè)業(yè)務(wù)板卡的軟件文件,其中,所述分布式設(shè)備的主控板卡與業(yè)務(wù)板卡的軟件文件之間相互兼容。
[0045]本申請(qǐng)技術(shù)方案提出了一種軟件版本兼容性維護(hù)的管理系統(tǒng),采用統(tǒng)一存儲(chǔ),統(tǒng)一升級(jí),自動(dòng)同步的方式快速、有效的保證各類型板卡軟件版本的兼容性。
【專利附圖】
【附圖說(shuō)明】
[0046]圖1為本實(shí)施例中軟件包文件的結(jié)構(gòu)示意圖;
[0047]圖2為本實(shí)施例中版本文件結(jié)構(gòu)示意圖;
[0048]圖3為本實(shí)施例中設(shè)備版本升級(jí)流程圖;
[0049]圖4為本實(shí)施例中業(yè)務(wù)板版本自動(dòng)更新流程圖。
【具體實(shí)施方式】
[0050]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文將結(jié)合附圖對(duì)本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例和實(shí)施例中的特征可以任意相互組合。
[0051]實(shí)施例1
[0052]本案發(fā)明人考慮到,分布式設(shè)備一般涉及到多種不同類型的業(yè)務(wù)板卡,每一種類型的業(yè)務(wù)板卡都有自己適用的軟件版本,并且該軟件版本隨著時(shí)間的發(fā)展會(huì)有許多不同版本發(fā)布,一般通過(guò)更加細(xì)致的小版本號(hào)來(lái)標(biāo)識(shí),這樣造成分布式設(shè)備適用的軟件版本眾多,不易管理。因此,發(fā)明人提出一種新的版本發(fā)布方式,采用軟件打包的方法,將該分布式設(shè)備上所有板卡(包括主控板卡和業(yè)務(wù)板卡)相關(guān)的軟件打包為一個(gè)整體的復(fù)合版本文件,該復(fù)合版本文件中的軟件版本是相互兼容的,這樣的復(fù)合版本文件稱為復(fù)合版本軟件包文件。采用軟件包版本文件的發(fā)布方式可以有效的減少版本的數(shù)目,保證軟件包內(nèi)各個(gè)業(yè)務(wù)板卡版本的兼容性。
[0053]基于上述思想,本實(shí)施例提出一種分布式設(shè)備上高效靈活的分布式設(shè)備軟件版本兼容性維護(hù)方法,采用統(tǒng)一存儲(chǔ),統(tǒng)一升級(jí),自動(dòng)同步的方式來(lái)簡(jiǎn)化分布式設(shè)備上版本升級(jí)和維護(hù)的工作,具體地,該方法包括如下操作:
[0054]步驟一,發(fā)布復(fù)合版本軟件包文件,即在軟件版本文件發(fā)布時(shí)候?qū)⒃摲植际皆O(shè)備上所有板卡(包括主控板卡和業(yè)務(wù)板卡)相關(guān)的版本兼容的軟件打包為整體發(fā)布。需要說(shuō)明的是,初次發(fā)布時(shí)需要包括所有板卡的軟件打包整體發(fā)布,之后如果存在某單板要發(fā)布補(bǔ)丁版本,建議使用待發(fā)布的補(bǔ)丁版本替換掉上一版復(fù)合版本軟件包中的該單板的版本,以完成新的發(fā)布。
[0055]具體地,復(fù)合版本軟件包文件由軟件包文件頭和軟件包文件體兩部分組成,如圖1所示。其中,軟件包文件體部分由各個(gè)板卡(包括主控板卡和業(yè)務(wù)板卡)的軟件文件順序串接構(gòu)成。而軟件文件如圖2所示,包括軟件文件頭和軟件文件體。文件頭的長(zhǎng)度固定,軟件包的文件頭與軟件文件的文件頭結(jié)構(gòu)一致,具體包含如下各類信息。
[0056]文件標(biāo)識(shí):標(biāo)識(shí)此文件是否為該分布式設(shè)備的發(fā)布版本文件,可設(shè)置為固定的字符串。
[0057]設(shè)備類型:軟件版本文件適用的業(yè)務(wù)板卡類型,軟件包的設(shè)備類型可填寫適用的分布式設(shè)備的類型。
[0058]版本文件類別:標(biāo)識(shí)系統(tǒng)軟件版本,以及標(biāo)識(shí)軟件包版本,此信息可擴(kuò)展。例如:某板卡中存在可升級(jí)的固件版本,故可擴(kuò)展新的枚舉值標(biāo)識(shí)該版本文件為固件版本文件。
[0059]大版本號(hào):相同的大版本號(hào)表示軟件架構(gòu)基本沒(méi)有發(fā)生變化,即各業(yè)務(wù)板卡的軟件文件的大版本號(hào)相同時(shí)表示復(fù)合版本軟件包文件中的各軟件文件之間相互兼容。一般,軟件包的大版本號(hào)應(yīng)與所包含的主控板A板版本的大版本號(hào)相同。
[0060]小版本號(hào):規(guī)劃發(fā)布或測(cè)試版本的最小粒度。軟件包的小版本號(hào)應(yīng)與所包含的主控板A板版本的小版本號(hào)相同。
[0061]其他版本號(hào):更細(xì)致的軟件版本的劃分,可擴(kuò)展。
[0062]年月日:軟件版本編譯的時(shí)間。
[0063]文件體長(zhǎng)度:不包括文件頭,該版本文件剩余的長(zhǎng)度,單位為字節(jié)。
[0064]文件校檢碼:包括文件頭和文件體的校檢碼,通常采用CRC校驗(yàn)。
[0065]步驟二、將復(fù)合版本軟件包文件保存在CF卡或者FTP/TFTP服務(wù)器上;
[0066]其中,將復(fù)合版本文件保存在CF卡上時(shí),可以將CF卡在主控板卡上以插卡式方式管理,從而保證快速讀取和容易更換。
[0067]步驟三、主控板卡讀取復(fù)合版本軟件包文件,升級(jí)所有板卡(包括主控板卡和業(yè)務(wù)板卡)的軟件版本;
[0068]具體地,可一次性升級(jí)所有板卡的軟件版本,這樣可以大大縮短升級(jí)時(shí)間,且保證各種板卡上軟件版本的兼容性。
[0069]需要說(shuō)明的是,分布式設(shè)備上所有單板還可以自動(dòng)檢測(cè)自身版本和主控版本的兼容性,如果不兼容則主動(dòng)使用軟件包更新自身軟件版本。
[0070]上述方法中提到的軟件版本為各個(gè)板卡上支持升級(jí)的系統(tǒng)軟件版本,下面以主控板卡A,業(yè)務(wù)板卡B、C、D為例,詳細(xì)闡述上述分布式設(shè)備軟件版本兼容性維護(hù)的過(guò)程,該過(guò)程如圖3所不。
[0071]主控板卡A和業(yè)務(wù)板卡B、C處于正常和通信狀態(tài)。
[0072]軟件包文件通過(guò)CF卡提供或者FTP/TFTP服務(wù)器提供,主控板卡A可以訪問(wèn)。
[0073]主控板卡A某上層應(yīng)用調(diào)用整機(jī)設(shè)備版本升級(jí)函數(shù),整機(jī)設(shè)備版本升級(jí)函數(shù)的參數(shù)包括:軟件包名稱、軟件包所處位置(如果是CF卡指明設(shè)備類型,如果FTP/TFTP服務(wù)器則指明IP地址)、用戶名、密碼等,以保證主控板卡A可以成功訪問(wèn)。
[0074]主控板卡A的版本升級(jí)任務(wù)接受到上層應(yīng)用的整機(jī)升級(jí)請(qǐng)求,判斷上述參數(shù)的合法性,不合法則返回錯(cuò)誤給上層應(yīng)用。參數(shù)合法則獲取待升級(jí)的版本文件的大小。需要指明的是,該大小是指軟件包的大小。
[0075]主控板卡A的版本升級(jí)任務(wù)獲取到待升級(jí)文件大小后發(fā)送升級(jí)開(kāi)始報(bào)文給所有業(yè)務(wù)板卡,該升級(jí)開(kāi)始報(bào)文攜帶信息包括:待升級(jí)文件大小,主控板A支持的報(bào)文單幀長(zhǎng)度。
[0076]業(yè)務(wù)板卡B、C接收到升級(jí)開(kāi)始報(bào)文后,回復(fù)ACK報(bào)文,攜帶協(xié)商后的報(bào)文單幀長(zhǎng)度(自身支持的單幀長(zhǎng)度和主控板A支持的單幀長(zhǎng)度,選較小值作為協(xié)商后的結(jié)果),發(fā)送速率
等信息。
[0077]主控板卡A接收到各個(gè)板卡的ACK報(bào)文,從中選擇單幀長(zhǎng)度較小,發(fā)送速率較慢的值作為本次升級(jí)協(xié)商后的參數(shù)使用。
[0078]主控板卡A的版本升級(jí)任務(wù)按照協(xié)商后的參數(shù)發(fā)送版本文件到各個(gè)業(yè)務(wù)板卡。這個(gè)發(fā)送過(guò)程是廣播的過(guò)程,版本文件一般都比較大,需要多次傳送,采用目前常用的分片方式,完成版本文件的發(fā)送。在傳送的過(guò)程中可以將已傳送文件的大小通知上層應(yīng)用以表示目前升級(jí)進(jìn)度。需要說(shuō)明的是,如果軟件包通過(guò)CF卡提供,則主控板卡A自身升級(jí)不需要真正的傳送版本文件。
[0079]版本文件發(fā)送完畢后,主控板卡A的版本升級(jí)任務(wù)發(fā)送升級(jí)結(jié)束報(bào)文到業(yè)務(wù)版,該升級(jí)結(jié)束報(bào)文攜帶的信息包括:版本文件的校驗(yàn)碼,版本文件的總長(zhǎng)度,發(fā)送版本文件的總幀數(shù)。
[0080]業(yè)務(wù)板卡B、C的版本升級(jí)任務(wù)接收到升級(jí)結(jié)束報(bào)文后,驗(yàn)證自己接收的軟件包文件是否合法,不合法則返回錯(cuò)誤,合法則從軟件包中查找適合自身板卡類型版本文件,如果軟件包中不存在適合該板卡的版本文件則返回錯(cuò)誤,存在則保存該版本文件到業(yè)務(wù)板本地,返回成功。查找適合自身板卡類型的版本文件的過(guò)程如下:
[0081]1,讀取文件的指針指向文件開(kāi)始;
[0082]2,如果指針為空,則返回空,非空讀取文件頭,判斷文件頭的版本文件類別。如果版本文件類別為軟件包,則跳轉(zhuǎn)到3,為版本文件,則跳轉(zhuǎn)到4 ;
[0083]3,版本文件類別為軟件包,讀取文件指針向下跳轉(zhuǎn)文件頭長(zhǎng)度,指向下一個(gè)文件頭的開(kāi)始,跳轉(zhuǎn)到2 ;
[0084]4,版本文件類別為版本文件,判斷文件頭中設(shè)備類型是否符合自身的板卡類型,如果符合,則跳轉(zhuǎn)到5,不符合,則讀取文件指針向下跳轉(zhuǎn)文件頭長(zhǎng)度加上文件頭中的文件體長(zhǎng)度,指向下一個(gè)文件頭的開(kāi)始,跳轉(zhuǎn)到2 ;
[0085]5,讀取文件的指針指向符合設(shè)備自身板卡類型的版本文件的開(kāi)始,返回該指針。[0086]需要說(shuō)明的是,各個(gè)板卡接收到軟件包的版本文件可以有兩種選擇,選擇一:待版本文件傳輸完畢后,判斷其合法性和是否存在適合自身板卡類型的版本文件,這樣因?yàn)檐浖^大,故需要板卡自身有較大的內(nèi)存,可以暫時(shí)保存軟件包文件;選擇二:版本文件傳輸過(guò)程中,只要獲取到需要的文件內(nèi)容,就直接判斷是否是適合自身板卡類型的版本文件,不適合的文件直接丟棄不保存,這樣可以減少對(duì)板卡內(nèi)存的要求。
[0087]主控板卡A的版本升級(jí)任務(wù)接收到各個(gè)板卡升級(jí)結(jié)束的ACK報(bào)文后將各個(gè)板卡的升級(jí)結(jié)果返回給上層應(yīng)用,本次升級(jí)結(jié)束。
[0088]需要說(shuō)明的是,上述分布式設(shè)備涉及到2種業(yè)務(wù)板卡,本申請(qǐng)支持使用軟件包文件對(duì)指定槽位、指定類型的板卡或者對(duì)整機(jī)全部板卡進(jìn)行升級(jí)。指定槽位和指定類型的板卡升級(jí)方式目前大多數(shù)設(shè)備都支持,本文中不在詳細(xì)敘述。
[0089]另外,在上述方法的基礎(chǔ)上,還可能發(fā)生版本升級(jí)更新的情況,故優(yōu)選方案提出,分布式設(shè)備在引導(dǎo)程序加載完畢檢驗(yàn)自身系統(tǒng)軟件的版本和軟件包版本是否兼容,不兼容則直接發(fā)起版本更新功能。更新成功后加載更新后的系統(tǒng)軟件,這樣當(dāng)該板插入一個(gè)新的分布式設(shè)備上,主控板卡啟動(dòng)就可以保證和其他業(yè)務(wù)板卡版本間的兼容性,簡(jiǎn)化了版本的維護(hù)工作。下面以主控板卡A和業(yè)務(wù)板卡B為例,詳細(xì)闡述版本更新的過(guò)程,該過(guò)程如圖4所示。
[0090]主控板卡A處于正常運(yùn)行狀態(tài)。主控板卡A中的版本文件需保證和軟件包中的主控板卡A的版本文件一致。
[0091]軟件包文件通過(guò)CF卡提供或者FTP/TFTP服務(wù)器提供,在主控盤上可以訪問(wèn)。
[0092]業(yè)務(wù)板卡B上電啟動(dòng),開(kāi)始加載引導(dǎo)程序。
[0093]業(yè)務(wù)板卡B弓I導(dǎo)程序加載完畢后,則向主控板卡A發(fā)送版本協(xié)商請(qǐng)求報(bào)文,并等待應(yīng)答,超時(shí)無(wú)應(yīng)答則重發(fā)。版本協(xié)商請(qǐng)求報(bào)文攜帶參數(shù):板卡類型,版本詳細(xì)信息。版本的詳細(xì)信息包括版本文件頭中的大版本號(hào)、小版本號(hào)。
[0094]主控板卡A接收到版本協(xié)商請(qǐng)求后,從軟件包中獲取適合該業(yè)務(wù)板卡的版本文件頭,獲取過(guò)程同之上的獲取過(guò)程,如果獲取失敗,則返回?zé)o相應(yīng)的版本文件,獲取成功則將該版本文件的版本號(hào)信息和協(xié)商請(qǐng)求報(bào)文中的版本號(hào)信息相比較,將結(jié)果通過(guò)協(xié)商請(qǐng)求ACK報(bào)文返回給業(yè)務(wù)板卡,協(xié)商結(jié)果支持三種:一致,不一致,無(wú)相應(yīng)的版本文件,本申請(qǐng)中的兼容性通過(guò)是否一致來(lái)判斷,如果大版本號(hào)相同則認(rèn)為一致,是兼容的。這里的處理是可選的,也可以大版本號(hào)和小版本號(hào)都相同,才認(rèn)為是一致,為兼容的。
[0095]業(yè)務(wù)板卡B接收到版本協(xié)商請(qǐng)求ACK報(bào)文,如果協(xié)商結(jié)果為一致則退出版本更新流程,直接加載板卡本地的系統(tǒng)軟件。如果協(xié)商結(jié)果不一致則開(kāi)始版本更新流程,如果無(wú)相應(yīng)的版本文件則退出版本協(xié)商過(guò)程,直接加載本地的軟件版本。
[0096]業(yè)務(wù)板卡B發(fā)送版本文件請(qǐng)求報(bào)文,并等待應(yīng)答,超時(shí)無(wú)應(yīng)答則認(rèn)為本次自動(dòng)更新版本失敗,重新進(jìn)入版本協(xié)商過(guò)程。版本文件請(qǐng)求報(bào)文攜帶參數(shù):板卡類型,最大支持的單幀長(zhǎng)度,已完成的文件長(zhǎng)度。
[0097]主控板卡A接收到版本文件請(qǐng)求報(bào)文,通過(guò)已完成的文件長(zhǎng)度,從軟件包中獲取相應(yīng)位置的版本文件,并按照版本文件請(qǐng)求報(bào)文中支持的單幀長(zhǎng)度發(fā)送ACK報(bào)文給業(yè)務(wù)板卡。ACK報(bào)文中攜帶參數(shù):版本文件數(shù)據(jù),版本文件數(shù)據(jù)長(zhǎng)度,是否還有分片標(biāo)記。
[0098]業(yè)務(wù)板卡B接收到版本文件ACK報(bào)文,保存該版本文件,如果還有分片則再次發(fā)送版本文件請(qǐng)求報(bào)文,如果無(wú)分片則表示版本獲取完畢。
[0099]業(yè)務(wù)板卡B接收版本文件完畢后,驗(yàn)證該版本文件的合法性,如果不合法則認(rèn)為本此版本更新失敗,重新進(jìn)入版本協(xié)商過(guò)程。合法則將該版本文件保存本地。
[0100]業(yè)務(wù)板卡B加載本地保存的版本文件。
[0101]如果版本更新3次(更新最大次數(shù))都失敗,則不再重新進(jìn)入版本協(xié)商過(guò)程,直接加載本地的軟件版本。
[0102]實(shí)施例2
[0103]本實(shí)施例提供一種分布式設(shè)備軟件版本兼容性維護(hù)的系統(tǒng),至少包括版本發(fā)布單兀和分布式設(shè)備。
[0104]版本發(fā)布單元,發(fā)布復(fù)合版本軟件包文件,該復(fù)合版本軟件包文件中攜帶分布式設(shè)備的主控板卡以及所有業(yè)務(wù)板卡的軟件文件,其中,分布式設(shè)備的主控板卡和各個(gè)業(yè)務(wù)板卡的軟件文件之間相互兼容。
[0105]本實(shí)施例中,復(fù)合版本軟件包文件包括軟件包文件頭和軟件包文件體,所述軟件包文件體由分布式設(shè)備的主控板卡以及所有業(yè)務(wù)板卡的軟件文件順序串接構(gòu)成。而業(yè)務(wù)板卡的軟件文件包括軟件文件頭和軟件文件體,其中,軟件文件頭至少包括如下信息:
[0106]文件標(biāo)識(shí),用于標(biāo)識(shí)此文件對(duì)應(yīng)的分布式設(shè)備的版本文件;
[0107]設(shè)備類型,用于標(biāo)識(shí)軟件版本文件適用的業(yè)務(wù)板卡類型;
[0108]版本文件類別,用于標(biāo)識(shí)系統(tǒng)軟件版本以及軟件包版本;
[0109]大版本號(hào),用于指示分布式設(shè)備中各板卡的軟件文件之間的兼容性;
[0110]小版本號(hào),規(guī)劃發(fā)布或測(cè)試版本的最小粒度。
[0111]在上述軟件文件頭所包括的信息的基礎(chǔ)上,還可以包括如下信息:
[0112]年月日,表示軟件版本編譯的時(shí)間;
[0113]文件體長(zhǎng)度,表示除文件頭以外,該版本文件剩余的長(zhǎng)度;
[0114]文件校檢碼,包括文件頭和文件體的校檢碼。
[0115]還要說(shuō)明的是,上述版本發(fā)布單元可以將復(fù)合版本軟件包文件保存在CF卡或者FTP/TFTP服務(wù)器上,這樣分布式設(shè)備的主控板卡從CF卡或者FTP/TFTP服務(wù)器上讀取復(fù)合版本軟件包文件即可。
[0116]分布式設(shè)備,讀取版本發(fā)布單元所發(fā)布的復(fù)合版本軟件包文件,升級(jí)本分布式設(shè)備中主控板卡以及所有業(yè)務(wù)板卡的軟件版本。
[0117]本實(shí)施例中,分布式設(shè)備分為一個(gè)主控板卡和兩個(gè)或兩個(gè)以上的業(yè)務(wù)板卡。
[0118]主控板卡,讀取復(fù)合版本軟件包文件,升級(jí)本主控板卡的軟件版本,以及將復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件下發(fā)給業(yè)務(wù)板卡;
[0119]其中,上述主控板卡,將復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播。
[0120]業(yè)務(wù)板卡,根據(jù)所述主控板卡下發(fā)的軟件文件升級(jí)本業(yè)務(wù)板卡的軟件版本。
[0121]而業(yè)務(wù)板卡,接收所廣播的軟件文件后,從軟件文件中查找適合自身板卡類型的軟件文件,并將查找到的軟件文件保存到本地以實(shí)現(xiàn)軟件版本的升級(jí)。
[0122]具體地,主控板卡,將復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播之前,還發(fā)送升級(jí)開(kāi)始報(bào)文給業(yè)務(wù)板卡,該升級(jí)開(kāi)始報(bào)文中至少攜帶待升級(jí)文件大小和主控板支持的報(bào)文單幀長(zhǎng)度,以及接收各個(gè)業(yè)務(wù)板卡的響應(yīng)報(bào)文,從中選擇報(bào)文單幀長(zhǎng)度的最小值以及發(fā)送速率的最小值作為本次升級(jí)協(xié)商后的參數(shù)使用,即按照所選擇的報(bào)文單幀長(zhǎng)度的最小值對(duì)所述業(yè)務(wù)板卡的軟件文件進(jìn)行分片,并按照所選擇的發(fā)送速率的最小值依次廣播各分片。
[0123]對(duì)應(yīng)的,業(yè)務(wù)板卡,接收升級(jí)開(kāi)始報(bào)文,并回復(fù)響應(yīng)報(bào)文,該響應(yīng)報(bào)文中攜帶本業(yè)務(wù)板卡協(xié)商后的報(bào)文單幀長(zhǎng)度和發(fā)送速率信息。
[0124]另外,業(yè)務(wù)板卡還可以通過(guò)復(fù)合版本軟件包文件中本板卡的軟件文件頭信息自動(dòng)檢測(cè)自身版本和主控板卡的主控版本的兼容性。
[0125]而主控板卡和各業(yè)務(wù)板卡之間實(shí)現(xiàn)軟件版本兼升級(jí)的具體過(guò)程可參見(jiàn)上述實(shí)施例I中相應(yīng)的內(nèi)容,在此不再贅述。
[0126]從上述實(shí)施例可以看出,本申請(qǐng)技術(shù)方案提出了一種復(fù)合版本文件的發(fā)布方式,可以有效的減少發(fā)布版本的數(shù)量,方便了版本文件的存儲(chǔ)和管理,并且基于復(fù)合版本文件提供整機(jī)升級(jí)的新功能,可以一次性的升級(jí)所有業(yè)務(wù)板卡(包括主控板卡和所有業(yè)務(wù)板卡)的軟件版本,縮短升級(jí)時(shí)間,較好的保證了各種板卡上的軟件版本的兼容性。另在業(yè)務(wù)板卡上增加了版本自動(dòng)更新功能,業(yè)務(wù)板在啟動(dòng)過(guò)程中會(huì)自動(dòng)檢測(cè)自身板卡和主控版本的兼容性,如果不兼容則主動(dòng)使用復(fù)合版本文件更新自身的軟件版本,有效的簡(jiǎn)化了版本管理的升級(jí)和維護(hù)工作。
[0127]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本申請(qǐng)不限制于任何特定形式的硬件和軟件的結(jié)合。
[0128]以上所述,僅為本發(fā)明的較佳實(shí)例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種分布式設(shè)備軟件版本兼容性維護(hù)的方法,其特征在于,該方法包括:發(fā)布復(fù)合版本軟件包文件,所述復(fù)合版本軟件包文件中攜帶分布式設(shè)備的主控板卡以及一個(gè)或多個(gè)業(yè)務(wù)板卡的軟件文件,其中,所述分布式設(shè)備的主控板卡與業(yè)務(wù)板卡的軟件文件之間相互兼容;分布式設(shè)備的主控板卡讀取所述復(fù)合版本軟件包文件,升級(jí)本分布式設(shè)備的主控板卡以及所有業(yè)務(wù)板卡的軟件版本。
2.如權(quán)利要求1所述的方法,其特征在于,所述復(fù)合版本軟件包文件包括軟件包文件頭和軟件包文件體,所述軟件包文件體由分布式設(shè)備的主控板卡以及攜帶的業(yè)務(wù)板卡的軟件文件構(gòu)成。
3.如權(quán)利要求2所述的方法,其特征在于,所述業(yè)務(wù)板卡的軟件文件包括軟件文件頭和軟件文件體,其中,所述軟件文件頭包括如下信息:文件標(biāo)識(shí),用于標(biāo)識(shí)此文件對(duì)應(yīng)的分布式設(shè)備的版本文件;設(shè)備類型,用于標(biāo)識(shí)軟件版本文件適用的業(yè)務(wù)板卡類型;版本文件類別,用于標(biāo)識(shí)系統(tǒng)軟件版本以及軟件包版本;大版本號(hào),用于指示分布式設(shè)備中各板卡的軟件文件之間的兼容性;小版本號(hào),規(guī)劃發(fā)布或測(cè)試版本的最小粒度。
4.如權(quán)利要求1所述的方法,其特征在于, 所述分布式設(shè)備的主控板卡讀取所述復(fù)合版本軟件包文件后,一次性升級(jí)本主控板卡和業(yè)務(wù)板卡的軟件版本。
5.如權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,分布式設(shè)備的主控板卡讀取所述復(fù)合版本軟件包文件,升級(jí)本分布式設(shè)備的主控板卡以及業(yè)務(wù)板卡的軟件版本的過(guò)程如下:所述分布式設(shè)備的主控板卡將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播;所述分布式設(shè)備的業(yè)務(wù)板卡接收所廣播的軟件文件,根據(jù)所述軟件文件中的設(shè)備類型查找適合自身板卡類型的軟件文件,并將查找到的軟件文件保存到本地。
6.如權(quán)利要求5所述的方法,其特征在于,該方法還包括:所述分布式設(shè)備上業(yè)務(wù)板卡通過(guò)所述復(fù)合版本軟件包文件中本板卡的軟件文件頭信息自動(dòng)檢測(cè)自身版本和主控板卡的主控版本的兼容性。
7.如權(quán)利要求6所述的方法,其特征在于,所述分布式設(shè)備將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播之前,該方法還包括:所述分布式設(shè)備的主控板卡發(fā)送升級(jí)開(kāi)始報(bào)文給業(yè)務(wù)板卡,該升級(jí)開(kāi)始報(bào)文中至少攜帶待升級(jí)文件大小和主控板支持的報(bào)文單幀長(zhǎng)度;業(yè)務(wù)板卡接收到所述升級(jí)開(kāi)始報(bào)文后,回復(fù)響應(yīng)報(bào)文,該響應(yīng)報(bào)文中攜帶本業(yè)務(wù)板卡協(xié)商后的報(bào)文單幀長(zhǎng)度和發(fā)送速率信息;主控板卡接收各個(gè)業(yè)務(wù)板卡的響應(yīng)報(bào)文,從中選擇報(bào)文單幀長(zhǎng)度的最小值以及發(fā)送速率的最小值,按照所選擇的報(bào)文單幀長(zhǎng)度的最小值對(duì)所述業(yè)務(wù)板卡的軟件文件進(jìn)行分片,并按照所選擇的發(fā)送速率的最小值依次廣播各分片。
8.如權(quán)利要求5所述的方法,其特征在于,將所述復(fù)合版本軟件包文件保存在閃存(CF)卡或者文件傳輸協(xié)議/簡(jiǎn)單文件傳輸協(xié)議(FTP/TFTP)服務(wù)器上;所述分布式設(shè)備的主控板卡從CF卡或者FTP/TFTP服務(wù)器上讀取所述復(fù)合版本軟件包文件。
9.一種分布式設(shè)備,其特征在于,該設(shè)備包括一個(gè)主控板卡和兩個(gè)或兩個(gè)以上的業(yè)務(wù)板卡,其中:所述主控板卡,讀取復(fù)合版本軟件包文件,升級(jí)本主控板卡的軟件版本,以及將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件下發(fā)給業(yè)務(wù)板卡;所述業(yè)務(wù)板卡,根據(jù)所述主控板卡下發(fā)的軟件文件升級(jí)本業(yè)務(wù)板卡的軟件版本。
10.如權(quán)利要求9所述的設(shè)備,其特征在于,所述主控板卡,將述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件一次性下發(fā)以實(shí)現(xiàn)業(yè)務(wù)板卡的軟件版本的升級(jí)。
11.如權(quán)利要求9或10所述的設(shè)備,其特征在于,所述主控板卡,將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播;所述業(yè)務(wù)板卡,接收所廣播的軟件文件,從所述軟件文件中查找適合自身板卡類型的軟件文件,并將查找到的軟 件文件保存到本地以實(shí)現(xiàn)軟件版本的升級(jí)。
12.如權(quán)利要求11所述的設(shè)備,其特征在于,所述業(yè)務(wù)板卡,還通過(guò)所述復(fù)合版本軟件包文件中本板卡的軟件文件頭信息自動(dòng)檢測(cè)自身版本和主控板卡的主控版本的兼容性。
13.如權(quán)利要求11所述的設(shè)備,其特征在于,所述主控板卡,將所述復(fù)合版本軟件包文件中業(yè)務(wù)板卡的軟件文件進(jìn)行廣播之前,還發(fā)送升級(jí)開(kāi)始報(bào)文給業(yè)務(wù)板卡,該升級(jí)開(kāi)始報(bào)文中至少攜帶待升級(jí)文件大小和主控板支持的報(bào)文單幀長(zhǎng)度,以及接收各個(gè)業(yè)務(wù)板卡的響應(yīng)報(bào)文,從中選擇報(bào)文單幀長(zhǎng)度的最小值以及發(fā)送速率的最小值,按照所選擇的報(bào)文單幀長(zhǎng)度的最小值對(duì)所述業(yè)務(wù)板卡的軟件文件進(jìn)行分片,并按照所選擇的發(fā)送速率的最小值依次廣播各分片;所述業(yè)務(wù)板卡,接收所述升級(jí)開(kāi)始報(bào)文,并回復(fù)響應(yīng)報(bào)文,該響應(yīng)報(bào)文中攜帶本業(yè)務(wù)板卡協(xié)商后的報(bào)文單幀長(zhǎng)度和發(fā)送速率信息。
14.一種分布式設(shè)備軟件版本兼容性維護(hù)的系統(tǒng),其特征在于,包括如權(quán)利要求9至13所述的分布式設(shè)備,以及:版本發(fā)布單元,發(fā)布復(fù)合版本軟件包文件,所述復(fù)合版本軟件包文件中攜帶分布式設(shè)備的主控板卡以及一個(gè)或多個(gè)業(yè)務(wù)板卡的軟件文件,其中,所述分布式設(shè)備的主控板卡與業(yè)務(wù)板卡的軟件文件之間相互兼容。
【文檔編號(hào)】G06F9/445GK103533027SQ201310432200
【公開(kāi)日】2014年1月22日 申請(qǐng)日期:2013年9月22日 優(yōu)先權(quán)日:2013年9月22日
【發(fā)明者】肖迎杰, 俞惠 申請(qǐng)人:瑞斯康達(dá)科技發(fā)展股份有限公司