CN102216905A - 应用还原点 - Google Patents

应用还原点 Download PDF

Info

Publication number
CN102216905A
CN102216905A CN2009801451710A CN200980145171A CN102216905A CN 102216905 A CN102216905 A CN 102216905A CN 2009801451710 A CN2009801451710 A CN 2009801451710A CN 200980145171 A CN200980145171 A CN 200980145171A CN 102216905 A CN102216905 A CN 102216905A
Authority
CN
China
Prior art keywords
erector
application
assembly
new parent
tabulation
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.)
Granted
Application number
CN2009801451710A
Other languages
English (en)
Other versions
CN102216905B (zh
Inventor
D·M·查特朗德
S·派特尔
K·W·科克比
E·A·鲍尔
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 CN102216905A publication Critical patent/CN102216905A/zh
Application granted granted Critical
Publication of CN102216905B publication Critical patent/CN102216905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

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)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了当安装或者更新应用时创建应用还原点并且将应用和由安装和更新处理所修改的计算***的其它元素还原至应用还原点所具有的状态的技术。应用还原点捕获与哪些文件由安装和更新处理来修改、创建或者删除有关的信息。在一个实施例中,用户调用安装器处理来安装或者更新应用。当安装器处理修改或者创建文件时,将文件的原始副本或者对文件的引用放置于应用还原点中。为了还原应用,通过原始副本替换具有应用还原点中的原始副本的计算***的文件而删除应用还原点中引用的所有新文件。

Description

