CN103853581B - 软件版本管理系统和方法 - Google Patents

软件版本管理系统和方法 Download PDF

Info

Publication number
CN103853581B
CN103853581B CN201310627445.8A CN201310627445A CN103853581B CN 103853581 B CN103853581 B CN 103853581B CN 201310627445 A CN201310627445 A CN 201310627445A CN 103853581 B CN103853581 B CN 103853581B
Authority
CN
China
Prior art keywords
software module
version
software
degrade
firmware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310627445.8A
Other languages
English (en)
Other versions
CN103853581A (zh
Inventor
T.维塞格拉迪
K.沃纳
M.J.乔丹
M.D.霍克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103853581A publication Critical patent/CN103853581A/zh
Application granted granted Critical
Publication of CN103853581B publication Critical patent/CN103853581B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Abstract

本发明涉及一种软件版本管理系统,包括主机驱动器和至少一个软件模块,其中,主机驱动器包括用以响应于替换动作而启动、停止和替换计算机系统上的软件模块的迁移装置。所述系统的特征在于:软件模块是可降级软件模块,包括指定软件模块的不同版本之间的相关性的兼容性数据库;迁移装置还包括i)至少状态装置,用以从可降级软件模块检索临时信息;ii)至少降级装置,可对替换动作进行响应而将可降级软件模块降级至特定降级版本,并且降级装置向状态装置识别可降级软件模块的中间版本;主机驱动器包括可对中间版本的完成报告进行响应以加载和启动软件模块的降级版本。软件版本管理系统可以在使服务条件损失最小化的情况下进行操作。

Description

