软件版本管理系统和方法

文档序号:6521346阅读:1661来源:国知局
软件版本管理系统和方法
【专利摘要】本发明涉及一种软件版本管理系统,包括主机驱动器和至少一个软件模块,其中,主机驱动器包括用以响应于替换动作而启动、停止和替换计算机系统上的软件模块的迁移装置。所述系统的特征在于:软件模块是可降级软件模块,包括指定软件模块的不同版本之间的相关性的兼容性数据库;迁移装置还包括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.霍克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1