应用还原点
技术领域
本发明的实施例总体上涉及在计算***中备份和还原应用,并且更具体地涉及使用应用还原点将应用(或者操作***组件)还原至安装(或者更新)应用之前所具有的状态。
背景技术
安装新应用以及更新现有应用或操作***是一种常见处理。例如,应用(以及操作***)供应商经常发布更新应用、修复“漏洞”或安全问题的补丁。然而,安装新应用或者更新现有应用有时会破坏计算机***。也就是说,更新有时“毁坏”应用(或者***上运行的其它应用)。例如,如果没有成功地完成更新处理,则应用可能不能正常运行和/或数据可能丢失。类似地,已更新的应用有时会以不可预知的方式影响其它***应用,如阻止它们正常运行。因此,在某些情况下,可能需要删除应用或更新以使计算***恢复正常运行。
删除应用更新的一种方法是在安装(或者更新)应用之前创建计算***的完整镜像,然后在需要时还原该镜像。然而,该方法常常需要大量的存储资源。此外,还原应用至更新之前的状态需要计算***的用户在启动更新处理之前记得创建***镜像。而且,该方法经常导致备份处理期间、安装处理期间或者还原处理期间(如果使用镜像来还原***)的实质停机。
发明内容
根据第一方面,提供了一种为应用创建应用还原点的计算机实现方法,包含:调用被配置成向应用施加安装包的安装器处理;生成应用还原点数据结构,所述应用还原点数据结构被配置成存储新组件列表以及在由安装器处理施加安装包时要被修改的应用的一个或更多个组件中每一个的未修改副本;当由安装器处理施加安装包时:对于由安装器处理所修改的应用的每一组件,在应用还原点数据结构中存储组件的未修改副本,以及对于由安装器处理添加至计算***的每一新组件,向新组件列表添加对新组件的引用。该方法进一步包含:在应用还原点数据结构中存储新组件列表。
根据第二方面,提供了一种包含程序的计算机可读存储介质,当被执行时,所述程序执行为应用创建应用还原点的操作,包含:调用被配置成向应用施加安装包的安装器处理;生成应用还原点数据结构,所述应用还原点数据结构被配置成存储新组件列表以及在由安装器处理施加安装包时要被修改的应用的一个或更多个组件中每一个的未修改副本;当由安装器处理施加安装包时:对于由安装器处理所修改的应用的每一组件,在应用还原点数据结构中存储组件的未修改副本,以及对于由安装器处理添加至计算***的每一新组件,向新组件列表添加对新组件的引用。该操作进一步包含:在应用还原点数据结构中存储新组件列表。
根据第三方面,提供了一种***,包含:处理器;以及存储应用安装器处理的存储器,当由处理器执行时,所述应用安装器处理被配置成执行为应用创建应用还原点的操作,该操作包含:调用被配置成向应用施加安装包的安装器处理,生成应用还原点数据结构,所述应用还原点数据结构被配置成存储新组件列表以及在由安装器处理施加安装包时要被修改的应用的一个或更多个组件中每一个的未修改副本,当由安装器处理施加安装包时:(i)对于由安装器处理所修改的应用的每一组件,在应用还原点数据结构中存储组件的未修改副本,以及(ii)对于由安装器处理添加至计算***的每一新组件,向新组件列表添加对新组件的引用。该操作进一步包含:在应用还原点数据结构中存储新组件列表。
附图说明
现在将结合附图仅仅以示例的方式来描述本发明的实施例:
图1是例示根据本发明一个实施例的计算***的框图;
图2例示了根据本发明一个实施例的应用还原点;
图3例示了根据本发明一个实施例的创建应用还原点的方法的流程图;以及
图4例示了根据本发明一个实施例的基于应用还原点还原应用的方法的流程图。
具体实施方式
本发明的实施例提供安装、更新或者修补应用时创建应用还原点的技术。当需要时,可以使用应用还原点将应用和计算***的相关部分还原至该应用还原点所具有的状态。在一个实施例中,应用还原点捕获与安装(更新)应用时被修改、创建或删除的应用和/或运行应用的计算***的那些组件、文件或者其它元素相关的信息。重要的是,创建和还原处理不破坏计算***上运行的其它应用。换言之,当创建应用还原点或者使用应用还原点来还原应用(即,有效地撤销安装或者补丁)时,可以使用计算***的其它组件和应用。此外,因为创建和还原处理主要涉及安装处理所需的文件,所以节省了计算***的资源并且可以出于不同的目的而使用计算***的这些资源。
在一个实施例中,用户调用安装器处理来安装、更新或者修补计算***中的应用。安装器处理为应用创建应用还原点。在安装器处理的执行期间,可能需要修改计算***的某些文件和/或可能需要创建新文件。如果文件被安装器处理修改,则将该文件的原始副本(即,文件处于其被安装器处理修改之前的状态时的副本)放置于应用还原点中。如果文件被安装器处理创建,则在应用还原点中包含对此文件的引用。依此,当安装器处理成功或者不成功地完成安装、更新或者修补应用时,应用还原点包含安装器处理所修改(或者删除)的每个文件的原始副本和安装器处理所创建的文件(即,新文件)列表。因此,为了将应用和计算***的相应部分还原至安装器处理做出任何改变之前的状态,删除新文件列表中包括的计算***的文件,而用安装(或者更新)处理期间捕获的未修改版本(即,原始副本)替换安装器所修改的文件。
在下面,将参考本发明的实施例。然而,应当理解的是,本发明不限于具体描述的实施例。相反,以下特征和元素的任何组合(无论是否涉及不同的实施例)都被预期用来实现和实施本发明。此外,在各种实施例中,本发明提供优于现有技术的许多优点。然而,尽管本发明的实施例可以获得优于其它可能的解决方案和/或优于现有技术的优点,但是特定的优点是否由给定的实施例来获得并不限制本发明。因而,以下方面、特征、实施例和优点仅仅是示例性的并且不被认为是所附权利要求的要素或限制,除非权利要求中明确说明。类似地,对“本发明”的提及不应该被认为是在此所公开的任何本发明主题的概括并且不应该被认为是所附权利要求的要素或限制,除非权利要求中明确说明。
本发明的一个实施例被实现为由计算***使用的程序产品。程序产品的程序限定实施例(包括在此所述的方法)的功能并且可以被包含在各种计算机可读存储介质中。示例性计算机可读存储介质包括但不限于:(i)其上永久存储信息的不可写存储介质(例如,计算机中的只读存储器装置,如CD-ROM驱动器可读的CD-ROM盘);(ii)其上存储可改变信息的可写存储介质(例如,软盘驱动器中的软盘或者硬盘驱动器)。当载有控制本发明功能的计算机可读指令时,这类计算机可读存储介质是本发明的实施例。其它介质包括经由其传递信息至计算机的通信介质,如通过计算机或电话网络,包括无线通信网络。后一实施例具体包括向/从因特网和其它网络传输信息。当载有控制本发明功能的计算机可读指令时,这类通信介质是本发明的实施例。计算机可读存储介质和通信介质在此可以被概括地称为计算机可读介质。
一般而言,被执行用来实现本发明实施例的例程可以是操作***或者具体应用、组件、程序、模块、对象或者指令序列的一部分。本发明的计算机程序通常由将被本地计算机翻译成机器可读格式以及由此可执行指令的大量指令组成。此外,程序由本地驻留于程序或者在存储器或存储装置中找到的变量和数据结构组成。此外,可以基于本发明的具体实施例中实现它们的应用来标识以下所述的各种程序。然而,应当认识到,以下任何具体的程序术语仅仅是为了方便而被使用,因而本发明不应当限于仅仅使用在这类术语所标识和/或暗示的任何具体应用中。
图1是例示根据本发明一个实施例的计算***100的示例的框图。如图所示,计算***100包括诸如键盘和鼠标定位装置的输入装置110、诸如CRT或LCD显示器的显示装置120和计算机***130。示例性地,计算机***130包括通过总线接口134相互耦合的一个或更多个中央处理单元(“CPU”)132、存储器140和存储设备150。CPU 104表示执行计算机中的所有指令、逻辑和数学处理的一个或更多个可编程逻辑装置。例如,CPU 104可以表示单个CPU、多个CPU、具有多个处理核的单个CPU及类似物。存储器140可以是存储装置中的一个或组合,包括大到足以保持所需的编程和数据结构的随机访问存储器。存储设备150可以是存储设备中的一个或组合,其包括但不限于物理磁盘驱动器、快闪存储装置等,以及网络附加储存装置和经由网络安装的存储卷。
计算机***130被包含用来表示现有计算机***,例如,台式计算机、服务器计算机、膝上型计算机、平板计算机及类似物。然而,图1中所示的服务器***仅仅是计算***的示例。可以使用其它计算***来实现本发明的实施例,无论计算机***是否为复杂多用户计算***(如通过高速网络连接的个体计算机的集群)、单用户工作站或者不具有非易失性存储设备的网络设备。进一步地,可以使用现有计算机***上执行的计算机软件应用来实现在此所述的软件应用。然而,在此所述的软件应用不限于任何当前现有的计算环境或编程语言,并且可以适合于在新计算***变得可用时采用新计算***。
如图所示,存储器140包括被配置成在计算***100上运行的安装器142、应用更新组件144和应用146。安装器142、应用更新组件144和应用146通常由也驻留于存储器140中的操作***(未示出)来支持。操作***的示例包括
Figure BDA0000060878500000061
Microsoft
Figure BDA0000060878500000062
以及操作***的发行套件和类似物。更一般地来说,可以使用能够支持在此所述的功能的任何操作***。
IBM和AIX是国际商业机器公司在美国、其它国家或这些国家的商标;UNIX是开放群组(Open Group)在美国和其它国家的注册商标;Microsoft和Windows是微软公司在美国、其它国家或这些国家的商标;以及Linux是李纳斯托沃兹(Linus Torvalds)在美国、其它国家或这些国家的注册商标。
一般而言,通过使用应用更新组件144,安装器142可以被用来安装、更新、修补和/或删除计算***100中的应用144。在这样的处理期间,可以创建、修改或者删除一个或更多个文件154和还原点152。文件154和还原点152驻留于存储设备150中。更具体地,文件154包括应用146和/或计算***100的被安装器处理142在更新应用146时修改的文件、组件或者其它元素。每个应用还原点152提供与安装器142所安装的应用更新对应的数据结构。在一个实施例中,在更新应用146时创建至少一个应用还原点152。这样的应用还原点152可以随后被用来(如果需要)还原应用146和/或计算***100的文件、组件和/或其它元素。
图2例示了根据本发明一个实施例的示例性应用还原点152。一般而言,应用还原点152是存储与相应应用的可能还原相关的信息的数据结构。如图所示,应用还原点152包括:标识与应用还原点相关联的具体应用的信息,如应用名称205;可以指定应用上执行的具体处理的安装/更新日期和时间210,如执行处理时的日期和时间,执行了哪种类型的处理(例如,安装、更新、打补丁及类似处理)。应用还原点152还包括一个或更多个原始文件2201-220M(共同被称为文件220)和由安装器处理所创建的新文件列表(如新文件2301-230N),其中每个原始文件是由应用还原点在安装器处理修改文件之前所捕获的、由安装器处理所修改的文件的副本。
如下面所做的更加详细的描述,在一个实施例中,写时复制(copy-on-write)处理可以被用来在安装器142修改文件之前捕获该文件的未修改副本。进一步地,通过将修改文件的处理的处理id与安装器(或者子处理)的处理id匹配,可以将通过写时复制机制保存至应用还原点的文件标识为可应用于还原点。依此,由安装更新期间也运行的应用所修改的其它文件不被添加至还原点。文件列表可以包括所创建文件的识别信息(如每个新创建文件的名称及其位置)以及当还原至应用还原点152时还原原始文件(或者删除新安装文件)所需的任何其它信息。
图3例示了根据本发明一个实施例的创建应用还原点的方法300的流程图。如上所述,应用还原点(如还原点152)捕获和存储与由安装或更新处理所导致的包括应用的计算***元素(即,文件154)中的改变相关的信息。为了存储这类信息,在步骤305,创建和/或初始化应用还原点的数据结构。
在步骤310,调用安装器处理(如图1所示的安装器142)来更新(或者安装)应用146,其中应用146适合于在计算***100上运行。一般而言,安装器处理142被配置成使用应用更新组件144来更新应用146,并且在更新时监控更新处理所导致的改变。当识别到改变时,安装器处理142存储描述应用还原点152中发生了何种改变的信息。在一个实施例中,安装器处理142被实现为打包管理***(即,用于使安装、更新、配置和删除计算***的程序的处理自动化的工具***)的组件。在此情况下,启动安装器来安装、更新或者删除应用的组件(或者应用自身)。进一步地,作为执行任何这类动作的一部分,安装器处理1342可以创建与所执行的更新、修补或者安装处理对应的应用还原点152。
在步骤315,对于在更新期间由安装器处理142所修改的每个文件,添加未修改文件(即,原始文件220)的副本至应用还原点。在一个实施例中,当在更新处理期间多次修改同一文件时,仅仅保存原始文件的一个副本,例如,在第一次修改文件时。依此,当完成安装处理时,应用还原点包括安装处理期间计算***中被修改(或者被删除)的任何文件的原始副本。
某些安装或者更新处理可能在计算***中创建新的文件。因此,为了删除安装处理所导致的改变,应当删除这类新的文件。为了记录这类文件,在步骤320,将更新期间由安装器处理142所创建的每个文件作为新文件230列入应用还原点中。注意,所创建文件中的一部分可能是仅仅针对更新处理期间而创建的临时文件。在一个实施例中,安装器处理142不将这些临时文件放置于新文件列表中。替代地,安装器处理142不识别临时文件,然而,当需要删除文件时安装器处理检查文件是否在新文件列表中。如果是,则从新文件列表中删除该文件并且不创建该文件的副本。依此,当安装器处理142成功地(或者不成功地)完成安装处理时,应用还原点152包含对更新处理期间由安装器处理所创建的文件的引用。安装器处理142可以使用各种工具来执行步骤315和320以及仅仅识别在具体安装处理期间所修改的文件。例如,在一个实施例中,使用由日志或者追踪文件***所提供的工具。在日志文件***中,改变在被提交之前被记录在日志中。因此,安装器处理142可以使用这类日志来检测改变被提交之前由更新处理所导致的文件改变。例如,可以使用“写时复制”处理。众所知的,“写时复制”处理允许应用(事实上多个应用)访问文件。在应用写(即,修改)文件的情况下,写时复制处理创建应用所写入的文件的副本。在一个实施例中,不是向安装器处理提供“写时复制”副本,而是仅仅添加这样的副本至应用还原点,并且由安装器处理142写入文件的真实副本。依此,安装器处理142在作为安装(或者更新、修补)应用的一部分的修改或者删除文件之前保存文件的原始副本。
在另一实施例中,在启动更新处理之前,安装器处理142立即使用例如公知的
Figure BDA0000060878500000081
逻辑卷管理打包提供的工具来创建计算***的快照(如计算***文件的只读副本)。接下来,当安装器处理142检测到相关的文件改变时,其从快照获取文件的未修改版本。一旦完成更新处理,安装器处理142可以删除快照。
在一个实施例中,当用户调用安装器处理142来更新应用146时,安装器处理142自动生成应用还原点152并且执行上述步骤305、315和320。因此,用户不需要在更新处理之前备份数据。更确切地说,每次用户使用安装器处理来更新应用时,创建允许用户(当需要时)将更新处理期间由更新处理所修改的文件还原至执行该处理之前的状态的相应应用还原点。可选地,安装器处理可以被配置成在更新处理的不同阶段期间创建多个应用还原点。
图4例示了根据本发明一个实施例的使用还原点还原应用的方法400的流程图。在步骤405,接收对应用还原点的选择。在一个实施例中,应用可能与多个应用还原点相关联。如上所述,每个应用还原点表示应用和由补丁、更新或者应用自身的安装所修改的相关元素(如文件、注册表键等等)的具体状态。例如,应用还原点可以捕获安装应用之前多个文件的状态、安装处理期间在特定点之前相关文件的状态、在更新应用至一个版本之前相关文件的状态、在更新应用至另一个版本之前相关文件的状态等等。在一个实施例中,向用户提供允许用户选择期望的应用还原点的接口。
可选地,为了向用户提供撤销还原处理的机会,在步骤410,于撤销应用还原点中保存和存储对还原处理要创建的文件的引用和由还原处理所修改或者删除的文件的副本。在一个实施例中,使用所选应用还原点中包含的信息来确定这类文件。也就是说,还原应用还原点的处理自身可以被视为更新,为此可以生成相应的应用还原点。如上所述,应用还原点中被作为新文件而列出的文件是安装器处理所创建的文件,并且因此需要在还原处理期间被删除。因此,在撤销应用还原点中保存这类文件的副本。如果文件具有相应的原始副本被存储在应用还原点中,那么该文件或者已由安装器处理修改或者已由安装器处理删除,并且因此在撤销应用还原点中保存文件的当前副本(处于启动还原处理之前的状态)。当文件不存在时,在撤销应用还原点的新文件列表中包括对文件的引用。在另一个实施例中,使用创建应用还原点的方法(如上面结合图3所述)生成撤销应用还原点,其中安装器处理执行应用的还原处理。
在方法400的步骤415,可以删除应用还原点中作为新文件而列出的每个文件。如上所述,如果文件被作为新的而列入在应用还原点中,那么在创建该具体应用还原点时由安装器处理初始地创建这样的文件。因此,为了将应用和由安装器处理所影响的计算***的部分还原至所选应用还原点中所捕获的状态,删除应用还原点中列出的新文件。注意,应用还原点包含需要用来在计算***中定位这样的文件的信息,例如,路径名和文件名。
在步骤420,通过被还原的应用还原点中存储的原始副本替换安装器处理期间修改的每个文件。如上所述,应用还原点包含安装器处理期间修改或者删除的文件的原始副本。因此,为了将应用和由安装器处理所影响的计算***的部分还原至应用还原点所表示的状态,还原应用还原点中存储的原始副本。更具体地,如果文件因为其被安装器处理修改过而已被删除,则还原这样的文件,例如,将应用还原点中存储的文件的原始副本放置于计算***中。如果安装器处理所修改的计算***的文件仍然位于计算***中,那么从计算***中删除当前版本并且将应用还原点中存储的文件的副本放置于计算***中。在一个实施例中,逐个文件地执行步骤420。可替代地,将应用还原点中包含的所有原始副本拷入计算***中替换现有文件。
当步骤415和420完成还原应用还原点中标识的所有文件时,方法400完成。可选地,一旦方法400完成,删除该方法所使用的应用还原点。
有利地,如在此所述的那样,本发明的实施例能够在安装、更新或者修补应用时创建应用还原点并且在需要时将应用和计算***的相关部分还原至应用还原点中捕获的状态。例如,通过监控安装处理并且仅仅保存相关数据(如安装处理期间由安装处理修改的文件),创建和还原处理不破坏计算***上运行的其它应用。而且,因为创建和还原处理主要涉及安装处理所需的文件,所以节省了计算***的资源并且可以出于不同的目的而使用计算***的这些资源。
尽管上文涉及本发明的实施例,但是在不偏离本发明基本范围的前提下可以设计出本发明的其它和进一步的实施例,并且本发明的范围由以下的权利要求书确定。

