新四季網

軟體版本管理系統和方法

2023-06-10 16:26:51

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

【發明內容】

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

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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