软件版本管理系统和方法
技术领域
本发明一般地涉及数据处理系统,并且特别地涉及软件版本管理系统。
背景技术
在计算系统中广泛地使用固件更新改变功能,其一般地通过软件更新来实现。大多数系统能够仅在不活动状态下应用更新,在企业环境中有问题,其中必须使系统停机时间最小化。特殊结构的应用程序可以在其固件映像正在更新的同时用特殊硬件的支持继续操作,将服务中断的持续时间局限于应用程序重启时间—显著地在固件更新的持续时间以下。基本上类似的准备允许更新保持任何应用程序数据,即使应用程序本身被更新。在诸如主机的高可用性系统中使用这些能力的组合,称为并发更新(“CU”)。
现有技术高可用性计算系统可以支持在先前加载的版本保持可操作的同时将系统部件的固件升级且只有当更新完成之后才重启应用程序的能力。被设计成支持CU的应用程序将识别由先前创建的固件产生的任何持久性数据并用该数据进行工作,以防止更新期间的数据损失。
在大多数当前具备CU能力的系统中,多个固件版本的CU兼容性是直接嵌入主机驱动器中的手动维护数据库。将成对固件版本指定为具备CU能力—或者相反,明确地将其标记为中断,发出关于服务/数据的应用程序可见丢失的警告—的评注被视为主机驱动器的性质,并且被作为主机驱动器固件的一部分保持。在当前系统中,主机驱动器本身趋向于保持其固件映像储存库,因此,紧密的连接与总体架构一致。虽然这种方法具有优点—诸如紧密集成以及由于数据局部性而引起的可能优化—但当前使用的方法并不容易根据多供应商方案进行缩放。同样地,当引入较新的固件修订时,其暗含的CU兼容性提示相应的主机驱动器的更新。
在US 7,383,541 B1中,公开了一种用于即使当实现的版本不同时也提供计算机软件实现的持续正确互操作、特别是提供第一版本的第一执行映像与第二版本的第二执行映像的互操作的方法。矩阵指定版本是兼容的、基础水平兼容还是不兼容的。矩阵包括稀疏表,其存储用于网络操作系统的多个版本的所有置换的指示符。作为包括第一执行图象和第二执行图象的系统的初始化的一部分,确定用于执行图象的版本信息。识别对应于版本的矩阵中的条目。当矩阵的所识别条目指定该版本是兼容的或基础水平兼容的时,执行图象在完全同步状态下操作。执行图象的单独组成部分根据单独会话谈判的结果进行互操作。如果版本是不兼容的,则可以使用替换冗余操作模式。实施例提供执行图象的对端部件或客户端之间的兼容消息版本和能力的协商作为用以生成矩阵的源信息。
发明内容
本发明的目的是提供一种改进的软件版本管理系统,以便使得能够实现同一软件的最新版本到过去版本的高效降级。
这些目的由独立权利要求的特征实现。其他权利要求、附图和本说明书公开了本发明的有利实施例。
本发明特别地专注于软件系统,但必须提到的是本发明的所有方面也完全涉及到固件系统,其一般地是持久性存储器、存储在其中的软件程序代码和数据的组合。包含固件的设备的典型示例是嵌入式系统、计算机、计算机外围设备等。下面,还是用软件作为用于固件的同义词,因为更新软件系统一般地意味着更新系统的软件或数据。此外,只有当方便且不易弄错时,才用系统来简化表示法软件版本管理系统。
根据本发明的第一方面,提出了一种软件版本管理系统,包括主机驱动器和至少一个软件模块,其中,所述主机驱动器包括迁移装置以响应于替换动作而启动、停止和替换软件模块,其特征在于软件模块是可降级软件模块,包括指定软件模块的不同版本之间的相关性的数据库;该系统的特征还在于迁移装置还包括i)至少状态装置,用以从可降级软件模块检索时间信息,ii)至少降级装置,可对替换动作进行响应以将可降级软件模块降级至特定降级版本,并且该降级装置向所述状态装置识别可降级软件模块的中间版本,并且主机驱动器包括可对中间版本的完成报告进行响应以加载并开始软件模块的降级版本的重启装置。
本发明的系统一般地包括:描述固件注释以描述固件兼容性,指定对兼容性数据库作出反应的主机驱动器接口,规定向后迁移协议作为递增软件降级的序列,用专用转换器固件来实现所述固件降级,并且应用多个更新,会聚到期望的过去固件版本,而不丢失应用数据。
此兼容性意指文件版本确定,这意味着文件的精确版本可以是可明确地识别的,并且未来固件可以理解—可能迁移—所有过去的固件版本。
有利地,提出的软件版本管理系统能够将修订兼容性信息从主机驱动器分离,并且能够将其作为实际固件映像的注释来储存。假设映像格式支持辅助元数据,简单的二进制词典格式可以传送关于CU能力的所有所需信息。所述系统使用针对一遍解析被优化的格式,并且容易地验证其语义完整性,因此甚至可以在安全关键或资源有限的嵌入式环境中使用它。
用CU兼容性信息注释的固件可以被主机驱动器用来推断CU兼容性,即使没有发起更新。假设模块能够报告其当前配置,可以由驱动器明确地导出应用主机请求更新的结果—诸如服务或数据的丢失。当被请求更新固件时,可以将主机驱动器编程为拒绝中断的更新,选择最快的更新路径,无论数据丢失如何,或者实行类似的管理员驱动策略。所使用的注释格式可以将主机驱动器可以导出的所有相关属性编码,并且然后与管理设置组合。因此,由所述系统提供了基于固件嵌入式修订数据库的自动化CU策略实行,具有潜在无关的固件源且并未迫使需要驱动器更新。
有利地,兼容性数据库可以指定软件模块的特定版本的持久性数据与软件模块的其他版本之间的时间相关性。因此,可以鉴别软件模块的不同版本是否是兼容的以及哪个版本是当前软件模块的前体或继承体。
假设兼容性数据库的二进制形式由人可读元数据构成,诸如产品文件。由于甚至可以用简单的文本文件来保持所需的唯一数据结构—各对唯一标识符,所以可以在正规开发过程的附件日志内有效地保持该系统。在这种系统中,开发者将以加标签的人可读形式来保持兼容性,并且将在其被用来对最终的分发映像进行注释之前从同一源对二进制形式进行编译。
有利地,可以从所检索的时间相关性和降级版本识别可降级软件模块的中间版本,并且报告给可降级软件模块,其中,该中间版本包括用以将兼容性数据库转换成可降级软件模块的降级版本的装置。当连同适当准备的驱动器状态机一起实现时,指定时间相关性的能力可以实现回溯并发更新,将固件修订迁移至过去的不可兼容版本,而没有服务中断。
根据本发明,中间固件修订—所谓的向下转换器—是基于最近的固件版本,该固件以前一格式来编写兼容性数据库,但是其能够读取更近的格式。由于中间固件连接最近的数据库格式,所以很明显可以在最近固件版本之后将其作为并发更新加载。当转换固件已经报告了数据库转换的完成时,其可以开始对识别到已降级数据库的任何固件的并发更新—包括过去固件版本。
在有利实施例中,降级装置可以从主机驱动器对中间版本的报告进行响应,停止可降级软件模块的任何活动,并且随后加载并执行中间版本,并将中间版本的完成报告给主机驱动器。除数据结构识别之外,针对CU能力而设计的应用程序可以有利地能够与CU基础设施相交互,诸如在CU程序的特定阶段处的异步通知,以便实现成功的降级过程。
有利地,可以由重启装置在兼容性数据库到可降级软件模块的降级版本的转换完成之后启动可降级软件模块。在这里,可以安全地从已降级固件加载软件模块,因为其持久性储存器仅包含已降级固件结构。
有利地,软件模块的降级可以可在没有服务中断的情况下执行。虽然所述系统在迁移到较早修订时增加了更新次数—与中断情况相比—但可以在没有服务中断或应用数据损失的情况下实现具备CU能力的降级。
在本发明的有利实施例中,软件版本管理系统可以是扩展的,以将描述来自多个源的软件模块之间的兼容性的多个数据库组合。由于CU兼容性通常是例外,所以主机驱动器应假设在兼容性数据库内未发现的修订对不是CU兼容的。特定实例化因此可以允许驱动器在这种情况下查询其他数据库,或者报告无书面文件的配置。在具有对允许固件的严格控制的系统中,所述系统可以容易地适合于报告无书面文件的修订对作为基础设施错误。
根据本发明的另一有利方面,提出了一种用于在数据处理系统中执行的数据处理程序,其包括用于在数据处理系统在计算机上运行时如上所述地运行软件版本管理系统的指令集的实现。
此外,有利地提出一种计算机程序产品,包括具有计算机可读程序的计算机可用介质,其中,所述计算机可读程序的那个在计算机上执行时促使计算机运行软件版本管理系统,包括主机驱动器和至少一个软件模块,其中,所述主机驱动器保持用以响应于替换动作而启动、停止和替换计算机系统上的软件模块的迁移装置,其特征在于所述软件模块是可降级软件模块,包括指定软件模块的不同版本之间的相关性的兼容性数据库;该系统的特征还在于迁移装置还包括i)至少状态装置,用以从可降级软件模块检索时间信息,ii)至少降级装置,可对替换动作进行响应以将可降级软件模块降级至特定降级版本,并且降级装置向所述状态装置识别可降级软件模块的中间版本,并且所述主机驱动器包括可对中间版本的完成报告进行响应以加载并启动软件模块的降级版本。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的框图描述本发明。应当理解,流程图和/或框图的每个方框以及框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。还可以将计算机程序指令加载到计算机、其他可编程数据处理装置或其他设备上以促使一系列操作步骤在计算机、其他可编程装置或其他设备上执行以产生计算机实现过程,使得在计算机或其他可编程设备上执行的指令提供用于实现在流程图和/或方框图方框中指定的功能/动作的过程。
由于本发明的另一方面,提出了一种用于执行数据处理程序的数据处理系统,包括用于如上所述地运行软件版本管理系统的软件代码部分。
附图说明
根据实施例的以下详细描述但不限于实施例,本发明以及上述及其他目的和优点,在附图中示出了:
图1根据本发明的示例性实施例的系统概图;
图2根据本发明的示例性实施例的兼容性数据库的二进制数据结构;
图3根据本发明的示例性实施例的多版本系统内的中断和并发升级路径的详细概图;
图4根据本发明的示例性实施例的回溯数据库转换期间的兼容性数据库操作的概图;
图5根据本发明的用于运行系统的数据处理系统的示例性实施例。
具体实施方式
在图中,用相同的附图标记来参考相同的元件。附图仅仅是示意性表示,并不意图描绘本发明的特定参数。此外,附图意图仅描述本发明的典型实施例,并且因此不应将其视为限制本发明的范围。
在图中,一般地可以将表示法固件理解为同义词软件。表示法系统被方便地用作用于软件版本管理系统的同义词。
为了举例说明本发明,图1示出了根据本发明的示例性实施例的系统概图。根据本示例性实施例的具备CU能力的系统10包括在模块18中具有可升级软件或固件模块14的端点,诸如,例如硬件安全模块(HSM)、可能在内部存储兼容性数据库16状态、包括通过CU过程来操控模块18的状态机20的主机驱动器12以及用以监视和管理该过程的终端用户管理控制。所使用的固件源自于固件映像储存库24,其连同人可读兼容性元数据26一起将其信息馈送到固件数据库编译器28以便以二进制格式30来创建兼容性元数据。此兼容性元数据信息30可以充当用兼容性数据库16进行的降级过程的输入,如本发明所述。
描述了系统10,其将修订兼容性信息与主机驱动器12分离,并且将其储存为实际固件映像14的注释。假设映像格式支持辅助元数据,由兼容性元数据30传送的简单二进制词典格式可以传送关于CU能力的所有所需信息。该系统使用针对一遍解析被优化的格式,并且容易地验证其语义完整性,因此甚至可以在安全关键或资源有限的嵌入式环境中使用。
图2描述了根据本发明的示例性实施例的兼容性数据库16的二进制数据结构。构建以简单直接的二进制形式来描述成对的修订标识符48、49及其属性50的兼容性数据库16:
(i)报头部32,包含格式修订标识符38、许多修订40和许多对42。
(ii)修订部34,包含固件修订的一个或多个唯一修订标识符44(在图中标记为id1、id2、..、idN)。还用修订标识符44所特定的属性46来注释修订(诸如其开发/生产状态、发布实体或其他映像特定元数据)。
在实际实例化中,可能要求条目处于指定条目顺序,诸如按照严格递增顺序的修订标识符44。此类限制促进更快的处理,可以在读取期间验证,并且可以方便地用—离线—数据库构造设施来实行。
(iii)与修订对有关的后续兼容性数据库部36,其枚举修订48、49的源/目的地对,通过其索引来参考修订,作为例如“源1”48、“目的地1”49。基于索引的间接参考限制兼容性数据库增长,尤其重要的是因为修订对42的数目将是主导兼容性数据库缩放行动者。
修订对36还包括描述从第一修订到第二个的迁移的性质的属性50。一般地,这些修订对属性50描述类似于CU能力的性质,如果用第二个49来替换修订48的话,可能是CU能力的互换性或其他相关属性。
如果为一对源48和目的地49修订提供替换更新路径,则还可以将其编码为该对本身的属性50。从而依赖于修订之间的规定时间相关性的能力,诸如强制中间更新以防止特殊情况下的数据丢失。
如修订标识符一样,实际实例将强迫用于成对修订的某些很好地定义的顺序。
(iv)可选地,可以添加数字签名或其他完整性/真实性信息作为兼容性数据库结构的一部分。
兼容性数据库16仅参考固件修订,但不包括实际固件—然而,修订属性46可以指示被参考修订是在承载兼容性数据库16的储存库“本地的”还是“外来的”。例如,当处理相互参考的多个数据库16时,此类附加属性46可以促进搜索。由于交叉数据库参考容易管理,所以所述系统10(图1)容易地适应多个数据库16,诸如如果从多个储存库中选择固件的话。
在图3中示出了根据本发明的示例性实施例的软件版本管理系统10内的中断和并发升级路径的详细概图。固件的不同版本被命名为v1、v2、...,其中较高号的版本时钟表示固件的更近版本。升级路径将是典型的实系统10,单独地示出固件(v1、v2、v3)和数据库状态,其中,在数据库字段(db)中标记了固件的版本(v1、v2、…)以及可能过渡(例如,v1→v2):
(i)原始固件发行在状态60下将v1固件56服务与v1数据库58组合,该状态60表示稳态。在图3中,例如,不同的状态60、62、…70始终包括如针对具有固件56和数据库58的状态60所述的固件版本和数据库版本。
基于v1数据库58的所有固件版本可以是CU兼容的,其包括于v1固件56命名中。一般地,针对每个数据库版本,遭遇多个修订。
(ii)后续固件发行引入v2数据库格式。一般地,将通过改变服务来提示格式变化,其是以v2固件服务名52(与定义v1固件类似地)所收集的。在此水平创建的模块将用v2固件和v2数据库(状态64)开始其服务寿命。
(iii)针对从v1固件迁移到v2的模块,首先将其固件更新到v2,其然后将其数据库透明地迁移到v2(状态62)。在数据库迁移已完成之后,有效地进入具有v2固件和数据库的v2稳态(状态64)。
固件有利地保持向后兼容,并且因此可以在遭遇较旧版本时更新数据库。透明格式更新允许正规—前向—固件迁移是CU兼容的。
(iv)直接地将v2固件(状态64)降级到v1(状态60)被假设为是中断的。新加载v2固件将不能解释先前由其自己的未来相关物创建的v2数据。
新启动的v1固件将发现前一固件的v2数据库—其实际上将是继承修订的时间上在前面的实例。从而假设来自未来的数据库格式将被较早的固件视为损坏数据,并且后续恢复动作将把结构重新初始化成v1数据库默认,很明显与CU预期不兼容。
为了用前一回到过去的固件发行的能力来扩展所述系统,添加专用于未来发行的固件修订。在图3中用术语“v2-”(状态66和68)标记,表示在与v2数据库一起加载到模块时将其数据库透明地降级至v1格式的固件。由于v2-固件理解v2数据库格式,所以其可以在基于v2的任何固件之后并发地加载。当与v2数据库一起加载到后端时,v2-固件框开始数据库v1的降级(在状态66下),在数据库转换完成时终止,达到状态68。在这里,第二并发更新可以基于v1数据库来加载任何固件。
CU兼容性数据库将把直接v2至v1降级(即,状态64至状态60)示为非具备CU能力或中断的。然而,其将把v2-固件推荐为中间固件修订,并且显示后面是到状态60的间接过渡的状态64到状态66过渡将通过两个CU降级,并且因此将分类为CU。可以用兼容性数据库来描述此类映像序列,用推荐中间修订的标识符来注释修订对。
在v2执行期间的某个点处,持久性数据库16(图2)将恢复至v1形式,但是其将优选提供v2固件服务,即使(较旧)数据库格式将缺少支持它们的特征。
在具备CU能力的环境中,固件更新可能已将更近的应用程序二进制储存到包含由同一应用程序的较早版本创建的数据结构的模块。在重启应用程序之后,其最近版本发现与当时版本的本机格式不同的模块内部数据(例如,参见图3中的状态62)。应用程序因此可以能够唯一地识别其可能遭遇的文件—通常,通过文件格式版本确定—并通常透明地从其自己的过去升级数据库格式(图3中的从状态62到状态64的过渡)。
所述系统根据多个数据库修订进行缩放。图3中的具有状态70、v4...的后续固件版本将是基本上同样部署的。假设将创建向后迁移版本v3-和v4-,重复可能到多个过去数据库格式的回溯迁移。从v3状态70到v2状态64的直接降级将是中断过渡。
一般地,固件和数据库状态甚至在正规升级期间沿着图3中的粗箭头演进。新添加的模块将在其他固件版本的稳态下进入系统;从过去版本迁移的模块将逐渐地向其稳态会聚。
在图4中,描述了如何可以创建瞬态数据库以完全以瞬态形式来支持v2应用编程接口(API),根据本发明的示例性实施例,如果在转换之后重启模块,其将被自动地去除。图4因此示出了三个不同的文件系统,持久性存储和非易失性文件系统72、包括瞬态文件74的非易失性文件系统及用于降级过程的不同步骤的瞬态存储和易失性文件系统76。在图4中自上而下描述降级过程的不同步骤82、84...92。
以下多步骤过程将允许在持久性结构已经回朔到v1形式之后,v2固件在整个转换期间提供所有v2服务,甚至取决于v2数据库特征的服务:
(i)当被加载时(步骤82),v2数据库78的v2特定区段在不改变原始的情况下被复制到瞬态储存器76(步骤84)。此拷贝79仅被用作临时资源,并且如果在转换期间重启模块,可以被简单地去除。
(ii)v2数据库被转换回v1形式,将临时拷贝80储存在非易失性储存器74中(步骤86)。假设如果在启动期间遭遇,所有固件版本识别并去除某些文件,因此,如果临时拷贝被同样地分类,则其可以安全地写入。
如果在转换期间中断,v2固件将重启降级,丢弃任何部分转换的数据。中间文件被清楚地同样地标记,因此,中断之后的分辨率是明确的。
(iii)在转换期间,v2固件可以基于原始v2数据库而继续服务于请求,单独地记录任何更新。v2固件将重新访问记录,并且在已转换v1数据库80中更新其等效物,如果其在转换开始之后被主机请求改变的话。
(iv)一旦转换完成(步骤88),用其v1配对物81来替换原始持久性v2数据库(步骤90)。由于这些拷贝存在于同一文件系统72内,所以可以进行作为原语的替换。
(v)一旦持久性数据库处于v1格式81,则对于v2数据库可能未表示的数据结构或字段而言,v2固件将仅在瞬态储存器76中更新v2的拷贝。只要模块未被重启,瞬态数据库就可以继续支持以v1数据库格式不存在的特征。如果将模块重启(步骤92),则瞬态v2数据库79将消失,创建仅具有v1数据库81(即,对任何固件是CU兼容的)的环境。
(vi)将转换报告为完成。在这里,可以与v1固件一起安全地加载模块,因为其持久性储存器72仅包含v1结构。
在v2与v1服务之间切换的准确时间、即前一API消失时的交叉未准确地定义。在不存在非预期功率损耗和系统重启的情况下,所述系统可以添加通知以指示即将发生的服务丢失。然而,由于预期并发降级将导致v2API服务的最终丢失,所以可以在没有准确通知的情况下操作系统。
在降级过程期间,可以安全地重启图1的模块18,并且将重启降级或报告完成。用于在多个文件系统72、74、76上使用文件的基本原理是为了系统重启情况下的分辨的清楚;同时,在非易失性文件系统74中所使用的附加空间将受到限制。
现在参考图5,示出了数据处理系统210的示例的示意性。数据处理系统210仅仅是适当数据处理系统的一个示例,并且并不意图暗示关于本文所述的本发明的实施例的使用或功能范围的任何限制。无论如何,数据处理系统210能够被实现和/或执行上文所阐述的任何功能。
在数据处理系统210中,存在计算机系统/服务器212,其可用许多其他通用或专用计算系统环境或配置进行操作。众所周知,适于与计算机系统/服务器212一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器212可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器212可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图5所示,以通用计算设备的形式示出了数据处理系统21中的计算机系统/服务器212。计算机系统/服务器212的组件可以包括但不限于:一个或者多个处理器或者处理单元2216,系统存储器2228,连接不同系统组件(包括系统存储器2228和处理单元2216)的总线218。
总线218表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器212典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器212访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器228可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)230和/或高速缓存存储器232。计算机系统/服务器212可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统234可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线218相连。存储器228可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块242的程序/实用工具240,可以存储在存储器228中,这样的程序模块242包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。操作系统、一个或多个应用程序、其他程序模块以及程序数据或其某些组合中的每一个可以包括联网环境的实现。程序模块242通常执行本发明所描述的实施例中的功能和/或方法。计算机系统/服务器22212也可以与一个或多个外部设备214(例如键盘、指向设备、显示器224等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器22212交互的设备通信,和/或与使得该计算机系统/服务器22212能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。此类通信可以经由输入/输出(I/O)接口222发生。并且,计算机系统/服务器212还可以通过网络适配器220与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器220通过总线218与计算机系统/服务器212的其它模块通信。应理解的是虽然未示出,但可以与计算机系统/服务器212相结合地使用其他硬件和/或软件部件。示例包括但不限于:伪代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带机以及数据档案储存系统等。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (8)

1.一种软件版本管理系统,包括主机驱动器和至少一个软件模块,其中,所述主机驱动器包括用以响应于替换动作而启动、停止和替换计算机系统上的软件模块的迁移装置,
其特征在于
—所述软件模块是包括指定软件模块的不同版本之间的相关性的兼容性数据库的可降级软件模块,其中所述兼容性数据库包括一个或多个修订标识符以及针对所述不同版本的一个或多个属性,所述一个或多个属性描述从所述不同版本中的第一版本到所述不同版本中的第二版本的迁移的性质,所述性质包括如果所述第一版本被所述第二版本替代的并发更新能力;
—所述迁移装置还包括
i)至少状态装置,用以从可降级软件模块检索时间信息;
ii)至少降级装置,可对替换动作进行响应以将可降级软件模块降级至特定降级版本,并且所述降级装置向所述状态装置识别可降级软件模块的中间版本;以及
主机驱动器包括可对中间版本的完成报告进行响应以加载并启动软件模块的降级版本的重启装置。
2.根据权利要求1所述的软件版本管理系统,其特征在于兼容性数据库指定软件模块的特定版本的持久性数据与软件模块的其他版本之间的时间相关性。
3.根据权利要求1或2所述的软件版本管理系统,其特征在于从检索的时间相关性和降级版本识别可降级软件模块的中间版本,并且将其报告给可降级软件模块。
4.根据权利要求1或2所述的软件版本管理系统,其特征在于所述降级装置从主机驱动器对中间版本的报告进行响应,停止可降级软件模块的任何活动,并且随后加载并执行中间版本,并将中间版本的完成报告给主机驱动器。
5.根据权利要求1或2所述的软件版本管理系统,其特征在于软件模块的降级可在没有服务中断的情况下执行。
6.根据权利要求1或2所述的软件版本管理系统(10),其特征在于系统可扩展至组合描述来自多个源的软件模块之间的兼容性的多个数据库。
7.一种在包括主机驱动器和至少一个软件模块的系统上运行的软件版本管理方法,其中,所述主机驱动器包括用以响应于替换动作而启动、停止和替换计算机系统上的软件模块的迁移装置,
其特征在于
—所述软件模块是可降级软件模块,包括指定软件模块的不同版本之间的相关性的兼容性数据库,其中所述兼容性数据库包括一个或多个修订标识符以及针对所述不同版本的一个或多个属性,所述一个或多个属性描述从所述不同版本中的第一版本到所述不同版本中的第二版本的迁移的性质,所述性质包括如果所述第一版本被所述第二版本替代的并发更新能力;
—所述迁移装置还包括
i)至少状态装置,用以从可降级软件模块检索时间信息;
ii)至少降级装置,可对替换动作进行响应而将可降级软件模块降级至特定降级版本,并且所述降级装置向所述状态装置识别可降级软件模块的中间版本;以及
-所述主机驱动器包括可对中间版本的完成报告进行响应以加载和启动软件模块的降级版本的重启装置。
8.一种用于执行数据处理程序的数据处理系统,其特征在于实现用于运行根据权利要求1至6中的任一项所述的系统的软件模块。
CN201310627445.8A 2012-12-04 2013-11-29 软件版本管理系统和方法 Active CN103853581B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1221757.6A GB2508599A (en) 2012-12-04 2012-12-04 Software version management when downgrading software
GB1221757.6 2012-12-04

Publications (2)

Publication Number Publication Date
CN103853581A CN103853581A (zh) 2014-06-11
CN103853581B true CN103853581B (zh) 2017-07-21

Family

ID=50721445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310627445.8A Active CN103853581B (zh) 2012-12-04 2013-11-29 软件版本管理系统和方法

Country Status (3)

Country Link
US (1) US9411576B2 (zh)
CN (1) CN103853581B (zh)
GB (1) GB2508599A (zh)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US8867552B2 (en) 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US9270486B2 (en) 2010-06-07 2016-02-23 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US9628293B2 (en) 2010-06-08 2017-04-18 Brocade Communications Systems, Inc. Network layer multicasting in trill networks
US9806906B2 (en) 2010-06-08 2017-10-31 Brocade Communications Systems, Inc. Flooding packets on a per-virtual-network basis
US9608833B2 (en) 2010-06-08 2017-03-28 Brocade Communications Systems, Inc. Supporting multiple multicast trees in trill networks
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US9699117B2 (en) 2011-11-08 2017-07-04 Brocade Communications Systems, Inc. Integrated fibre channel support in an ethernet fabric switch
US9450870B2 (en) 2011-11-10 2016-09-20 Brocade Communications Systems, Inc. System and method for flow management in software-defined networks
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US9154416B2 (en) 2012-03-22 2015-10-06 Brocade Communications Systems, Inc. Overlay tunnel in a fabric switch
US10277464B2 (en) 2012-05-22 2019-04-30 Arris Enterprises Llc Client auto-configuration in a multi-switch link aggregation
US9413691B2 (en) 2013-01-11 2016-08-09 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
US9548926B2 (en) 2013-01-11 2017-01-17 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
JP5864467B2 (ja) * 2013-03-28 2016-02-17 株式会社沖データ 情報処理装置、ファームウェア更新方法及びコンピュータプログラム
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US9383989B1 (en) 2014-06-16 2016-07-05 Symantec Corporation Systems and methods for updating applications
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9628407B2 (en) * 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
US9760113B2 (en) * 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
EP3062287A1 (en) * 2015-02-26 2016-08-31 Fei Company Methods and systems for managing multiple versions of a process in a processing chain
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
DE102015206666A1 (de) * 2015-04-14 2016-10-20 Siemens Aktiengesellschaft Verfahren zum Betrieb einer Zugsicherungsanordnung, Zugsicherungsanordnung und Schienenfahrzeug mit einer Zugsicherungsanordnung
EP3319540B1 (en) * 2015-07-07 2024-01-24 Intuitive Surgical Operations, Inc. Control of multiple devices
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US9900209B2 (en) * 2015-09-14 2018-02-20 Cisco Technology, Inc. Techniques for YANG model version control validation
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US20170115978A1 (en) * 2015-10-26 2017-04-27 Microsoft Technology Licensing, Llc Monitored upgrades using health information
CN105915363A (zh) * 2015-11-09 2016-08-31 乐视致新电子科技(天津)有限公司 一种过渡升级的方法及装置
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
US20170357494A1 (en) * 2016-06-08 2017-12-14 International Business Machines Corporation Code-level module verification
US10289400B2 (en) * 2016-09-07 2019-05-14 Amplidata N.V. Outdated resource handling and multiple-version upgrade of cloud software
US10613849B2 (en) * 2016-09-23 2020-04-07 Visa International Service Association Update migration system and method
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
CN106980515B (zh) 2016-10-28 2020-04-14 阿里巴巴集团控股有限公司 一种应用升级方法及装置
CN106776315B (zh) * 2016-12-14 2021-02-05 华为技术有限公司 检测版本的方法和装置
US10289401B1 (en) * 2016-12-30 2019-05-14 Juniper Networks, Inc Systems and methods for efficiently downgrading operating systems installed on network devices
US10572246B2 (en) * 2018-04-27 2020-02-25 Ati Technologies Ulc Live update of a kernel device module
CN108897570B (zh) * 2018-06-20 2023-01-03 大国创新智能科技(东莞)有限公司 基于云计算与人工智能的版本兼容方法和机器人系统
US11068253B2 (en) * 2019-10-25 2021-07-20 Hewlett Packard Enterprise Development Lp Software upgrade and downgrade using ghost entries
US11875142B2 (en) * 2019-11-01 2024-01-16 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
US11308050B2 (en) * 2019-11-15 2022-04-19 Bank Of America Corporation Conversion mechanism for complex cohabitation databases
US11561672B1 (en) * 2020-07-24 2023-01-24 Tableau Software, LLC Compatibility-based feature management for data prep applications
CN112882743A (zh) * 2021-02-09 2021-06-01 上海金脉电子科技有限公司 一种软件升级的方法
CN116204236B (zh) * 2023-04-27 2023-09-29 深圳艾为电气技术有限公司 基于模板的ptc驱动器配置方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658659B2 (en) * 1999-12-16 2003-12-02 Cisco Technology, Inc. Compatible version module loading
CN1960285A (zh) * 2006-08-31 2007-05-09 刘文斌 一种机房软件环境多点还原增量同步的方法
CN102216905A (zh) * 2008-11-14 2011-10-12 国际商业机器公司 应用还原点
CN102567053A (zh) * 2011-12-20 2012-07-11 云海创想信息技术(无锡)有限公司 一种软件版本回退的方法及装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US6735757B1 (en) * 1998-06-04 2004-05-11 Gateway, Inc. Apparatus and method for checking component compatibility in a build to order computer system
EP1195675A1 (en) * 2000-07-14 2002-04-10 Sun Microsystems, Inc. Comment driven processing
US20030140339A1 (en) * 2002-01-18 2003-07-24 Shirley Thomas E. Method and apparatus to maintain service interoperability during software replacement
US7941348B2 (en) 2002-06-10 2011-05-10 Ebay Inc. Method and system for scheduling transaction listings at a network-based transaction facility
US20040117785A1 (en) 2002-12-13 2004-06-17 Samsung Electronics Co., Ltd. Component download manager for a wireless mobile station and method of operation
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US7383541B1 (en) * 2003-08-07 2008-06-03 Cisco Technology, Inc. Method and apparatus providing interoperation of execution images of different versions
JP4420275B2 (ja) * 2003-11-12 2010-02-24 株式会社日立製作所 フェイルオーバクラスタシステム及びフェイルオーバクラスタシステムを用いたプログラムのインストール方法
US20050114853A1 (en) * 2003-11-26 2005-05-26 Glider Joseph S. Software upgrade and downgrade in systems with persistent data
US7222340B2 (en) * 2004-01-27 2007-05-22 Research In Motion Limited Software-delivered dynamic persistent data
US7546596B2 (en) 2004-03-29 2009-06-09 International Business Machines Corporation Non-disruptive method, system and program product for overlaying a first software module with a second software module
US9535687B2 (en) * 2004-05-27 2017-01-03 International Business Machines Corporation Audited builds based upon separate class dependency records
JP2006079155A (ja) * 2004-09-07 2006-03-23 Hitachi Ltd 情報処理装置
US8429610B2 (en) * 2005-12-20 2013-04-23 International Business Machines Corporation Computer method and apparatus for providing version-aware impact analysis
JP4864557B2 (ja) * 2006-06-15 2012-02-01 富士通株式会社 ソフトウェアの更新処理プログラム及び更新処理装置
US7996829B2 (en) * 2006-07-31 2011-08-09 Hewlett-Packard Development Company, L.P. Managing software revisions for servers in an infrastructure
US8769522B2 (en) * 2006-08-21 2014-07-01 Citrix Systems, Inc. Systems and methods of installing an application without rebooting
US7840942B2 (en) * 2006-11-29 2010-11-23 International Business Machines Corporation Configuration file sharing
US20090193407A1 (en) * 2008-01-29 2009-07-30 Viasat, Inc. Methods and Systems for Automatic Patch Creation for Client Updates
US8775574B2 (en) * 2008-11-26 2014-07-08 Red Hat, Inc. Remote network management having multi-node awareness
US8522227B2 (en) 2009-08-24 2013-08-27 Microsoft Corporation Runtime activation and version selection
JP5428721B2 (ja) * 2009-10-02 2014-02-26 富士通株式会社 管理システム,管理装置,管理方法および管理プログラム
US8806471B2 (en) * 2010-09-28 2014-08-12 Red Hat, Inc. Upgrade and downgrade in package update operations
CN102006332B (zh) 2010-12-03 2013-12-11 杭州华三通信技术有限公司 一种软件升级的方法和系统
US8595715B2 (en) * 2010-12-31 2013-11-26 International Business Machines Corporation Dynamic software version selection
US9384058B2 (en) * 2011-03-02 2016-07-05 Radware, Ltd. Method for executing virtual application delivery controllers having different application versions over a computing device
US8893116B2 (en) * 2012-01-15 2014-11-18 Microsoft Corporation Installation engine and package format for parallelizable, reliable installations
US8782632B1 (en) * 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization
US9032386B1 (en) * 2012-07-30 2015-05-12 Adobe Systems Incorporated Product upgrade location identifier for software upgrade

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658659B2 (en) * 1999-12-16 2003-12-02 Cisco Technology, Inc. Compatible version module loading
CN1960285A (zh) * 2006-08-31 2007-05-09 刘文斌 一种机房软件环境多点还原增量同步的方法
CN102216905A (zh) * 2008-11-14 2011-10-12 国际商业机器公司 应用还原点
CN102567053A (zh) * 2011-12-20 2012-07-11 云海创想信息技术(无锡)有限公司 一种软件版本回退的方法及装置

