CN101356499A - 用于确保使用中的软件升级的方法 - Google Patents
用于确保使用中的软件升级的方法 Download PDFInfo
- Publication number
- CN101356499A CN101356499A CNA2006800509373A CN200680050937A CN101356499A CN 101356499 A CN101356499 A CN 101356499A CN A2006800509373 A CNA2006800509373 A CN A2006800509373A CN 200680050937 A CN200680050937 A CN 200680050937A CN 101356499 A CN101356499 A CN 101356499A
- Authority
- CN
- China
- Prior art keywords
- assembly
- version
- node
- software program
- software
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 17
- 238000009434 installation Methods 0.000 claims 8
- 238000004891 communication Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 229910002059 quaternary alloy Inorganic materials 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
- Stored Programmes (AREA)
Abstract
一种用于在不存在故障性弱点的情况下升级软件的方法,包括具有第一节点以及第二节点,且该第一节点具有处于有效模式的拥有软件程序的第一版本的第一组件,该第二节点具有处于备用模式的拥有软件程序的第一版本的第二组件。为了升级这些组件,在第二节点上以备用模式安装具有软件程序的第二版本的第三组件,将第三组件与第一组件同步,并与第一组件切换模式。将第二组件删除。在第一节点上以备用模式安装具有软件的第二版本的第四组件,将第四组件与第三组件进行状态同步。然后删除第一组件。
Description
技术领域
本发明一般涉及软件的升级,更具体地说涉及在施行使用中的软件升级时对故障性弱点的去除。
背景技术
程序是协调执行以对处理系统的很多不同区域中的各种功能进行控制的软件指令组。在启动时初始安装并配置在系统中一个以上储存装置中的计算机程序通常持续地控制计算机系统的操作。经常需要或期望更新、更改或替换系统软件的一个以上组件。例如,可能期望向系统提供附加的特征;偶尔需要解决在系统操作期间发现的问题或“臭虫”;并且经常期望更新软件程序以适应技术的新发展。
当对软件进行更改时,典型地是在系统中安装并配置软件代码的新版本。整体或部分地关闭系统操作来安装新软件,会由于所涉及的停工时间而导致经济和服务的损失。为了避免系统之中持续运行的组件的中断,已经开发了允许在系统保持“使用中”的同时进行软件升级的方法。
这些当前使用的使用中软件的升级过程需要最少两个节点(2N)的冗余方案。该2N冗余方案将第一组件放置在第一节点上,并将第二组件放置在与第一节点通信的第二节点上。组件之一在有效地运行系统进程,而另一组件处于备用模式。在处于备用模式时,该组件不处理任何请求,但是动态地跟踪配置更新和状态信息,以便在有效组件发生故障的情况下,该备用组件被更新,并可用于立即承担系统控制。
为了完成软件升级,传统的过程是首先将非有效的备用组件升级到新的版本。然后给备用组件时间,使其与有效组件同步状态信息。一旦组件得到同步,则该组件进行模式切换,以使现在升级到软件的新版本的初始备用组件成为有效组件,而先前的有效组件成为当前的备用版本。然后新的备用版本(先前的有效版本)被升级到软件的新版本。最终,组件再次进行同步,并相互切换模式。现在,初始的有效组件被更新并且有效。
然而,当前流行的使用中的软件升级方案通易受故障的伤害。这在升级备用组件的步骤和使备用组件与有效组件同步的步骤期间尤其如此。如果有效部件坏掉,则在这些时期期间,备用组件要么未被完全升级且不能操作,要么状态信息未被完全同步。
因此,需要克服以上所讨论的现有技术所具有的问题。
附图说明
附图用来进一步图示各种实施例,并且对所有根据本发明的各种原理和优点进行解释,其中在所有分立的视图中,相同的附图标记指代相同的或功能上相似的元件,这些附图与以下的详细描述一起被并入申请文件并形成申请文件的一部分。
图1是根据本发明实施例的计算机网络的框图。
图2是示出根据本发明实施例的,具有均处于软件程序的第一版本的第一有效组件和第二备用组件的第一系统的状态的框图。
图3是示出根据本发明实施例的,具有均处于软件程序的第一版本的第一有效组件和第二备用组件、以及处于软件程序的第二版本的第三备用组件的第二系统的状态的框图。
图4是示出根据本发明实施例的,具有均处于软件程序的第一版本的第一备用组件和第二备用组件以及处于软件程序的第二版本的第三有效组件的第三系统的状态的框图。
图5是示出根据本发明实施例的,具有拥有软件程序的第一版本的第一备用组件、拥有软件程序的第一版本的第二备用组件以及拥有软件程序的第二版本的第三有效组件的第四系统的状态的框图。
图6是示出根据本发明实施例的,具有拥有软件程序的第一版本的第一备用组件、拥有软件程序的第二版本的第三有效组件以及拥有软件程序的第二版本的第四备用组件的第五系统的状态的框图。
图7是示出根据本发明实施例的,具有拥有软件程序的第二版本的第三有效组件和拥有软件程序的第二版本的第四备用组件的第六系统的状态的框图。
图8是示出示出根据本发明实施例的,具有拥有软件程序的第二版本的第三备用组件和拥有软件程序的第二版本的第四有效组件的第七系统的状态的框图。
图9是用于实现本发明实施例的信息处理系统的框图。
具体实施方式
虽然本申请文件以对被视为新颖的发明特征进行限定的权利要求书来结束,但是相信,从考虑以下结合附图的描述中将会更好地理解本发明,且在附图中使用相同的附图标记。应当理解,所公开的实施例对于本发明仅仅是示例性的,这些实施例可以各种形式来实施。因此,这里所公开的具体结构和功能细节不应当被解释为是限制,而应当仅仅被解释为权利要求书的基础,和用于教导本领域技术人员以事实上任意适合的详细结构通过多种方式使用本发明的代表性基础。进一步,这里所使用的术语和短语并不意在限制;而是意在提供本发明的可理解描述。
这里所使用的术语“一”被定义为一个以上。这里所使用的术语“多个”被定义为两个以上。这里所使用的术语“另一”被定义为第二个以上。这里所使用的术语“包括”和/或“具有”被定义为包括(即开放式语言)。这里所使用的术语“连结”被定义为连接,尽管未必是直接连接,且未必是机械连接。这里所使用的术语“程序”、“软件应用程序”等被定义为设计用来在计算机系统上执行的指令序列。程序、计算机程序或软件应用程序可以包括子例程、函数、过程、对象方法、对象实现、可执行应用程序、小应用程序、小服务程序、对象代码、共享库/动态加载库和/或设计用来在计算机系统上执行的其它指令序列。组件可以包括计算机程序、软件应用程序或一行以上的计算机可读处理指令。
根据实施例,本发明通过提供在升级过程期间启用功能备用组件的使用中的软件升级方案,使得系统故障性弱点的窗口为零,来克服现有技术的问题。
现在描述根据本发明示例性实施例的示例性硬件平台。图1是示出本发明一个实施例的高级网络架构的框图。第一节点102和第二节点104连接到网络106。节点102和104可以是应用程序、较大型应用程序的部分、运行应用程序的计算机或能够执行应用程序的任何其它信息处理系统。在本发明的实施例中,节点102和104可以包括可被编程为提供本发明的功能的任何商业上可获得的计算系统。在本发明的另一实施例中,节点104可以包括运行客户端应用程序的客户端计算机,该客户端计算机以客户端-服务器的关系与作为服务器计算机的节点102进行交互。
在节点102和104是应用程序或应用程序的部分的实施例中,节点可以由硬件、软件或软硬件的任意结合实现。所述应用程序或应用程序的部分可以分布式位于节点102和104两者中,以及其它节点中。在该实施例中,节点102和104的应用程序或应用程序的部分以分布式计算的示例进行操作。
在本发明的实施例中,节点102和104的计算机系统是一个以上个人计算机(PC)(例如,IBM或运行微软Windows操作系统的兼容PC工作站、运行Mac OS操作系统的梅肯套希(Macintosh)计算机,或等同物)、个人数字助理(PDA)、手持计算机、掌上计算机、智能电话、游戏控制台或任何其它信息处理装置。在另一实施例中,节点102和104的计算机系统是服务器系统(例如,运行SunOS操作系统的SUN Ultra工作站或运行AIX(高级交互执行)操作系统的IBM RS/6000工作站和服务器)。在又一实施例中,节点102和104都是“通信服务器”,这是在近几年来新兴的一种新型计算机。现在诸如MicroTCA(微型电信运算架构)、AdvancedTCA(高级电信运算架构)、Carrier-Grade Linux(运营级Linux)和服务利用率电信管理论坛(Service AvailabilityTM Forum)的新兴的工业标准,使得建立对广泛的应用程序进行处理的基于标准的通信服务器成为可能。通信服务器在若干重要的方式方面不同于传统的企业服务器。企业服务器架构最适于在三层数据中心环境下运行企业应用程序,并包括若干相似的通用处理或共享公共机箱、电源等的服务器刀片。通信服务器架构最适于提供聚合平台(convergedplatform)以运行控制平面、数据平面和基于附属包的服务应用程序,因此,除了通用处理器之外,通信服务器还合并了专用多媒体处理刀片和路由/包处理刀片。通信服务器还可以支持广泛的用于无线、有线和分组网络的专用通信接口。
在本发明的实施例中,网络106是分组交换网络。该分组交换网络是广域网(WAN),例如全球互联网、私人WAN、局域网(LAN)、电信网络或上述网络的任意组合。在另一实施例中,网络106是有线网络、无线网络、广播网络或点到点网络。在又一实施例中,网络106是电路交换网络,例如公共服务电话网络(PSTN)。
应当注意,尽管节点102和104在图1中被示为独立的实体,但是这两个实体的功能可以被集成到由两种以上计算环境所形成的一个系统中。还应当注意,尽管图1仅示出两个节点,但是本发明支持任意数目的节点。
现在参见图2,节点102和104被示为安装有组件C1和C2。组件C1和C2表示相同功能的软件组件,但未必是同样的软件组件。具体来说,如以下将要解释的,这些组件可以是不同版本的计算机程序或计算机可读指令组。在该图中,组件指示符后面的括号是版本指示符。在该申请文件中,V1将始终表示版本1,且V2将始终表示版本2。在该括号中,跟随版本号之后的还有状态指示符S或A。S指示备用模式,A表示有效模式。当组件在有效地处理系统请求时,该组件被认为处于有效模式。当组件不处理系统请求时,该组件被认为处于备用模式。然而,处于备用模式的组件还在监测有效组件的状态信息。
在图2所示的初始阶段,组件C1驻留在节点102上,组件C2驻留在节点104上。如图中所指示的,这两个组件都是软件的初始版本V1。组件C1是有效组件A,组件C2处于备用模式S。C2通过网络106与节点102上的有效组件C1动态同步。该同步允许C2跟踪有效组件C1的配置和状态信息。在处于备用模式时,C2不处理任何请求。
如图3所示,根据本发明,在第二节点104上例示第三组件C3。然而,事实上,C3不一定要安装在第二节点上。C3可以安装在与第一节点和第二节点通信的任意节点上。然而,为了消除故障性弱点,第三组件不会与当前有效组件C 1安装在相同的节点上。
如图3中所指示的,第三组件C3为更新后的版本V2,且最初处于备用模式S。在被例示之后,C3通过网络106与节点102上的有效组件C1进行同步。该同步保证C3做好接受控制并变成有效组件的准备。然而,在处于备用模式时,C3不处理任何请求。
在C3被正确地同步之后,进行切换操作。如图4所示,在这个步骤结束时,第一组件C1为初始版本V1,并处于备用模式S;第二组件C2为初始版本V1,并处于备用模式S;第三组件C3为新版本V2,而且是运行系统的有效A组件。如果在切换操作期间发生故障,组件C1或C2中的任一个都能够接管并成为运行初始版本的软件的有效组件。在任何时候,C1及C2与C3上的最新状态信息保持同步,以便C1和C2能够正确地承担对系统的控制。
接下来,如图5所示,在第三组件C3成为有效组件之后,不再需要第二组件C2,且第二组件C2被移除。与第二组件C2具有软件的相同初始版本V1的第一组件C1现在将为系统提供后备保护。
在接下来的步骤中,如图6所示,当C3保持为有效组件时,在第一节点102上例示具有最新软件版本V2的第四组件C4。为了获得最高的实用性,优选的是,新组件C4并不立即转变到有效状态(即,它不应当“抹去”所有的已知状态信息)。相反,第四组件C4以备用模式启动,并立即开始自身与运行版本V2的有效组件C3的同步。
由于新安装的第四组件C4一旦同步即马上承担后备任务,因此不再需要第一组件C1,且在图7所示的随后的步骤中移除第一组件C1。
接下来,如图8所示,控制从第三组件C3切换到第四组件C4。结果是第一节点102具有运行软件最新版本的组件C4,且第二节点104具有后备的备用组件C3,该备用组件C3也具有软件的最新版本。在更新过程中,系统绝不会受到由故障引起的弱点的影响。系统一直由能够基于有效组件的故障检测立即承担控制的同步后的备用后备模块所支持。然而,在所替代的实施例中,C3继续作为有效组件,且C4作为C3的后备而存在。在一个实施例中,第一组件C1不会被移除,直到控制从第三组件正确地切换到第四组件为止。
应当注意,某些情况下,在有效组件和备用组件之间没有待同步的状态信息。在本发明的另一实施例中,状态信息由诸如数据库之类的单独的软件程序来维护,该软件程序还将状态复制到网络中的其它节点上。因此,没有必要进行有效组件和备用组件之间的直接通信/同步。
本发明可以以硬件、软件、或软硬件的结合来实现。根据本发明优选实施例的系统可以以集中式实现在能够支持至少两个截然不同的处理环境的一个计算机系统中。该系统还可以以分布式进行布置,其中不同的元件散布在若干个互连的计算机系统中。任何种类的计算机系统-或适于实施这里所描述的方法的其它设备-都是合适的。软硬件的典型结合可以是具有一计算机程序的通用计算机系统,该计算机程序被加载并执行时,对计算机系统进行控制使得该计算机系统实施这里所描述的方法。
图9是示出用于实现本发明的节点102或104之一的信息处理系统的高级框图。该计算机系统包括一个以上诸如处理器904之类的处理器。处理器904连接到通信基础设施902(例如,通信总线、交叉杆(cross-over bar)或网络)。针对该示例性计算机系统来描述各种软件实施例。在阅读该描述之后,相关领域的普通技术人员将清楚如何利用其它计算机系统和/或计算机架构来实现本发明。
该计算机系统可以包括从通信基础设施902(或从未示出的帧缓冲器)转发图像、文本及其它数据以在显示单元910上显示的显示接口908。该计算机系统还包括主存储器906,优选为随机存取存储器(RAM),并且还可以包括次存储器912。次存储器912可以包括例如硬盘驱动器914和/或代表软盘驱动器、磁带驱动器、光盘驱动器等的可移除储存器驱动器916等。可移除储存器驱动器916以本领域普通技术人员所公知的方式从可移除储存器单元918读取和/或写入可移除储存器单元918。可移除储存器单元918代表由可移除储存器驱动器916读取并写入的软盘、压缩盘(compact disc)、磁带、光盘等。应该理解,可移除储存器单元918包括其中储存有计算机软件和/或数据的计算机可读介质。计算机可读介质可以包括诸如ROM、闪型存储器、磁盘驱动存储器、CD-ROM及其它永久储存器之类的非易失性存储器。另外,计算机介质可以包括例如诸如RAM、缓冲器、高速缓冲存储器和网络电路之类的易失性储存器。而且,计算机可读介质可以包含处于暂时状态介质上的计算机可读信息,所述暂时状态介质例如包括有线网络或无线网络的、允许计算机读取这类计算机可读信息的网络链路和/或网络接口。
在作为替代的实施例中,次存储器912可以包括用于允许计算机程序或其它指令被载入计算机系统的其它类似装置。这类装置可以包括,例如可移除储存器单元922和接口920。这种装置的例子可以包括程序盒式存储器(program cartidge)、盒式存储器接口(例如在视频游戏装置中所存在的)、可移除存储器芯片(例如EPROM或PROM)和相关联的插槽、以及其它可移除储存器单元922和允许软件与数据从可移除储存器单元922被传递到计算机系统的接口920。
在该例子中,计算机系统包括通过通信路径允许软件和数据在计算机系统与外部装置或节点之间被传递的通信接口924。通信接口924的例子可以包括调制解调器、网络接口(例如以太网卡)、通信端口、PCMCIA槽及卡等。通过通信接口924传递的软件和数据采用信号的形式,例如电子、电磁、光或能够被通信接口924接收的其它信号。这些信号通过通信路径(即信道)926提供给通信接口924。该信道926承载信号,并且可以使用线或线缆、光纤、电话线、蜂窝电话链路、RF链路和/或其它通信信道来实现。
在此文件中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”用来统称诸如主存储器906及次存储器912、可移除储存器驱动器916、安装在硬盘驱动器914中的硬盘的介质以及信号。这些计算机程序产品是用于向计算机系统提供软件的装置。计算机可读介质允许计算机系统从计算机可读介质读取数据、指令、消息或消息包、以及其它计算机可读信息。
计算机程序(也称为计算机控制逻辑)储存在主存储器906和/或次存储器912中。计算机程序还可以通过通信接口924被接收。这种计算机程序在执行时,能够使计算机系统执行这里所讨论的本发明的特征。具体来说,计算机程序在执行时,能够使处理器904执行计算机系统的特征。相应地,这种计算机程序代表计算机系统的控制器。
已经示出并讨论了可编程计算机设备的高度简化叙述。本领域技术人员应该理解,在计算机设备的任意实际应用中需要其它低级组件和连接。
尽管已经公开了本发明的特定实施例,但是本领域普通技术人员将会理解,可以在不脱离本发明的精神和范围的情况下,对所述特定实施例作出改变。因此,本发明的范围并不限于特定的实施例,并且意在由所附的权利要求书来覆盖本发明范围之内的任何和所有这样的应用、修改和实施例。
Claims (10)
1、一种用于升级软件程序的方法,该方法包括:
以有效模式安装运行软件程序的第一版本的第一组件;
以备用模式安装运行所述软件程序的第一版本的第二组件;
以备用模式安装运行所述软件程序的第二版本的第三组件;
使所述第一组件的状态信息与所述第三组件同步;
在所述第一组件的状态信息与所述第三组件至少部分同步之后,将所述第三组件切换到有效模式,并将所述第一组件切换到备用模式;
移除所述第二组件;
以备用模式安装运行所述软件程序的第二版本的第四组件;
使所述第三组件的状态信息与所述第四组件同步;
移除所述第一组件。
2、根据权利要求1所述的方法,进一步包括:
在所述第三组件的状态信息与所述第四组件至少部分同步之后,将所述第四组件切换到有效模式,并将所述第三组件切换到备用模式。
3、根据权利要求1所述的方法,其中所述第一组件被安装在至少具有第一节点和第二节点的网络中的第一节点上。
4、根据权利要求3所述的方法,其中所述第二组件被安装在所述网络中的第二节点上。
5、根据权利要求1所述的方法,其中所述第三组件被安装在至少具有第一节点和第二节点的网络中的第二节点上。
6、根据权利要求1所述的方法,其中所述第四组件被安装在至少具有第一节点和第二节点的网络中的第一节点上。
7、根据权利要求1所述的方法,其中所述状态信息包括位于至少一个存储位置中的至少一个值。
8、根据权利要求1所述的方法,其中所述备用模式是所述组件监测至少一个其它组件的状态值的操作模式。
9、一种用于升级软件程序的计算机程序产品,该计算机程序产品包括:
一储存介质,可由处理电路读取并储存由所述处理电路执行以实行一种方法的指令,该方法包括:
以有效模式安装运行软件程序的第一版本的第一组件;
以备用模式安装运行所述软件程序的第一版本的第二组件;
以备用模式安装运行所述软件程序的第二版本的第三组件;
使所述第一组件的状态信息与所述第三组件同步;
在所述第一组件的状态信息与所述第三组件至少部分同步之后,将所
述第三组件切换到有效模式,且将所述第一组件切换到备用模式;
移除所述第二组件;
以备用模式安装运行所述软件程序的第二版本的第四组件;
使所述第三组件的状态信息与所述第四组件同步;和
移除所述第一组件。
10、根据权利要求9所述的计算机程序产品,进一步包括:
在所述第三组件的状态信息与所述第四组件至少部分同步之后,将所述第四组件切换到有效模式,并将所述第三组件切换到备用模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/299,514 | 2005-12-12 | ||
US11/299,514 US20070169083A1 (en) | 2005-12-12 | 2005-12-12 | Method for secure in-service software upgrades |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101356499A true CN101356499A (zh) | 2009-01-28 |
Family
ID=38163418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800509373A Pending CN101356499A (zh) | 2005-12-12 | 2006-12-08 | 用于确保使用中的软件升级的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070169083A1 (zh) |
EP (1) | EP1960872A2 (zh) |
CN (1) | CN101356499A (zh) |
WO (1) | WO2007070363A2 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430221B1 (en) * | 2003-12-26 | 2008-09-30 | Alcatel Lucent | Facilitating bandwidth allocation in a passive optical network |
US8132165B2 (en) * | 2007-05-25 | 2012-03-06 | Samsung Electronics Co., Ltd. | Interception proxy-based approach for in-service software upgrade |
US8468513B2 (en) * | 2008-01-14 | 2013-06-18 | Microsoft Corporation | Specification, abstraction, and enforcement in a data center operating system |
US9753712B2 (en) * | 2008-03-20 | 2017-09-05 | Microsoft Technology Licensing, Llc | Application management within deployable object hierarchy |
JP5440009B2 (ja) * | 2009-07-31 | 2014-03-12 | 富士通株式会社 | マルチクラスタシステムのプログラム更新方法及びマルチクラスタシステム |
US20110239209A1 (en) | 2010-03-23 | 2011-09-29 | Fujitsu Limted | System and methods for remote maintenance in an electronic network with multiple clients |
US8799422B1 (en) | 2010-08-16 | 2014-08-05 | Juniper Networks, Inc. | In-service configuration upgrade using virtual machine instances |
WO2012046891A1 (ko) * | 2010-10-06 | 2012-04-12 | 엘지전자 주식회사 | 이동단말기, 디스플레이 장치 및 그 제어 방법 |
US9021459B1 (en) | 2011-09-28 | 2015-04-28 | Juniper Networks, Inc. | High availability in-service software upgrade using virtual machine instances in dual control units of a network device |
US8806266B1 (en) | 2011-09-28 | 2014-08-12 | Juniper Networks, Inc. | High availability using full memory replication between virtual machine instances on a network device |
US8966467B2 (en) | 2012-04-30 | 2015-02-24 | Dell Products, L.P. | System and method for performing an in-service software upgrade in non-redundant systems |
US8943489B1 (en) * | 2012-06-29 | 2015-01-27 | Juniper Networks, Inc. | High availability in-service software upgrade using virtual machine instances in dual computing appliances |
US9158528B2 (en) | 2012-10-02 | 2015-10-13 | Oracle International Corporation | Forcibly completing upgrade of distributed software in presence of failures |
US8739151B1 (en) | 2013-03-15 | 2014-05-27 | Genetec Inc. | Computer system using in-service software upgrade |
JP6167736B2 (ja) * | 2013-08-05 | 2017-07-26 | ソニー株式会社 | 情報処理装置、サーバ装置、情報処理方法及びプログラム |
US9021458B1 (en) * | 2014-06-25 | 2015-04-28 | Chef Software, Inc. | Vertically integrated continuous delivery of an application |
EP4198712A1 (de) * | 2022-12-16 | 2023-06-21 | Pfeiffer Vacuum Technology AG | Vakuumsystem und verfahren zum betreiben eines solchen |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085333A (en) * | 1997-12-19 | 2000-07-04 | Lsi Logic Corporation | Method and apparatus for synchronization of code in redundant controllers in a swappable environment |
US6282711B1 (en) * | 1999-08-10 | 2001-08-28 | Hewlett-Packard Company | Method for more efficiently installing software components from a remote server source |
US6854069B2 (en) * | 2000-05-02 | 2005-02-08 | Sun Microsystems Inc. | Method and system for achieving high availability in a networked computer system |
US7007190B1 (en) * | 2000-09-06 | 2006-02-28 | Cisco Technology, Inc. | Data replication for redundant network components |
US7185061B1 (en) * | 2000-09-06 | 2007-02-27 | Cisco Technology, Inc. | Recording trace messages of processes of a network component |
US6931637B2 (en) * | 2001-06-07 | 2005-08-16 | Taiwan Semiconductor Manufacturing Co., Ltd | Computer system upgrade method employing upgrade management utility which provides uninterrupted idle state |
US20030005426A1 (en) * | 2001-06-08 | 2003-01-02 | Scholtens Dale A. | Methods and apparatus for upgrading software without affecting system service |
US6535924B1 (en) * | 2001-09-05 | 2003-03-18 | Pluris, Inc. | Method and apparatus for performing a software upgrade of a router while the router is online |
US20030140339A1 (en) * | 2002-01-18 | 2003-07-24 | Shirley Thomas E. | Method and apparatus to maintain service interoperability during software replacement |
US7003692B1 (en) * | 2002-05-24 | 2006-02-21 | Cisco Technology, Inc. | Dynamic configuration synchronization in support of a “hot” standby stateful switchover |
BR0304946A (pt) * | 2002-10-16 | 2004-08-31 | Xerox Corp | Método e aparelho para permitir serviços de assinatura distribuìda, manutenção automatizada de suprimentos implementação de serviço independente de dispositivo, inclusive agente do modelo de dispositivo, componente complementar, método e aparelho para plataforma embutida de baixo custo para dispositivo lateral, habilitação de serviços distribuìdos e plataforma de servidor integrada para a provisão autÈnoma de serviços de dispositivos |
US7194652B2 (en) * | 2002-10-29 | 2007-03-20 | Brocade Communications Systems, Inc. | High availability synchronization architecture |
US7320127B2 (en) * | 2003-11-25 | 2008-01-15 | Cisco Technology, Inc. | Configuration synchronization for redundant processors executing different versions of software |
US8868933B2 (en) * | 2004-03-26 | 2014-10-21 | Absolute Software Corporation | Persistent servicing agent |
-
2005
- 2005-12-12 US US11/299,514 patent/US20070169083A1/en not_active Abandoned
-
2006
- 2006-12-08 CN CNA2006800509373A patent/CN101356499A/zh active Pending
- 2006-12-08 WO PCT/US2006/046829 patent/WO2007070363A2/en active Application Filing
- 2006-12-08 EP EP06845002A patent/EP1960872A2/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20070169083A1 (en) | 2007-07-19 |
EP1960872A2 (en) | 2008-08-27 |
WO2007070363A3 (en) | 2008-07-31 |
WO2007070363A2 (en) | 2007-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101356499A (zh) | 用于确保使用中的软件升级的方法 | |
US7065740B2 (en) | System and method to automate the management of computer services and programmable devices | |
US8010504B2 (en) | Increasing application availability during automated enterprise deployments | |
US20140376362A1 (en) | Dynamic client fail-over during a rolling patch installation based on temporal server conditions | |
CN101334825A (zh) | 应用程序管理和运行系统及方法 | |
US7426715B2 (en) | Shutting down a plurality of software components in an ordered sequence | |
CN108958991A (zh) | 集群节点故障业务快速恢复方法、装置、设备及存储介质 | |
CN109324918A (zh) | 应用程序异常的处理方法及装置、终端及存储介质 | |
US20080072222A1 (en) | Client outsourcing service | |
US8230254B2 (en) | Redundant system using object-oriented program and method for rescuing object-oriented program | |
US8448133B2 (en) | Software development, deployment and evolution system, method and program product | |
CN117439867A (zh) | 一种集群升级故障处理方法、装置、设备及存储介质 | |
CN110620798A (zh) | Ftp连接的控制方法、系统、设备和存储介质 | |
JP5387767B2 (ja) | 実行中のプログラムの更新技術 | |
CN109117311A (zh) | 一种故障恢复方法及装置 | |
JP4911959B2 (ja) | 分散監視制御システム | |
CN115017131A (zh) | 一种数据迁移方法及系统 | |
CN113934443A (zh) | 软件升级系统 | |
CN113157823A (zh) | 集群系统部署方法及装置 | |
CN102255944A (zh) | 集群系统的管理方法和系统 | |
US7406678B2 (en) | Manager component resource addition and/or resource removal on behalf of distributed software application | |
JP5145910B2 (ja) | 情報処理装置及び情報処理方法 | |
JP4571056B2 (ja) | 情報処理装置に新たに装置を組み込むための方法、情報処理装置及びプログラム | |
US7873941B2 (en) | Manager component that causes first software component to obtain information from second software component | |
WO2021166229A1 (ja) | 呼制御装置、呼処理継続方法、および、呼制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |