国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      軟件版本管理系統(tǒng)和方法

      文檔序號(hào):6521346閱讀:1760來源:國知局
      軟件版本管理系統(tǒng)和方法
      【專利摘要】本發(fā)明涉及一種軟件版本管理系統(tǒng),包括主機(jī)驅(qū)動(dòng)器和至少一個(gè)軟件模塊,其中,主機(jī)驅(qū)動(dòng)器包括用以響應(yīng)于替換動(dòng)作而啟動(dòng)、停止和替換計(jì)算機(jī)系統(tǒng)上的軟件模塊的遷移裝置。所述系統(tǒng)的特征在于:軟件模塊是可降級(jí)軟件模塊,包括指定軟件模塊的不同版本之間的相關(guān)性的兼容性數(shù)據(jù)庫;遷移裝置還包括i)至少狀態(tài)裝置,用以從可降級(jí)軟件模塊檢索臨時(shí)信息;ii)至少降級(jí)裝置,可對替換動(dòng)作進(jìn)行響應(yīng)而將可降級(jí)軟件模塊降級(jí)至特定降級(jí)版本,并且降級(jí)裝置向狀態(tài)裝置識(shí)別可降級(jí)軟件模塊的中間版本;主機(jī)驅(qū)動(dòng)器包括可對中間版本的完成報(bào)告進(jìn)行響應(yīng)以加載和啟動(dòng)軟件模塊的降級(jí)版本。軟件版本管理系統(tǒng)可以在使服務(wù)條件損失最小化的情況下進(jìn)行操作。
      【專利說明】軟件版本管理系統(tǒng)和方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明一般地涉及數(shù)據(jù)處理系統(tǒng),并且特別地涉及軟件版本管理系統(tǒng)。
      【背景技術(shù)】
      [0002]在計(jì)算系統(tǒng)中廣泛地使用固件更新改變功能,其一般地通過軟件更新來實(shí)現(xiàn)。大多數(shù)系統(tǒng)能夠僅在不活動(dòng)狀態(tài)下應(yīng)用更新,在企業(yè)環(huán)境中有問題,其中必須使系統(tǒng)停機(jī)時(shí)間最小化。特殊結(jié)構(gòu)的應(yīng)用程序可以在其固件映像正在更新的同時(shí)用特殊硬件的支持繼續(xù)操作,將服務(wù)中斷的持續(xù)時(shí)間局限于應(yīng)用程序重啟時(shí)間一顯著地在固件更新的持續(xù)時(shí)間以下。基本上類似的準(zhǔn)備允許更新保持任何應(yīng)用程序數(shù)據(jù),即使應(yīng)用程序本身被更新。在諸如主機(jī)的高可用性系統(tǒng)中使用這些能力的組合,稱為并發(fā)更新(“⑶”)。
      [0003]現(xiàn)有技術(shù)高可用性計(jì)算系統(tǒng)可以支持在先前加載的版本保持可操作的同時(shí)將系統(tǒng)部件的固件升級(jí)且只有當(dāng)更新完成之后才重啟應(yīng)用程序的能力。被設(shè)計(jì)成支持CU的應(yīng)用程序?qū)⒆R(shí)別由先前創(chuàng)建的固件產(chǎn)生的任何持久性數(shù)據(jù)并用該數(shù)據(jù)進(jìn)行工作,以防止更新期間的數(shù)據(jù)損失。
      [0004]在大多數(shù)當(dāng)前具備CU能力的系統(tǒng)中,多個(gè)固件版本的CU兼容性是直接嵌入主機(jī)驅(qū)動(dòng)器中的手動(dòng)維護(hù)數(shù)據(jù)庫。將成對固件版本指定為具備CU能力一或者相反,明確地將其標(biāo)記為中斷,發(fā)出關(guān)于服務(wù)/數(shù)據(jù)的應(yīng)用程序可見丟失的警告一的評注被視為主機(jī)驅(qū)動(dòng)器的性質(zhì),并且被作為主機(jī)驅(qū)動(dòng)器固件的一部分保持。在當(dāng)前系統(tǒng)中,主機(jī)驅(qū)動(dòng)器本身趨向于保持其固件映像儲(chǔ)存庫,因此,緊密的連接與總體架構(gòu)一致。雖然這種方法具有優(yōu)點(diǎn)一諸如緊密集成以及由于數(shù)據(jù)局部性而引起的可能優(yōu)化一但當(dāng)前使用的方法并不容易根據(jù)多供應(yīng)商方案進(jìn)行縮放。同樣地,當(dāng)引入較新的固件修訂時(shí),其暗含的CU兼容性提示相應(yīng)的主機(jī)驅(qū)動(dòng)器的更新。
      [0005]在US7,383,541B1中,公開了一種用于即使當(dāng)實(shí)現(xiàn)的版本不同時(shí)也提供計(jì)算機(jī)軟件實(shí)現(xiàn)的持續(xù)正確互操作、特備是提供第一版本的第一執(zhí)行映像與第二版本的第二執(zhí)行映像的互操作的方法。矩陣指定版本是兼容的、基礎(chǔ)水平兼容還是不兼容的。矩陣包括稀疏表,其存儲(chǔ)用于網(wǎng)絡(luò)操作系統(tǒng)的多個(gè)版本的所有置換的指示符。作為包括第一執(zhí)行圖象和第二執(zhí)行圖象的系統(tǒng)的初始化的一部分,確定用于執(zhí)行圖象的版本信息。識(shí)別對應(yīng)于版本的矩陣中的條目。當(dāng)矩陣的所識(shí)別條目指定該版本是兼容的或基礎(chǔ)水平兼容的時(shí),執(zhí)行圖象在完全同步狀態(tài)下操作。執(zhí)行圖象的單獨(dú)組成部分根據(jù)單獨(dú)會(huì)話談判的結(jié)果進(jìn)行互操作。如果版本是不兼容的,則可以使用替換冗余操作模式。實(shí)施例提供執(zhí)行圖象的對端部件或客戶端之間的兼容消息版本和能力的協(xié)商作為用以生成矩陣的源信息。

      【發(fā)明內(nèi)容】

      [0006]本發(fā)明的目的是提供一種改進(jìn)的軟件版本管理系統(tǒng),以便使得能夠?qū)崿F(xiàn)同一軟件的最新版本到過去版本的聞效降級(jí)。
      [0007]這些目的由獨(dú)立權(quán)利要求的特征實(shí)現(xiàn)。其他權(quán)利要求、附圖和本說明書公開了本發(fā)明的有利實(shí)施例。
      [0008]本發(fā)明特別地專注于軟件系統(tǒng),但必須提到的是本發(fā)明的所有方面也完全涉及到固件系統(tǒng),其一般地是持久性存儲(chǔ)器、存儲(chǔ)在其中的軟件程序代碼和數(shù)據(jù)的組合。包含固件的設(shè)備的典型示例是嵌入式系統(tǒng)、計(jì)算機(jī)、計(jì)算機(jī)外圍設(shè)備等。下面,還是用軟件作為用于固件的同義詞,因?yàn)楦萝浖到y(tǒng)一般地意味著更新系統(tǒng)的軟件或數(shù)據(jù)。此外,只有當(dāng)方便且不易弄錯(cuò)時(shí),才用系統(tǒng)來簡化表示法軟件版本管理系統(tǒng)。
      [0009]根據(jù)本發(fā)明的第一方面,提出了一種軟件版本管理系統(tǒng),包括主機(jī)驅(qū)動(dòng)器和至少一個(gè)軟件模塊,其中,所述主機(jī)驅(qū)動(dòng)器包括遷移裝置以響應(yīng)于替換動(dòng)作而啟動(dòng)、停止和替換軟件模塊,其特征在于軟件模塊是可降級(jí)軟件模塊,包括指定軟件模塊的不同版本之間的相關(guān)性的數(shù)據(jù)庫;該系統(tǒng)的特征還在于遷移裝置還包括i)至少狀態(tài)裝置,用以從可降級(jí)軟件模塊檢索時(shí)間信息,ii)至少降級(jí)裝置,可對替換動(dòng)作進(jìn)行響應(yīng)以將可降級(jí)軟件模塊降級(jí)至特定降級(jí)版本,并且該降級(jí)裝置向所述狀態(tài)裝置識(shí)別可降級(jí)軟件模塊的中間版本,并且主機(jī)驅(qū)動(dòng)器包括可對中間版本的完成報(bào)告進(jìn)行響應(yīng)以加載并開始軟件模塊的降級(jí)版本的重啟裝置。
      [0010]本發(fā)明的系統(tǒng)一般地包括:描述固件注釋以描述固件兼容性,指定對兼容性數(shù)據(jù)庫作出反應(yīng)的主機(jī)驅(qū)動(dòng)器接口,規(guī)定向后遷移協(xié)議作為遞增軟件降級(jí)的序列,用專用轉(zhuǎn)換器固件來實(shí)現(xiàn)所述固件降級(jí),并且應(yīng)用多個(gè)更新,會(huì)聚到期望的過去固件版本,而不丟失應(yīng)用數(shù)據(jù)。
      [0011]此兼容性意指文件版本確定,這意味著文件的精確版本可以是可明確地識(shí)別的,并且未來固件可以理解一可能遷移一所有過去的固件版本。
      [0012]有利地,提出的軟件版本管理系統(tǒng)能夠?qū)⑿抻喖嫒菪孕畔闹鳈C(jī)驅(qū)動(dòng)器分離,并且能夠?qū)⑵渥鳛閷?shí)際固件映像的注釋來儲(chǔ)存。假設(shè)映像格式支持輔助元數(shù)據(jù),簡單的二進(jìn)制詞典格式可以傳送關(guān)于CU能力的所有所需信息。所述系統(tǒng)使用針對一遍解析被優(yōu)化的格式,并且容易地驗(yàn)證其語義完整性,因此甚至可以在安全關(guān)鍵或資源有限的嵌入式環(huán)境中使用它。
      [0013]用CU兼容性信息注釋的固件可以被主機(jī)驅(qū)動(dòng)器用來推斷CU兼容性,即使沒有發(fā)起更新。假設(shè)模塊能夠報(bào)告其當(dāng)前配置,可以由驅(qū)動(dòng)器明確地導(dǎo)出應(yīng)用主機(jī)請求更新的結(jié)果一諸如服務(wù)或數(shù)據(jù)的丟失。當(dāng)被請求更新固件時(shí),可以將主機(jī)驅(qū)動(dòng)器編程為拒絕中斷的更新,選擇最快的更新路徑,無論數(shù)據(jù)丟失如何,或者實(shí)行類似的管理員驅(qū)動(dòng)策略。所使用的注釋格式可以將主機(jī)驅(qū)動(dòng)器可以導(dǎo)出的所有相關(guān)屬性編碼,并且然后與管理設(shè)置組合。因此,由所述系統(tǒng)提供了基于固件嵌入式修訂數(shù)據(jù)庫的自動(dòng)化CU策略實(shí)行,具有潛在無關(guān)的固件源且并未迫使需要驅(qū)動(dòng)器更新。
      [0014]有利地,兼容性數(shù)據(jù)庫可以指定軟件模塊的特定版本的持久性數(shù)據(jù)與軟件模塊的其他版本之間的時(shí)間相關(guān)性。因此,可以鑒別軟件模塊的不同版本是否是兼容的以及哪個(gè)版本是當(dāng)前軟件模塊的前體或繼承體。
      [0015]假設(shè)兼容性數(shù)據(jù)庫的二進(jìn)制形式由人可讀元數(shù)據(jù)構(gòu)成,諸如產(chǎn)品文件。由于甚至可以用簡單的文本文件來保持所需的唯一數(shù)據(jù)結(jié)構(gòu)一各對唯一標(biāo)識(shí)符,所以可以在正規(guī)開發(fā)過程的附件日志內(nèi)有效地保持該系統(tǒng)。在這種系統(tǒng)中,開發(fā)者將以加標(biāo)簽的人可讀形式來保持兼容性,并且將在其被用來對最終的分發(fā)映像進(jìn)行注釋之前從同一源對二進(jìn)制形式進(jìn)行編譯。
      [0016]有利地,可以從所檢索的時(shí)間相關(guān)性和降級(jí)版本識(shí)別可降級(jí)軟件模塊的中間版本,并且報(bào)告給可降級(jí)軟件模塊,其中,該中間版本包括用以將兼容性數(shù)據(jù)庫轉(zhuǎn)換成可降級(jí)軟件模塊的降級(jí)版本的裝置。當(dāng)連同適當(dāng)準(zhǔn)備的驅(qū)動(dòng)器狀態(tài)機(jī)一起實(shí)現(xiàn)時(shí),指定時(shí)間相關(guān)性的能力可以實(shí)現(xiàn)回溯并發(fā)更新,將固件修訂遷移至過去的不可兼容版本,而沒有服務(wù)中斷。
      [0017]根據(jù)本發(fā)明,中間固件修訂一所謂的向下轉(zhuǎn)換器一是基于最近的固件版本,該固件以前一格式來編寫兼容性數(shù)據(jù)庫,但是其能夠讀取更近的格式。由于中間固件連接最近的數(shù)據(jù)庫格式,所以很明顯可以在最近固件版本之后將其作為并發(fā)更新加載。當(dāng)轉(zhuǎn)換固件已經(jīng)報(bào)告了數(shù)據(jù)庫轉(zhuǎn)換的完成時(shí),其可以開始對識(shí)別到已降級(jí)數(shù)據(jù)庫的任何固件的并發(fā)更新一包括過去固件版本。
      [0018]在有利實(shí)施例中,降級(jí)裝置可以從主機(jī)驅(qū)動(dòng)器對中間版本的報(bào)告進(jìn)行響應(yīng),停止可降級(jí)軟件模塊的任何活動(dòng),并且隨后加載并執(zhí)行中間版本,并將中間版本的完成報(bào)告給主機(jī)驅(qū)動(dòng)器。除數(shù)據(jù)結(jié)構(gòu)識(shí)別之外,針對CU能力而設(shè)計(jì)的應(yīng)用程序可以有利地能夠與CU基礎(chǔ)設(shè)施相交互,諸如在CU程序的特定階段處的異步通知,以便實(shí)現(xiàn)成功的降級(jí)過程。
      [0019]有利地,可以由重啟裝置在兼容性數(shù)據(jù)庫到可降級(jí)軟件模塊的降級(jí)版本的轉(zhuǎn)換完成之后啟動(dòng)可降級(jí)軟件模塊。在這里,可以安全地從已降級(jí)固件加載軟件模塊,因?yàn)槠涑志眯詢?chǔ)存器僅包含已降級(jí)固件結(jié)構(gòu)。
      [0020]有利地,軟件模塊的降級(jí)可以可在沒有服務(wù)中斷的情況下執(zhí)行。雖然所述系統(tǒng)在遷移到較早修訂時(shí)增加了更新次數(shù)一與中斷情況相比一但可以在沒有服務(wù)中斷或應(yīng)用數(shù)據(jù)損失的情況下實(shí)現(xiàn)具備CU能力的降級(jí)。
      [0021]在本發(fā)明的有利實(shí)施例中,軟件版本管理系統(tǒng)可以是擴(kuò)展的,以將描述來自多個(gè)源的軟件模塊之間的兼容性的多個(gè)數(shù)據(jù)庫組合。由于⑶兼容性通常是例外,所以主機(jī)驅(qū)動(dòng)器應(yīng)假設(shè)在兼容性數(shù)據(jù)庫內(nèi)未發(fā)現(xiàn)的修訂對不是CU兼容的。特定實(shí)例化因此可以允許驅(qū)動(dòng)器在這種情況下查詢其他數(shù)據(jù)庫,或者報(bào)告無書面文件的配置。在具有對允許固件的嚴(yán)格控制的系統(tǒng)中,所述系統(tǒng)可以容易地適合于報(bào)告無書面文件的修訂對作為基礎(chǔ)設(shè)施錯(cuò)誤。
      [0022]根據(jù)本發(fā)明的另一有利方面,提出了一種用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行的數(shù)據(jù)處理程序,其包括用于在數(shù)據(jù)處理系統(tǒng)在計(jì)算機(jī)上運(yùn)行時(shí)如上所述地運(yùn)行軟件版本管理系統(tǒng)的指令集的實(shí)現(xiàn)。
      [0023]此外,有利地提出一種計(jì)算機(jī)程序產(chǎn)品,包括具有計(jì)算機(jī)可讀程序的計(jì)算機(jī)可用介質(zhì),其中,所述計(jì)算機(jī)可讀程序的那個(gè)在計(jì)算機(jī)上執(zhí)行時(shí)促使計(jì)算機(jī)運(yùn)行軟件版本管理系統(tǒng),包括主機(jī)驅(qū)動(dòng)器和至少一個(gè)軟件模塊,其中,所述主機(jī)驅(qū)動(dòng)器保持用以響應(yīng)于替換動(dòng)作而啟動(dòng)、停止和替換計(jì)算機(jī)系統(tǒng)上的軟件模塊的遷移裝置,其特征在于所述軟件模塊是可降級(jí)軟件模塊,包括指定軟件模塊的不同版本之間的相關(guān)性的兼容性數(shù)據(jù)庫;該系統(tǒng)的特征還在于遷移裝置還包括i)至少狀態(tài)裝置,用以從可降級(jí)軟件模塊檢索時(shí)間信息,ii)至少降級(jí)裝置,可對替換動(dòng)作進(jìn)行響應(yīng)以將可降級(jí)軟件模塊降級(jí)至特定降級(jí)版本,并且降級(jí)裝置向所述狀態(tài)裝置識(shí)別可降級(jí)軟件模塊的中間版本,并且所述主機(jī)驅(qū)動(dòng)器包括可對中間版本的完成報(bào)告進(jìn)行響應(yīng)以加載并啟動(dòng)軟件模塊的降級(jí)版本。[0024]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
      [0025]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
      [0026]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
      [0027]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
      [0028]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
      [0029]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
      [0030]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0還可以將計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上以促使一系列操作步驟在計(jì)算機(jī)、其他可編程裝置或其他設(shè)備上執(zhí)行以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)過程,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或方框圖方框中指定的功能/動(dòng)作的過程。
      [0031]由于本發(fā)明的另一方面,提出了一種用于執(zhí)行數(shù)據(jù)處理程序的數(shù)據(jù)處理系統(tǒng),包括用于如上所述地運(yùn)行軟件版本管理系統(tǒng)的軟件代碼部分。
      【專利附圖】

      【附圖說明】
      [0032]根據(jù)實(shí)施例的以下詳細(xì)描述但不限于實(shí)施例,本發(fā)明以及上述及其他目的和優(yōu)點(diǎn),在附圖中示出了:
      [0033]圖1根據(jù)本發(fā)明的示例性實(shí)施例的系統(tǒng)概圖;
      [0034]圖2根據(jù)本發(fā)明的示例性實(shí)施例的兼容性數(shù)據(jù)庫的二進(jìn)制數(shù)據(jù)結(jié)構(gòu);
      [0035]圖3根據(jù)本發(fā)明的示例性實(shí)施例的多版本系統(tǒng)內(nèi)的中斷和并發(fā)升級(jí)路徑的詳細(xì)概圖;
      [0036]圖4根據(jù)本發(fā)明的示例性實(shí)施例的回溯數(shù)據(jù)庫轉(zhuǎn)換期間的兼容性數(shù)據(jù)庫操作的概圖;
      [0037]圖5根據(jù)本發(fā)明的用于運(yùn)行系統(tǒng)的數(shù)據(jù)處理系統(tǒng)的示例性實(shí)施例。
      【具體實(shí)施方式】
      [0038]在圖中,用相同的附圖標(biāo)記來參考相同的元件。附圖僅僅是示意性表示,并不意圖描繪本發(fā)明的特定參數(shù)。此外,附圖意圖僅描述本發(fā)明的典型實(shí)施例,并且因此不應(yīng)將其視為限制本發(fā)明的范圍。
      [0039]在圖中,一般地可以將表不法固件理解為同義詞軟件。表不法系統(tǒng)被方便地用作用于軟件版本管理系統(tǒng)的同義詞。
      [0040]為了舉例說明本發(fā)明,圖1示出了根據(jù)本發(fā)明的示例性實(shí)施例的系統(tǒng)概圖。根據(jù)本示例性實(shí)施例的具備CU能力的系統(tǒng)10包括在模塊18中具有可升級(jí)軟件或固件模塊14的端點(diǎn),諸如,例如硬件安全模塊(HSM)、可能在內(nèi)部存儲(chǔ)兼容性數(shù)據(jù)庫16狀態(tài)、包括通過CU過程來操控模塊18的狀態(tài)機(jī)20的主機(jī)驅(qū)動(dòng)器12以及用以監(jiān)視和管理該過程的終端用戶管理控制。所使用的固件源自于固件映像儲(chǔ)存庫24,其連同人可讀兼容性元數(shù)據(jù)26 —起將其信息饋送到固件數(shù)據(jù)庫編譯器28以便以二進(jìn)制格式30來創(chuàng)建兼容性元數(shù)據(jù)。此兼容性元數(shù)據(jù)信息30可以充當(dāng)用兼容性數(shù)據(jù)庫16進(jìn)行的降級(jí)過程的輸入,如本發(fā)明所述。
      [0041]描述了系統(tǒng)10,其將修訂兼容性信息與主機(jī)驅(qū)動(dòng)器12分離,并且將其儲(chǔ)存為實(shí)際固件映像14的注釋。假設(shè)映像格式支持輔助元數(shù)據(jù),由兼容性元數(shù)據(jù)30傳送的簡單二進(jìn)制詞典格式可以傳送關(guān)于CU能力的所有所需信息。該系統(tǒng)使用針對一遍解析被優(yōu)化的格式,并且容易地驗(yàn)證其語義完整性,因此甚至可以在安全關(guān)鍵或資源有限的嵌入式環(huán)境中使用。
      [0042]圖2描述了根據(jù)本發(fā)明的示例性實(shí)施例的兼容性數(shù)據(jù)庫16的二進(jìn)制數(shù)據(jù)結(jié)構(gòu)。構(gòu)建以簡單直接的二進(jìn)制形式來描述成對的修訂標(biāo)識(shí)符48、49及其屬性50的兼容性數(shù)據(jù)庫16:
      [0043](i )報(bào)頭部32,包含格式修訂標(biāo)識(shí)符38、許多修訂40和許多對42。[0044](ii)修訂部34,包含固件修訂的一個(gè)或多個(gè)唯一修訂標(biāo)識(shí)符44 (在圖中標(biāo)記為
      idl、id2----1dN)。還用修訂標(biāo)識(shí)符44所特定的屬性46來注釋修訂(諸如其開發(fā)/生產(chǎn)
      狀態(tài)、發(fā)布實(shí)體或其他映像特定元數(shù)據(jù))。
      [0045]在實(shí)際實(shí)例化中,可能要求條目處于指定條目順序,諸如按照嚴(yán)格遞增順序的修訂標(biāo)識(shí)符44。此類限制促進(jìn)更快的處理,可以在讀取期間驗(yàn)證,并且可以方便地用一離線一數(shù)據(jù)庫構(gòu)造設(shè)施來實(shí)行。
      [0046](iii)與修訂對有關(guān)的后續(xù)兼容性數(shù)據(jù)庫部36,其枚舉修訂48、49的源/目的地對,通過其索引來參考修訂,作為例如“源1”48、“目的地1”49?;谒饕拈g接參考限制兼容性數(shù)據(jù)庫增長,尤其重要的是因?yàn)樾抻唽?2的數(shù)目將是主導(dǎo)兼容性數(shù)據(jù)庫縮放行動(dòng)者。
      [0047]修訂對36還包括描述從第一修訂到第二個(gè)的遷移的性質(zhì)的屬性50。一般地,這些修訂對屬性50描述類似于CU能力的性質(zhì),如果用第二個(gè)49來替換修訂48的話,可能是CU能力的互換性或其他相關(guān)屬性。
      [0048]如果為一對源48和目的地49修訂提供替換更新路徑,則還可以將其編碼為該對本身的屬性50。從而依賴于修訂之間的規(guī)定時(shí)間相關(guān)性的能力,諸如強(qiáng)制中間更新以防止特殊情況下的數(shù)據(jù)丟失。
      [0049]如修訂標(biāo)識(shí)符一樣,實(shí)際實(shí)例將強(qiáng)迫用于成對修訂的某些很好地定義的順序。
      [0050](iv)可選地,可以添加數(shù)字簽名或其他完整性/真實(shí)性信息作為兼容性數(shù)據(jù)庫結(jié)構(gòu)的一部分。
      [0051]兼容性數(shù)據(jù)庫16僅參考固件修訂,但不包括實(shí)際固件一然而,修訂屬性46可以指示被參考修訂是在承載兼容性數(shù)據(jù)庫16的儲(chǔ)存庫“本地的”還是“外來的”。例如,當(dāng)處理相互參考的多個(gè)數(shù)據(jù)庫16時(shí),此類附加屬性46可以促進(jìn)搜索。由于交叉數(shù)據(jù)庫參考容易管理,所以所述系統(tǒng)10 (圖1)容易地適應(yīng)多個(gè)數(shù)據(jù)庫16,諸如如果從多個(gè)儲(chǔ)存庫中選擇固件的話。
      [0052]在圖3中示出了根據(jù)本發(fā)明的示例性實(shí)施例的軟件版本管理系統(tǒng)10內(nèi)的中斷和并發(fā)升級(jí)路徑的詳細(xì)概圖。固件的不同版本被命名為vl、v2,...,其中較高號(hào)的版本時(shí)鐘表示固件的更近版本。升級(jí)路徑將是典型的實(shí)系統(tǒng)10,單獨(dú)地示出固件(^^2^3)和數(shù)據(jù)庫狀態(tài),其中,在數(shù)據(jù)庫字段(db)中標(biāo)記了固件的版本(vl、v2、…)以及可能過渡(例如,VI — v2):
      [0053](i)原始固件發(fā)行在狀態(tài)60下將vl固件56服務(wù)與VI數(shù)據(jù)庫58組合,該狀態(tài)60表示穩(wěn)態(tài)。在圖3中,例如,不同的狀態(tài)60、62、…70始終包括如針對具有固件56和數(shù)據(jù)庫58的狀態(tài)60所述的固件版本和數(shù)據(jù)庫版本。
      [0054]基于vl數(shù)據(jù)庫58的所有固件版本可以是⑶兼容的,其包括于vl固件56命名中。一般地,針對每個(gè)數(shù)據(jù)庫版本,遭遇多個(gè)修訂。
      [0055](ii)后續(xù)固件發(fā)行引入v2數(shù)據(jù)庫格式。一般地,將通過改變服務(wù)來提示格式變化,其是以v2固件服務(wù)名52 (與定義vl固件類似地)所收集的。在此水平創(chuàng)建的模塊將用v2固件和v2數(shù)據(jù)庫(狀態(tài)64)開始其服務(wù)壽命。
      [0056](iii)針對從vl固件遷移到v2的模塊,首先將其固件更新到v2,其然后將其數(shù)據(jù)庫透明地遷移到v2 (狀態(tài)62)。在數(shù)據(jù)庫遷移已完成之后,有效地進(jìn)入具有v2固件和數(shù)據(jù)庫的v2穩(wěn)態(tài)(狀態(tài)64)。
      [0057]固件有利地保持向后兼容,并且因此可以在遭遇較舊版本時(shí)更新數(shù)據(jù)庫。透明格式更新允許正規(guī)一前向一固件遷移是CU兼容的。
      [0058](iv)直接地將v2固件(狀態(tài)64)降級(jí)到vl (狀態(tài)60)被假設(shè)為是中斷的。新加載v2固件將不能解釋先前由其自己的未來相關(guān)物創(chuàng)建的v2數(shù)據(jù)。
      [0059]新啟動(dòng)的Vl固件將發(fā)現(xiàn)前一固件的v2數(shù)據(jù)庫一其實(shí)際上將是繼承修訂的時(shí)間上在前面的實(shí)例。從而假設(shè)來自未來的數(shù)據(jù)庫格式將被較早的固件視為損壞數(shù)據(jù),并且后續(xù)恢復(fù)動(dòng)作將把結(jié)構(gòu)重新初始化成vl數(shù)據(jù)庫默認(rèn),很明顯與CU預(yù)期不兼容。
      [0060]為了用前一回到過去的固件發(fā)行的能力來擴(kuò)展所述系統(tǒng),添加專用于未來發(fā)行的固件修訂。在圖3中用術(shù)語“v2_”(狀態(tài)66和68)標(biāo)記,表示在與v2數(shù)據(jù)庫一起加載到模塊時(shí)將其數(shù)據(jù)庫透明地降級(jí)至vl格式的固件。由于v2-固件理解v2數(shù)據(jù)庫格式,所以其可以在基于v2的任何固件之后并發(fā)地加載。當(dāng)與v2數(shù)據(jù)庫一起加載到后端時(shí),v2-固件框開始數(shù)據(jù)庫vl的降級(jí)(在狀態(tài)66下),在數(shù)據(jù)庫轉(zhuǎn)換完成時(shí)終止,達(dá)到狀態(tài)68。在這里,第二并發(fā)更新可以基于vl數(shù)據(jù)庫來加載任何固件。
      [0061 ] ⑶兼容性數(shù)據(jù)庫將把直接v2至vl降級(jí)卿,狀態(tài)64至狀態(tài)60)示為非具備⑶能力或中斷的。然而,其將把v2-固件推薦為中間固件修訂,并且顯示后面是到狀態(tài)60的間接過渡的狀態(tài)64到狀態(tài)66過渡將通過兩個(gè)CU降級(jí),并且因此將分類為CU??梢杂眉嫒菪詳?shù)據(jù)庫來描述此類映像序列,用推薦中間修訂的標(biāo)識(shí)符來注釋修訂對。
      [0062]在v2執(zhí)行期間的某個(gè)點(diǎn)處,持久性數(shù)據(jù)庫16 (圖2)將恢復(fù)至vl形式,但是其將優(yōu)選提供v2固件服務(wù),即使(較舊)數(shù)據(jù)庫格式將缺少支持它們的特征。
      [0063]在具備⑶能力的環(huán)境中,固件更新可能已將更近的應(yīng)用程序二進(jìn)制儲(chǔ)存到包含由同一應(yīng)用程序的較早版本創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)的模塊。在重啟應(yīng)用程序之后,其最近版本發(fā)現(xiàn)與當(dāng)時(shí)版本的本機(jī)格式不同的模塊內(nèi)部數(shù)據(jù)(例如,參見圖3中的狀態(tài)62)。應(yīng)用程序因此可以能夠唯一地識(shí)別其可能遭遇的文件一通常,通過文件格式版本確定一并通常透明地從其自己的過去升級(jí)數(shù)據(jù)庫格式(圖3中的從狀態(tài)62到狀態(tài)64的過渡)。
      [0064]所述系統(tǒng)根據(jù)多個(gè)數(shù)據(jù)庫修訂進(jìn)行縮放。圖3中的具有狀態(tài)70、v4...的后續(xù)固件版本將是基本上同樣部署的。假設(shè)將創(chuàng)建向后遷移版本v3-和v4-,重復(fù)可能到多個(gè)過去數(shù)據(jù)庫格式的回溯遷移。從v3狀態(tài)70到v2狀態(tài)64的直接降級(jí)將是中斷過渡。
      [0065]一般地,固件和數(shù)據(jù)庫狀態(tài)甚至在正規(guī)升級(jí)期間沿著圖3中的粗箭頭演進(jìn)。新添加的模塊將在其他固件版本的穩(wěn)態(tài)下進(jìn)入系統(tǒng);從過去版本遷移的模塊將逐漸地向其穩(wěn)態(tài)會(huì)聚。
      [0066]在圖4中,描述了如何可以創(chuàng)建瞬態(tài)數(shù)據(jù)庫以完全以瞬態(tài)形式來支持v2應(yīng)用編程接口(API),根據(jù)本發(fā)明的示例性實(shí)施例,如果在轉(zhuǎn)換之后重啟模塊,其將被自動(dòng)地去除。圖4因此示出了三個(gè)不同的文件系統(tǒng),持久性存儲(chǔ)和非易失性文件系統(tǒng)72、包括瞬態(tài)文件74的非易失性文件系統(tǒng)及用于降級(jí)過程的不同步驟的瞬態(tài)存儲(chǔ)和易失性文件系統(tǒng)76。在圖4中自上而下描述降級(jí)過程的不同步驟82、84...92。
      [0067]以下多步驟過程將允許在持久性結(jié)構(gòu)已經(jīng)回朔到Vl形式之后,v2固件在整個(gè)轉(zhuǎn)換期間提供所有v2服務(wù),甚至取決于v2數(shù)據(jù)庫特征的服務(wù):
      [0068](i)當(dāng)被加載時(shí)(步驟82),v2數(shù)據(jù)庫78的v2特定區(qū)段在不改變原始的情況下被復(fù)制到瞬態(tài)儲(chǔ)存器76 (步驟84)。此拷貝79僅被用作臨時(shí)資源,并且如果在轉(zhuǎn)換期間重啟模塊,可以被簡單地去除。
      [0069](ii)v2數(shù)據(jù)庫被轉(zhuǎn)換回vl形式,將臨時(shí)拷貝80儲(chǔ)存在非易失性儲(chǔ)存器74中(步驟86)。假設(shè)如果在啟動(dòng)期間遭遇,所有固件版本識(shí)別并去除某些文件,因此,如果臨時(shí)拷貝被同樣地分類,則其可以安全地寫入。
      [0070]如果在轉(zhuǎn)換期間中斷,v2固件將重啟降級(jí),丟棄任何部分轉(zhuǎn)換的數(shù)據(jù)。中間文件被清楚地同樣地標(biāo)記,因此,中斷之后的分辨率是明確的。
      [0071](iii)在轉(zhuǎn)換期間,v2固件可以基于原始v2數(shù)據(jù)庫而繼續(xù)服務(wù)于請求,單獨(dú)地記錄任何更新。v2固件將重新訪問記錄,并且在已轉(zhuǎn)換vl數(shù)據(jù)庫80中更新其等效物,如果其在轉(zhuǎn)換開始之后被主機(jī)請求改變的話。
      [0072](iv) 一旦轉(zhuǎn)換完成(步驟88),用其vl配對物81來替換原始持久性v2數(shù)據(jù)庫(步驟90)。由于這些拷貝存在于同一文件系統(tǒng)72內(nèi),所以可以進(jìn)行作為原語的替換。
      [0073](V) —旦持久性數(shù)據(jù)庫處于vl格式81,則對于v2數(shù)據(jù)庫可能未表示的數(shù)據(jù)結(jié)構(gòu)或字段而言,v2固件將僅在瞬態(tài)儲(chǔ)存器76中更新v2的拷貝。只要模塊未被重啟,瞬態(tài)數(shù)據(jù)庫就可以繼續(xù)支持以vl數(shù)據(jù)庫格式不存在的特征。如果將模塊重啟(步驟92),則瞬態(tài)v2數(shù)據(jù)庫79將消失,創(chuàng)建僅具有vl數(shù)據(jù)庫81 (S卩,對任何固件是CU兼容的)的環(huán)境。
      [0074](vi)將轉(zhuǎn)換報(bào)告為完成。在這里,可以與Vl固件一起安全地加載模塊,因?yàn)槠涑志眯詢?chǔ)存器72僅包含vl結(jié)構(gòu)。
      [0075]在v2與vl服務(wù)之間切換的準(zhǔn)確時(shí)間、即前一 API消失時(shí)的交叉未準(zhǔn)確地定義。在不存在非預(yù)期功率損耗和系統(tǒng)重啟的情況下,所述系統(tǒng)可以添加通知以指示即將發(fā)生的服務(wù)丟失。然而,由于預(yù)期并發(fā)降級(jí)將導(dǎo)致V2API服務(wù)的最終丟失,所以可以在沒有準(zhǔn)確通知的情況下操作系統(tǒng)。
      [0076]在降級(jí)過程期間,可以安全地重啟圖1的模塊18,并且將重啟降級(jí)或報(bào)告完成。用于在多個(gè)文件系統(tǒng)72、74、76上使用文件的基本原理是為了系統(tǒng)重啟情況下的分辨的清楚;同時(shí),在非易失性文件系統(tǒng)74中所使用的附加空間將受到限制。
      [0077]現(xiàn)在參考圖5,示出了數(shù)據(jù)處理系統(tǒng)210的示例的示意性。數(shù)據(jù)處理系統(tǒng)210僅僅是適當(dāng)數(shù)據(jù)處理系統(tǒng)的一個(gè)示例,并且并不意圖暗示關(guān)于本文所述的本發(fā)明的實(shí)施例的使用或功能范圍的任何限制。無論如何,數(shù)據(jù)處理系統(tǒng)210能夠被實(shí)現(xiàn)和/或執(zhí)行上文所闡述的任何功能。
      [0078]在數(shù)據(jù)處理系統(tǒng)210中,存在計(jì)算機(jī)系統(tǒng)/服務(wù)器212,其可用許多其他通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置進(jìn)行操作。眾所周知,適于與計(jì)算機(jī)系統(tǒng)/服務(wù)器212 —起操作的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于:個(gè)人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)系統(tǒng)、瘦客戶機(jī)、厚客戶機(jī)、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)個(gè)人電腦、小型計(jì)算機(jī)系統(tǒng)、大型計(jì)算機(jī)系統(tǒng)和包括上述任意系統(tǒng)的分布式云計(jì)算技術(shù)環(huán)境,等等。
      [0079]計(jì)算機(jī)系統(tǒng)/服務(wù)器212可以在由計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型的例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)系統(tǒng)/服務(wù)器212可以在通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式云計(jì)算環(huán)境中實(shí)施。在分布式云計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備的本地或遠(yuǎn)程計(jì)算系統(tǒng)存儲(chǔ)介質(zhì)上。
      [0080]如圖5所示,以通用計(jì)算設(shè)備的形式示出了數(shù)據(jù)處理系統(tǒng)21中的計(jì)算機(jī)系統(tǒng)/服務(wù)器212。計(jì)算機(jī)系統(tǒng)/服務(wù)器212的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元2216,系統(tǒng)存儲(chǔ)器2228,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器2228和處理單元2216)的總線218。
      [0081]總線218表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
      [0082]計(jì)算機(jī)系統(tǒng)/服務(wù)器212典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器212訪問的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
      [0083]系統(tǒng)存儲(chǔ)器228可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)230和/或高速緩存存儲(chǔ)器232。計(jì)算機(jī)系統(tǒng)/服務(wù)器212可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)234可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖1中未示出,可以提供用于對可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對可移動(dòng)非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線218相連。存儲(chǔ)器228可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
      [0084]具有一組(至少一個(gè))程序模塊242的程序/實(shí)用工具240,可以存儲(chǔ)在存儲(chǔ)器228中,這樣的程序模塊242包括但不限于操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。操作系統(tǒng)、一個(gè)或多個(gè)應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù)或其某些組合中的每一個(gè)可以包括聯(lián)網(wǎng)環(huán)境的實(shí)現(xiàn)。程序模塊242通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。計(jì)算機(jī)系統(tǒng)/服務(wù)器22212也可以與一個(gè)或多個(gè)外部設(shè)備214 (例如鍵盤、指向設(shè)備、顯示器224等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器22212交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器22212能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。此類通信可以經(jīng)由輸入/輸出(I/O)接口 222發(fā)生。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器212還可以通過網(wǎng)絡(luò)適配器220與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器220通過總線218與計(jì)算機(jī)系統(tǒng)/服務(wù)器212的其它模塊通信。應(yīng)理解的是雖然未示出,但可以與計(jì)算機(jī)系統(tǒng)/服務(wù)器212相結(jié)合地使用其他硬件和/或軟件部件。示例包括但不限于--偽代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶機(jī)以及數(shù)據(jù)檔案儲(chǔ)存系統(tǒng)等。
      [0085]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖中的每個(gè)方框、以及框圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
      【權(quán)利要求】
      1.一種軟件版本管理系統(tǒng)(10),包括主機(jī)驅(qū)動(dòng)器(12)和至少一個(gè)軟件模塊(14),其中,所述主機(jī)驅(qū)動(dòng)器(12)包括用以響應(yīng)于替換動(dòng)作而啟動(dòng)、停止和替換計(jì)算機(jī)系統(tǒng)(212)上的軟件模塊(14)的遷移裝置, 其特征在于 一所述軟件模塊(14)是包括指定軟件模塊(14)的不同版本之間的相關(guān)性的兼容性數(shù)據(jù)庫(16)的可降級(jí)軟件模塊; 一所述遷移裝置還包括 i)至少狀態(tài)裝置,用以從可降級(jí)軟件模塊檢索時(shí)間信息; ii)至少降級(jí)裝置,可對替換動(dòng)作進(jìn)行響應(yīng)以將可降級(jí)軟件模塊(14)降級(jí)至特定降級(jí)版本,并且所述降級(jí)裝置向所述狀態(tài)裝置識(shí)別可降級(jí)軟件模塊(14)的中間版本;以及 主機(jī)驅(qū)動(dòng)器(12)包括可對中間版本的完成報(bào)告進(jìn)行響應(yīng)以加載并啟動(dòng)軟件模塊(14)的降級(jí)版本的重啟裝置。
      2.根據(jù)權(quán)利要求1所述的軟件版本管理系統(tǒng)(10),其特征在于兼容性數(shù)據(jù)庫(16)指定軟件模塊(14)的特定版本的持久性數(shù)據(jù)與軟件模塊(14)的其他版本之間的時(shí)間相關(guān)性。
      3.根據(jù)權(quán)利要求1或2所述的軟件版本管理系統(tǒng)(10),其特征在于從檢索的時(shí)間相關(guān)性和降級(jí)版本識(shí)別可降級(jí)軟件模塊(14)的中間版本,并且將其報(bào)告給可降級(jí)軟件模塊(14),其中,所述中間版本包括用以將兼容性數(shù)據(jù)(16)轉(zhuǎn)換成可降級(jí)軟件模塊(14)的降級(jí)版本的裝置。
      4.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的軟件版本管理系統(tǒng)(10),其特征在于所述降級(jí)裝置從主機(jī)驅(qū)動(dòng)器(12)對中間版本的報(bào)告進(jìn)行響應(yīng),停止可降級(jí)軟件模塊(14)的任何活動(dòng),并且隨后加載并執(zhí)行中間版本,并將中間版本的完成報(bào)告給主機(jī)驅(qū)動(dòng)器(12)。
      5.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的軟件版本管理系統(tǒng)(12),其特征在于在兼容性數(shù)據(jù)庫(16)到可降級(jí)軟件模塊(14)的降級(jí)版本的轉(zhuǎn)換完成之后,由重啟裝置啟動(dòng)可降級(jí)軟件t吳塊(14)。
      6.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的軟件版本管理系統(tǒng)(10),其特征在于軟件模塊(14)的降級(jí)可在沒有服務(wù)中斷的情況下執(zhí)行。
      7.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的軟件版本管理系統(tǒng)(10),其特征在于系統(tǒng)(10)可擴(kuò)展至組合描述來自多個(gè)源的軟件模塊(14)之間的兼容性的多個(gè)數(shù)據(jù)庫(16)。
      8.一種在包括主機(jī)驅(qū)動(dòng)器(12)和至少一個(gè)軟件模塊(14)的系統(tǒng)(10)上運(yùn)行的軟件版本管理方法,其中,所述主機(jī)驅(qū)動(dòng)器(12)包括用以響應(yīng)于替換動(dòng)作而啟動(dòng)、停止和替換計(jì)算機(jī)系統(tǒng)(212)上的軟件模塊的遷移裝置, 其特征在于 一所述軟件模塊(14)是可降級(jí)軟件模塊,包括指定軟件模塊(14)的不同版本之間的相關(guān)性的兼容性數(shù)據(jù)庫(16); 一所述遷移裝置還包括 i)至少狀態(tài)裝置,用以從可降級(jí)軟件模塊(14)檢索時(shí)間信息; ?)至少降級(jí)裝置,可對替換動(dòng)作進(jìn)行響應(yīng)而將可降級(jí)軟件模塊(14)降級(jí)至特定降級(jí)版本,并且所述降級(jí)裝置向所述狀態(tài)裝置識(shí)別可降級(jí)軟件模塊(14)的中間版本;以及 -所述主機(jī)驅(qū)動(dòng)器(12)包括可對中間版本的完成報(bào)告進(jìn)行響應(yīng)以加載和啟動(dòng)軟件模塊(14)的降級(jí)版本的重啟裝置。
      9.一種用于執(zhí)行數(shù)據(jù)處理程序(240)的數(shù)據(jù)處理系統(tǒng)(210),其特征在于實(shí)現(xiàn)用于運(yùn)行根據(jù)權(quán)利要求1至7中的任·一項(xiàng)所述的系統(tǒng)(10)的軟件模塊。
      【文檔編號(hào)】G06F9/445GK103853581SQ201310627445
      【公開日】2014年6月11日 申請日期:2013年11月29日 優(yōu)先權(quán)日:2012年12月4日
      【發(fā)明者】T.維塞格拉迪, K.沃納, M.J.喬丹, M.D.霍克 申請人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1