Also Published As

Publication number Publication date
US20140157251A1 (en) 2014-06-05
US9411576B2 (en) 2016-08-09
CN103853581A (zh) 2014-06-11
GB2508599A (en) 2014-06-11

Similar Documents

Publication Publication Date Title
CN103853581B (zh) 软件版本管理系统和方法
US10303657B2 (en) Docker layer deduplication with layer referencing
CN102132270B (zh) 用于设备和web服务的多主控方离线和协作所需要的最小扩展
US10222983B2 (en) Storage management computer and management method of storage apparatus
CN104823162B (zh) 对于云服务器的高可用性
CN103036986B (zh) 在分布式应用对象上提供更新通知
CN110088733A (zh) 虚拟机迁移的基于存储层的编排
CN105453037A (zh) 维持用于更新的已知相关性
US20090049438A1 (en) Method for Optimizing Migration of Software Applications to Address Needs
US10768908B1 (en) Workflow engine tool
US20120167090A1 (en) Hypervisor for starting a virtual machine
US8832492B1 (en) Systems and methods for managing applications
US10353874B2 (en) Method and apparatus for associating information
BR112019025269A2 (pt) microprocessador incluindo um modelo corporativo
US10394756B2 (en) System and method for customizing archive of a device driver generator tool for a user
US20210216308A1 (en) Utilizing machine learning to identify and correct differences in application programming interface (api) specifications
CN104160397A (zh) 位置独立文件
US20230367577A1 (en) Method and apparatus for updating cloud platform
JP2023036774A (ja) 共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器および自動運転車両
CN103229172A (zh) 复制数据
JP2021197153A (ja) ワードスロットを識別するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
US9448791B1 (en) Synchronizing source code objects and software development workflow objects
WO2022256126A1 (en) Automated generation of revision summaries
CN110119386B (zh) 数据处理方法、数据处理装置、介质和计算设备
CN110688145A (zh) Android MVP代码自动生成方法、装置、介质、电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant