KR101344163B1 - 오프라인 자원의 템플릿 사본을 생성하도록 구성된 방법 및컴퓨터 프로그램 제품 - Google Patents

오프라인 자원의 템플릿 사본을 생성하도록 구성된 방법 및컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR101344163B1
KR101344163B1 KR1020087023181A KR20087023181A KR101344163B1 KR 101344163 B1 KR101344163 B1 KR 101344163B1 KR 1020087023181 A KR1020087023181 A KR 1020087023181A KR 20087023181 A KR20087023181 A KR 20087023181A KR 101344163 B1 KR101344163 B1 KR 101344163B1
Authority
KR
South Korea
Prior art keywords
virtual machine
resource
software resource
instance
software
Prior art date
Application number
KR1020087023181A
Other languages
English (en)
Other versions
KR20080114752A (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 KR20080114752A publication Critical patent/KR20080114752A/ko
Application granted granted Critical
Publication of KR101344163B1 publication Critical patent/KR101344163B1/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
    • 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/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명의 구현은, 소프트웨어 자원들이 오프라인인 동안 효율적으로 그리고 효과적으로 복제될 수 있게 한다. 한 구현에서, 준비 프로그램은 서로 다른 볼륨에 설치되어 있는 가상 기계, 오프라인 운영 체제, 또는 애플리케이션 프로그램과 같은 소프트웨어 자원의 ID를 수신한다. 준비 프로그램은 또한 소프트웨어 자원에서 제거되고자 하는 커스터마이즈된 표시의 지시를 수신한다. 이들 표시는, 퍼스널라이즈된 정보 뿐만 아니라 소프트웨어 업데이트, 보안 설정, 사용자 설정 등의 수준을 포함할 수 있다. 실행 시, 준비 프로그램은, 다른 볼륨(또는 심지어 동일한 볼륨)에 있는 소프트웨어 자원이 실행되지 않는 동안, 준비 프로그램의 함수 호출을 그 소프트웨어 자원으로 리다이렉트한다. 따라서 준비 프로그램은 준비 프로그램이 실행되고 있는 볼륨에 반드시 영향을 끼치지 않고 안전한 방식으로 소프트웨어 자원의 템플릿을 생성할 수 있다.
소프트웨어 자원, 사본, 템플릿

Description

오프라인 자원의 템플릿 사본을 생성하도록 구성된 방법 및 컴퓨터 프로그램 제품{CREATING TEMPLATES OF OFFLINE RESOURCES}
컴퓨터화된 환경에서 서로 다른 유형의 자원들(소프트웨어, 하드웨어 또는 그 조합)을 배포(distribute)하는 많은 방법이 있다. 예를 들면, 소프트웨어의 견지로부터 기업은 다수의 서로 다른 컴퓨터에 다수의 운영 체제(또는 애플리케이션 프로그램) 사본을 설치하여, 많은 시스템 간에 하나의 사본을 배포할 수 있다. 이 지침에 따라, 기업은 또한 복사되거나 또는 공유되는 운영 체제에 대한 여러 추가의 소프트웨어 업데이트를 설치할 필요가 있을 수 있으므로, 많은 시스템 간에 이 업데이트들의 여러 사본들을 또한 공유한다. 하드웨어를 공유하는 통상적인 방법으로는, 다수의 서로 다른 컴퓨터 시스템들이 각종 저장 또는 파일 공유의 니즈(needs)를 위해 또 다른 컴퓨터의 드라이브 공간에 액세스할 수 있도록 네트워크의 컴퓨터 시스템들을 설정하는 것이 있다.
소프트웨어와 하드웨어의 결합의 견지로부터 자원들을 배포하는 또 다른 방법으로는, 단일의 물리적 컴퓨터 시스템상에 고유의 엔티티들을 생성하는 방법이 있는데, 이 엔티티들은 개별적이며 독립적인 컴퓨터 시스템들로서 행동하지만 동일한 물리적 매체와 처리 자원들을 공유한다. 예를 들면, 기업은 동일한 단일의 서버상에 다수의 가상 기계들을 생성할 수 있는데, 이들 가상 기계들 각각은 주어진 가상 기계 각각이 고유의 별도의 컴퓨터 시스템인 것처럼 다른 컴퓨터에 의해 개별적으로 어드레스될 수 있다. 이러한 한 구현에서, 큰 기업의 하나 또는 몇몇 서버들은 또한 동일한 하드웨어 집합에 여러 가상 기계들을 호스팅할 수 있으며, 이들 가상 기계들은 어떻게 구성되든지 간에 추가의 서버들로서 또는 네트워크 액세스가능한 퍼스널 컴퓨터들로서 각각 기능할(serve) 수 있다.
가상 기계들로서의 이러한 엔티티들이 소프트웨어 자원들과 하드웨어 자원들의 공유를 조합할 수 있음을 이해할 수 있을 것인데, 왜냐하면, 이러한 엔티티들은 통상적으로 또 다른 가상 기계에 의해 사용되는 운영 체제의 기존의 사본으로 셋업되며, 이러한 엔티티들은 다른 가상 기계에 의해 이미 사용되고 있는 드라이브마저도 공유할 수 있기 때문이다. 그러나, 동일한 운영 체제를 공유함에도 불구하고, 기업은 가상 기계가 특히 동일한 물리적 드라이브에 설치될 때, 운영 체제의 동일한 사본을 이용하는 다른 가상 기계들과 혼돈되지 않도록, 운영 체제의 양태들을 커스터마이즈할 필요가 있을 것이다. 그러므로, 커스터마이즈된 가상 기계를 생성하기 위해, 시스템 관리자는 새로운 가상 기계에 다른 가상 기계들(또는 다른 컴퓨터 시스템들)과 구별될 수 있는 고유의 표시(unique indicia)(기계 이름, 타임 존, 도메인 이름, 회사 이름, 제품 키 등)를 제공할 필요가 있을 것이다.
그러나, 단지 가상 기계를 커스터마이즈하는 것은 꽤 어려울 수 있다. 예를 들면, 시스템 관리자는, 단지, 운영 체제의 기본적인 설치 사본으로부터 가상 기계를 설치하고, 흥미있는 각종 소프트웨어 패치 전부뿐만 아니라 고유의 가상 기계 표시를 적용하기를 원할 수도 있다. 물론, 이것은, 시스템 관리자가 적용하고 자 하는 소프트웨어 패치와 기타 고유의 커스터마이제이션이 많다면 꽤 불편할 수 있다. 따라서, 시스템 관리자는, 소프트웨어의 견지로부터 시스템 관리자의 환경 설정(preference)에 이미 커스터마이즈된 운영 체제의 한 인스턴스를 복사하고, 비록 서로 다른 고유의 표시가 있더라도 새로운 가상 기계에 그 사본을 설치하는 것을 더 선호할 수 있다. 이와 같이, 시스템 관리자는 새로운 가상 기계에 흥미있는 기존의 사본을 설치하기 전에 그 사본에서 커스텀 표시를 제거할 필요가 있을 것이다.
그럼에도 불구하고, 단지 하나의 운영 체제 사본에서 커스터마이즈된 표시를 제거하고 새로운 가상 기계 상의 운영 체제 사본에 커스터마이즈된 새로운 표시를 추가하는 데에는 또 다른 어려움이 있다. 특히, 운영 체제(또는 애플리케이션)의 "일반적인" 사본(generic copy) 또는 "템플릿" 사본(template copy)을 생성하는 데에 사용될 수 있는 통상적인 준비 소프트웨어(preparation software)는 사용하기에 어려울 수 있으며, 상당한 시간이 소요될 수 있다. 예를 들면, 시스템 관리자는 흥미있는 운영 체제의 사본을 개시하고, 운영 체제가 실행되는 동안 그 운영 체제상에서 소정의 준비 소프트웨어를 실행시킬 필요가 있을 것이다. 준비 소프트웨어가 운영 체제 사본의 일부 고유의 특징들을 제거하기 때문에, 준비 소프트웨어는 모든 고유의 특징들이 제거될 때까지 운영 체제를 여러 번 재부팅(reboot)시킬 필요가 있을 수 있다.
단순한 지연 때문에 운영 체제(또는 애플리케이션)를 계속해서 재시작해야 하는 본래부터의 어려움 외에도, 통상적인 준비 소프트웨어는 또한 기술적으로 복 잡하고 사용하기가 어렵다. 특히, 사용자가, 운영 체제를 일반적인 사본 또는 템플릿 사본으로 변환하는 것을 시도하기 전에 준비 소프트웨어를 적절하게 구성하지 못했다면, 사용자는 제거하도록 의도하지 않았던 항목들을 제거할 수도 있다. 이것은, 사용자가 적절한 시점으로 운영 체제를 다시 되돌려 놓도록 하는 데에 더 많은 시간을 소요하게 할 수 있으며, 또는 흥미있는 소정의 운영 체제(또는 그 템플릿)를 동작 불가능하도록 하게 할 수도 있다.
따라서, 이전에 존재했던 소프트웨어를 이용하여 엔티티들의 새로운 인스턴스를 생성하는 데에 다뤄야 할 많은 문제점이 있다.
본 발명의 구현은, 오프라인 자원의 템플릿 사본을 생성하도록 구성된 시스템, 방법 및 컴퓨터 프로그램 제품으로 당분야에서의 하나 이상의 문제점을 해결한다. 특히, 본 발명의 구현은, 운영 체제 또는 애플리케이션의 사본과 같은 특정 자원의 사본이 사용자의 사양(specification)에 따라 자원의 일반적인 사본 또는 템플릿 사본으로 바뀔(turn) 수 있게 하며, 그때 그 자원은 실행되지 않고 있다(즉, 오프라인임). 따라서, 본 발명의 구현은, 사용자가 상당한 효율성과 구성가능성(a great deal of efficiency and configurability)으로 동일한 자원에 대해 원하는 만큼 많은 수의 템플릿 사본을 생성할 수 있게 한다. 이러한 구현은 또한, 이후의 처리 동안 템플릿을 커스터마이즈하는 것에 대하여 편리한 사용자 경험을 제공할 수 있다.
예를 들면, 하나 이상의 소프트웨어 자원들 중 적어도 하나의 자원이 오프라인인 동안 이 소프트웨어 자원의 템플릿을 생성하는 방법은, 오프라인 소프트웨어 자원을 식별하는 단계 뿐만 아니라 하나 이상의 템플릿 설정들을 식별하는 단계를 포함할 수 있다. 이들 템플릿 설정들은 일반적으로 소프트웨어 자원에서 제거될 하나 이상의 지시를 포함할 것이다. 또한, 본 방법은 템플릿 설정에 따라 표시를 제거하도록 설정된 준비 프로그램을 제1 운영 체제에서 실행시키는 단계를 포함할 수 있다. 본 발명은 또한 준비 프로그램의 하나 이상의 함수 호출을 식별된 소프트웨어 자원으로 리다이렉트하는 단계를 포함할 수 있다. 이와 같이, 하나 이상의 템플릿 설정에 의해 식별되는 표시는 소프트웨어 자원에서 제거되며, 소프트웨어 자원의 템플릿이 생성된다.
또한, 가상 기계가 오프라인인 동안 그 가상 기계를 복제(duplicate)시켜, 가상 기계와 복제된 가상 기계가 실행될 때 서로 다른 아이덴티티를 갖게 하는 방법은, 제1 저장 공간에 설치된 가상 기계 파일의 아이덴티티를 수신하는 단계를 포함할 수 있다. 이 방법은 또한 제2 저장 공간에 설치된 준비 프로그램으로부터 하나 이상의 함수 호출을 수신하는 단계를 포함할 수 있으며, 이 하나 이상의 함수 호출은 하나 이상의 표시의 제거를 요청한다. 또한, 본 방법은 가상 기계 파일에 대해 하나 이상의 함수 호출을 실행하는 단계를 포함하며, 그리하여 제1 저장 공간에서 요청된 표시를 제거할 수 있게 된다. 게다가, 본 방법은 가상 기계 파일의 템플릿 사본을 생성하는 단계를 포함할 수 있다.
본 요약은 이하의 상세한 설명에 더 설명될 일련의 개념들을 단순화된 형태로 소개하기 위해 제공된다. 본 요약은 청구된 내용의 주요 특징들 또는 핵심 특징들을 식별하고자 의도하는 것이 아니며, 또한, 청구된 내용의 범위를 결정하는 데에 있어 돕기 위해 사용되고자 의도하는 것도 아니다.
본 발명의 예시적인 구현의 추가적인 특징과 이점은, 이어지는 명세서에서 설명될 것이며, 부분적으로 명세서로부터 명백할 것이며, 또는 이러한 예시적인 실시예의 실시예에 의해 학습될 수 있다. 이러한 구현의 특징 및 이점은 첨부된 청구항에 특별히 지적된 도구와 조합에 의해 실현되고 획득될 수 있다. 이들 특징 및 다른 특징은 이하의 설명과 첨부된 청구항으로부터 더욱 명백하게 될 것이며, 또는 이하에 설명되는 이러한 예시적인 구현의 실시에 의해 학습될 수 있다.
도 1a는 준비 프로그램이 오프라인 자원의 하나 이상의 템플릿 사본을 생성하고, 하나 이상의 호스트 볼륨에 이 자원을 설치하는, 본 발명의 구현에 따르는 개략적인 개요도.
도 1b는, 준비 프로그램이 준비 에이전트와 인터페이스하여 한 저장 매체에 자원의 템플릿들을 생성하고, 다른 호스트 볼륨 상의 다른 저장 매체들에 그 자원의 커스터마이즈된 버전들을 설치하는, 도 1a에 개략적으로 도시된 도면의 더 상세한 뷰를 도시하는 도면.
도 1c는 준비 프로그램으로부터 적절한 자원 목표 파일로 함수 호출들을 리다이렉트하도록 구성된, 본 발명에 따른 애플리케이션 계층들의 집합을 도시하는 도면.
도 2는 오프라인 자원의 템플릿 사본을 생성하기 위한, 준비 프로그램의 관 점과 준비 에이전트의 관점으로부터의 일련의 액트들을 포함하는 흐름도.
본 발명의 상술된 이점 및 특징, 그리고 다른 이점 및 특징을 얻을 수 있는 방법을 설명하기 위해, 첨부된 도면에 도시된 특정 실시예들을 참조하여, 간단하게 상술된 본 발명에 대해 더욱 구체적인 설명이 행해질 것이다. 이들 도면이 본 발명의 통상적인 실시예만을 도시하므로, 발명의 범위를 제한하는 것으로 간주되어서는 안 됨을 이해하고, 본 발명은 첨부된 도면을 이용하여 더 구체적으로 그리고 더 상세하게 기술되고 설명될 것이다.
본 발명은 오프라인 자원의 템프릿 사본을 생성하도록 구성된 시스템, 방법 및 컴퓨터 프로그램 제품에 이른다. 특히, 본 발명의 구현은, 운영 체제 또는 애플리케이션의 사본과 같은 특정 자원의 사본이 사용자의 사양에 따라 자원의 일반적인 사본 또는 템플릿 사본으로 바뀔 수 있게 하며, 이때 자원은 실행되지 않고 있다(즉, 오프라인임). 따라서, 본 발명의 구현은, 사용자가 상당한 효율성과 구성가능성으로 동일한 자원에 대해 원하는 만큼 많은 수의 템플릿 사본을 생성할 수 있게 한다. 이러한 구현은 또한, 이후의 처리 동안 템플릿을 커스터마이즈하는 것에 대하여 편리한 사용자 경험을 제공할 수 있다.
본 명세서의 설명 및 청구항으로부터 더 완전하게 이해할 수 있는 바와 같이, 본 구현의 적어도 하나의 이점은, 사용자들(예를 들면, 시스템 관리자들)이 커스터마이즈된 가상 기계를 기본 레벨에서부터 재생성할 필요 없이 많은 수의 다른 사용자들에게 커스터마이즈된 가상 기계를 효율적으로 제공할 수 있다는 점이다. 게다가, 커스터마이즈된 가상 기계의 사용자 또는 소유자는, 가상 기계와 관련된 하드웨어 또는 소프트웨어의 여러 재부팅 및/또는 재시작(restart)을 반드시 행할 필요 없이, 사용자의 가상 기계의 템플릿을 쉽게 생성할 수 있다. 또한, 프로세스가 자동화될 수 있기 때문에, 일반 사용자들이 그 해답을 알 수 없는 통상적으로 곤란한 결정들(예를 들면, 제품 키, DNS, WINS 등) 중 일부가 시스템에 의해 자동적으로 해결될 수 있어, 궁극적으로는, 예를 들어 헬프 데스크(help desk) 또는 관리에 관련된 통화(administrative calls)에 있어서 비용을 절감할 수 있다. 또한, 본 발명의 구현은, 소정의 준비 소프트웨어의 함수 호출이 또 다른 위치로 쉽게 리다이렉트될 수 있게 하여, 사용자는 원격으로 위치하고 있는 가상 기계로부터 템플릿을 생성할 수 있다.
본 명세서에서 사용되는 바와 같이, "준비 프로그램"은, 가상 기계 또는 운영 체제의 이미지 파일 또는 애플리케이션 프로그램 파일의 이미지(또는 실행가능한 것)와 같이, 특정 사용자에 의해 지시되는 특정 파일과 인터페이스하도록 구성된, 일반적으로 독립적인 컴퓨터 실행가능 명령어의 집합을 지칭한다. 이후, 준비 프로그램은, 제공되는 템플릿 설정에 따라, 그 파일에서 소정의 커스터마이즈된 표시(customized indicia)를 제거할 수 있다. MICROSOFT 운영 환경에 대한 적어도 하나의 구현에서, 본 발명의 하나 이상의 구현에 따라 사용될 수 있는 하나의 준비 프로그램(예를 들면, 참조번호(145))은 또한 "Sysprep"이라 지칭되는 시스템 준비 도구(System Preparation tool)이다.
어느 경우든지, 본 명세서에서 처음에 설명된 바와 같은 일부 경우에서, 준 비 프로그램은, 사용자 또는 다른 관리자로부터의 구성에 의해, "준비 에이전트(preparation agent)"와 또한 인터페이스할 것이다. 준비 에이전트는 또한, 준비 프로그램과 흥미있는 파일 간에 심 인터페이스(shim interface)(예를 들면, 도 1c 참조)로서 (및/또는 특정 운영 체제에 관련된 임의의 기타의 적절한 인터페이스 컴포넌트들을 통해) 실제로 동작(act)하는 컴퓨터 실행가능 명령어의 집합이다. 특히, 준비 에이전트는 준비 프로그램으로부터의 호출을 받고 또는 이를 리다이렉트하도록 구성될 것이다. 적어도 하나의 구현에서, 준비 에이전트는, 준비 프로그램으로부터 호출을 받고 이를 리다이렉트하도록 구성되는데, 준비 프로그램은 이러한 수신 및/또는 리다이렉션을 알지 못한다.
도 1a는 준비 프로그램이 오프라인 자원의 하나 이상의 템플릿 사본들을 생성하고 설치하는, 본 발명의 구현에 따르는 개략적인 개요도를 도시한다. 이후, 하나 이상의 다른 자원들 또는 컴포넌트들(도시 생략)(예를 들면, 하나 이상의 기타 재배포 또는 저장 모듈, 또는 재배포 또는 저장 메커니즘)은, 하나 이상의 호스트 볼륨(host volume)에 있는 자원의 템플릿 사본들을 제공할 수 있다. 예를 들면, 도 1a는, 서버(105)가 현재로는 "오프라인"이거나 또는 실행되지 않고 있는 자원(140)과 같은 하나 이상의 자원들을 호스트함을 도시한다. 이 예에서, 자원(140)은, 서버(105)의 할당된 하드 디스크 파티션(allocated hard disk partition)에서 실행 중인, 본질적으로 독립적인 엔티티인 "가상 기계"를 포함한다.
가상 기계로서, 자원(140)은, 애플리케이션 프로그램들을 실행시키거나, 다 른 물리적 또는 가상 기계들과 인터랙트하거나, 네트워크 또는 데이터베이스 애플리케이션/기능을 제공하는 등과 같은 통상적인 물리적 기계의 모든 이점 또는 대부분의 이점을 제공할 수 있다. 한 구현에서, 예를 들면, 서버(105)는 주로 저장 서버로서 동작하는 메인 파티션(main partition)을 포함하며, 자원(140)은 메일 서버 또는 데이터베이스 서버로서 동작한다. 이와 같이, 네트워크에 있는 다른 기계들은, 자원(140)이 서버(105)에 의해 호스팅되는 가상 기계에 지나지 않는다는 것을 보통 알지 못하며, 이는, 적어도 일부분, 자원(140)이 네트워크상의 다른 기계들에 비해 충분히 커스터마이즈되어 있고 독립적으로 어드레스가능하기 때문이다.
도 1a는 또한, 어느 시점에서, 사용자가 자원(140)을 복제시키기를 원한다는 것을 도시하고 있다. 예를 들면, 사용자는 각종 소프트웨어 설정, 업데이트 및 커스터마이제이션이 자원(140)에 적용되었던 방식을 좋아해서, 아주 처음부터 시작하지 않고 또는 그 소프트웨어 커스터마이제이션을 제거하지 않고, 다른 호스트에서 사용하기 위해 자원(140)을 복제시키기를 원한다. 따라서, 도 1a에서는, 준비 프로그램(145)이 자원(140)이 오프라인인 동안 자원(140)과 인터페이스하여, 대응하는 템플릿 사본들(140a)을 생성하는 것을 도시하고 있다. 이후 이들 템플릿들은 별도의 볼륨(즉, 참조번호(165, 180))의 호스트들(110 및 115)로 전송되고, 이에 설치되며, 그리고 선택적으로(optionally) 적절하게 커스터마이즈될 수 있다. 적절하게 커스터마이즈하면, 이러한 자원(140)의 새 버전들(즉, 자원(140b, 140c))은 (어느 모로 보나 네트워크상의 다른 사용자들에게는 새로운 기계인) 독립적인 엔티티들로 보여질 수 있다.
도 1b는 도 1a에 도시된 개략도의 좀 더 상세한 뷰를 도시하며, 여기서 이전에 설명된 준비 프로그램(145)은 준비 에이전트(150)와 인터페이스하여 자원(140)의 템플릿들(140a)을 생성한다. 특히, 도 1b는, 서버(105)가 복수의 서로 다른 기계들 및/또는 가상 기계들을 포함하여, 일부 양태에서 가상 기계 라이브러리(virtual machine library)로서 동작하는 것을 도시한다. 예를 들면, 도 1b는, 서버(105)가 메인 볼륨(main volume)(160)("c:\") 뿐만 아니라 추가의 가상 기계 볼륨(170)("x:\")과 볼륨(175)("z:\")에 저장된 별도의 엔티티들을 포함함을 도시한다. 이 예에서의 이러한 볼륨 각각은 또한 자기만의 별도로 커스터마이즈된 운영 체제를 갖는 특정 자원을 포함한다. 예를 들면, 볼륨(160)은 그에 저장되거나 및/또는 설치된 자원(130)을 가지며, 볼륨들(170 및 175)은 그에 저장되거나 및/또는 설치된 자원들(135 및 140)을 각각 갖는다. 이 특정 경우에서, 자원들(135 및 140)은 둘 다 현재 오프라인(즉, "오프라인 자원"(125))이다.
설명으로서, 이 특정 예는, 각 볼륨(160, 170, 175, 등)이 특정의 드라이브 문자 지정(a particular drive letter designation)을 통해 식별가능함을 도시하고 있다. 그러나, 이것이 본 발명의 구현에 따른 필수 사항이 아님을 이해할 것이다. 예를 들면, 드라이브 경로는, 소정의 운영 체제에 적절한 임의의 적절한 GUID(Global Unique Identifier)에 의해 지정될 수 있다. 드라이브 경로는 또한, 다른 경우에서는 GUID 없이 설계될 수 있다. 예를 들면, 드라이브 경로는, 마운트되지 않은 볼륨(unmounted volume), 드라이브 문자가 없는 마운트된 볼륨(예를 들면, 마운트 포인트), 드라이브 문자가 있는 마운트된 볼륨, 또는 심지어 전송할 수 있는 스냅샷(transportable snapshot)을 지정할 수 있다. 궁극적으로, 특정 볼륨을 어드레싱하는 방법만이 필요하다. 따라서, 본 명세서에서 행해진 특정 드라이브 또는 특정 파일 경로들의 도시 및 지정은, 설명의 편의에 의해 적어도 하나의 가능한 구현을 도시한다.
어느 경우든지, 그리고 상술된 바와 같이, 각 자원은, 일반적으로 자신이 로컬 또는 원격 컴퓨터 시스템과 구별될 수 있게 하는 적어도 기본적인 표시(basic indicia)에 의해 개별적으로 커스터마이즈될 것이다. 예를 들면, 도 1b는, 자원(130)이 "커스텀 표시(custom indicia) a, b, c"를 포함하는 반면, 자원(135)이 "커스텀 표시 c, d ,e"를 포함하는 반면, 자원(140)이 "커스텀 표시 c, f, g"를 포함함을 도시한다. 이 경우, 각 자원이 적어도 하나의 공통된 표시 "c"를 가지며, 이것은 공유될 수 있는 도메인 이름(domain name), 타임 존 설정(time zone setting), 또는 일부 기타 표시 또는 속성을 나타낼 수 있음을 유의한다. 그러나, 각 자원은, 자원(130)의 경우 "a, b", 자원(135)의 경우 "d, e", 자원(140)의 경우 "f, g"와 같이 고유한 표시를 더 포함한다. 예를 들면, 공통 표시 "c"는 공통 네트워크 도메인 이름 멤버쉽(common network domain name membership)일 수 있는 반면, 고유의 표시 "a, b", "d, e" 및 "f, g"는 고유한 컴퓨터 이름, 소유자의 계정, 구성 설정 등일 수 있다.
도 1b는, 각 자원이 또한 각종 소프트웨어 버전, 업데이트 및/또는 패치 등으로 개별적으로 커스터마이즈될 수 있음을 도시하고 있다. 예를 들면, 자원들(130 및 135)은 "소프트웨어 업데이트 x, y, z"를 포함하는 반면, 자원(140)은 " 소프트웨어 업데이트 v, y, z"를 포함한다. 어떤 시점에서는, 사용자는, 자원(140)이 여러 이유로, 업데이트 "x, y, z"보다는 업데이트 "v, y, z"에 기초하여 실행되는 방식을 선택한 것으로 결정할 수 있다. 그래서, 사용자는, 관련된 소프트웨어 업데이트는 유지하되 컴퓨터 이름, 소유자의 계정, 일광절약 설정(daylight saving setting) 등과 같은 다른 커스텀 표시는 제거하는 자원(140)의 템플릿을 생성하기로 결정할 수도 있다.
따라서, 사용자는, 볼륨 "z:\"(175)를 통해 자원(140)을 목표로 하고(target) 커스텀 표시 "f 및 g"만을 제거하는 특별한 요청을 포함하는 템플릿 설정(155)을 준비한다. 한 구현에서, 템플릿 설정(155)은 준비 프로그램(145)에 제공되고 사용자 인터페이스를 통해 수신된 입력에 응하여 생성된 전자 데이터일 뿐이다. 다른 경우, 템플릿 설정(155)은 또 다른 프로그램을 이용하여 별도로 생성된 파일 또는 컴포넌트일 수 있으며, 이 경우, 준비 프로그램(145)은 단지 그에 있는 데이터만을 수신한다. 어느 경우든지, 도 1b는, 준비 프로그램(145)이 준비 에이전트(150)를 통해 실행될 때 템플릿 설정(155)을 구체화함(incorporate)을 또한 도시하고 있다.
도 1c에 도시된 바와 같이, 예를 들면, 준비 에이전트(150)는 사실상 준비 프로그램(145)과 볼륨 하드 드라이브 마운터(volume hard drive mounter)(195)와 같은 임의의 기타 적절한 컴포넌트들 사이의 심(shim)으로서 기능하며, 이 볼륨 하드 드라이브 마운터(195)는 이어서 자원의 대응 파일과 직접 인터페이스할 수 있다. 이와 같이, 준비 에이전트(150)는, 준비 프로그램(145)에 의해 행해지는 함수 호출들이 템플릿 설정(155)에 의해 설정된 바와 같이, 준비 프로그램(145)이 실행되고 있는 운영 체제로라기 보다는 또 다른 오프라인 볼륨으로 다이렉트될 수 있다는 점에서, 적어도 일부분 보호물(shield)로서 기능할 수 있다. 즉, 준비 에이전트(150)는 함수 호출들을 적절한 목표로 리다이렉트하도록 구성되어, 준비 프로그램(145)과 준비 에이전트(150)가 설치될 때, 준비 프로그램(145)이 자원(130)으로부터라기 보다는 자원(140)으로부터만의 템플릿을 만드는 것을 보장할 수 있다.
도 1b를 다시 참조해보면, 도 1b는 준비 에이전트(150)가 오프라인 자원(140)에서 커스텀 표시 "f, g"를 제거하는 명령어를 포함하는, 준비 프로그램(145)의 함수 호출들을 리다이렉트하는 것을 도시하고 있다. 한 구현에서, 준비 프로그램(145)은, 단순히 자원(140)의 하나 이상의 특정 표시를 직접 제거하기만 하므로, 사용자는 자원(140)이 다시 온라인으로 되기 전에 커스텀 표시를 재구성할 필요가 있을 것이다. 또 다른 구현에서는, 사용자는, 표시를 자원(140)에서 직접 제거하지 않고, 또 다른 파일로의 복사(copying) 및 여과 함수 호출(filtration function calls)의 결과를 필터링한다. 또 다른 실시예에서, 사용자는 우선 자원(140)의 오프라인 파일을 별도의 장소에 복사한 다음, 템플릿 설정(155)에 포함되어 있는 표시를 제거할 수 있다. 어떻게 구성되더라도, 준비 프로그램(145)의 함수 호출은 자원(140)이 명시된 바대로 제거될 수 있게 하며, 중단을 최소화하며 원하는 만큼 많은 수의 템플릿 사본들(140a)을 생성하게 된다. 상술한 바와 같이, 이것은 적어도 일부분 이들 함수 호출의 실행이 자원(140)의 추가의 재부팅이나 또는 재시작을 필요로 하지 않을 것이기 때문이다.
예를 들면, 특히 가상 기계들에 대하여, 준비 프로그램(145)은 준비 에이전트(150)를 통해, 대응하는 자원(즉, 자원 이미지 파일)의 임의의 가상 하드 디스크(예를 들면, 볼륨(175))를 마운트할 수 있다. 대안으로, 준비 프로그램(145)은 볼륨을 마운트할 필요 없이, 단순히 자원 파일을 판독하거나 또는 그에 기록하도록 구성될 수 있다. 이후, 준비 프로그램(145)은, 준비 에이전트(150)를 디버깅 모드(debugging mode)에서 새로운 프로세스로서 개시함으로써와 같이, 임의의 적절한 플래그로 준비 에이전트(150)를 셋업할 수 있다. 준비 에이전트(150)를 개시하면, 준비 프로그램(145)은 템플릿 설정(155)에 따라 준비 에이전트(150)를 셋업하여, 파일 시스템으로의 모든 호출을 트랩(trap)하고, 시스템 레지스트리로의 모든 호출을 트랩하고, 실행을 성공적으로 할 수 있게 하기 위해 필요한 임의의 기타의 호출을 트랩할 수 있다. 이후 준비 프로그램(145)은 준비 에이전트(150)로 적절한 함수 호출들을 전달하기 시작할 수 있으며, 준비 에이전트(150)는 셋업(즉, 템플릿 설정(155))에 따라 이 함수 호출을 리다이렉트한다. 예를 들면, 자원(130)에서 커스터마이즈된 표시를 제거하라는 준비 프로그램(145)으로부터의 커맨드는, 대신 준비 에이전트(150)에 의해 자원(140)으로 리다이렉트된다.
일단 적절한 커스터마이제이션이 제거되면, 도 1b는, 이제 새로이 생성된 템플릿(140a)이 원하는 곳 어디에든지 설치될 수 있음을 또한 도시하고 있다. 예를 들면, 도 1b는, 서버(105)가 자원 템플릿(140a)과 새로운 표시의 집합(185)을 호스트(110)의 볼륨 "p:\"에 제공하여 자원(140b)을 생성함을 도시하고 있다. 마찬가지로, 도 1b는, 서버(105)가 자원 템플릿(140a)과 새로운 표시(190)를 호스트(115) 의 볼륨 "j:\"에 제공하여 자원(140c)을 생성함을 도시하고 있다. 두 경우 모두에서, 자원(140)의 새로운 반복(즉, 자원(140b 및 140c))은 요청된 소프트웨어 업데이트 "v, y, z" 뿐만 아니라 커스텀 표시 "c"를 유지하고 있다. 그럼에도 불구하고, 도 1b는, 자원(140b)이, 자원(140b)의 "h, i" 그리고 자원(140c)의 "j, k"와 같은 추가의 표시를 포함함으로써 적어도 고유함(unique)을 도시하고 있다. 상술된 바와 같이, 이러한 고유한 표시는 컴퓨터 이름 또는 기타 적절한 설정 정보와 같은 임의의 개수의 항목에 대응할 수 있다.
새로운 표시(185, 190)가 자원 템플릿(140a)의 새로운 설치 동안 제공될 수 있는 많은 서로 다른 방법들이 있다. 상술된 바와 같이, 예를 들면, 이들 설정은, 자원(140)에서 표시를 제거할 때 사용자 인터페이스 프롬프트를 통해 준비 프로그램(145)에 앞서 제공될 수 있으며, 또는, 임의의 적절한 때에 플로피 디스크와 같은 다른 저장 매체로부터 수신될 수 있다. 다른 경우에서, 준비 프로그램(145)(등)은 호스트(110, 115)에서 다시 사용되어, 설치 시 적절한 사용자 인터페이스를 통해 이 정보에 대해 사용자를 촉구할(prompt) 수 있다.
또한, 본 발명의 문맥 내에서 전술된 컴포넌트와 메커니즘에 대해 많은 변형이 있을 수 있다는 것을 이해할 것이다. 예를 들면, 로컬 볼륨에 설치되어 있는 목표 자원에서 커스텀 표시 및/또는 특정 소프트웨어 컴포넌트 또는 업데이트를 제거하는 것에 추가하여, 시스템 관리자는 또한 원격 오프라인 자원들에 대해 이러한 기능들을 수행할 수 있다. 예를 들면, 시스템 관리자는 준비 프로그램(145)과 준비 에이전트(150)를 이용하여 큰 회사 내에 있는 모든 오프라인 자원의 일부 소프 트웨어 업데이트를 제거할 수도 있다. 마찬가지로, 시스템 관리자는 준비 프로그램(145)과 준비 에이전트(150)를 이용하여 이전 피고용인(former employee)에 의해 소유되었던 가상 기계에서 모든 커스텀 표시를 제거할 수도 있다. 게다가, 시스템 관리자는 준비 프로그램(145)과 준비 에이전트(150)를 이용하여 회사 주위의 퍼스널 스테이션(personal stations)에서 사용하기 위해 특별히 커스터마이즈된 운영 체제 버전을 셋업할 수 있으며, 동쪽 스테이션(east station)에서 최소한의 노력으로 설치될 수 있는 사본들을 생성할 것이다.
또한, 각각의 사용자들은 이들 컴포넌트를 각종 퍼스널 설정으로 사용할 수 있다. 예를 들면, 사용자는, 모든 패치와 각종 보안 소프트웨어가 설치되고 구성되어 있는 운영 체제의 동작 중이며 업데이트된 버전의 사본을 생성하고, 관련된 제품 키를 제거하여, 다르지만 유효한 제품 키, 컴퓨터 이름 등으로 이 사본을 또 다른 친구 또는 또 다른 가족 구성원의 컴퓨터에 재설치할 수 있다. 따라서, 도 1a 내지 도 1c는 높은 효율성과 정확도로 기존의 자원들의 템플릿을 생성하도록 광범위한 설정에서 사용될 수 있는 많은 수의 개략도와 컴포넌트를 도시한다.
본 발명의 구현은 또한 특정 결과를 달성하기 위한 일련의 서로 다른 액트들을 포함하는 하나 이상의 방법의 흐름도에 의해 설명될 수 있다. 특히, 도 2는 오프라인 자원의 템플릿 사본을 생성하기 위한, 준비 프로그램(145)과 준비 에이전트(150)의 관점으로부터의 액트들의 흐름도를 도시한다. 도 2의 액트들은 도 1a 내지 도 1c에 설명되어 있는 컴포넌트와 메커니즘을 참조하여 이하에 설명된다.
예비적인 사항으로서, 본 명세서에서 때때로 "제1", "제2", 및 "제3" 컴포 넌트(예를 들면, 제1, 제2 또는 제3 저장 공간)를 언급한다. 그러나, 이러한 지정은 단지 컴포넌트들을 구별하기 위한 것이므로, 컴포넌트가 액세스될 수 있는 포인트에 상관없이, "제1" 컴포넌트 또는 저장 공간은 "제2" 또는 "제3" 컴포넌트 또는 저장 공간과 다르기만 하면 된다는 것을 이해할 것이다. 예를 들면, 제1 저장 공간, 및 제2 또는 제3 저장 공간의 사용은, 단지 이들 제1, 제2 또는 제3 저장 공간들이 적어도 서로 상이함을 의미하며, 이러한 지정은 제1, 제2 또는 제3 저장 공간이 반드시 존재하고, 액세스되고, 생성되고, 또는 임의의 특정 시퀀스 또는 순서로 그에 저장된 다른 액션을 수행해야 한다는 것을 반드시 필요로 하지 않는다.
예를 들면, 도 2는, 하나 이상의 소프트웨어 자원들 중 적어도 하나의 소프트웨어 자원이 오프라인인 동안 이 적어도 하나의 소프트웨어 자원의 템플릿을 생성하기 위한, 준비 프로그램(145)의 관점으로부터의 방법이 오프라인 자원을 식별하는 액트(200)를 포함함을 도시한다. 액트(200)는 오프라인 소프트웨어 자원을 식별하는 단계를 포함한다. 예를 들면, 준비 프로그램(145)은 사용자로부터 입력을 수신하여, 볼륨 "z:\"(175)에 위치하고 있는 자원(140)으로부터 템플릿을 생성한다.
마찬가지로, 도 2는, 가상 기계가 오프라인인 동안 그 가상 기계를 복제하여, 가상 기계와 복제된 가상 기계가 실행 중일 때 구별가능한 아이덴티티를 갖게 하는, 준비 에이전트(150)의 관점으로부터의 방법이 오프라인 파일 아이덴티티를 수신하는 액트(210)를 포함함을 도시한다. 액트(210)는 제1 저장 공간에 설치되어 있는 가상 기계 파일의 아이덴티티를 수신하는 단계를 포함한다. 예를 들면, 준비 에이전트(150)는 준비 프로그램으로부터 볼륨 "z:\"(175)에 있는 목표 자원(140)에 대한 지시(indication)를 수신한다. 가상 기계의 특별한 경우에서, 자원(140)은 VHD(Virtual Hard Disk)(즉, ".vhd," "VHD" 또는 ".vhd")와 같은 단일의 파일로서 식별될 수 있다. 일부 경우, 가상 기계가 대안으로 복수의 ".vhd" 파일에 의해 나타내어 질 수 있음을 이해할 것이다.
도 2는 또한 준비 프로그램(145)의 관점으로부터의 방법이 템플릿 설정을 식별하는 액트(220)를 포함함을 도시한다. 액트(220)는, 소프트웨어 자원에서 제거될 하나 이상의 표시를 식별하는 하나 이상의 템플릿 설정을 식별하는 단계를 포함한다. 예를 들면, 준비 에이전트(150)는 커스텀 표시 "f, g"를 제거하되 원하는 바와 같이 소프트웨어 업데이트들 "v, y, z" 중 임의의 하나 이상을 보존하라는 명령어를 포함하는 템플릿 설정(155)을 수신한다. 게다가, 도 2는, 준비 프로그램(145)의 관점으로부터의 방법이 준비 프로그램을 실행시키는 액트(230)를 포함함을 도시한다. 액트(230)는 템플릿 설정에 따라 표시를 제거하도록 구성된 준비 프로그램을 제1 운영 체제에서 실행시키는 단계를 포함한다. 예를 들면, 도 1b는, 준비 프로그램(145)이 자원(130)(즉, 대응하는 운영 체제)을 실행(run)시키거나 및/또는 자원(130) 상에서 수행(execute)되지만, 템플릿 설정(155)에 따라 함수 호출을 자원(140)으로 리다이렉트하는 것을 도시하고 있다.
따라서, 도 2는 준비 프로그램(145)의 관점으로부터의 방법이 함수 호출을 식별된 자원으로 리다이렉트하는 액트(240)를 더 포함함을 도시한다. 액트(240)는, 준비 프로그램의 하나 이상의 함수 호출을 식별된 소프트웨어 자원으로 리다이 렉트하여, 하나 이상의 템플릿 설정에 의해 식별되는 표시를 소프트웨어 자원에서 제거되게 하고, 소프트웨어 자원의 템플릿이 생성되게 하는 단계를 포함한다. 예를 들면, 준비 프로그램(145)은 준비 에이전트(150)를 디버깅 모드에서 새로운 프로세스로서 개시하며, 템플릿 설정(155)에 따라 모든 적절한 리다이렉션 함수들로 준비 에이전트(150)를 셋업한다. 따라서, 준비 프로그램(145)이 커스텀 표시를 제거하기 위한 함수 호출을 전송할 때, 이 호출은 목표로 하는 소프트웨어 자원으로 적절하게 리다이렉트되어, 궁극적으로 템플릿이 생성된다.
그러므로, 마찬가지로, 도 2는, 준비 에이전트(150)의 관점으로부터의 방법이 하나 이상의 함수 호출을 수신하는 액트(250)를 포함함을 또한 도시한다. 액트(250)는 제2 저장 공간에 설치되어 있는 준비 프로그램으로부터 하나 이상의 함수 호출을 수신하는 단계를 포함하며, 이 하나 이상의 함수 호출은 하나 이상의 표시의 제거를 요청한다. 예를 들면, 도 1b와 도 1c 둘 다에 도시된 바와 같이, 준비 에이전트(150)는 준비 프로그램(145)과 직접 인터페이스하여 명령어를 수신하고, 템플릿 설정(155)에 의해 지시된 곳에서 이 명령어를 구현한다. 이와 같이, 준비 에이전트(150)는, 메인 볼륨(160) 상에서 실행되는 준비 프로그램(145)을 통해 의도되는 제거 기능이 적절한 오프라인 목표(예를 들면, 자원(140))의 볼륨(예를 들면, 참조번호(175))에서만 일어나는 것을 보장할 수 있다.
게다가, 도 2는, 준비 에이전트(150)의 관점으로부터의 방법이 파일에 대해 하나 이상의 함수 호출을 실행하는 액트(260)를 포함함을 도시한다. 액트(260)는 가상 기계 파일에 대해 하나 이상의 함수 호출을 실행하여, 하나 이상의 표시를 제 1 저장 공간에서 제거하는 단계를 포함한다. 예를 들면, 가상 기계 파일로 표현되는 가상 기계의 특별한 경우에서 준비 에이전트(150)는 가상 기계 파일(또는 볼륨 하드 드라이브 마운터(195))과 직접 인터페이스하여, 명시된 커스텀 표시(예를 들면, 자원(140)의 "f, g") 또는 원하지 않는 소프트웨어 컴포넌트를 가상 기계 파일에서 제거한다. 준비 에이전트(150)에 의한 이 실행은 서버(105) 상에서 로컬로 행해질 수 있으며, 또는 심지어 네트워크 상에서 원격 함수 호출을 통해 행해질 수도 있다.
도 2는 또한 준비 에이전트(150)의 관점으로부터의 방법이 오프라인 파일의 템플릿 사본을 생성하는 액트(270)를 포함함을 도시한다. 액트(270)는 가상 기계 파일의 템플릿 사본을 생성하는 단계를 포함한다. 예를 들면, 도 1b에 도시된 바와 같이, 자원(140)에 대한 실행의 결과는 템플릿 사본들(140)의 생성이며, 이 사본들(140)은 소프트웨어 업데이트 "v, y, z"와 유일한 공통된 표시 "c"를 포함한다.
따라서, 본 명세서에 설명된 방법 및 대응하는 컴포넌트와 개략도는, 사용가능한 것보다 훨씬 더 효율적으로 오프라인 소프트웨어 자원의 템플릿을 생성하는 하나 이상의 구현을 제공한다. 특히, 본 발명의 구현은, 비교적 빠르고, 신뢰할 수 있으며, 커스터마이제이션을 수행하기 위해 최종 사용자와 인터랙션 또는 자격 증명서(credential)를 통상적으로 필요로 하지 않는 프로세스를 이용하여 템플릿들이 생성될 수 있게 한다. 게다가, 소프트웨어 자원(즉, 가상 기계)을 실행시키거나 또는 소프트웨어 자원을 준비시키기 전에 그에 추가의 소프트웨어 컴포넌트들을 설치할 명시적인 필요가 없다. 게다가, 이들 특징들은 모두 가상 기계에 대한 인터페이스가 거의 없어도, 즉, 사용자 로그온, 사용자 프로파일 생성 등을 반드시 필요로 하지 않고 수행될 수 있다. 또한, 이들 준비 프로그램과 컴포넌트들은 각종 자원들에 대해 사용될 만큼 충분히 일반적인 것이므로, 이들 준비 프로그램과 컴포넌트들은 대응하는 목표 소프트웨어 자원이 버전 변경을 행할 때마다 반드시 업데이트될 필요가 없다.
상술한 바와 같이, 이렇게 효율적인 방식으로 템플릿을 생성하는 이러한 기능은, 각종 컴퓨터 스테이션(computer station)에 특별히 커스터마이즈되거나 또는 업데이트된 소프트웨어 자원들을 설치하기를 원하는 대형 기업들의 경우 매우 유용할 수 있다. 특히, 본 발명의 구현은, 이러한 사본들이 이전에 필요했던 것보다 더 작은 시간과 노력으로 만들어질 수 있게 하며, 또한, 이러한 사본들이 이전에 필요했던 것보다 훨씬 더 작은 시간과 노력으로 특별히 커스터마이즈된 시점(point)에 설치될 수 있게 한다. 이러한 이점은 그 수명(lifetime)에 걸쳐 소프트웨어 및/또는 퍼스널화(personalization)의 견지로부터 여러 번 커스터마이즈될 수 있는, 가상 기계들, 운영 체제들 및 애플리케이션 프로그램들을 복제하는 데에 특히 유용할 수 있다.
예로서, 이러한 컴퓨터 판독가능 매체는, RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 담고 있거나(carry) 또는 이를 저장하는 데에 사용될 수 있으며 범용 또는 특수 목 적의 컴퓨터에 의해 액세스될 수 있는 임의의 기타 매체를 포함할 수 있으나, 이에 제한되지 않는다. 정보가 네트워크 또는 또 다른 통신 접속(유선, 무선, 또는 유무선의 조합)을 통해 컴퓨터로 전송되거나 또는 컴퓨터에 제공될 때, 컴퓨터는 당연하게 컴퓨터 판독가능 매체인 것으로 간주된다. 따라서, 이러한 임의의 접속은 당연하게 컴퓨터 판독가능 매체라 지칭된다. 상술된 것의 조합 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야만 한다.
컴퓨터 실행가능 명령어는, 예를 들면, 범용 컴퓨터, 특수 목적의 컴퓨터, 또는 특수 목적의 처리 장치로 하여금 어떤 기능 또는 기능들의 그룹을 수행하게 하는 명령어 및 데이터를 포함한다. 본 발명이 구조적인 특징들 및/또는 방법론적인 액트들에 특정한 언어로 설명되었지만, 첨부된 청구항에 정의된 내용이 상술된 특정 특징들 또는 액트들에 제한될 필요는 없음을 이해할 것이다. 오히려, 상술된 특정 특징들 또는 액트들은 청구항을 구현하는 예시적인 형태로서 개시된다.
본 발명은 그 취지 또는 핵심적인 특징에서 벗어나지 않고 다른 특정 형태로 구현될 수 있다. 설명된 실시예는 모든 점에 있어 예시적인 것으로서만 그리고 제한하지 않은 것으로 간주될 것이다. 따라서, 본 발명의 범위는 전술된 내용에 의해서가 아니라 첨부된 청구항에 의해 나타내어진다. 청구항의 동등물의 의미와 범위 내에 들어오는 모든 변경은 그 범위 내에 포함될 것이다.

Claims (20)

  1. 컴퓨터화된 환경에서 소프트웨어 자원의 템플릿(template)을 생성하는 방법으로서, 상기 컴퓨터화된 환경은 적어도 제1 가상 머신 및 제2 가상 머신을 호스팅하는 하나 이상의 컴퓨터 시스템을 포함하고, 상기 방법은,
    상기 제2 가상 머신 상에 소프트웨어 자원을 설치하라는 요청을 수신하는 것에 응답하여 상기 제1 가상 머신 상에 설치되어 있지만 실행되고 있지 않은 상기 소프트웨어 자원의 제1 인스턴스를 식별하는 단계 - 상기 소프트웨어 자원의 상기 제1 인스턴스는 커스터마이즈된 표지(indicia)의 제1 세트를 가짐 - ;
    상기 소프트웨어 자원의 상기 제1 인스턴스의 사본(copy)에서 제거될 하나 이상의 표지 및 상기 소프트웨어 자원의 상기 제1 인스턴스의 상기 사본에 추가될 하나 이상의 표지를 식별하는 하나 이상의 템플릿 설정들(settings)을 식별하는 단계;
    상기 소프트웨어 자원의 상기 제1 인스턴스의 상기 사본으로부터 상기 제거될 표지를 제거하고 상기 소프트웨어 자원의 상기 제1 인스턴스의 상기 사본에 상기 추가될 표지를 추가함으로써 상기 소프트웨어 자원의 상기 제1 인스턴스의 상기 사본으로부터 상기 소프트웨어 자원의 제2 인스턴스를 생성하도록 구성된 준비 프로그램(preparation program)을 제1 운영 체제에서 실행시키는 단계; 및
    상기 준비 프로그램의 하나 이상의 함수 호출들(function calls)을 리다이렉트(redirect)하여, 상기 소프트웨어 자원의 상기 제2 인스턴스를 상기 제2 가상 머신 상에 설치하는 단계
    를 포함하는, 템플릿 생성 방법.
  2. 제1항에 있어서, 상기 소프트웨어 자원의 상기 제1 인스턴스는 상기 제1 가상 머신 상의 운영 체제인 템플릿 생성 방법.
  3. 제1항에 있어서, 상기 소프트웨어 자원의 상기 제1 인스턴스는 상기 제1 가상 머신의 상기 운영 체제 상에 설치되는 애플리케이션 프로그램인 템플릿 생성 방법.
  4. 제1항에 있어서, 상기 준비 프로그램은 상기 하나 이상의 템플릿 설정들을 수신하도록 구성된 준비 에이전트(preparation agent)를 통해 실행되는 템플릿 생성 방법.
  5. 제4항에 있어서, 상기 준비 에이전트는 자원 마운터(resounce mounter)를 통해, 상기 하나 이상의 함수 호출들을 상기 소프트웨어 자원의 제3 인스턴스로 전달(pass)하도록 구성된 템플릿 생성 방법.
  6. 제4항에 있어서, 상기 소프트웨어 자원의 상기 제1 인스턴스는 볼륨 하드 디스크 파일(volume hard disk file)이며, 상기 자원 마운터는 볼륨 하드 드라이브 마운터(volume hard drive mounter) 및, 대응하는 물리적 디스크로의 액세스를 제공하도록 구성된 애플리케이션 또는 시스템 라이브러리(application or system library) 중 적어도 하나인 템플릿 생성 방법.
  7. 제6항에 있어서, 상기 볼륨 하드 디스크 파일은 상기 제1 가상 머신(virtual machine)에 대응하는 템플릿 생성 방법.
  8. 제1항에 있어서, 상기 하나 이상의 템플릿 설정들은, 컴퓨터 이름, 사용자 이름, 회사 이름, 도메인 이름 또는 네트워크 어드레스 중 임의의 하나 이상의 표시(indication)를 포함하는 시스템 설정 또는 사용자 설정(system or user setting)을 포함하는 템플릿 생성 방법.
  9. 제1항에 있어서, 상기 하나 이상의 템플릿 설정들은, 일광절약 설정(daylight saving setting) 또는 타임 존 설정(time zone setting) 중 임의의 하나 이상의 표시를 포함하는 시스템 설정 또는 사용자 설정을 포함하는 템플릿 생성 방법.
  10. 제1항에 있어서, 상기 하나 이상의 템플릿 설정들은, 자원 제품 키(resource product key), 소프트웨어 버전 또는 보안 설정(security setting) 중 임의의 하나 이상의 표시를 포함하는 시스템 설정 또는 사용자 설정을 포함하는 템플릿 생성 방법.
  11. 삭제
  12. 삭제
  13. 제1항에 있어서, 상기 커스터마이즈된 표지는 저장 매체 또는 네트워크 인터페이스 중 임의의 하나로부터 수신되는 템플릿 생성 방법.
  14. 제1항에 있어서, 상기 커스터마이즈된 표지는 사용자 인터페이스를 통해 수신되는 템플릿 생성 방법.
  15. 적어도 제1 가상 머신, 제2 가상 머신, 제1 저장 공간, 제2 저장 공간 및 제3 저장 공간을 포함하는 컴퓨터화된 환경에서 가상 머신 파일을 복제(duplicate)하는 방법 - 상기 가상 머신 파일과 복제된 가상 머신 파일은 구별가능한 아이덴티티들을 가짐 - 으로서,
    상기 가상 머신 파일의 표시를 수신하는 것에 응답하여, 상기 제1 가상 머신 상에 설치되어 있지만 실행되고 있지 않은 상기 가상 머신 파일을 식별하는 단계 - 상기 제1 가상 머신은 상기 제1 저장 공간에 위치하고, 상기 가상 머신 파일은 커스터마이즈된 표지의 제1 세트를 포함함 - ;
    상기 제2 저장 공간에 설치된 준비 프로그램으로부터 하나 이상의 함수 호출들을 수신하는 단계 - 상기 하나 이상의 함수 호출들은 상기 가상 머신 파일로부터 제거되어야 할 하나 이상의 표지의 제거를 요청하고 상기 가상 머신 파일에 추가되어야 할 하나 이상의 표지의 추가를 요청함 - ;
    상기 제거되어야 할 하나 이상의 표지가 상기 제1 저장 공간에 위치하는 상기 제1 가상 머신에서 제거되고, 상기 추가되어야 할 하나 이상의 표지가 상기 제1 저장 공간에 위치하는 상기 제1 가상 머신에 추가되도록, 상기 가상 머신 파일에 대해 상기 하나 이상의 함수 호출들을 실행시키는 단계;
    커스터마이즈된 표시의 제2 세트를 가지는 상기 가상 머신 파일의 템플릿 사본을 생성하는 단계; 및
    상기 가상 머신 파일의 상기 템플릿 사본을 상기 제3 저장 공간에 위치하는 상기 제2 가상 머신에 설치하는 단계
    를 포함하는 가상 머신 파일 복제 방법.
  16. 삭제
  17. 제15항에 있어서, 상기 가상 머신 파일에서 제거되었던 제거된 하나 이상의 표지를 저장하는 단계를 더 포함하는 가상 머신 파일 복제 방법.
  18. 제15항에 있어서, 상기 가상 머신 파일은 제1 소프트웨어 업데이트 및 제2 소프트웨어 업데이트를 더 포함하는 가상 머신 파일 복제 방법.
  19. 제18항에 있어서, 상기 제거되어야 할 하나 이상의 표지는 상기 제1 소프트웨어 업데이트가 아니라 상기 제2 소프트웨어 업데이트를 제거하라는 요청을 포함하는 가상 머신 파일 복제 방법.
  20. 컴퓨터화된 환경에서 실행될 때 하나 이상의 프로세서들로 하여금 소프트웨어 자원의 템플릿을 생성하는 방법을 수행하게 하는 컴퓨터 실행가능 명령어가 저장되어 있는 컴퓨터 판독가능한 기록 매체로서, 상기 컴퓨터화된 환경은 제1 가상 머신 및 제2 가상 머신을 적어도 호스팅하는 하나 이상의 컴퓨터 시스템을 포함하고, 상기 방법은,
    상기 제2 가상 머신 상에 소프트웨어 자원을 설치하라는 요청을 수신하는 것에 응답하여 상기 제1 가상 머신 상에 설치되어 있지만 실행되고 있지 않은 상기 소프트웨어 자원의 제1 인스턴스를 식별하는 단계 - 상기 소프트웨어 자원의 상기 제1 인스턴스는 커스터마이즈된 표지의 제1 세트를 가짐 - ;
    커스터마이즈된 표지의 제2 세트를 식별하는 단계;
    상기 소프트웨어 자원의 상기 제1 인스턴스의 사본에서 제거될 하나 이상의 표지와 상기 소프트웨어 자원의 상기 제1 인스턴스의 상기 사본에 추가될 하나 이상의 표지를 식별하는 하나 이상의 템플릿 설정들을 식별하는 단계;
    상기 소프트웨어 자원의 상기 제1 인스턴스의 상기 사본으로부터 상기 제거될 표지를 제거하고 상기 소프트웨어 자원의 상기 제1 인스턴스의 상기 사본에 상기 추가될 표지를 추가함으로써 상기 소프트웨어 자원의 상기 제1 인스턴스의 상기 사본으로부터 상기 소프트웨어 자원의 제2 인스턴스를 생성하도록 구성된 준비 프로그램을 제1 운영 체제에서 실행시키는 단계; 및
    상기 준비 프로그램의 하나 이상의 함수 호출들(function calls)을 리다이렉트(redirect)하여, 상기 소프트웨어 자원의 상기 제2 인스턴스를 상기 제2 가상 머신 상에 설치하는 단계
    를 포함하는, 컴퓨터 판독가능한 기록 매체.
KR1020087023181A 2006-03-30 2008-09-23 오프라인 자원의 템플릿 사본을 생성하도록 구성된 방법 및컴퓨터 프로그램 제품 KR101344163B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/393,585 2006-03-30
US11/393,585 US9213542B2 (en) 2006-03-30 2006-03-30 Creating templates of offline resources
PCT/US2007/004636 WO2007117363A1 (en) 2006-03-30 2007-02-21 Creating templates of offline resources

Publications (2)

Publication Number Publication Date
KR20080114752A KR20080114752A (ko) 2008-12-31
KR101344163B1 true KR101344163B1 (ko) 2013-12-20

Family

ID=38561062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087023181A KR101344163B1 (ko) 2006-03-30 2008-09-23 오프라인 자원의 템플릿 사본을 생성하도록 구성된 방법 및컴퓨터 프로그램 제품

Country Status (13)

Country Link
US (3) US9213542B2 (ko)
EP (1) EP2011020B1 (ko)
JP (1) JP5113831B2 (ko)
KR (1) KR101344163B1 (ko)
CN (1) CN101416175B (ko)
AU (1) AU2007235540B2 (ko)
BR (1) BRPI0709166B1 (ko)
CA (1) CA2644167C (ko)
MX (1) MX2008011907A (ko)
MY (1) MY155040A (ko)
RU (1) RU2436150C2 (ko)
TW (1) TWI411958B (ko)
WO (1) WO2007117363A1 (ko)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8577940B2 (en) * 2006-03-20 2013-11-05 Parallels IP Holdings GmbH Managing computer file system using file system trees
US9213542B2 (en) 2006-03-30 2015-12-15 Microsoft Technology Licensing, Llc Creating templates of offline resources
US8010495B1 (en) 2006-04-25 2011-08-30 Parallels Holdings, Ltd. Method and system for fast generation of file system snapshot bitmap in virtual environment
US8091084B1 (en) 2006-04-28 2012-01-03 Parallels Holdings, Ltd. Portable virtual machine
US8909758B2 (en) * 2006-05-02 2014-12-09 Cisco Technology, Inc. Physical server discovery and correlation
US8176153B2 (en) * 2006-05-02 2012-05-08 Cisco Technology, Inc. Virtual server cloning
US7706303B2 (en) 2006-06-26 2010-04-27 Cisco Technology, Inc. Port pooling
US8442958B2 (en) 2006-06-26 2013-05-14 Cisco Technology, Inc. Server change management
US8082539B1 (en) 2006-12-11 2011-12-20 Parallels Holdings, Ltd. System and method for managing web-based forms and dynamic content of website
US8108855B2 (en) * 2007-01-02 2012-01-31 International Business Machines Corporation Method and apparatus for deploying a set of virtual software resource templates to a set of nodes
US8327350B2 (en) * 2007-01-02 2012-12-04 International Business Machines Corporation Virtual resource templates
US20090024645A1 (en) * 2007-07-16 2009-01-22 Sudhir Krishna S Method and system for generating offline applications
US8370802B2 (en) 2007-09-18 2013-02-05 International Business Machines Corporation Specifying an order for changing an operational state of software application components
JP4840670B2 (ja) * 2008-03-25 2011-12-21 日本電気株式会社 仮想マシンのデプロイ高速化システム、その方法及びそのプログラム
DE102008030317A1 (de) * 2008-06-30 2009-12-31 Trumpf Werkzeugmaschinen Gmbh + Co. Kg System und Verfahren zur Fernkommunikation zwischen einem zentralen Computer und einer Maschinensteuerung
US8060476B1 (en) 2008-07-14 2011-11-15 Quest Software, Inc. Backup systems and methods for a virtual computing environment
US8046550B2 (en) 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
JP5446157B2 (ja) * 2008-07-28 2014-03-19 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US8429649B1 (en) 2008-09-25 2013-04-23 Quest Software, Inc. Systems and methods for data management in a virtual computing environment
US9189221B2 (en) 2009-01-27 2015-11-17 Microsoft Technology Licensing, Llc Consistent operating system servicing for distributed nodes
US8996468B1 (en) 2009-04-17 2015-03-31 Dell Software Inc. Block status mapping system for reducing virtual machine backup storage
US9778946B2 (en) * 2009-08-07 2017-10-03 Dell Software Inc. Optimized copy of virtual machine storage files
JP2011076370A (ja) * 2009-09-30 2011-04-14 Hitachi Solutions Ltd デプロイシステム
US9122558B2 (en) * 2009-11-09 2015-09-01 Bank Of America Corporation Software updates using delta patching
US20110113422A1 (en) 2009-11-09 2011-05-12 Bank Of America Corporation Programmatic Creation Of Task Sequences From Manifests
US9274821B2 (en) * 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US9569446B1 (en) 2010-06-08 2017-02-14 Dell Software Inc. Cataloging system for image-based backup
US8898114B1 (en) 2010-08-27 2014-11-25 Dell Software Inc. Multitier deduplication systems and methods
JP5681465B2 (ja) * 2010-12-02 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
US8924472B1 (en) * 2011-08-20 2014-12-30 Datastax, Inc. Embedding application services in a distributed datastore
WO2013035134A1 (ja) * 2011-09-08 2013-03-14 株式会社日立製作所 仮想計算機提供システム及び提供方法
US10108537B2 (en) * 2011-11-29 2018-10-23 Red Hat, Inc. Mechanisms for reproducing storage system metadata inconsistencies in a test environment
US9311375B1 (en) 2012-02-07 2016-04-12 Dell Software Inc. Systems and methods for compacting a virtual machine file
US9501296B2 (en) * 2012-05-18 2016-11-22 Ca, Inc. Hypervisor automation manager for starting an operation system with customization data from a disk image
US9720669B2 (en) * 2013-05-30 2017-08-01 The Boeing Company Deployment of software across an enterprise system
US11663025B2 (en) 2013-09-23 2023-05-30 Bankvault Pty Ltd Maintenance of and caching of suspended virtual computers in a pool of suspended virtual computers
US10474484B2 (en) * 2015-03-26 2019-11-12 Vmware, Inc. Offline management of virtualization software installed on a host computer
CN105278874A (zh) * 2015-09-15 2016-01-27 中国联合网络通信集团有限公司 大数据平台系统及其运行方法
US9910692B2 (en) 2016-01-26 2018-03-06 Intel Corporation Enhanced virtual function capabilities in a virtualized network environment
US11169982B2 (en) * 2016-06-30 2021-11-09 Microsoft Technology Licensing, Llc Dynamic deactivation of cold database in database service
RU2744591C2 (ru) * 2019-05-31 2021-03-11 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Способ и система управления связями компьютеров в многоуровневом составном компьютерном кластере
CN112558968B (zh) * 2020-12-22 2023-10-17 北京飞讯数码科技有限公司 一种资源树视图的生成方法、装置、设备及存储介质
CN114398143B (zh) * 2021-12-02 2024-10-18 阿里巴巴(中国)有限公司 安全容器启动方法、装置、设备及存储介质
US11818055B1 (en) * 2022-05-31 2023-11-14 Walmart Apollo, Llc Systems and methods for automating resource deployment
CN116700897A (zh) * 2023-06-12 2023-09-05 北京首都在线科技股份有限公司 计算环境模板的创建方法、装置、计算设备及存储介质
CN117270961B (zh) * 2023-11-21 2024-04-12 武汉蜂鸟龙腾软件有限公司 一种Linux环境下MFC字符资源的解析和加载方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233644A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation System and method for manipulating offline software

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7101498A (en) * 1997-04-02 1998-10-22 Microsoft Corporation Method for integrating a virtual machine with input method editors
US6393485B1 (en) * 1998-10-27 2002-05-21 International Business Machines Corporation Method and apparatus for managing clustered computer systems
US7000231B1 (en) * 2000-09-22 2006-02-14 Hewlett-Packard Development Company, L.P. Method of manufacturing operating system master template, method of manufacturing a computer entity and product resulting therefrom, and method of producing a production version of an operating system
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US20020156877A1 (en) * 2001-04-23 2002-10-24 Lu James C. System and method for the duplication of a software system onto an appropriate target computer
US20030158926A1 (en) * 2002-02-20 2003-08-21 Gateway, Inc. Network master hard disk drive duplicator
JP4340476B2 (ja) * 2002-06-28 2009-10-07 株式会社リコー ソフトウェア導入方法、その方法をコンピュータに実行させるプログラム及びそのプログラムを格納した媒体
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
TWI263427B (en) * 2003-12-25 2006-10-01 Inst Information Industry Method of contention control for quality of service (QoS) in WLAN
JP4353003B2 (ja) 2004-06-25 2009-10-28 日本電気株式会社 インストール方式およびインストール方法ならびに配布装置およびそのプログラム
US8464250B1 (en) * 2004-09-23 2013-06-11 Transcontinental Events, Llc System and method for on-demand cloning of virtual machines
US7523089B2 (en) * 2005-09-30 2009-04-21 Microsoft Corporation Offline servicing of image files
US7840961B1 (en) * 2005-12-30 2010-11-23 United Services Automobile Association (Usaa) Method and system for installing software on multiple computing systems
US9213542B2 (en) * 2006-03-30 2015-12-15 Microsoft Technology Licensing, Llc Creating templates of offline resources

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233644A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation System and method for manipulating offline software

Also Published As

Publication number Publication date
EP2011020B1 (en) 2018-04-18
CN101416175B (zh) 2013-10-16
AU2007235540B2 (en) 2011-12-08
EP2011020A4 (en) 2009-08-19
TWI411958B (zh) 2013-10-11
US9600276B2 (en) 2017-03-21
US9213542B2 (en) 2015-12-15
CA2644167A1 (en) 2007-10-18
RU2436150C2 (ru) 2011-12-10
US20170147390A1 (en) 2017-05-25
JP5113831B2 (ja) 2013-01-09
CA2644167C (en) 2015-12-29
CN101416175A (zh) 2009-04-22
BRPI0709166A2 (pt) 2011-06-28
EP2011020A1 (en) 2009-01-07
MY155040A (en) 2015-08-28
MX2008011907A (es) 2008-09-29
RU2008138700A (ru) 2010-04-10
BRPI0709166A8 (pt) 2016-12-13
JP2009532757A (ja) 2009-09-10
WO2007117363A1 (en) 2007-10-18
US20160098286A1 (en) 2016-04-07
TW200809620A (en) 2008-02-16
BRPI0709166B1 (pt) 2019-01-15
US20070234334A1 (en) 2007-10-04
KR20080114752A (ko) 2008-12-31
AU2007235540A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
KR101344163B1 (ko) 오프라인 자원의 템플릿 사본을 생성하도록 구성된 방법 및컴퓨터 프로그램 제품
US11509646B2 (en) Systems and methods for cloning an agent in a distributed environment
US7448034B2 (en) Build time determination and installation of drivers on cloned systems
US11030025B2 (en) Managing inter-process communications in a containerized application environment
US10715594B2 (en) Systems and methods for update propagation between nodes in a distributed system
US20090077551A1 (en) Virtual machine image builder for automated installation of fully-virtualized operating system
US10721125B2 (en) Systems and methods for update propagation between nodes in a distributed system
US20040221146A1 (en) Build time dynamic installation of drivers on cloned systems
US20130194630A1 (en) Management system, image forming apparatus, management system control method, and image forming apparatus control method
JP2006099307A (ja) 分散サーバへのアプリケーションセットのインストール方法
KR100831128B1 (ko) 다중 사용자 환경에서의 서버 시스템을 이용한 운영체제백업/복구와 게임 백업/복구/업데이트/설치/실행 및운영체제 관리 시스템 및 그 방법
Shafiq A Practical Guide to SharePoint 2013: No fluff! Just practical exercises to enhance your SharePoint 2013 learning!
Abhilash et al. VMware vSphere 6.5 Cookbook: Over 140 task-oriented recipes to install, configure, manage, and orchestrate various VMware vSphere 6.5 components
Weissman et al. Azure Arc-enabled Data Services Revealed
Feasel et al. Installing and Configuring PolyBase
Riti et al. Containerization with Docker and Kubernetes
Harris Novell Open Enterprise Server Administrator's Handbook
Rhodes et al. Automating Windows Deployment with Lite Touch
Thomas Windows Server 2008 R2 Secrets
Van Vugt Pro Novell Open Enterprise Server
Preston Using Chef with Microso Azure

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