KR20110086732A - 어플리케이션 복구 포인트들 - Google Patents

어플리케이션 복구 포인트들 Download PDF

Info

Publication number
KR20110086732A
KR20110086732A KR1020117013586A KR20117013586A KR20110086732A KR 20110086732 A KR20110086732 A KR 20110086732A KR 1020117013586 A KR1020117013586 A KR 1020117013586A KR 20117013586 A KR20117013586 A KR 20117013586A KR 20110086732 A KR20110086732 A KR 20110086732A
Authority
KR
South Korea
Prior art keywords
application
component
computer
installer
installer process
Prior art date
Application number
KR1020117013586A
Other languages
English (en)
Inventor
더글러스 마이클 차트랜드
산제이쿠마르 파텔
케빈 웨인 커크비
엘리자베스 앤 바우어
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
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 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110086732A publication Critical patent/KR20110086732A/ko

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

어플리케이션 복구 포인트들{APPLICATION RESTORE POINTS}
본 발명의 실시예들은 일반적으로는 컴퓨팅 시스템에서 어플리케이션을 백업 및 복구하는 것과 관련되고, 더 구체적으로는, 어플리케이션을 인스톨(또는 업그레이드)하기 이전에 존재한 상태로 복구하기 위해 어플리케이션 복구 포인트들을 사용하는 것과 관련된다.
기존의 어플리케이션 또는 운영 체제를 갱신하는 것뿐만이 아니라 새로운 어플리케이션을 인스톨하는 것은 흔히 일어나는 프로세스이다. 예를 들어, 어플리케이션(및 운영 체제) 공급자들은 흔히 어플리케이션을 갱신하거나, "버그" 또는 보안 문제를 바로잡는 패치들을 배포한다. 그러나, 때로는 새로운 어플리케이션들을 인스톨하거나 기존의 것들을 업그레이드하는 것은 컴퓨터 시스템에 지장을 주기도 한다. 즉, 업그레이드들은 때로는 그 어플리케이션(또는 그 시스템 상에서 실행 중인 기타 어플리케이션들)이 동작하지 못하도록("break") 한다. 예를 들어, 만약 업그레이드 프로세스가 성공적으로 완료되지 않는다면, 그 어플리케이션은 적절하게 기능할 수 없을 수도 있고 및/또는 데이터가 손실될 수도 있다. 이와 유사하게, 업그레이드되는 어플리케이션은 때로는 예상치 못한 방식으로 다른 시스템 어플리케이션들에 대해 영향을 준다(예를 들어, 그것들이 적절하게 기능하는 것을 방해한다). 따라서, 어떤 경우, 어플리케이션 또는 업그레이드는 컴퓨팅 시스템이 적절하게 기능을 재개할 수 있도록 하기 위해 제거되어야 할 수도 있다.
어플리케이션 업그레이드를 제거하는 한 가지 접근법은 어플리케이션을 인스톨(또는 업그레이드)하기 이전에 컴퓨팅 시스템의 완전한 이미지를 생성하고, 그런 다음 필요하다면 그 이미지를 복구하는 것이다. 그러나, 이 접근법은 흔히 상당한 스토리지 리소스들을 필요로 한다. 나아가, 어플리케이션을 그 업그레이드 이전의 상태로 복구하는 것은 그 컴퓨팅 시스템의 사용자가 업그레이드 프로세스를 개시하기 이전의 시스템 이미지를 생성하도록 요구한다. 더욱이, 이 접근법은 흔히 백업 프로세스 동안, 인스톨 프로세스 동안, 또는 만약 상기 이미지가 상기 시스템을 복구하는데 사용된다면, 상기 복구 프로세스 동안, 실질적인 비가동시간(downtime)을 초래한다.
본 발명의 제1 측면에 따라 어플리케이션을 위해 어플리케이션 복구 포인트를 생성하는 컴퓨터로 구현되는 방법이 제공된다. 상기 방법은 상기 어플리케이션에 인스톨 패키지를 적용하도록 구성된 인스톨러 프로세스를 호출하는 단계; 상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, 새로운 컴포넌트 리스트 및 변경(modify)될 어플리케이션 중 하나 또는 그 이상의 컴포넌트들 각각의 변경되지 않은 카피(unmodified copy)를 저장하도록 구성된 어플리케이션 복구 포인트 데이터 구조를 발생시키는 단계; 상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, 상기 인스톨러 프로세스에 의해 변경된 어플리케이션의 컴포넌트 각각을 위해, 상기 어플리케이션 복구 포인트 데이터 구조에 상기 컴포넌트의 변경되지 않은 카피를 저장하고, 상기 인스톨러 프로세스에 의해 상기 컴퓨팅 시스템에 추가된 새로운 컴포넌트 각각을 위해, 상기 새로운 컴포넌트에 대한 레퍼런스를 상기 새로운 컴포넌트 리스트에 추가하는 단계를 포함한다. 상기 방법은 상기 어플리케이션 복구 포인트 데이터 구조에 상기 새로운 컴포넌트를 저장하는 단계를 더 포함한다.
본 발명의 제2 측면에 따라, 프로그램을 포함하는 컴퓨터 판독가능 스토리지 매체가 제공된다. 상기 프로그램은 실행되는 경우 어플리케이션을 위한 어플리케이션 복구 포인트를 생성하는 동작을 수행한다. 상기 동작은 상기 인스톨 패키지를 상기 어플리케이션에 적용하도록 구성된 인스톨러 프로세스를 호출하는 단계; 상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, 새로운 컴포넌트 리스트 및 변경될 어플리케이션의 하나 또는 그 이상의 컴포넌트들 각각의 변경되지 않은 카피를 저장하도록 구성된 어플리케이션 복구 포인트 데이터 구조를 생성하는 단계; 상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, 상기 인스톨러 프로세스에 의해 변경되는 어플리케이션의 컴포넌트 각각에 대해, 상기 어플리케이션 복구 포인트 데이터 구조에 상기 컴포넌트의 변경되지 않은 카피를 저장하고, 상기 인스톨러 프로세스에 의해 상기 컴퓨팅 시스템에 추가된 새로운 컴포넌트 각각에 대해, 상기 새로운 컴포넌트에 대한 레퍼런스를 상기 새로운 컴포넌트 리스트에 추가하는 단계를 포함한다. 상기 동작은 상기 어플리케이션 복구 포인트 데이터 구조에 상기 새로운 컴포넌트를 저장하는 단계를 더 포함한다.
본 발명의 제3 측면에 따른 시스템이 제공된다. 상기 시스템은 프로세서 및 어플리케이션 인스톨러 프로세스를 저장하는 메모리를 포함한다. 상기 어플리케이션 인스톨러 프로세스는 상기 프로세서에 의해 실행되는 경우 어플리케이션을 위한 어플리케이션 복구 포인트를 생성하는 동작을 수행하도록 구성된다. 상기 동작은 상기 어플리케이션에 인스톨 패키지를 적용하도록 구성된 인스톨러 프로세스를 호출하는 단계; 상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, 새로운 컴포넌트 리스트 및 변경될 상기 어플리케이션의 하나 또는 그 이상의 컴포넌트들의 변경되지 않은 카피를 저장하도록 구성된 어플리케이션 복구 포인트 데이터 구조를 발생시키는 단계; 상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, (i) 상기 인스톨러 프로세스에 의해 변경되는 어플리케이션의 컴포넌트 각각에 대해, 상기 어플리케이션 복구 포인트 데이터 구조에 상기 컴포넌트의 변경되지 않은 카피를 저장하는 단계; 및 (ii) 상기 인스톨러 프로세스에 의해 상기 컴퓨팅 시스템에 추가된 각각의 새로운 컴포넌트에 대해, 상기 새로운 컴포넌트 리스트에 상기 새로운 컴포넌트에 대한 레퍼런스를 추가하는 단계를 포함한다. 상기 동작은 상기 어플리케이션 복구 포인트 데이터 구조에 상기 새로운 컴포넌트 리스트를 저장하는 단계를 더 포함한다.
본 발명의 실시예들은 이제 첨부되는 도면들을 참조하여 기술될 것이다. 이 도면들 및 실시예들은 단지 예로서 제시된 것이다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션 복구 포인트를 도시한다.
도 3은 본 발명의 일 실시예에 따른 어플리케이션 복구 포인트를 생성하는 방법의 흐름도를 도시한다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션 복구 포인트에 기초하여 어플리케이션을 복구하는 방법의 흐름도이다.
발명의 실시예들은 어플리케이션이 인스톨, 갱신, 또는 패치되는 경우 어플리케이션 복구 포인트를 생성하는 기술들을 제공한다. 필요한 경우, 어플리케이션 복구 포인트는 상기 어플리케이션 복구 포인트에 존재한 상태로 상기 어플리케이션 및 컴퓨팅 시스템의 관련 부분들을 복구하기 위해 사용될 수 있다. 일 실시예에서, 상기 어플리케이션 복구 포인트는 어떤 컴포넌트들, 파일들, 또는 어플리케이션의 기타 구성요소들 및/또는 상기 어플리케이션에서 실행 중인 컴퓨팅 시스템이 상기 어플리케이션 인스톨(업그레이드) 동안, 변경(modify), 생성, 또는 삭제되는지에 관한 정보를 캡쳐한다. 중요하게는, 상기 생성 및 복구 프로세스들은 상기 컴퓨팅 시스템 상에서 실행 중인 기타 어플리케이션들에 지장을 주지 않는다. 바꿔 말하면, 어플리케이션 복구 포인트가 생성되거나 어플리케이션을 복구하기 위해(즉, 인스톨 또는 패치를 효과적으로 원상태로 돌리기(undo) 위해) 사용되는 동안, 상기 컴퓨팅 시스템의 어플리케이션들 및 기타 컴포넌트들이 사용될 수 있다. 나아가, 상기 생성 및 복구 프로세스들은 주로 상기 인스톨 프로세스에 요구되는 파일들과 관련되므로, 상기 컴퓨팅 시스템의 리소스들은 보존되고 또한 다른 목적들을 위해 채용될 수 있다.
일 실시예에서, 사용자는 컴퓨팅 시스템에서 어플리케이션을 인스톨, 갱신, 또는 패치하기 위해 인스톨러 프로세스를 불러온다. 상기 인스톨러 프로세스는 상기 어플리케이션을 위한 어플리케이션 복구 포인트를 생성한다. 상기 인스톨러 프로세스의 실행 동안, 상기 컴퓨팅 시스템의 몇몇 파일들은 변경되어야만 할 수도 있고 및/또는 새로운 파일들이 생성되어야 할 수도 있다. 만약 상기 인스톨러 프로세스에 의해 파일이 변경된다면, 상기 파일의 원 카피(즉, 상기 파일이 상기 인스톨러 프로세스에 의해 변경되기 이전의 상태에 있는 그 파일의 카피)가 어플리케이션 복구 포인트에 배치된다. 만약 상기 인스톨러 프로세스에 의해 하나의 파일이 생성된다면, 이 파일에 대한 레퍼런스는 상기 어플리케이션 복구 포인트에 포함된다. 이러한 방법으로, 상기 인스톨러 프로세스가 상기 어플리케이션을 인스톨, 갱신, 또는 패치하는 것을 성공적으로 비성공적으로 완료하는 경우, 상기 어플리케이션 복구 포인트는 상기 인스톨러 프로세스에 의해 변경(또는 삭제)된 파일 각각의 원 카피들 및 상기 인스톨러 프로세스에 의해 생성된 파일들(즉, 새로운 파일들)의 리스트를 포함한다. 따라서, 상기 인스톨러 프로세스가 어떤 변화들을 만들기 이전의 상태로 상기 어플리케이션 및 상기 컴퓨팅 시스템의 해당 부분들을 복구하기 위해, 상기 새로운 파일들 리스트에 포함된 컴퓨팅 시스템의 파일들이 삭제되는 한편, 상기 인스톨러에 의해 변경된 파일들은 상기 인스톨(또는 갱신) 프로세스 동안 캡쳐된 변경되지 않은 버전들(즉, 원 카피들)로 대체된다.
이하에서, 본 발명의 실시예들이 참조된다. 그러나, 본 발명은 구체적으로 기술되는 실시예들로 한정되는 것이 아님을 이해해야 할 것이다. 그 대신에, 이하의 특징들 및 구성요소들의 조합은, 다른 실시예들과 관련되든 그렇지 않든 간에, 발명을 구현하고 실행하는 것으로 고려된다. 더욱이, 여러 가지 실시예들에서, 본 발명은 종래의 기술을 통해 여러 가지 이점들을 제공한다. 그러나, 본 발명의 실시예들이 다른 가능한 솔루션들을 통해 및/또는 종래 기술을 통해 이점들을 달성할 수 있지만, 특정 이점이 주어진 실시예에 의해 달성되든 그렇지 않든 간에, 본 발명의 범위를 한정하는 것은 아니다. 따라서, 다음의 측면들, 특징들, 실시예들 및 이점들은 단지 청구항(들)에서 분명히 인용되는 경우를 제외하고는 첨부되는 청구항들의 한정들 또는 구성요소로서 고려되어서는 아니되고 단지 설명을 위한 것임을 주목해야 할 것이다.
이와 마찬가지로, "발명"에 대한 레퍼런스는 여기에 개시되는 발명의 주제의 일반화로서 해석되지는 아니할 것이고 청구항(들)에서 분명히 인용되는 경우를 제외하고는 첨부되는 청구항들의 한정 또는 구성요소로 간주되어서는 아니될 것이다.
발명의 일 실시예는 컴퓨팅 시스템에 사용하기 위한 프로그램 제품으로 구현된다. 상기 프로그램 제품의 프로그램(들)은 실시예들(여기에 기술되는 방법들을 포함함)의 기능들을 정의하고 여러 가지 컴퓨터-판독가능 스토리지 매체 상에 포함될 수 있다. 예시적인 컴퓨터-판독가능 스토리지 매체는 다음의 (i) 및 (ii)를 포함할 수 있으나, 이러한 것들로 한정되는 것은 아니다. (i) 정보가 영구적으로 저장되는 쓰기가능하지 않은 스토리지 매체(예, CD-ROM 드라이브에 의해 판독가능한 CD-ROM 디스크들과 같은 컴퓨터 내의 읽기 전용 메모리 디바이스들); (ii) 변경가능한 정보가 저장되는 쓰기가능한 스토리지 매체(예, 디스켓 드라이브 또는 하드-디스크 드라이브 내의 플로피 디스크들). 이러한 컴퓨터-판독가능 스토리지 매체는, 본 발명의 기능들을 지시하는 컴퓨터-판독가능 명령들을 지니는 경우, 본 발명의 실시예들이다. 다른 매체는, 예를 들어, 무선 통신 네트워크들을 포함하여 컴퓨터 또는 전화 네트워크를 통해, 정보가 컴퓨터로 전달되는 통신 매체를 포함한다. 후자의 실시예는 특히 인터넷 및 기타 네트워크들로/로부터 정보를 전송하는 것을 포함한다. 이러한 통신 매체는, 본 발명의 기능들을 지시하는 컴퓨터-판독가능 명령들을 지니는 경우, 본 발명의 실시예들이다. 더 넓게는, 컴퓨터-판독가능 스토리지 매체 및 통신 매체는 여기서는 컴퓨터 판독가능 매체로 일컬어질 수 있다.
일반적으로, 본 발명의 실시예들을 구현하도록 실행되는 루틴들은, 운영 체제 또는 특징 어플리케이션, 컴포넌트, 프로그램, 모듈, 객체, 또는 명령들의 시퀀스의 일부일 수 있다. 본 발명의 컴퓨터 프로그램은 전형적으로는 다수의 명령들로 구성되는데, 이러한 다수의 명령들은 원래의 컴퓨터에 의해 머신-판독가능 포맷 및 실행가능한 명령들로 변환될 것이다. 또한, 변수들 및 데이터 구조들로 구성되는데, 이 변수들 또는 데이터 구조들은 메모리 내에 또는 스토리지 디바이스들 상에 존재하거나 프로그램에 국부적으로 상주한다. 또한, 이후에 기술되는 여러 가지 프로그램들은 그것들이 발명의 특정 실시예들로 구현되는 어플리케이션에 기초하여 식별될 수 있다. 그러나, 이후의 특정 프로그램 명명법은 단지 설명의 편의를 위해 사용된 것임을 이해해야 할 것이고, 따라서 본 발명은 단지 그러한 명명법에 의해 식별 및/또는 의미되는 특정 어플리케이션만을 사용하는 것으로 한정되어서는 아니된다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)의 일 예를 도시하는 블록도이다. 도시된 바와 같이, 컴퓨팅 시스템(100)은 키보드 및 마우스 포인팅 디바이스와 같은 입력 디바이스들(110), CRT 또는 LCD 디스플레이 모니터와 같은 디스플레이 디바이스(120), 및 컴퓨터 시스템(130)을 포함한다. 예를 들어, 컴퓨터 시스템(130)은 하나 또는 그 이상의 중앙처리장치("CPU")(132), 메모리(140), 및 스토리지(150)를 포함하는데, 이들 서로 간에는 버스 인터페이스(134)에 의해 결합된다. CPU(104)는 컴퓨터 내의 모든 명령들, 로직, 및 수학적 처리를 수행하는 하나 또는 그 이상의 프로그램가능한 로직 디바이스들을 나타낸다. 예를 들어, CPU(104)는 단일 CPU, 멀티 CPU들, 멀티 처리 코어들을 갖는 단일 CPU 등을 나타낼 수 있다. 메모리(140)는 필수적인 프로그래밍 및 데이터 구조들을 보유하기에 충분히 큰 랜덤 억세스 메모리를 포함하는 하나의 메모리 디바이스 또는 메모리 디바이스들의 조합일 수 있다. 스토리지(150)는 물리적 디스크 드라이브들, 플래쉬 메모리 디바이스들로 한정될 뿐만 아니라, 스토리지 디바이스들에 부착된 네트워크 및 네트워크를 통해 실장된 스토리지 볼륨들을 포함하는 하나의 스토리지 디바이스들 또는 스토리지 디바이스들의 조합일 수 있다.
컴퓨터 시스템(130)은 예를 들어, 데스크탑 컴퓨터들, 서버 컴퓨터들, 랩탑 컴퓨터들, 타블렛 컴퓨터들 등과 같은 기존의 컴퓨터 시스템들을 나타내기 위해 포함된다. 그러나, 도 1에 도시된 서버 시스템(130)은 단지 컴퓨팅 시스템의 일 예이다. 본 발명의 실시예들은 다른 컴퓨팅 시스템들을 사용하여 구현될 수 있다. 그러나 상기 컴퓨터 시스템들은 고속 네트워크에 의해 연결된 개별 컴퓨터들의 클러스터와 같은 복잡한 멀티-사용자 컴퓨팅 시스템들이거나, 비휘발성 스토리지가 없는 네트워크 어플라이언스들인가에 관계없다. 그러나, 여기에 기술되는 소프트웨어 어플리케이션들은 현재의 어떤 기존의 컴퓨팅 환경 또는 프로그래밍 언어로 한정되지 않고, 그것들이 이용가능해 질 수 있는 새로운 컴퓨팅 시스템들이 이용할 수 있도록 적응될 수도 있다.
도시된 바와 같이, 메모리(140)는 인스톨러(142), 어플리케이션 업그레이드 컴포넌트(144), 및 컴퓨팅 시스템(100) 상에서 실행되도록 구성된 어플리케이션(146)을 포함한다. 인스톨러(142), 어플리케이션 업그레이드 컴포넌트(144), 및 어플리케이션(146)은 일반적으로는 메모리(140)에 또한 상주하고 있는 운영 체제(미도시)에 의해 일반적으로 지원된다. 상기 운영 체제의 예들은, IBM® AIX®, Microsoft Windows®, 및 Linux® 운영 체제의 배포 등을 포함한다. 더 일반적으로는, 여기에 기술된 기능들을 지원할 수 있는 어떤 운영 체제든 사용될 수 있다.
IBM 및 AIX는 미국, 기타 국가들, 또는 둘 모두에서의 IBM사(International business Machines Corporation)의 상표들이고, UNIX는 미국 및 기타 국가들에서 오픈 그룹(Open Group)의 등록 상표이고; Microsoft 및 Windows는 미국, 기타 국가들, 또는 둘 모두에서의 마이크로소프트사의 상표들이고; Linux는 미국, 기타 국가들, 또는 둘 모두에서 리누스 토발즈(Linus Torvalds)의 등록 상표이다.
일반적으로, 인스톨러(142)는 어플리케이션 갱신 컴포넌트(144)를 사용하여 컴퓨팅 시스템(100)에서 어플리케이션(144)을 인스톨, 갱신, 패치, 및/또는 삭제하기 위해 사용될 수 있다. 이러한 프로세스 동안, 하나 또는 그 이상의 파일들(154), 및 복구 포인트들(152)은 생성, 변경, 또는 삭제될 수 있다. 파일들(154) 및 복구 포인트들(152)은 스토리지(150)에 상주한다. 더 구체적으로는, 파일들(154)은 파일들, 컴포넌트들, 또는 어플리케이션(146) 및/또는 컴퓨팅 시스템(100)의 기타 구성요소들을 포함하는데, 어플리케이션(146)을 업그레이드하는 동안 이것들은 인스톨러 프로세스(142)에 의해 변경된다. 각각의 어플리케이션 복구 포인트(152)는 인스톨러(142)에 의해 인스톨된 어플리케이션 업그레이드에 대응하는 데이터 구조를 제공한다. 일 실시예에서, 어플리케이션(146)을 업그레이드하는 동안 적어도 하나의 어플리케이션 복구 포인트(152)가 생성된다. 이러한 어플리케이션 복구 포인트(152)는, 만약 필요하다면, 파일들, 컴포넌트들, 및/또는 어플리케이션(146) 및/또는 컴퓨팅 시스템(100)의 파일들, 컴포넌트들, 및/또는 기타 구성요소들을 복구하기 위해 계속해서 사용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 예시적인 어플리케이션 복구 포인트(152)를 도시한다. 일반적으로, 어플리케이션 복구 포인트(152)는 대응하는 어플리케이션의 가능한 복구와 관련된 정보를 저장하는 데이터 구조이다. 도시된 바와 같이, 어플리케이션 복구 포인트(152)는 상기 어플리케이션 복구 포인트와 연관된 특정 어플리케이션을 식별하는 정보를 포함한다. 즉, 어플리케이션 명칭; 인스톨/업그레이드 날짜 및 시간(210) - 이는 그 프로세스가 수행된 날짜 및 시간과 같이 그 어플리케이션 상에서 수행되는 특정 프로세스를 특정할 수 있는 것임 -, 어떤 타입의 프로세스가 수행되었는지(예를 들어, 인스톨, 업그레이드, 패치 등)와 같은 것이다. 어플리케이션 복구 포인트(152)는 또한 하나 또는 그 이상의 원 파일들(2201-220M)(총괄하여 파일들(220)로 일컬어짐)을 포함한다. 여기서, 각각의 원 파일은 파일들뿐만 아니라 상기 인스톨러 프로세스에 의해 생성된 새로운 파일들(예를 들어, 새로운 파일들(2301-230N))의 리스트를 변경하는 인스톨러 프로세스 이전에 상기 어플리케이션 복구 포인트에 의해 캡쳐된 인스톨러 프로세스에 의해 변경된 파일의 카피이다.
이하에서 더 상세히 기술되는 바와 같이, 일 실시예에서, 인스톨러(142)에 의해 그 파일이 변경되기 이전에 파일의 변경되지 않은 카피를 캡쳐하기 위해 카피-온-라이트 프로세스(copy-on-write process)가 사용될 수 있다. 나아가, 상기 카피-온-라이트 메커니즘을 통해 상기 어플리케이션 복구 포인트로 저장(save)된 파일들은, 그 파일을 변경하고 있는 프로세스의 프로세스 id를 인스톨러 프로그램(또는 차일드 프로세스)의 프로세스 id에 매치시킴에 의해 상기 복구 포인트에 적용가능하도록 식별될 수 있다. 이러한 방법에서, 상기 인스톨 업그레이드 동안 또한 실행 중인 어플리케이션에 의해 변경되는 다른 파일들은 상기 복구 포인트에 추가되지 않는다. 파일들의 리스트는 어플리케이션 복구 포인트(152)에 대한 복구시 상기 원 파일들을 복구하기 위해(또는 새롭게 인스톨된 파일들을 제거하기 위해) 필요한 기타 정보와 함께 그 생성된 파일들의 식별 정보(예를 들어, 각각의 새롭게 생성된 파일의 명칭 및 그것의 위치)를 포함할 수 있다.
도 3은 발명의 일 실시예에 따라, 어플리케이션 복구 포인트를 생성하기 위한 방법(300)의 흐름도를 도시한다. 논의되는 바와 같이, 복구 포인트(152)와 같은 어플리케이션 복구 포인트는 그 어플리케이션을 포함하는 컴퓨팅 시스템 구성요소들에서의 변화들에 관한 정보(즉, 인스톨 또는 업그레이드 프로세스에 의해 야기되는 파일들(154))를 캡쳐하고 저장한다. 이러한 정보를 저장하기 위해, 단계(305)에서, 어플리케이션 복구 포인트의 데이터 구조가 생성 및/또는 개시(initialize)된다.
단계 310에서, 도 1에 도시된 인스톨러(142)와 같은 인스톨 프로세스가 어플리케이션(146)을 업그레이드(또는 인스톨)하기 위해 호출되는데, 여기서 어플리케이션(146)은 컴퓨팅 시스템(100) 상에서 실행되도록 적응된다. 일반적으로, 인스톨 프로세스(142)는 어플리케이션(146)을 업그레이드하기 위해 어플리케이션 업그레이드 컴포넌트(144)를 사용하도록, 그리고 업그레이드 동안, 상기 업그레이드 프로세스에 의해 야기되는 변화들을 모니터하도록 사용된다. 변화가 식별되는 경우, 인스톨러 프로세스(142)는 어플리케이션 복구 포인트(152)에서 어떤 변화들이 일어났는지를 기술하는 정보를 저장한다. 일 실시예에서, 인스톨러 프로세스(142)는 패키지 관리 시스템의 컴포넌트(즉, 프로그램들을 인스톨하고, 업그레이드하고, 구성하고, 컴퓨팅 시스템으로부터 프로그램들을 제거하는 프로세스를 자동화하기 위해 사용되는 툴들의 시스템)로 구현된다. 이러한 경우, 상기 인스톨 프로세스는 어플리케이션(또는 어플리케이션 자체)의 컴포넌트들을 인스톨, 업그레이드, 또는 제거하기 위해 개시된다. 나아가, 이러한 작용을 수행하는 일부로서, 인스톨러 프로세스(1342)는 어떤 업그레이드, 패치, 또는 인스톨 프로세스가 수행되는지에 대응하게 어플리케이션 복구 포인트(152)를 생성할 수 있다.
단계 315에서, 인스톨러 프로세스(142)에 의한 업그레이드 동안 변경된 각각의 파일에 대해, 변경되지 않은 파일의 카피(즉, 원 파일(220))가 그 어플리케이션 복구 포인트에 추가된다. 일 실시예에서, 상기 업그레이드 프로세스 동안 동일한 파일이 복수 회 변경되는 경우, 원 파일의 단지 하나의 카피만이 저장된다(예를 들어, 그 파일이 처음으로 변경되는 시간에). 이러한 방법으로, 상기 인스톨 프로세스가 완료되는 경우, 상기 어플리케이션 복구 포인트는 상기 인스톨 프로세스 동안 상기 컴퓨팅 시스템에 변경(또는 삭제)된 파일의 원 카피를 포함한다.
몇몇 인스톨 또는 업그레이드 프로세스들은 상기 컴퓨팅 시스템에서 새로운 파일들을 생성할 수 있다. 따라서, 상기 인스톨 프로세스들에 의해 야기되는 변화들을 제거하기 위해, 이러한 새로운 파일들은 제거되어야 한다. 이러한 파일들을 추적하기 위해, 단계 320에서, 인스톨러 프로세스(142)에 의해 상기 업그레이드 동안 생성된 각각의 파일은 새로운 파일(230)과 같이 상기 어플리케이션 복구 포인트에 열거된다. 생성된 파일들 중 몇몇은 상기 업그레이드 프로세스의 지속시간 동안에만 생성된 임시 파일들일 수 있다. 일 실시에0에서, 인스톨러 프로세스(142)는 상기 새로운 파일들 리스트에 이러한 임시 파일들을 두지는 않는다. 이와는 다르게, 인스톨러 프로세스(142)는 임시 파일들을 식별하지 않지만, 파일이 제거될 필요가 있는 경우 그 인스톨러 프로세스는 그 파일이 새로운 파일들 리스트 상에 있는지를 체크한다. 만약 예라면, 상기 파일은 상기 새로운 파일들로부터 제거되고 상기 파일의 어떠한 카피도 생성되지 않는다. 이러한 방법에서, 인스톨러 프로세스(142)가 상기 인스톨 프로세스를 성공적으로(또는 비성공적으로) 완료한 경우, 어플리케이션 복구 포인트(152)는 상기 인스톨러 프로세스에 의한 업그레이드 프로세스 동안 생성된 파일들에 대한 레퍼런스들을 포함한다. 인스톨러 프로세스(142)는 단계들 315 및 320을 실행하고 또한 특정 인스톨 프로세스 동안 변경된 파일들만을 식별하기 위한 여러 가지 툴들을 채용할 수 있고. 예를 들어, 일 실시예에서, 파일 시스템을 저널링(journaling) 또는 트레이싱 파일링(tracing filing) 시스템에 의해 제공되는 툴들이 사용된다. 저널링 파일 시스템에서 변화들은 발생(commit)되기 전에 저널에 로그된다. 따라서, 인스톨러 프로세스(142)는 파일 변화 그리고 이러한 변화가 발생되기 이전에 상기 업그레이드 프로세스에 의해 야기된 것을 감지하기 위해 이러한 로그들을 사용할 수 있다. 예를 들어, "카피-온-라이트" 프로세스가 사용될 수 있다. 알려진 바와 같이, 상기 "카피-온-라이트" 프로세스는 어플리케이션(사실상 다수의 어플리케이션들)이 파일에 접근하도록 허용한다. 상기 어플리케이션이 그 파일을 라이트(즉, 변경)하는 경우, 라이트 프로세스 상의 카피는 그 어플리케이션에 의해 라이트된 파일의 카피를 생성한다. 일 실시예에서, 상기 인스톨러 프로세스에게 상기 "카피-온-라이트"를 제공하기보다는 오히려, 이러한 카피는 단지 그 어플리케이션 복구 포인트에 추가되고, 그 파일의 실제 카피는 인스톨러 프로세스(142)에 의해 라이트된다. 이러한 방법에서, 인스톨러 프로세스(142)는 그것들이 어플리케이션을 인스톨(또는 업그레이드) 하는 것의 일부로서 변경 또는 삭제되기 전에 파일들의 원 카피들을 저장한다.
또 다른 실시예에서, 상기 업그레이드 프로세스를 개시하기 직전에, 인스톨러 프로세스(142)는, 예를 들어, 알려진 Linux® 로지컬 볼륨 매니저 패키지에 의해 제공되는 툴들을 사용하여 컴퓨팅 시스템(100)의 스냅샷(상기 컴퓨팅 시스템 파일들의 읽기 전용 카피)을 생성한다. 그런 다음, 인스톨러 프로세스(142)가 관련 파일 변화를 감지하는 경우, 그것은 상기 스냅샷으로부터 그 파일의 변경되지 않은 버전을 획득한다. 상기 업그레이드 프로세스를 완료시, 인스톨러 프로세스(142)는 상기 스냅샷을 삭제할 수 있다.
일 실시예에서, 어플리케이션(146)을 업그레이드하기 위해 사용자가 인스톨러 프로세스(142)를 호출하는 경우, 인스톨러 프로세스(142)는 어플리케이션 복구 포인트(152)를 자동적으로 발생시키고 위에서 기술된 단계들(305, 315 및 320)을 실행시킨다. 따라서, 상기 사용자는 그 업그레이드 프로세스 이전에 데이터를 백업할 필요는 없다. 오히려, 상기 사용자가 어플리케이션을 업그레이드하기 위해 상기 인스톨러 프로세스를 채용할 때마다, 각각의 어플리케이션 복구 포인트가 생성되어, 필요시 상기 사용자가 이러한 프로세스가 실행되기 이전의 상태로 상기 업그레이드 프로세스 동안 그리고 상기 업그레이드 프로세스에 의해 변경된 파일들을 복구하도록 허용한다. 선택적으로는, 상기 인스톨러 프로세스는 상기 업그레이드 프로세스의 서로 다른 단계들 동안 다수의 어플리케이션 복구 포인트를 생성하도록 구성될 수 있다.
도 4는 발명의 일 실시예에 따라 복구 포인트를 사용하여 어플리케이션을 복구하기 위한 방법(400)의 흐름도를 도시한다. 단계 405에서, 어플리케이션 복구 포인트의 선택이 수신된다. 일 실시예에서, 상기 어플리케이션은 다수의 어플리케이션 복구 포인트들과 연관될 수 있다. 논의된 바와 같이, 각각의 어플리케이션 복구 포인트는, 어플리케이션의 특정 상태, 그리고 패치, 업그레이드, 또는 어플리케이션 자체의 인스톨에 의해 변경된 관련 구성요소들(예를 들어, 파일들, 레지스트리 키들 등)을 나타낸다. 예를 들어, 어플리케이션 복구 포인트는 어플리케이션을 인스톨하기 이전의 다수의 파일들의 상태, 상기 인스톨 프로세스 동안 특정 포인트 이전의 관련 파일들의 상태, 상기 어플리케이션이 하나의 버전으로 업그레이드되기 이전의 관련 파일들의 상태, 상기 어플리케이션이 또 다른 버전으로 업그레이드되기 이전의 관련 파일들의 상태 등을 캡쳐할 수 있다. 일 실시예에서, 상기 사용자는 상기 사용자가 원하는 어플리케이션 복구 포인트를 선택하도록 허용하는 인터페이스를 제공받는다.
선택적으로는, 상기 사용자에게 상기 복구 프로세스를 원상태로 돌릴(undo) 기회를 제공하기 위해, 상기 복구 프로세스에 의해 생성될 파일들에 대한 레퍼런스들 및 상기 복구 프로세스에 의해 변경되거나 삭제되는 파일들의 카피들은, 단계 410에서 언두 어플리케이션 복구 포인트에 저장(save) 및 저장(store)된다. 일 실시예에서, 이러한 파일들은 선택된 어플리케이션 복구 포인트에 포함된 정보를 사용하여 결정된다. 즉, 어플리케이션 복구 포인트를 복구하는 프로세스는 그 자체가 업그레이드로 보여질 수 있는데, 이를 위해 대응하는 어플리케이션 복구 포인트가 발생될 수 있다. 논의되는 바와 같이, 상기 어플리케이션 복구 포인트 내에 새로운 파일들로 열거된 파일들은 상기 인스톨러 프로세스에 의해 생성된 파일들이고, 따라서, 상기 복구 프로세스 동안 제거될 필요가 있다. 이와 같이, 이러한 파일들의 카피들은 상기 언두 어플리케이션 복구 포인트에 저장된다. 만약 하나의 파일이 상기 어플리케이션 복구 포인트에 저장된 대응하는 원 카피를 갖는다면, 그 파일은 상기 인스톨러 프로세스에 의해 변경 또는 삭제되었고, 따라서 그 파일의 현재의 카피(상기 복구 프로세스를 개시하기 이전의 상태에서)는 상기 언두 어플리케이션 복구 포인트에 저장된다. 그 파일이 존재하지 않는 경우, 그 파일에 대한 레퍼런스는 상기 언두 어플리케이션 복구 포인트의 새로운 파일 리스트에 포함된다. 또 다른 실시예에서, 상기 언두 어플리케이션 복구 포인트는 도 3에 대해 위에서 기술된 바와 같은 어플리케이션 복구 포인트를 생성하기 위한 방법을 사용하여 발생되며, 여기서 상기 인스톨러 프로세스는 상기 어플리케이션을 위한 복구 프로세스를 실행시킨다.
방법(400)의 단계(415)에서, 새로운 파일로 상기 어플리케이션 복구 포인트에 열거된 파일 각각은 삭제될 수 있다. 위에서 논의된 바와 같이, 만약 하나의 파일이 상기 어플리케이션 복구 포인트에 새로운 것으로 열거된다면, 이러한 파일은 이러한 특정 어플리케이션 복구 포인트가 생성된 경우 상기 인스톨러 프로세스에 의해 초기에 생성되었다. 따라서, 상기 선택된 어플리케이션 복구 포인트에서 캡쳐된 상태로 상기 인스톨러 프로세스에 의해 영향을 받은 컴퓨팅 시스템의 일부분들 및 상기 어플리케이션을 복구하기 위해, 상기 어플리케이션 복구 포인트에 열거된 새로운 파일들은 삭제된다. 상기 어플리케이션 복구 포인트가 상기 컴퓨팅 시스템 내의 그러한 파일의 위치를 찾기 위해 요구되는 정보(예, 경로명(pathname) 또는 파일명(filename))를 포함한다는 것을 주목하자.
단계 420에서, 상기 인스톨러 프로세스 동안 변경된 파일 각각은 복구되는 어플리케이션 복구 포인트에 저장된 원 카피로 대체된다. 위에서 논의된 바와 같이, 상기 어플리케이션 복구 포인트는 상기 인스톨러 프로세스 동안 변경되거나 삭제된 파일들의 원 카피들을 포함한다. 따라서, 상기 인스톨러 프로세스에 의해 영향을 받은 컴퓨팅 시스템의 부분들 및 어플리케이션을 상기 어플리케이션 복구 포인트에 의해 표현된 상태까지 복구하기 위해, 상기 어플리케이션 복구 포인트에 저장된 원 카피들은 복구된다. 더 구체적으로는, 만약 하나의 파일이 그것이 상기 인스톨러 프로세스에 의해 변경되었기 때문에 삭제되었다면, 이러한 파일은 복구된다. 예를 들어, 상기 어플리케이션 복구 포인트에 저장된 파일의 원 카피는 상기 컴퓨팅 시스템 내에 배치된다. 만약 상기 인스톨러 프로세스에 의해 변경된 컴퓨팅 시스템의 파일이 상기 컴퓨팅 시스템에 아직도 존재한다면, 그것의 현재의 q전은 상기 컴퓨팅 시스템으로부터 삭제되고 상기 어플리케이션 복구 포인트에 저장된 파일의 원 카피는 상기 컴퓨팅 시스템에 배치된다. 일 실시예에서, 단계 420은 파일-바이-파일(file-by-file)로 실행될 수 있다. 이와는 다르게, 상기 어플리케이션 복구 포인트에 포함된 모든 원 카피들은 기존의 파일들을 대체하는 컴퓨팅 시스템 내에 카피된다.
단계들 415 및 420이 상기 어플리케이션 복구 포인트에 식별된 모든 파일들을 저장하는 경우, 방법(400)은 완료된다. 선택적으로는, 방법(400)의 완료시, 그 방법에 의해 사용된 상기 어플리케이션 복구 포인트는 제거된다.
바람직하게는, 여기에 기술되는 바와 같이, 본 발명의 실시예들은 어플리케이션이 인스톨, 갱신, 또는 패치되는 경우, 어플리케이션 복구 포인트를 생성하는 것을 가능하게 하고, 필요한 경우, 그 어플리케이션 및 컴퓨팅 시스템의 관련 부분들을 그 어플리케이션 복구 포인트에 캡쳐된 상태로 복구하는 것을 가능하게 한다. 예를 들어, 상기 인스톨 프로세스에 의해 그리고 상기 인스톨 프로세스 동안 변경된 파일들과 같은, 단지 관련된 데이터만을 저장하고 상기 인스톨 프로세스를 모니터링함에 의해, 상기 생성 및 복구 프로세스들은 상기 컴퓨팅 시스템 상에서 실행 중인 다른 어플리케이션들을 방해하지 않는다. 더욱이, 상기 생성 및 복구 프로세스들은 주로 상기 인스톨 프로세스를 위해 필요한 파일들과 관련되므로, 상기 컴퓨팅 시스템의 리소스들은 보존되고 서로 다른 목적들을 위해 채용될 수도 있다.
비록 앞서의 설명들은 본 발명의 실시예들을 나타내지만, 본 발명의 기본 범위를 벗어남이 없이 발명의 다른 실시예들 및 추가 실시예들이 생각되어질 수 있으며, 본 발명의 범위는 다음의 청구항들에 의해 결정된다.

Claims (31)

  1. 어플리케이션을 위해 어플리케이션 복구 포인트를 생성하는, 컴퓨터로 구현되는 방법에 있어서,
    인스톨 패키지를 상기 어플리케이션에 적용하도록 구성된 인스톨러 프로세스를 불러오는 단계;
    상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, 새로운 컴포넌트 리스트 및 변경될 상기 어플리케이션의 하나 또는 그 이상의 컴포넌트들의 변경되지 않은 카피를 저장하도록 구성된 어플리케이션 복구 포인트 데이터 구조를 발생시키는 단계;
    상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우,
    상기 인스톨러 프로세스에 의해 변경된 상기 어플리케이션의 각각의 컴포넌트를 위해, 상기 어플리케이션 복구 포인트 데이터 구조에 상기 컴포넌트의 변경되지 않은 카피를 저장하고, 상기 인스톨러 프로세스에 의해 상기 컴퓨팅 시스템에 추가된 각각의 새로운 컴포넌트를 위해, 상기 새로운 컴포넌트에 대한 레퍼런스를 상기 새로운 컴포넌트 리스트에 추가하는 단계; 및
    상기 어플리케이션 복구 포인트 데이터 구조에 상기 새로운 컴포넌트 리스트를 저장하는 단계를 포함하는,
    컴퓨터로 구현되는 방법.
  2. 청구항 1에 있어서, 상기 인스톨러 프로세스에 의해 변경된 상기 어플리케이션의 각각의 컴포넌트는 카피-온-라이트(copy-on-write) 메커니즘을 사용하여 식별되고, 상기 컴포넌트들은 상기 인스톨러 프로세스와 연관된 프로세스 ID(PID)를 사용하여 식별되는,
    컴퓨터로 구현되는 방법.
  3. 청구항 1 또는 2에 있어서, 상기 인스톨러 프로세스는 상기 어플리케이션을 인스톨하는 것, 상기 어플리케이션을 업그레이드하는 것, 상기 어플리케이션을 패치하는 것, 및 상기 어플리케이션을 제거하는 것 중 하나를 수행하기 위해 호출되는,
    컴퓨터로 구현되는 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서, 상기 변경된 컴포넌트들 및 상기 컴퓨팅 시스템에 추가된 새로운 컴포넌트들 중 하나 또는 그 이상은 파일 시스템에 명시된 위치에 저장된 파일인,
    컴퓨터로 구현되는 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 새로운 컴포넌트 리스트는 상기 컴퓨팅 시스템에서의 상기 새로운 컴포넌트 리스트 상의 각각의 파일의 파일명들의 리스트 및 경로 위치들의 리스트를 포함하는,
    컴퓨터로 구현되는 방법.
  6. 청구항 1에 있어서, 상기 변경된 컴포넌트들 또는 상기 컴퓨팅 시스템에 추가된 새로운 컴포넌트들 중 적어도 하나는 레지스트리 키, 구성 파일 세팅, 및 시스템 세팅인,
    컴퓨터로 구현되는 방법.
  7. 청구항 1에 있어서, 상기 인스톨러 프로세스는 상기 인스톨러 프로세스에 의해 변경된 각각의 컴포넌트를 식별하기 위해 그리고 각각의 변경된 컴포넌트의 변경되지 않은 카피를 획득하기 위해, 파일 시스템 메커니즘에 접근하도록 구성된,
    컴퓨터로 구현되는 방법.
  8. 청구항 1 내지 7 중 어느 한 항에 있어서, 상기 어플리케이션은 운영 체제이고 상기 인스톨 패키지는 상기 운영 체제의 업그레이드 또는 패치인,
    컴퓨터로 구현되는 방법.
  9. 청구항 1 내지 8 중 어느 한 항에 있어서, 상기 컴퓨터로 구현되는 방법은,
    상기 컴퓨팅 시스템의 스냅샷을 생성하는 단계;
    상기 인스톨 패키지를 적용함에 의해 변경된 컴포넌트의 각각의 변경되지 않은 컴포넌트를 상기 스냅샷으로부터 획득하는 단계; 및
    상기 인스톨 프로세스 완료시, 상기 생성된 스냅샷을 삭제하는 단계를 더 포함하는,
    컴퓨터로 구현되는 방법.
  10. 청구항 1 내지 9 중 어느 한 항에 있어서, 상기 컴퓨터로 구현되는 방법은,
    상기 인스톨 패키지를 적용하는 단계의 일부로서 상기 인스톨러 프로세스에 의해, 먼저 인스톨되고 이후에 제거된 컴포넌트에 대응하게 상기 새로운 컴포넌트 리스트로부터 적어도 하나의 엔트리들을 제거하는 단계를 더 포함하는,
    컴퓨터로 구현되는 방법.
  11. 프로그램을 포함하는 컴퓨터 판독가능 스토리지 매체로서, 상기 프로그램은 실행시 어플리케이션을 위해 어플리케이션 복구 포인트를 생성하는 동작을 수행하며, 상기 동작은,
    인스톨 패키지를 상기 어플리케이션에 적용하도록 구성된 인스톨러 프로세스를 불러오는 단계;
    상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, 새로운 컴포넌트 리스트 및 변경될 상기 어플리케이션의 하나 또는 그 이상의 컴포넌트들 각각의 변경되지 않은 카피를 저장하도록 구성된 어플리케이션 복구 포인트 데이터 구조를 발생시키는 단계;
    상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우,
    상기 인스톨러 프로세스에 의해 변경된 상기 어플리케이션의 각각의 컴포넌트를 위해, 상기 어플리케이션 복구 포인트 데이터 구조에 상기 컴포넌트의 변경되지 않은 카피를 저장하고, 상기 인스톨러 프로세스에 의해 상기 컴퓨팅 시스템에 추가된 각각의 새로운 컴포넌트를 위해, 상기 새로운 컴포넌트에 대한 레퍼런스를 상기 새로운 컴포넌트 리스트에 추가하는 단계; 및
    상기 어플리케이션 복구 포인트 데이터 구조에 상기 새로운 컴포넌트 리스트를 저장하는 단계를 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  12. 청구항 11에 있어서, 상기 인스톨러 프로세스에 의해 변경된 상기 어플리케이션의 각각의 컴포넌트는 카피-온-라이트(copy-on-write) 메커니즘을 사용하여 식별되며, 상기 변경된 컴포넌트들은 상기 인스톨러 프로세스와 연관된 프로세스 ID(PID)를 사용하여 식별되는,
    컴퓨터 판독가능 스토리지 매체.
  13. 청구항 11 또는 12에 있어서, 상기 인스톨러 프로세스는 상기 어플리케이션을 인스톨하는 것, 상기 어플리케이션을 업그레이드하는 것, 상기 어플리케이션을 패치하는 것, 및 상기 어플리케이션을 제거하는 것 중 하나를 수행하기 위해 호출되는,
    컴퓨터 판독가능 스토리지 매체.
  14. 청구항 11 내지 13 중 어느 한 항에 있어서, 상기 변경된 컴포넌트들 및 상기 컴퓨팅 시스템에 추가된 새로운 컴포넌트들 중 하나 또는 그 이상은 파일 시스템에 명시된 위치에 저장된 파일인,
    컴퓨터 판독가능 스토리지 매체.
  15. 청구항 11 내지 14 중 어느 한 항에 있어서, 상기 새로운 컴포넌트 리스트는 상기 컴퓨팅 시스템에서의 상기 새로운 컴포넌트 리스트 상의 각각의 파일의 파일명들의 리스트 및 경로 위치들의 리스트를 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  16. 청구항 11에 있어서, 상기 변경된 컴포넌트들 또는 상기 컴퓨팅 시스템에 추가된 새로운 컴포넌트들 중 적어도 하나는 레지스트리 키, 구성 파일 세팅, 및 시스템 세팅인,
    컴퓨터 판독가능 스토리지 매체.
  17. 청구항 11에 있어서, 상기 인스톨러 프로세스는 상기 인스톨러 프로세스에 의해 변경된 각각의 컴포넌트를 식별하기 위해 그리고 각각의 변경된 컴포넌트의 변경되지 않은 카피를 획득하기 위해, 파일 시스템 메커니즘에 접근하도록 구성된,
    컴퓨터 판독가능 스토리지 매체.
  18. 청구항 11 내지 17 중 어느 한 항에 있어서, 상기 어플리케이션은 운영 체제이고 상기 인스톨 패키지는 상기 운영 체제의 업그레이드 또는 패치인,
    컴퓨터 판독가능 스토리지 매체.
  19. 청구항 11 내지 18 중 어느 한 항에 있어서, 상기 동작은,
    상기 컴퓨팅 시스템의 스냅샷을 생성하는 단계;
    상기 인스톨 패키지를 적용함에 의해 변경된 컴포넌트의 각각의 변경되지 않은 컴포넌트를 상기 스냅샷으로부터 획득하는 단계; 및
    상기 인스톨 프로세스 완료시, 상기 생성된 스냅샷을 삭제하는 단계를 더 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  20. 청구항 11 내지 19 중 어느 한 항에 있어서, 상기 동작은,
    상기 인스톨 패키지를 적용하는 단계의 일부로서 상기 인스톨러 프로세스에 의해, 먼저 인스톨되고 이후에 제거된 컴포넌트에 대응하게 상기 새로운 컴포넌트 리스트로부터 적어도 하나의 엔트리들을 제거하는 단계를 더 포함하는,
    컴퓨터 판독가능 스토리지 매체.
  21. 시스템으로서, 상기 시스템은,
    프로세서; 및
    어플리케이션 인스톨러 프로세스를 저장하는 메모리를 포함하고,
    상기 메모리는 상기 프로세서에 의해 실행되는 경우 어플리케이션을 위해 어플리케이션 복구 포인트를 생성하는 동작을 수행하도록 구성되되, 상기 동작은,
    인스톨 패키지를 상기 어플리케이션에 적용하도록 구성된 인스톨러 프로세스를 불러오는 단계,
    상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우, 새로운 컴포넌트 리스트 및 변경된 상기 어플리케이션의 하나 또는 그 이상의 컴포넌트들의 각각의 변경되지 않은 카피를 저장하도록 구성된 어플리케이션 복구 포인트 데이터 구조를 발생시키는 단계,
    상기 인스톨 패키지가 상기 인스톨러 프로세스에 의해 적용되는 경우,
    (i) 상기 인스톨러 프로세스에 의해 변경된 상기 어플리케이션의 각각의 컴포넌트를 위해, 상기 어플리케이션 복구 포인트 데이터 구조에 상기 컴포넌트의 변경되지 않은 카피를 저장하고,
    (ii) 상기 인스톨러 프로세스에 의해 상기 컴퓨팅 시스템에 추가된 각각의 새로운 컴포넌트를 위해, 상기 새로운 컴포넌트에 대한 레퍼런스를 상기 새로운 컴포넌트 리스트에 추가하는 단계; 및
    상기 어플리케이션 복구 포인트 데이터 구조에 상기 새로운 컴포넌트 리스트를 저장하는 단계를 포함하는,
    시스템.
  22. 청구항 21에 있어서, 상기 인스톨러 프로세스에 의해 변경된 상기 어플리케이션의 각각의 컴포넌트는 카피-온-라이트(copy-on-write) 메커니즘을 사용하여 식별되고, 상기 변경된 컴포넌트들은 상기 인스톨러 프로세스와 연관된 프로세스 ID(PID)를 사용하여 식별되는,
    시스템.
  23. 청구항 21 또는 22에 있어서, 상기 인스톨러는 상기 어플리케이션을 인스톨하는 것, 상기 어플리케이션을 업그레이드하는 것, 상기 어플리케이션을 패치하는 것, 상기 어플리케이션을 제거하는 것 중 하나를 수행하기 위해 호출되는,
    시스템.
  24. 청구항 21 내지 23 중 어느 한 항에 있어서, 상기 변경된 컴포넌트들 및 상기 컴퓨팅 시스템에 추가된 새로운 컴포넌트들 중 하나 또는 그 이상은 파일 시스템에 명시된 위치에 저장된 파일인,
    시스템.
  25. 청구항 21 내지 24 중 어느 한 항에 있어서, 상기 새로운 컴포넌트 리스트는 상기 컴퓨팅 시스템에서의 상기 새로운 컴포넌트 리스트 상의 각각의 파일의 파일명들의 리스트 및 경로 위치들의 리스트를 포함하는,
    시스템.
  26. 청구항 21에 있어서, 상기 변경된 컴포넌트들 또는 상기 컴퓨팅 시스템에 추가된 새로운 컴포넌트들 중 적어도 하나는 레지스트리 키, 구성 파일 세팅, 및 시스템 세팅인,
    시스템.
  27. 청구항 21에 있어서, 상기 인스톨러 프로세스는 상기 인스톨러 프로세스에 의해 변경된 각각의 컴포넌트를 식별하기 위해 그리고 각각의 변경된 컴포넌트의 변경되지 않은 카피를 획득하기 위해, 파일 시스템 메커니즘에 접근하도록 구성된,
    시스템.
  28. 청구항 21 내지 27 중 어느 한 항에 있어서, 상기 어플리케이션은 운영 체제이고 상기 인스톨 패키지는 상기 운영 체제의 업그레이드 또는 패치인,
    시스템.
  29. 청구항 21 내지 28 중 어느 한 항에 있어서, 상기 동작은,
    상기 컴퓨팅 시스템의 스냅샷을 생성하는 단계;
    상기 인스톨 패키지를 적용함에 의해 변경된 컴포넌트의 각각의 변경되지 않은 컴포넌트를 상기 스냅샷으로부터 획득하는 단계; 및
    상기 인스톨 프로세스 완료시, 상기 생성된 스냅샷을 삭제하는 단계를 더 포함하는,
    시스템.
  30. 청구항 21 내지 29 중 어느 한 항에 있어서, 상기 동작은,
    상기 인스톨 패키지를 적용하는 단계의 일부로서 상기 인스톨러 프로세스에 의해, 먼저 인스톨되고 이후에 제거된 컴포넌트에 대응하게 상기 새로운 컴포넌트 리스트로부터 적어도 하나의 엔트리들을 제거하는 단계를 더 포함하는,
    시스템.
  31. 프로그램 코드 수단을 포함하는 컴퓨터 프로그램으로서, 상기 프로그램은 컴퓨터 상에서 실행될 때 청구항 1 내지 10 중 어느 한 항에 기재된 방법의 각 단계를 수행하는,
    컴퓨터 프로그램.
KR1020117013586A 2008-11-14 2009-11-12 어플리케이션 복구 포인트들 KR20110086732A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/271,123 US8332842B2 (en) 2008-11-14 2008-11-14 Application restore points
US12/271,123 2008-11-14

Publications (1)

Publication Number Publication Date
KR20110086732A true KR20110086732A (ko) 2011-07-29

Family

ID=41694668

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117013586A KR20110086732A (ko) 2008-11-14 2009-11-12 어플리케이션 복구 포인트들

Country Status (7)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150137019A (ko) * 2014-05-28 2015-12-08 주식회사 알티캐스트 어플리케이션 관리 시스템 및 그 방법

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840955B1 (en) * 2005-12-30 2010-11-23 United Services Automobile Association (Usaa) Method and system for restoring software
US8726271B1 (en) 2005-12-30 2014-05-13 United Services Automobile Association (Usaa) Method and system for installing 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
GB2508599A (en) * 2012-12-04 2014-06-11 Ibm Software version management when downgrading software
US9459856B2 (en) * 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments
CN103324507A (zh) * 2013-06-25 2013-09-25 宇龙计算机通信科技(深圳)有限公司 一种终端预置应用程序更新的方法和装置
CN103631679A (zh) * 2013-12-06 2014-03-12 Tcl通讯(宁波)有限公司 一种移动终端中应用程序安装的控制方法及系统
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
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 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
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
CN107861747A (zh) * 2017-06-26 2018-03-30 平安普惠企业管理有限公司 产品更新方法、设备和计算机可读存储介质
CN109508195B (zh) * 2017-09-12 2022-05-27 北京国双科技有限公司 测试安装包的安装方法及装置
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
CN117827534A (zh) * 2022-06-16 2024-04-05 荣耀终端有限公司 一种数据克隆过程的管控方法、电子设备及存储介质

Family Cites Families (44)

* 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
US6523166B1 (en) * 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6237144B1 (en) * 1998-09-21 2001-05-22 Microsoft Corporation Use of relational databases for software installation
US6397381B1 (en) * 1998-09-21 2002-05-28 Microsoft Corporation System and method for repairing a damaged application program
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
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
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
WO2002075525A1 (fr) * 2001-03-19 2002-09-26 Sony Corporation Systeme, procede et programme d'actualisation de logiciel
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
WO2005119432A2 (en) 2004-06-01 2005-12-15 Red Bend Ltd Method and system for in-place updating content stored in a storage device
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
US7954090B1 (en) * 2004-12-21 2011-05-31 Zenprise, Inc. Systems and methods for detecting behavioral features of software application deployments for automated deployment management
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
TW200745951A (en) * 2005-10-21 2007-12-16 Vir2Us Inc Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20070150887A1 (en) * 2005-12-22 2007-06-28 Shapiro Alan J Apparatus and method for selectively dispensing soft 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
US7788230B2 (en) * 2007-01-23 2010-08-31 International Business Machines Corporation Backing-up and restoring files including files referenced with multiple file names
JP2008269341A (ja) * 2007-04-20 2008-11-06 Fanuc Ltd リカバリ用記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150137019A (ko) * 2014-05-28 2015-12-08 주식회사 알티캐스트 어플리케이션 관리 시스템 및 그 방법

Also Published As

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

Similar Documents

Publication Publication Date Title
US8332842B2 (en) Application restore points
US8806476B2 (en) Implementing a software installation process
US9477693B1 (en) Automated protection of a VBA
US7664984B2 (en) Method and system for updating a software image
US8495609B2 (en) Methods, systems, and computer program products for taking a snapshot of installed software on a data processing system as part of a software update process
US7565517B1 (en) Retargeting a captured image to new hardware while in a pre-boot environment
US8209290B1 (en) Generic granular restore of application data from a volume image backup
US20080077634A1 (en) Clone file system data
US7577949B2 (en) Installation source management
US7694169B2 (en) Restoring a client device
IL157542A (en) System and method for repairing computer systems damaged by a harmful computer programmer
US7370233B1 (en) Verification of desired end-state using a virtual machine environment
US10795688B2 (en) System and method for performing an image-based update
WO2012116637A1 (zh) 系统拯救的方法及装置
US8132047B2 (en) Restoring application upgrades using an application restore point
US11983519B2 (en) Abort installation of firmware bundles
CN112416379B (zh) 一种应用程序安装方法、装置、计算设备及可读存储介质
US8819657B1 (en) Method and apparatus for maintaining data consistency in a virtualized application during software update installation
US10860442B2 (en) Systems, methods and computer readable media for business continuity and disaster recovery (BCDR)
US11748211B2 (en) Automatic update of network assets using gold images
US9372992B1 (en) Ensuring integrity of a software package installer
US20220197752A1 (en) Copy reuse using gold images
CN112068846B (zh) 一种基于双系统的应用分发方法、设备及介质
US20230409434A1 (en) Hybrid technique to protect a registry
Bach et al. Upgrading to Oracle 12c

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid