KR20080043765A - 가상 애플리케이션 환경 내의 데이터 보관 - Google Patents

가상 애플리케이션 환경 내의 데이터 보관 Download PDF

Info

Publication number
KR20080043765A
KR20080043765A KR1020087002118A KR20087002118A KR20080043765A KR 20080043765 A KR20080043765 A KR 20080043765A KR 1020087002118 A KR1020087002118 A KR 1020087002118A KR 20087002118 A KR20087002118 A KR 20087002118A KR 20080043765 A KR20080043765 A KR 20080043765A
Authority
KR
South Korea
Prior art keywords
virtual
data
application environment
application
computer system
Prior art date
Application number
KR1020087002118A
Other languages
English (en)
Other versions
KR101343200B1 (ko
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 KR20080043765A publication Critical patent/KR20080043765A/ko
Application granted granted Critical
Publication of KR101343200B1 publication Critical patent/KR101343200B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bridges Or Land Bridges (AREA)
  • Cleaning In Electrography (AREA)
  • Feedback Control In General (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터를, 대응하는 애플리케이션 프로그램과 함께 가상 애플리케이션 환경 내에 보관하는 데 적합한 컴퓨터 시스템을 제시한다. 이 컴퓨터 시스템은, 프로세서, 메모리, 및 저장소를 포함한다. 또한, 컴퓨터 시스템은, 운영 체제, 보관할 데이터, 및 이 데이터에 동작을 행할 수 있도록 이 데이터에 대응하는 애플리케이션 프로그램을 포함한다. 또한, 컴퓨터 시스템은 가상 애플리케이션 환경 생성기를 포함한다. 데이터를 보관하라는 명령에 응답하여, 가상 애플리케이션 환경 생성기는 가상 애플리케이션 환경을 생성시킨다. 가상 애플리케이션 환경은, 데이터, 대응하는 애플리케이션 프로그램, 및 운영 체제를 포함한다.
가상 애플리케이션 환경, 컴퓨터 시스템, 보관, 가상 머신

Description

가상 애플리케이션 환경 내의 데이터 보관{ARCHIVING DATA IN A VIRTUAL APPLICATION ENVIRONMENT}
데이터 손실은 많은 컴퓨터 사용자들에게 불행한 현실이다. 데이터는 다양한 조건 및 환경 하에서 손실될 수 있다. 하드웨어 고장, 악의적 삭제 또는 우연한 삭제는 데이터 손실의 흔한 요인들이다. 이러한 상황에서 손실로부터 데이터를 보호하거나 데이터 손실을 보상하기 위해, 많은 컴퓨터 사용자들은 현명하게 중요한 데이터 및/또는 프로그램의 중복 백업 카피들을 생성한다.
그러나, 데이터의 유효 백업 카피가 만들어져 이용가능한지 여부에 상관없이 데이터가 손실될 수 있는 많은 방식들도 존재한다. 특히, 시간 경과에 따라, 프로그램, 운영 체제, 및/또는 하드웨어는 더 이상 이용가능하지 않게 된다. 이러한 상황이 발생하면, 컴퓨터 사용자는, 다른 상황에선 중요 데이터의 백업 카피가 실행가능하더라도, 이 중요 데이터에 액세스할 수 없다.
예를 들어, 데이터는 사유 데이터베이스에 의해 저장될 수 있고 이후 보관(archive)될 수 있다. 소정의 시간 후에 그 데이터가 필요한 경우, 사유 데이터베이스 프로그램(또는 이 데이터베이스 프로그램을 지원하는 운영 체제, 또는 이 운영 체제가 실행되는 하드웨어)은 더 이상 이용가능하지 않거나 사용중이 아니다. 따라서, 이 데이터베이스가 유효한 보관소로서 유지되어 왔다고 하더라도, 데이터 베이스의 콘텐츠는 액세스가 불가능하다.
물론, 오래된 컴퓨터 시스템이나 소프트웨어에 의해 생성된, 및/또는 이러한 오래된 컴퓨터 시스템이나 소프트웨어 상에 저장된, 데이터의 검색에 특화되어 있는 틈새 시장들이 존재한다. 이들의 기술들은 매우 다양하다. 한 기술은 오래된 컴퓨터 하드웨어, 운영 체제, 소프트웨어를 유지하는 것이다. 상당히 다른 한 기술은, 사유 시스템에 의해 저장된 데이터를 크래킹 오픈(cracking open)하고, 복잡한 소프트웨어 기술들과 전문 지식을 이용하여 이 데이터를 추출하는 것을 포함한다. 어느 경우에서든, 보관은 되어 있지만 대응하는 프로그램, 운영 체제, 또는 하드웨어를 더 이상 쉽게 이용할 수 없는 데이터를 검색하는 데에는 상당한 비용이 발생한다.
본 발명의 양태들에 따르면, 데이터를 가상 애플리케이션 환경 내의 대응하는 애플리케이션 프로그램으로 보관하는 데 적합한 컴퓨터 시스템을 제시한다. 이 컴퓨터 시스템은 프로세서, 메모리, 및 저장소를 포함한다. 또한, 컴퓨터 시스템은, 운영 체제, 보관할 데이터, 및 이 데이터에 동작을 행할 수 있도록 이 데이터에 대응하는 애플리케이션 프로그램을 포함한다. 또한, 컴퓨터 시스템은 가상 애플리케이션 환경 생성기를 포함한다. 가상 애플리케이션 환경 생성기의 일 예는 Microsoft Corporation의 Virtual Server Migration Tool이다. 데이터를 보관하라는 명령에 응답하여, 가상 애플리케이션 환경 생성기는 가상 애플리케이션 환경을 생성한다. 가상 애플리케이션 환경은, 데이터, 대응하는 애플리케이션 프로그램, 및 운영 체제를 포함한다.
본 발명의 다른 양태에 따르면, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체를 제시한다. 컴퓨터 시스템 상에서 실행될 때, 컴퓨터 실행가능 명령어들은 가상 애플리케이션 환경에 데이터를 보관하는 방법을 실행한다. 이 방법은, 데이터를 보관하라는 요구를 수신하는 단계를 포함한다. 이후, 가상 애플리케이션 환경을 생성시킨다. 가상 애플리케이션 환경은, 데이터, 데이터에 동작을 행하는 데 적합한 애플리케이션 프로그램, 및 애플리케이션 프로그램의 실행을 지원하는 데 적합한 운영 체제를 포함한다. 가상 애플리케이션 환경은 저장소에 저장된다.
본 발명의 또다른 양태들에 따르면, 가상 애플리케이션 환경에 데이터를 보관하는 방법을 제시한다. 이 방법은 데이터를 보관하라는 요구를 수신하는 단계를 포함한다. 이후, 가상 애플리케이션 환경을 생성시킨다. 가상 애플리케이션 환경은, 데이터, 이 데이터에 동작을 행하는 데 적합한 애플리케이션 프로그램, 및 애플리케이션 프로그램의 실행을 지원하는 데 적합한 운영 체제를 포함한다. 가상 애플리케이션 환경을 검증하여, 운영 체제 및 애플리케이션 프로그램이 기능할 수 있는 컴퓨터 시스템에 대응하는 가상 머신 상에서의 실행에 이 가상 애플리케이션 환경이 적합한지 여부를 결정한다. 가상 애플리케이션 환경이 가상 머신 상에서의 실행에 적합하다면, 가상 애플리케이션 환경이 저장소에 저장된다.
본 발명의 전술한 양태들 및 수반되는 많은 이점들은 첨부 도면과 함께 다음 에 따르는 상세한 설명을 참조함으로써 더 잘 이해되듯이 더욱 쉽게 인식될 것이다.
도 1은 본 발명의 양태들을 구현하는 데 적합한 예시적인 운영 환경을 도시하는 블록도이다.
도 2는 데이터를 가상 운영 환경 내로 보관하는 데 적합한 예시적인 컴퓨터 시스템을 도시하는 블록도이다.
도 3은 본 발명의 양태들에 따라 데이터를 보관하는 예시적인 루틴을 도시하는 흐름도이다.
도 4는 보관한 데이터를 가상 애플리케이션 환경으로부터 검색하는 예시적인 루틴을 도시하는 흐름도이다.
도 1은 본 발명의 양태들을 구현하는 데 적합한 예시적인 운영 환경(100)을 도시하는 블록도이다. 예시적인 운영 환경(100)은, 예시를 위해 도 1에 논리층들로 도시한 컴퓨터 시스템(102)을 포함한다. 특히, 예시적인 컴퓨터 시스템(102)은, 하드웨어층(104), 운영 체제층(106), 및 애플리케이션층(108)을 포함한다.
하드웨어층(104)은, 프로세서, 메모리, (하드 드라이브, 광 드라이브 등과 같은) 대용량 저장소, 그래픽 디스플레이 서브시스템 등과 같은 컴포넌트들을 포함한다. 운영 체제층(106)은, 그 이름이 의미하는 바와 같이, 애플리케이션층(108)을 지원하는 운영 체제를 포함한다. 또한, 이 층은 통상적으로 사용자 선호를 포함하는 구성 설정, 및 애플리케이션층에서의 애플리케이션 프로그램들을 위한 프로 그램 설정을 포함한다. 애플리케이션층(108)은, 지원 파일, 사용자 생성 데이터(114, 116) 뿐만 아니라 애플리케이션 프로그램(110, 112)과 같은 소프트웨어 프로그램 및/또는 서비스 등도 포함한다.
도 1은 애플리케이션(110, 112)들을 각각 하나의 모듈로서 도시하고 있지만, 거의 모든 애플리케이션 프로그램들이 통상적으로 코드의 단일체(monolithic bodies of code)가 아니라는 점을 당업자라면 인식할 것이다. 대신에, 애플리케이션 프로그램들은 통상적으로, 코드 모듈, 텍스트 모듈, 데이터 파일, 리소스, 구성 파일 등을 포함하는 다양한 컴포넌트들로 구성된다. 따라서, 애플리케이션 프로그램(110, 112)들(및 다음에 따르는 설명에서의 다른 애플리케이션 프로그램들)을 하나의 컴포넌트 엔티티로서 예시하는 것은, 예시를 위한 논리적 구성체로 여겨야 하며, 본 발명을 제한하는 것으로 여겨서는 안된다.
애플리케이션 프로그램 컴포넌트들에 더하여, 대부분의 애플리케이션 프로그램들을 이용한 것의 결과물로서, 사용자들은 통상적으로 데이터 파일(114, 116)을 생성한다. 실제로, 이러한 데이터 파일들은 통상적으로 사용자에게 가장 중요한 것이다. 특히, 애플리케이션 프로그램은, 컴퓨터 시스템으로부터 삭제되거나 손상되면, 통상적으로 그 애플리케이션 프로그램을 구매했을 때 사용자에게 제공되었던 매체로부터 복구될 수 있다. 그러나, 데이터 파일(114, 116)과 같이 애플리케이션 프로그램에 의해 생성된 데이터 파일들은, 사용자 상호작용 및 생성의 산물이며, 이에 따라, 고유하며, 우연한 손실, 악의적 손실, 또는 부주의한 손실로부터 보존되어야 한다.
본 발명의 양태들에 따르면, 애플리케이션 프로그램, 운영 체제, 및/또는 하드웨어가 더 이상 이용가능하지 않거나 사용가능하지 않게 되는 미래에 데이터 파일들을 이용할 수 있도록 데이터 파일들을 보존하기 위해, 이 데이터 파일들은, 광 디스크, 하드 드라이브와 같은 매체, 또는 온라인 저장소와 같은 백업 서비스 상에 저장될 수 있는 가상 운영 체제(122)에 보관된다. 가상 운영 체제(122)는, 공동 보관된 데이터 파일들 상에서 동작하는 데 필요한 운영 체제와 애플리케이션 프로그램을 포함한다.
본 발명의 양태들에 따르면, 가상 운영 환경은 가상 머신 상에서 실행될 수 있도록 생성한다. 이 가상 머신이 소프트웨어로 구현되며 다른 컴퓨터 하드웨어 상에서 실행될 수 있는, 컴퓨터 하드웨어의 추상화라는 것을 당업자라면 인식할 것이다. 가상 머신 기술의 생성 및 이용은 당업계에 알려져 있다. 예를 들어, Microsoft Corporation의 Virtual Server Migration Tool이 가상 머신을 생성하는 제품의 일 예이다. 도 1에 도시한 바와 같이, 가상 머신(124)은 가상 머신 생성기(126)에 의해 생성된다. 도시되어 있진 않지만, 가상 머신(124)은 자기 테이프, 하드 디스크 저장소, 광 매체 등을 포함하는 임의의 개수의 백업이나 저장 타겟들 상에 저장될 수 있으나, 이러한 예로 한정되지는 않는다.
가상 운영 환경을 생성시켜 가상 머신(124)과 같은 가상 머신 상에서 동작하게 함으로써, 사용되지 않는 애플리케이션 프로그램에 의해 생성한 데이터에 액세스하기 위해 컴퓨터 하드웨어(104)를 유지하는 것은 더 이상 필요하지 않다. 따라서, 수년이 지나고 하드웨어, 운영 체제, 애플리케이션 프로그램이 더 이상 상업적 으로 이용가능하지 않게 된 후에, 데이터 파일(114 또는 116)과 같은 보관 데이터가 여전히 액세스가능하다. 가상 운영 체제(122)가 생성한 하드웨어에 대응하는 가상 머신(124)을 구현하는 가상 머신 기술을 이용함으로써, 데이터는 임의의 운영 체제에서 동작하고 있는 실질적으로 어떠한 컴퓨터 하드웨어 상에서도 액세스가능하다.
가상 운영 환경(122)이 추후에 실행될 수 있음을 보장하기 위해, 일실시예에서, 가상 운영 환경은, 가상 머신 플랫폼, 즉, 가상 운영 환경이 생성한 대응하는 컴퓨터 하드웨어를 식별하는 정보를 포함한다.
가상 운영 환경(122)은, 데이터 파일들, 애플리케이션 프로그램이나 프로그램들, 운영 체제를 가상 운영 환경(122)으로 변환하는 가상 운영 환경 생성기(118)를 이용하여 생성된다. 특히, 가상 운영 환경 생성기(118)는, 대상(subject matter)인 데이터 파일에 대응하는 애플리케이션 프로그램이 동작할 수 있도록, (특히 특정한 애플리케이션 프로그램에 관하여) 어떤 컴포넌트들이 가상 운영 환경(122) 내에 포함될 필요가 있는지를 결정한다.
일실시예에 따르면, 가상 운영 환경 생성기(118)는, 컴퓨터 시스템(102) 상의 모든 애플리케이션 프로그램들 및 운영 체제를 가상 애플리케이션 환경(122) 내에 포함하고, 이에 따라 대상인 데이터 파일에 대응하는 애플리케이션 프로그램의 모든 컴포넌트들이 포함되는 것을 보장한다. 다른 방안으로, 가상 운영 환경 생성기(118)는, 가상 애플리케이션 환경(122) 내에 포함되어야 하는 애플리케이션 프로그램의 컴포넌트들을 식별하는 애플리케이션 매니페스트(manifest; 120)를 이용한 다. 물론, 설치 매니페스트, 운영 체제 레지스트리 정보 등과 같은 다른 정보를 이용하여 그러한 애플리케이션 프로그램의 컴포넌트들을 결정할 수도 있다.
본 발명의 적어도 일실시예에서, 가상 애플리케이션 환경(122)은 부팅가능 장치로서 동작하도록 생성한다. 다시 말하면, 가상 애플리케이션 환경(122)은, 실제 컴퓨터 하드웨어나 가상 머신의 부팅 장치로서 기능할 수 있다.
도 2는 데이터를 가상 애플리케이션 환경(122) 내에 보관하는 데 적합한 예시적인 컴퓨터 시스템(200)을 도시하는 블록도이다. 특히, 컴퓨터 시스템(200)은, 컴퓨터 하드웨어(104), 운영 체제(106), 하나 이상의 애플리케이션 프로그램(110, 112) 뿐만 아니라 대응하는 데이터 파일(114, 116)도 포함한다. 도 2에 도시한 바와 같이, 컴퓨터 하드웨어는, 프로세서(202), 메모리(204), 저장소(206)를 포함한다. 물론, 당업자라면 인식하듯이, 이러한 하드웨어 컴포넌트들은 컴퓨터 하드웨어를 구성하는 많은 컴포넌트들을 예시하는 것이며, 본 발명을 제한하는 것으로 여겨서는 안된다.
또한, 예시적인 컴퓨터 시스템(200)은 가상 애플리케이션 환경 생성기(118)를 포함한다. 전술한 바와 같이, 가상 애플리케이션 환경 생성기(118)는, 데이터 파일(114)과 같은 데이터 파일을, 컴퓨터 하드웨어(104) 상에서 동작하는, 이 데이터 파일에 대응하는 애플리케이션 프로그램 및 운영 체제와 함께, 가상 애플리케이션 환경(122) 내로 결합한다(도 1 참조). 그러나, 가상 애플리케이션 환경 생성기(118)가 예시적인 컴퓨터 시스템(200) 상에 상주하는 것으로 예시되어 있지만, 다른 일실시예에서, 가상 애플리케이션 환경 생성기는 외부 컴퓨터 시스템 상에 존 재하며 예시적인 컴퓨터 시스템(200) 상에서 원격으로 동작하도록 구성된다는 것을 인식하기 바란다.
도 3은 본 발명의 양태들에 따라 가상 애플리케이션 환경(122)에서 데이터를 보관하는 예시적인 루틴(300)을 도시하는 흐름도이다. 블록(302)에서 시작시, 데이터 파일을 보관하라는 요구를 수신한다. 블록(304)에서는, 이 데이터 파일에 관련된 애플리케이션 프로그램(또는 프로그램들), 이 애플리케이션 프로그램의 컴포넌트들과 관련 파일들을 식별한다. 전술한 바와 같이, 애플리케이션 프로그램의 컴포넌트들은, 애플리케이션 매니페스트(120)를 이용하여, 레지스트리 엔트리와 같은 컴퓨터 시스템 설정을 이용하여, 설치 매니페스트 등을 이용하여 식별될 수 있다.
다른 일실시예에서, 볼륨을 보관하라는 요구를 수신할 수 있다. 당업자라면 인식하듯이, 볼륨은 임의의 개수의 데이터 파일들을 포함할 수 있고, 이들 중 일부는 전혀 다른 애플리케이션 프로그램들에 의해 생성된다. 따라서, 전술한 논리와 마찬가지로, 예시적인 루틴은, 보관할 볼륨 내의 각 데이터 파일에 대하여, 가상 애플리케이션 환경(122) 내에 포함할 대응하는 애플리케이션 프로그램(또는 프로그램들)을 식별한다.
블록(306)에서는, 식별한 애플리케이션 프로그램 컴포넌트들, 데이터 파일, 및 애플리케이션 프로그램을 동작시킬 수 있는 운영 체제를 포함하는 가상 애플리케이션 환경(122)을 생성시킨다. 또한, 가상 애플리케이션 환경(122)은 가상 애플리케이션 환경이 실행될 수 있는 가상 머신 또는 실제 컴퓨터 하드웨어를 식별하는 정보를 포함할 수 있다.
결정 블록(308)에서는, 선택 사항으로, 가상 애플리케이션 환경(122)을 유효성 검사하여, 이 가상 애플리케이션 환경이 가상 애플리케이션 환경의 컴포넌트들이 생성한 컴퓨터 하드웨어에 대응하는 가상 머신 상에서 실행될 수 있는지 여부를 결정한다. 가상 애플리케이션 환경(122)이 무효로 판명되면, 블록(310)에서, 에러를 보고하고, 이후 루틴(300)을 종료한다.
가상 애플리케이션 환경(122)이 적절하게 유효하다면, 블록(312)에서, 가상 애플리케이션 환경을 저장한다. 이후, 루틴을 종료한다.
전술한 루틴(300)이 데이터 파일을 하나의 오브젝트로서 처리하고 있지만 실제로는 보관되는 데이터가 다수의 파일과 컴포넌트를 포함할 수 있다는 점을 인식하기 바라며, 가상 애플리케이션 환경(122) 내에 단일 데이터 파일을 보관하는 것으로 본 발명을 해석해서는 안된다.
도 4는 가상 애플리케이션 환경(122)으로부터 보관된 데이터를 검색하는 예시적인 루틴(400)을 도시하는 흐름도이다. 블록(402)에서 시작시, 가상 애플리케이션 환경(122)으로부터 데이터를 복구하라는 요구를 수신한다. 블록(404)에서는, 가상 애플리케이션 환경(122)을 얻는다.
블록(406)에서는, 가상 애플리케이션 환경(122)에 대응하고 이 환경을 지원하는 데 필요한 가상 머신(124)에 대한 정보를 얻는다. 블록(408)에서는, (가상 머신이 이미 실행중이 아니라면) 가상 애플리케이션 환경(122)에 대응하는 가상 머신(124)을 실행시킨다. 물론, 전술한 바와 같이, 가상 애플리케이션 환경(122)은 가상 머신(124) 상에서 실행될 수 있고, 또는 다른 방안으로, 가상 애플리케이션 환경(122)이 생성한 원래의 컴퓨터 하드웨어에 대응하는 컴퓨터 하드웨어(도시하지 않음) 상에서 실행될 수 있다.
가상 애플리케이션 환경(122)을 실행시키는 것은, 가상 머신 상에서 가상 애플리케이션 환경을 부팅하는 것을 포함할 수 있다. 이러한 경우, 가상 애플리케이션 환경(122)은 부팅가능 장치로서 동작하도록 구성되어야 한다.
일단 가상 애플리케이션 환경(122)이 실행하면, 블록(410)에서, 검색될 데이터 파일에 대응하는 애플리케이션 프로그램을 실행시킨다. 블록(412)에서는, 그 대응하는 애플리케이션 프로그램을 이용하여 데이터를, 자동으로 또는 컴퓨터 사용자의 지시대로 추출한다. 이후, 루틴(400)을 종료한다.
본 발명의 바람직한 실시예를 예시하고 설명하였지만, 본 발명의 사상 및 범위로부터 벗어나지 않고서 본 발명에 대하여 다양한 변경을 행할 수 있음을 인식할 것이다.

Claims (20)

  1. 데이터를, 이 데이터에 대응하는 애플리케이션 프로그램과 함께, 가상 애플리케이션 환경 내에 보관(archive)하는 컴퓨터 시스템으로서,
    프로세서와,
    메모리와,
    저장소
    를 포함하고,
    상기 컴퓨터 시스템은, 운영 체제, 보관할 데이터, 및 상기 데이터에 동작을 행하는 데 적합한 대응하는 애플리케이션 프로그램을 포함하며,
    상기 컴퓨터 시스템은, 상기 데이터를 보관하라는 명령에 응답하여, 상기 데이터, 상기 대응하는 애플리케이션 및 상기 운영 체제를 포함하는 가상 애플리케이션 환경을 생성하는 가상 애플리케이션 환경 생성기를 더 포함하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 가상 애플리케이션 환경은 상기 컴퓨터 시스템에 대응하는 가상 머신 상에서 동작하도록 생성되는 컴퓨터 시스템.
  3. 제2항에 있어서,
    상기 가상 애플리케이션 환경은, 또한 상기 컴퓨터 시스템에 대응하는 가상 머신 상에서 부팅가능 장치로서 동작하도록 생성되는 컴퓨터 시스템.
  4. 제2항에 있어서,
    상기 가상 애플리케이션 환경은, 상기 가상 애플리케이션 환경이 동작할 수 있는 상기 가상 머신을 식별하는 정보를 포함하는 컴퓨터 시스템.
  5. 제1항에 있어서,
    상기 컴퓨터 시스템은 다수의 애플리케이션 프로그램을 더 포함하고,
    상기 가상 애플리케이션 환경은 상기 컴퓨터 시스템으로부터 상기 다수의 애플리케이션 프로그램 모두를 포함하도록 생성되는 컴퓨터 시스템.
  6. 제1항에 있어서,
    상기 컴퓨터 시스템은 다수의 애플리케이션 프로그램을 더 포함하고,
    상기 가상 애플리케이션 환경 생성기는, 대응하는 애플리케이션 프로그램만이 상기 운영 체제 및 데이터와 함께 포함되도록, 상기 가상 애플리케이션 환경을 생성하는 컴퓨터 시스템.
  7. 제6항에 있어서,
    상기 가상 애플리케이션 환경 생성기는, 애플리케이션 매니페스트에 따라 상기 다수의 애플리케이션 프로그램 중 어느 것이 대응하는 애플리케이션 프로그램인 지를 결정하는 컴퓨터 시스템.
  8. 제7항에 있어서,
    상기 대응하는 애플리케이션 프로그램은 상기 컴퓨터 시스템 상에 분산된 다수의 컴포넌트를 포함하고,
    상기 가상 애플리케이션 환경 생성기는, 상기 대응하는 애플리케이션 프로그램의 컴포넌트들을 식별하고 이 컴포넌트들을 상기 가상 애플리케이션 환경 내에 상기 대응하는 애플리케이션 프로그램으로서 포함시키는 컴퓨터 시스템.
  9. 컴퓨터 시스템 상에서 실행될 때 가상 애플리케이션 환경 내에 데이터를 보관하는 방법을 실행하는 컴퓨터 실행가능 명령어들을 구비하는 컴퓨터 판독가능 매체로서, 상기 방법은,
    데이터를 보관하라는 요구를 수신하는 단계와,
    상기 데이터와, 상기 데이터에 동작을 행하는 데 적합한 애플리케이션 프로그램과, 상기 애플리케이션 프로그램의 실행을 지원하는 데 적합한 운영 체제를 포함하는 가상 애플리케이션 환경을 생성하는 단계와,
    상기 가상 애플리케이션 환경을 저장소 내에 저장하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  10. 제9항에 있어서,
    상기 가상 애플리케이션 환경은 상기 컴퓨터 시스템에 대응하는 가상 머신 상에서의 실행을 위해 생성되는 컴퓨터 판독가능 매체.
  11. 제10항에 있어서,
    상기 가상 애플리케이션 환경은 또한 상기 컴퓨터 시스템에 대응하는 가상 머신 상에서 실행될 때 부팅가능 장치로서 동작하도록 생성되는 컴퓨터 판독가능 매체.
  12. 제12항에 있어서,
    상기 가상 애플리케이션 환경은, 또한 상기 가상 애플리케이션 환경이 실행될 수 있는 상기 가상 머신을 식별하는 정보를 포함하도록 생성되는 컴퓨터 판독가능 매체.
  13. 제9항에 있어서,
    상기 방법은, 생성된 가상 애플리케이션 환경이 상기 컴퓨터 시스템에 대응하는 가상 머신 상에서 실행가능한지 여부를 검증하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  14. 제9항에 있어서,
    상기 가상 애플리케이션 환경은 상기 컴퓨터 시스템 상에 설치된 다수의 애 플리케이션 프로그램을 포함하도록 생성되고,
    상기 다수의 애플리케이션 프로그램 중 적어도 하나의 애플리케이션 프로그램은 상기 데이터에 동작을 행하는 데 적합한 컴퓨터 판독가능 매체.
  15. 제9항에 있어서,
    상기 방법은,
    애플리케이션 매니페스트에 따라 상기 데이터에 동작을 행하는 데 적합한 애플리케이션 프로그램을 식별하는 단계와,
    식별한 애플리케이션 프로그램을 상기 가상 애플리케이션 환경 내에 포함시키는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  16. 가상 애플리케이션 환경 내에 데이터를 보관하는 방법으로서,
    데이터를 보관하라는 요구를 수신하는 단계와,
    상기 데이터와, 상기 데이터에 동작을 행하는 데 적합한 애플리케이션 프로그램과, 상기 애플리케이션 프로그램의 실행을 지원하는 데 적합한 운영 체제를 포함하는 가상 애플리케이션 환경을 생성하는 단계와,
    상기 가상 애플리케이션 환경이 상기 운영 체제와 상기 애플리케이션 프로그램이 기능할 수 있는 컴퓨터 시스템에 대응하는 가상 머신 상에서의 실행에 적합한지 여부를 검증하는 단계와,
    상기 가상 애플리케이션 환경이 상기 가상 머신 상에서의 실행에 적합하다면 상기 가상 애플리케이션 환경을 저장소 내에 저장하는 단계
    를 포함하는 데이터 보관 방법.
  17. 제16항에 있어서,
    상기 가상 애플리케이션 환경은, 또한 상기 컴퓨터 시스템에 대응하는 가상 머신 상에서 실행될 때 부팅가능 장치로서 동작하도록 생성되는 데이터 보관 방법.
  18. 제17항에 있어서,
    상기 가상 애플리케이션 환경은 상기 컴퓨터 시스템 상에 설치된 다수의 애플리케이션 프로그램을 포함하도록 생성되고,
    상기 다수의 애플리케이션 프로그램 중 적어도 하나의 애플리케이션 프로그램은 상기 데이터에 동작을 행하는 데 적합한 데이터 보관 방법.
  19. 제17항에 있어서,
    애플리케이션 매니페스트에 따라 상기 데이터에 동작을 행하는 데 적합한 애플리케이션 프로그램을 식별하는 단계와,
    식별한 애플리케이션 프로그램을, 상기 데이터에 동작을 행하는 데 적합한 애플리케이션 프로그램으로서 상기 가상 애플리케이션 환경 내에 포함시키는 단계를 더 포함하는 데이터 보관 방법.
  20. 제16항에 있어서,
    보관할 상기 데이터는, 적어도 2개의 다른 애플리케이션 프로그램에 대응하는 다수의 데이터 파일을 포함하고,
    상기 방법은, 보관할 상기 데이터 내의 각 데이터 파일에 대하여, 상기 데이터 파일에 동작을 행하는 데 적합한 대응하는 애플리케이션 프로그램을 식별하는 단계를 더 포함하며,
    상기 가상 애플리케이션 환경을 생성하는 단계는, 보관할 상기 데이터 내의 각 데이터 파일에 동작을 행하는 데 적합한 식별한 애플리케이션 프로그램들을 포함하도록 상기 가상 애플리케이션 환경을 생성하는 단계를 더 포함하는 데이터 보관 방법.
KR1020087002118A 2005-08-15 2008-01-25 가상 애플리케이션 환경 내의 데이터 보관 KR101343200B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/205,590 US7434218B2 (en) 2005-08-15 2005-08-15 Archiving data in a virtual application environment
US11/205,590 2005-08-15
PCT/US2006/028111 WO2007021435A2 (en) 2005-08-15 2006-07-19 Archiving data in a virtual application environment

Publications (2)

Publication Number Publication Date
KR20080043765A true KR20080043765A (ko) 2008-05-19
KR101343200B1 KR101343200B1 (ko) 2013-12-19

Family

ID=37744005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087002118A KR101343200B1 (ko) 2005-08-15 2008-01-25 가상 애플리케이션 환경 내의 데이터 보관

Country Status (14)

Country Link
US (1) US7434218B2 (ko)
EP (1) EP1915680B1 (ko)
JP (1) JP4871359B2 (ko)
KR (1) KR101343200B1 (ko)
CN (1) CN101243395A (ko)
AU (1) AU2006280333B2 (ko)
BR (1) BRPI0612115B1 (ko)
IL (1) IL188705A (ko)
MX (1) MX2008000754A (ko)
NO (1) NO337819B1 (ko)
NZ (1) NZ565717A (ko)
RU (1) RU2409838C2 (ko)
WO (1) WO2007021435A2 (ko)
ZA (1) ZA200800964B (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979656B2 (en) 2004-06-01 2011-07-12 Inmage Systems, Inc. Minimizing configuration changes in a fabric-based data protection solution
US9209989B2 (en) * 2004-06-01 2015-12-08 Inmage Systems, Inc. Causation of a data read operation against a first storage system by a server associated with a second storage system according to a host generated instruction
US7698401B2 (en) 2004-06-01 2010-04-13 Inmage Systems, Inc Secondary data storage and recovery system
US8868858B2 (en) * 2006-05-19 2014-10-21 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US8055745B2 (en) * 2004-06-01 2011-11-08 Inmage Systems, Inc. Methods and apparatus for accessing data from a primary data storage system for secondary storage
US8224786B2 (en) * 2004-06-01 2012-07-17 Inmage Systems, Inc. Acquisition and write validation of data of a networked host node to perform secondary storage
US8949395B2 (en) 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US7676502B2 (en) * 2006-05-22 2010-03-09 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US8683144B2 (en) * 2005-09-16 2014-03-25 Inmage Systems, Inc. Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
US8601225B2 (en) * 2005-09-16 2013-12-03 Inmage Systems, Inc. Time ordered view of backup data on behalf of a host
US8554727B2 (en) * 2006-05-19 2013-10-08 Inmage Systems, Inc. Method and system of tiered quiescing
US8527470B2 (en) 2006-05-22 2013-09-03 Rajeev Atluri Recovery point data view formation with generation of a recovery view and a coalesce policy
US8838528B2 (en) * 2006-05-22 2014-09-16 Inmage Systems, Inc. Coalescing and capturing data between events prior to and after a temporal window
US8527721B2 (en) * 2008-12-26 2013-09-03 Rajeev Atluri Generating a recovery snapshot and creating a virtual view of the recovery snapshot
US7634507B2 (en) * 2006-08-30 2009-12-15 Inmage Systems, Inc. Ensuring data persistence and consistency in enterprise storage backup systems
US9116734B1 (en) * 2011-01-14 2015-08-25 Dispersive Networks Inc. Dispersive storage area networks
US20090199175A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Dynamic Allocation of Virtual Application Server
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8161479B2 (en) * 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US8028194B2 (en) * 2008-07-25 2011-09-27 Inmage Systems, Inc Sequencing technique to account for a clock error in a backup system
US8024732B2 (en) * 2008-07-28 2011-09-20 Microsoft Corporation State separation for application changes
US8150801B2 (en) * 2008-08-20 2012-04-03 Microsoft Corporation Recovery of a computer that includes virtual disks
US8069227B2 (en) * 2008-12-26 2011-11-29 Inmage Systems, Inc. Configuring hosts of a secondary data storage and recovery system
US20100174894A1 (en) * 2009-01-07 2010-07-08 Lenovo (Singapore) Pte, Ltd. Method, Apparatus, and System for Configuring an Operating System on a Target Computer
US8392373B1 (en) * 2009-03-26 2013-03-05 Symantec Corporation Systems and methods for retaining an executable environment during a data archive process
US8086808B2 (en) * 2009-04-23 2011-12-27 Hitachi, Ltd. Method and system for migration between physical and virtual systems
US9128803B2 (en) 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US8892707B2 (en) * 2011-04-13 2014-11-18 Netapp, Inc. Identification of virtual applications for backup in a cloud computing system
CN104142847B (zh) * 2013-05-06 2017-09-29 中国银联股份有限公司 云计算环境下的无状态化虚拟机及其应用
RU2633985C2 (ru) * 2014-09-30 2017-10-20 Общество С Ограниченной Ответственностью "Яндекс" Способ и система обработки данных
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
RU2642365C1 (ru) * 2016-07-21 2018-01-24 Олег Александрович Кузнецов Способ телемеханического контроля и управления удаленными объектами

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US5896531A (en) * 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US6138140A (en) * 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US6725373B2 (en) * 1998-03-25 2004-04-20 Intel Corporation Method and apparatus for verifying the integrity of digital objects using signed manifests
AU3722399A (en) * 1998-05-06 1999-11-23 Jcp Computer Services Ltd Processing apparatus and method
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
CA2255035C (en) * 1998-11-30 2002-01-29 Victor Shih-Chuan Chan Archiving tool
US7127526B1 (en) * 2000-03-20 2006-10-24 Nortel Networks Limited Method and apparatus for dynamically loading and managing software services on a network device
US6766353B1 (en) * 2000-07-11 2004-07-20 Motorola, Inc. Method for authenticating a JAVA archive (JAR) for portable devices
US6748591B1 (en) * 2000-09-14 2004-06-08 International Business Machines Corporation Method, system, program, and data structures for loading programs into a runtime environment
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7158972B2 (en) 2001-12-11 2007-01-02 Sun Microsystems, Inc. Methods and apparatus for managing multiple user systems
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
US20040044643A1 (en) 2002-04-11 2004-03-04 Devries David A. Managing multiple virtual machines
US7478387B2 (en) 2002-09-25 2009-01-13 International Business Machines Corporation System and method for creating a restartable non-native language routine execution environment
US7673308B2 (en) * 2002-11-18 2010-03-02 Symantec Corporation Virtual OS computing environment
US7373451B2 (en) * 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US20050267920A1 (en) * 2004-05-13 2005-12-01 Fabrice Helliker System and method for archiving data in a clustered environment
US20050278278A1 (en) * 2004-05-28 2005-12-15 Petev Petio G Class loading jar operation optimizations
US20060080521A1 (en) * 2004-09-23 2006-04-13 Eric Barr System and method for offline archiving of data
US7337310B2 (en) * 2004-10-18 2008-02-26 Lenovo Pte Ltd Computer disposal apparatus, system, and method
US7849462B2 (en) 2005-01-07 2010-12-07 Microsoft Corporation Image server
US8073926B2 (en) * 2005-01-07 2011-12-06 Microsoft Corporation Virtual machine image server
US20060184937A1 (en) 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US8583770B2 (en) * 2005-02-16 2013-11-12 Red Hat, Inc. System and method for creating and managing virtual services

Also Published As

Publication number Publication date
US7434218B2 (en) 2008-10-07
EP1915680A4 (en) 2013-05-01
BRPI0612115A2 (pt) 2010-10-19
MX2008000754A (es) 2008-03-13
BRPI0612115B1 (pt) 2018-05-29
ZA200800964B (en) 2009-06-24
RU2409838C2 (ru) 2011-01-20
IL188705A0 (en) 2008-08-07
AU2006280333B2 (en) 2011-03-17
NO337819B1 (no) 2016-06-27
EP1915680B1 (en) 2014-03-26
US20070038998A1 (en) 2007-02-15
CN101243395A (zh) 2008-08-13
KR101343200B1 (ko) 2013-12-19
WO2007021435A3 (en) 2007-08-30
JP2009505278A (ja) 2009-02-05
JP4871359B2 (ja) 2012-02-08
NO20080275L (no) 2008-05-14
BRPI0612115A8 (pt) 2017-10-03
NZ565717A (en) 2010-07-30
RU2008105764A (ru) 2009-08-20
AU2006280333A1 (en) 2007-02-22
WO2007021435A2 (en) 2007-02-22
IL188705A (en) 2011-10-31
EP1915680A2 (en) 2008-04-30

Similar Documents

Publication Publication Date Title
KR101343200B1 (ko) 가상 애플리케이션 환경 내의 데이터 보관
US10417098B2 (en) File level access to block level incremental backups of a virtual disk
US9400886B1 (en) System and method for using snapshots for rootkit detection
US9880759B2 (en) Metadata for data storage array
US7827150B1 (en) Application aware storage appliance archiving
US7885938B1 (en) Techniques for granular recovery of data from local and remote storage
US7565495B2 (en) Using disassociated images for computer and storage resource management
US8489552B1 (en) Generic granular restore of application data from a volume image backup
US7917481B1 (en) File-system-independent malicious content detection
US10713361B2 (en) Anti-malware protection using volume filters
US10169165B2 (en) Restoring data
US20180095974A1 (en) Apparatus and method for file capture, preservation and management
JP5938615B2 (ja) 順次バックアップ・デバイスから重複排除されたデータ・オブジェクトを復元するための、コンピュータ・プログラム、システム、および方法
JP2021174495A (ja) コンピュータシステムを動作可能状態に選択的に復元するシステムおよび方法
JP2008501183A (ja) システム変更データをシステム領域内でノンプリエンプティブに管理するコンピューターハードディスクシステムデータ保護装置及びその方法
US10303556B1 (en) Modifiable volume snapshots
WO2009031157A2 (en) Method and apparatus for grid based data recovery
US8738571B1 (en) Extended recycle bin
US10157106B1 (en) Method controlling backup data by using snapshot type image table
US11307800B2 (en) Supporting file exclusions and commits in disk-based write filters
US9135258B1 (en) Redundant backup elimination

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 6