Claims (31)

1.一种为应用创建应用还原点的计算机实现方法,包含:
调用被配置成向应用施加安装包的安装器处理;
生成应用还原点数据结构,所述应用还原点数据结构被配置成存储新组件列表以及在由所述安装器处理施加所述安装包时要被修改的所述应用的一个或更多个组件中每一个的未修改副本;
当由所述安装器处理施加所述安装包时:
对于由所述安装器处理所修改的所述应用的每一组件,在所述应用还原点数据结构中存储所述组件的未修改副本,以及对于由所述安装器处理添加至计算***的每一新组件,向所述新组件列表添加对所述新组件的引用;以及
在所述应用还原点数据结构中存储所述新组件列表。
2.如权利要求1所述的方法,其中使用写时复制机制标识由所述安装器处理所修改的所述应用的每一组件,并且其中使用与所述安装器处理相关联的处理ID来标识所述组件。
3.如权利要求1或2所述的方法,其中调用所述安装器处理来执行安装所述应用、更新所述应用、修补所述应用和删除所述应用中的一个。
4.如权利要求1、2或3所述的方法,其中所修改的组件和添加至所述计算***的所述新组件中的一个或更多个是存储在文件***中指定位置的文件。
5.如权利要求1、2、3或4所述的方法,其中所述新组件列表包含所述新组件列表上的相应文件在所述计算***中的文件名列表和路径位置列表。
6.如权利要求1所述的方法,其中所修改的组件或者添加至所述计算***的所述新组件中的至少一个是注册表键、配置文件设置和***设置。
7.如权利要求1所述的方法,其中所述安装器处理被配置成访问文件***机制以标识由所述安装器处理所修改的每一组件并且获得每个所修改组件的所述未修改副本。
8.如任一在前权利要求所述的方法,其中所述应用是操作***并且其中所述安装包是所述操作***的更新或者补丁。
9.如任一在前权利要求所述的方法,进一步包含:
创建所述计算***的快照;
从所述快照获得由施加所述安装包所修改的组件的每个未修改组件;以及
一旦完成安装处理,删除所创建的快照。
10.如任一在前权利要求所述的方法,进一步包含:
从所述新组件列表中删除与作为施加所述安装包的一部分的由所述安装器处理先安装并且随后删除的组件对应的至少一个条目。
11.一种包含程序的计算机可读存储介质,当被执行时,所述程序执行为应用创建应用还原点的操作,包含:
调用被配置成向应用施加安装包的安装器处理;
生成应用还原点数据结构,所述应用还原点数据结构被配置成存储新组件列表以及在由所述安装器处理施加所述安装包时要被修改的所述应用的一个或更多个组件中每一个的未修改副本;
当由所述安装器处理施加所述安装包时:
对于由所述安装器处理所修改的所述应用的每一组件,在所述应用还原点数据结构中存储所述组件的未修改副本,以及对于由所述安装器处理添加至计算***的每一新组件,向所述新组件列表添加对所述新组件的引用;以及
在所述应用还原点数据结构中存储所述新组件列表。
12.如权利要求11所述的计算机可读存储介质,其中使用写时复制机制标识由所述安装器处理所修改的所述应用的每一组件,并且其中使用与所述安装器处理相关联的处理ID来标识所述修改的组件。
13.如权利要求11或12所述的计算机可读存储介质,其中调用所述安装器处理来执行安装所述应用、更新所述应用、修补所述应用和删除所述应用中的一个。
14.如权利要求11、12或13所述的计算机可读存储介质,其中所修改的组件和添加至所述计算***的所述新组件中的一个或更多个是存储在文件***中指定位置的文件。
15.如权利要求11、12、13或14所述的计算机可读存储介质,其中所述新组件列表包含所述新组件列表上的相应文件在所述计算***中的文件名列表和路径位置列表。
16.如权利要求11所述的计算机可读存储介质,其中所修改的组件或者添加至所述计算***的所述新组件中的至少一个是注册表键、配置文件设置和***设置。
17.如权利要求11所述的计算机可读存储介质,其中所述安装器处理被配置成访问文件***机制以标识由所述安装器处理所修改的每一组件并且获得每个所修改组件的所述未修改副本。
18.如权利要求11至17中任一项所述的计算机可读存储介质,其中所述应用是操作***并且其中所述安装包是所述操作***的更新或者补丁。
19.如权利要求11至18中任一项所述的计算机可读存储介质,其中所述操作进一步包含:
创建所述计算***的快照;
从所述快照获得由施加所述安装包所修改的组件的每一个未修改组件;以及
一旦完成所述安装器处理,删除所创建的快照。
20.如权利要求11至19中任一项所述的计算机可读存储介质,其中所述操作进一步包含:
从所述新组件列表中删除与作为施加所述安装包的一部分的由所述安装器处理先安装并且随后删除的组件对应的至少一个条目。
21.一种***,包含:
处理器;以及
存储应用安装器处理的存储器,当由所述处理器执行时,所述应用安装器处理被配置成执行为应用创建应用还原点的操作,所述操作包含:
调用被配置成向应用施加安装包的安装器处理,生成应用还原点数据结构,所述应用还原点数据结构被配置成存储新组件列表以及在由所述安装器处理施加所述安装包时要被修改的所述应用的一个或更多个组件中每一个的未修改副本,当由所述安装器处理施加所述安装包时:
(i)对于由所述安装器处理所修改的所述应用的每一组件,在所述应用还原点数据结构中存储所述组件的未修改副本,以及
(ii)对于由所述安装器处理添加至所述计算***的每一新组件,向所述新组件列表添加对所述新组件的引用;以及
在所述应用还原点数据结构中存储所述新组件列表。
22.如权利要求21所述的***,其中使用写时复制机制标识由所述安装器处理所修改的所述应用的每一组件,并且其中使用与所述安装器处理相关联的处理ID来标识所述修改的组件。
23.如权利要求21或22所述的***,其中调用所述安装器处理来执行安装所述应用、更新所述应用、修补所述应用和删除所述应用中的一个。
24.如权利要求21、22或23所述的***,其中所修改的组件和添加至所述计算***的所述新组件中的一个或更多个是存储在文件***中指定位置的文件。
25.如权利要求21、22、23或24所述的***,其中所述新组件列表包含所述新组件列表上的相应文件在所述计算***中的文件名列表和路径位置列表。
26.如权利要求21所述的***,其中所修改的组件或者添加至所述计算***的所述新组件中的至少一个是注册表键、配置文件设置和***设置。
27.如权利要求21所述的***,其中所述安装器处理被配置成访问文件***机制以标识由所述安装器处理所修改的每一组件并且获得每个所修改组件的所述未修改副本。
28.如权利要求21至27中任一项所述的***,其中所述应用是操作***并且其中所述安装包是所述操作***的更新或者补丁。
29.如权利要求21至28中任一项所述的***,其中所述操作进一步包含:
创建所述计算***的快照;
从所述快照获得由施加所述安装包所修改的组件的每一个未修改组件;以及
一旦完成安装处理,删除所创建的快照。
30.如权利要求21至29中任一项所述的***,其中所述操作进一步包含:
从所述新组件列表中删除与作为施加所述安装包的一部分的由所述安装器处理先安装并且随后删除的组件对应的至少一个条目。
31.一种计算机程序,包含被配置为当所述程序运行于计算机上时用来执行权利要求1至10中任一项所述的方法的程序代码装置。
CN2009801451710A 2008-11-14 2009-11-12 为运行在计算***中的应用创建应用还原点的方法和*** Active CN102216905B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/271,123 2008-11-14
US12/271,123 US8332842B2 (en) 2008-11-14 2008-11-14 Application restore points
PCT/EP2009/065013 WO2010055073A1 (en) 2008-11-14 2009-11-12 Application restore points

Publications (2)

Publication Number Publication Date
CN102216905A true CN102216905A (zh) 2011-10-12
CN102216905B CN102216905B (zh) 2013-12-25

Family

ID=41694668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801451710A Active CN102216905B (zh) 2008-11-14 2009-11-12 为运行在计算***中的应用创建应用还原点的方法和***

Country Status (7)

Country Link
US (1) US8332842B2 (zh)
EP (1) EP2318929B1 (zh)
JP (1) JP5444368B2 (zh)
KR (1) KR20110086732A (zh)
CN (1) CN102216905B (zh)
AT (1) ATE540358T1 (zh)
WO (1) WO2010055073A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324507A (zh) * 2013-06-25 2013-09-25 宇龙计算机通信科技(深圳)有限公司 一种终端预置应用程序更新的方法和装置
CN103631679A (zh) * 2013-12-06 2014-03-12 Tcl通讯(宁波)有限公司 一种移动终端中应用程序安装的控制方法及***
CN103853581A (zh) * 2012-12-04 2014-06-11 国际商业机器公司 软件版本管理***和方法
CN107861747A (zh) * 2017-06-26 2018-03-30 平安普惠企业管理有限公司 产品更新方法、设备和计算机可读存储介质
CN109508195A (zh) * 2017-09-12 2019-03-22 北京国双科技有限公司 测试安装包的安装方法及装置
CN116048872A (zh) * 2022-06-16 2023-05-02 荣耀终端有限公司 一种数据克隆过程的管控方法、电子设备及存储介质

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726271B1 (en) 2005-12-30 2014-05-13 United Services Automobile Association (Usaa) Method and system for installing software
US7840955B1 (en) * 2005-12-30 2010-11-23 United Services Automobile Association (Usaa) Method and system for restoring software
US8566820B1 (en) 2005-12-30 2013-10-22 United Services Automobile Association (Usaa) Method and system for installing software
US8555247B2 (en) * 2006-10-13 2013-10-08 International Business Machines Corporation Systems and methods for expressing temporal relationships spanning lifecycle representations
US9378011B2 (en) * 2009-03-19 2016-06-28 Microsoft Technology Licensing, Llc Network application versioning
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US8935458B2 (en) 2011-01-05 2015-01-13 Intel Corporation Drive assisted system checkpointing via system restore points
US8677346B1 (en) * 2011-09-27 2014-03-18 Symantec Corporation Providing installer package information to a user
US8972966B2 (en) * 2012-01-05 2015-03-03 Lenovo (Singapore) Pte. Ltd. Updating firmware in a hybrid computing environment
US9459856B2 (en) * 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments
US9535856B2 (en) 2014-02-21 2017-01-03 International Business Machines Corporation Data access to a storage tier on a client in a multi-tiered storage system
JP6458342B2 (ja) * 2014-02-25 2019-01-30 株式会社リコー 操作部を備えた機器、情報処理方法、情報処理プログラム、および情報処理システム
US10152391B2 (en) * 2014-02-28 2018-12-11 Ncr Corporation Self-service terminal (SST) backups and rollbacks
US20150269856A1 (en) * 2014-03-24 2015-09-24 Guru Labs, L.C. Virtual classroom management system and interface
US9785510B1 (en) 2014-05-09 2017-10-10 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
KR102399964B1 (ko) * 2014-05-28 2022-05-20 주식회사 알티캐스트 어플리케이션 관리 시스템 및 그 방법
US9734021B1 (en) 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
JP5904514B1 (ja) * 2014-10-28 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10509646B2 (en) 2017-06-02 2019-12-17 Apple Inc. Software update rollbacks using file system volume snapshots
US10437683B1 (en) * 2017-06-06 2019-10-08 Symantec Corporation Systems and methods for protecting data affected by system changes
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US10990581B1 (en) 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
US11182372B1 (en) 2017-11-08 2021-11-23 Amazon Technologies, Inc. Tracking database partition change log dependencies
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
US11042503B1 (en) 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
US20190163370A1 (en) * 2017-11-28 2019-05-30 International Business Machines Corporation Data replication based on data-driven recovery objectives
US10621049B1 (en) 2018-03-12 2020-04-14 Amazon Technologies, Inc. Consistent backups based on local node clock
US11126505B1 (en) 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11042454B1 (en) 2018-11-20 2021-06-22 Amazon Technologies, Inc. Restoration of a data source

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324691B1 (en) * 1998-11-12 2001-11-27 Hewlett-Packard Company Manufacture of software distribution media packages from components resident on a remote server source
US6438749B1 (en) * 1999-03-03 2002-08-20 Microsoft Corporation Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
WO2005119432A2 (en) * 2004-06-01 2005-12-15 Red Bend Ltd Method and system for in-place updating content stored in a storage device
CN101236518A (zh) * 2007-01-23 2008-08-06 国际商业机器公司 备份和恢复文件的方法和***

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62210552A (ja) * 1986-03-11 1987-09-16 Nec Corp フアイルリカバリ方式
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6112024A (en) * 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US6216175B1 (en) * 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
US6141773A (en) 1998-06-30 2000-10-31 Emc Corporation Method and apparatus for undoing changes to computer memory
US6397381B1 (en) 1998-09-21 2002-05-28 Microsoft Corporation System and method for repairing a damaged application program
US6237144B1 (en) * 1998-09-21 2001-05-22 Microsoft Corporation Use of relational databases for software installation
US6523166B1 (en) * 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6226792B1 (en) * 1998-10-14 2001-05-01 Unisys Corporation Object management system supporting the use of application domain knowledge mapped to technology domain knowledge
US6457175B1 (en) 1998-11-09 2002-09-24 Tut Systems, Inc. Method and apparatus for installing a software upgrade within a memory resource associated with a computer system
US6324692B1 (en) 1999-07-28 2001-11-27 Data General Corporation Upgrade of a program
GB2359385B (en) 2000-02-16 2004-04-07 Data Connection Ltd Method for upgrading running software processes without compromising fault-tolerance
US6631519B1 (en) * 2000-03-30 2003-10-07 Microsoft Corporation Automated schema and interface generation
EP1195679A1 (en) 2000-10-06 2002-04-10 Hewlett-Packard Company, A Delaware Corporation Performing operating system recovery from external back-up media in a headless computer entity
GB2367656A (en) 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
DE10059825A1 (de) * 2000-12-01 2002-06-13 Clariant Gmbh Verwendung von kammförmigen Copolymeren auf Basis von Acryloyldimethyltaurinsäure in kosmetischen, pharmazeutischen und dermatologischen Mitteln
EP1237078A1 (de) * 2001-01-19 2002-09-04 Siemens Aktiengesellschaft Durchführung eines zeitoptimierten Austausches einer Software-Applikation
US7356816B2 (en) * 2001-02-13 2008-04-08 Computer Associates Think, Inc. Method and apparatus for multiplatform migration
US8201162B2 (en) 2001-03-19 2012-06-12 Sony Corporation Software updating system, software updating method, and software updating program
US6993760B2 (en) * 2001-12-05 2006-01-31 Microsoft Corporation Installing software on a mobile computing device using the rollback and security features of a configuration manager
AU2003251504A1 (en) * 2002-06-12 2003-12-31 Fslogic Inc. Systems and methods for the creation of software packages using layered systems
US7263688B2 (en) * 2002-09-23 2007-08-28 Realnetworks, Inc. Method and apparatus for dynamic data-type management
US6836657B2 (en) 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
US7085957B2 (en) 2002-11-21 2006-08-01 Texas Instruments Incorporated Upgrading of firmware with tolerance to failures
US6978452B2 (en) * 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US7735078B1 (en) * 2003-10-30 2010-06-08 Oracle America, Inc. System and method for software patching for cross-platform products
US7509636B2 (en) * 2003-12-15 2009-03-24 Microsoft Corporation System and method for updating files utilizing delta compression patching
US7676804B2 (en) * 2004-05-20 2010-03-09 Caterpillar Inc. Systems and method for remotely modifying software on a work machine
US7506338B2 (en) * 2004-08-30 2009-03-17 International Business Machines Corporation Method and apparatus for simplifying the deployment and serviceability of commercial software environments
US7703090B2 (en) * 2004-08-31 2010-04-20 Microsoft Corporation Patch un-installation
US7788536B1 (en) * 2004-12-21 2010-08-31 Zenprise, Inc. Automated detection of problems in software application deployments
US7577949B2 (en) * 2005-01-20 2009-08-18 Microsoft Corporation Installation source management
EP1915682A4 (en) * 2005-06-29 2014-10-01 Emc Corp CREATING A UNIQUE CLIENT INSTANTANE USING A CLIENT UTILITY
WO2007048062A2 (en) * 2005-10-21 2007-04-26 Vir2Us, Inc. Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US8321859B2 (en) * 2005-12-22 2012-11-27 Alan Joshua Shapiro Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets
US8261253B2 (en) 2006-01-25 2012-09-04 The Boeing Company Method for restoring software applications on desktop computers
US7664982B2 (en) 2006-10-26 2010-02-16 Hewlett-Packard Development Company, L.P. Method and system for storing recovery related information on a computer memory
US8037471B2 (en) * 2006-11-16 2011-10-11 International Business Machines Corporation Systems and methods for constructing relationship specifications from component interactions
JP2008269341A (ja) 2007-04-20 2008-11-06 Fanuc Ltd リカバリ用記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324691B1 (en) * 1998-11-12 2001-11-27 Hewlett-Packard Company Manufacture of software distribution media packages from components resident on a remote server source
US6438749B1 (en) * 1999-03-03 2002-08-20 Microsoft Corporation Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
WO2005119432A2 (en) * 2004-06-01 2005-12-15 Red Bend Ltd Method and system for in-place updating content stored in a storage device
CN101236518A (zh) * 2007-01-23 2008-08-06 国际商业机器公司 备份和恢复文件的方法和***

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853581A (zh) * 2012-12-04 2014-06-11 国际商业机器公司 软件版本管理***和方法
CN103853581B (zh) * 2012-12-04 2017-07-21 国际商业机器公司 软件版本管理***和方法
CN103324507A (zh) * 2013-06-25 2013-09-25 宇龙计算机通信科技(深圳)有限公司 一种终端预置应用程序更新的方法和装置
CN103631679A (zh) * 2013-12-06 2014-03-12 Tcl通讯(宁波)有限公司 一种移动终端中应用程序安装的控制方法及***
CN107861747A (zh) * 2017-06-26 2018-03-30 平安普惠企业管理有限公司 产品更新方法、设备和计算机可读存储介质
CN109508195A (zh) * 2017-09-12 2019-03-22 北京国双科技有限公司 测试安装包的安装方法及装置
CN109508195B (zh) * 2017-09-12 2022-05-27 北京国双科技有限公司 测试安装包的安装方法及装置
CN116048872A (zh) * 2022-06-16 2023-05-02 荣耀终端有限公司 一种数据克隆过程的管控方法、电子设备及存储介质
CN116048872B (zh) * 2022-06-16 2023-10-20 荣耀终端有限公司 一种数据克隆过程的管控方法、电子设备及存储介质

Also Published As

Publication number Publication date
ATE540358T1 (de) 2012-01-15
US8332842B2 (en) 2012-12-11
KR20110086732A (ko) 2011-07-29
EP2318929B1 (en) 2012-01-04
JP5444368B2 (ja) 2014-03-19
JP2012508919A (ja) 2012-04-12
US20100125841A1 (en) 2010-05-20
CN102216905B (zh) 2013-12-25
EP2318929A1 (en) 2011-05-11
WO2010055073A1 (en) 2010-05-20

Similar Documents

Publication Publication Date Title
CN102216905B (zh) 为运行在计算***中的应用创建应用还原点的方法和***
US5924102A (en) System and method for managing critical files
US8489552B1 (en) Generic granular restore of application data from a volume image backup
US8336044B2 (en) Method and system for deploying a software image
CN102165422B (zh) 固件更新装置以及方法
US7703090B2 (en) Patch un-installation
US7024581B1 (en) Data processing recovery system and method spanning multiple operating system
US6374401B1 (en) System, method, and program for updating registry objects with a cross-platform installation program
US8806476B2 (en) Implementing a software installation process
US6442754B1 (en) System, method, and program for checking dependencies of installed software components during installation or uninstallation of software
CN102193817B (zh) 简化物理和虚拟部署的管理
KR101781447B1 (ko) 시스템 리셋
US6223345B1 (en) System and method for building client and server application packages
US20070271561A1 (en) Updating virtual machine with patch or the like
US7577949B2 (en) Installation source management
EP1654670A1 (en) Servicing a component-base software product
RU2646309C1 (ru) Способ резервного копирования
US9619340B1 (en) Disaster recovery on dissimilar hardware
US8132047B2 (en) Restoring application upgrades using an application restore point
US7937609B2 (en) Disaster recovery in a data processing system
CN111427588A (zh) 中止固件包的安装
JP2614361B2 (ja) ファイル内容変更方法
US20220197752A1 (en) Copy reuse using gold images
US20070234000A1 (en) Method and system for dynamic management of a utility partition in a pre-operating system environment
US20220197757A1 (en) Automatic update of network assets using gold images

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant