KR20050001321A - 분산 구축 환경의 소프트웨어 이미지 생성 - Google Patents

분산 구축 환경의 소프트웨어 이미지 생성 Download PDF

Info

Publication number
KR20050001321A
KR20050001321A KR1020040042485A KR20040042485A KR20050001321A KR 20050001321 A KR20050001321 A KR 20050001321A KR 1020040042485 A KR1020040042485 A KR 1020040042485A KR 20040042485 A KR20040042485 A KR 20040042485A KR 20050001321 A KR20050001321 A KR 20050001321A
Authority
KR
South Korea
Prior art keywords
computer
software image
task
client
server
Prior art date
Application number
KR1020040042485A
Other languages
English (en)
Other versions
KR101099221B1 (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 KR20050001321A publication Critical patent/KR20050001321A/ko
Application granted granted Critical
Publication of KR101099221B1 publication Critical patent/KR101099221B1/ko

Links

Classifications

    • 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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Abstract

복수개 클라이언트 컴퓨터들 간의 분산형 소프트웨어 이미지를 생성 및 구성한다. 서버 컴퓨터들은 소프트웨어 이미지 생성에 관한 작업들을 정의한다. 각각의 클라이언트 컴퓨터는 작업을 식별하고, 수용하며, 완료하기 위해 서버와 통신한다. 서버 및 클라이언트 컴퓨터는 작업의 유용성 및 상태를 지시하는 데이터 구조를 보유한다. 분산 구축 환경에서, OEM 및 시스템 구축자는 공장의 소프트웨어를 용이하게 변경, 생성, 및 이미지화하여, 자원 소비 및 시간을 크게 감소시킬 수 있다.

Description

분산 구축 환경의 소프트웨어 이미지 생성{SOFTWARE IMAGE CREATION IN A DISTRIBUTED BUILD ENVIRONMENT}
본 발명의 실시예는 소프트웨어 이미지 생성의 분야에 관한 것이다. 보다 구체적으로, 본 발명의 실시예는, 제1 컴퓨터가 소프트웨어 이미지의 생성을 제2 컴퓨터에 위임하는 분산 구축 환경에 관한 것이다.
통상적인 오퍼레이팅 시스템 구축 환경에서, 코드는 컴퓨터에 의해 이진 형태로 컴파일된다. 이러한 환경은 오퍼레이팅 시스템 실행 이미지를 생성하는데 외부 자원을 이용할 수 없다. 이 구축 환경은 컴퓨터 내부의 이미지 생성은 지원할 수 있지만, 최종적인 오퍼레이팅 시스템 이미지 생성에 대한 필요를 충족시키기 위해서는 유용한 자원의 한정된 공급을 이용할 수 있을 뿐이다. 예를 들어, 기존의일부 환경들은 특정 이미지(즉, 오퍼레이팅 시스템 또는 애플리케이션 프로그램)의 구축을 위해 하나의 컴퓨터를 전용하고 구성한다. 그러나, 이러한 시스템들은, (예를 들어, 하루에 한두번) 전용 컴퓨터만이 단독으로 특정 이미지 구축에 사용된다는 점에서 비효율적이다. 그에 따라, 각각의 전용 컴퓨터는 대부분의 시간을 쉬게 된다. 또한, 생성될 상이한 이미지의 수가 증가함에 따라, 필요한 프로세싱 하드웨어의 양이 커진다. 예를 들어, 상이한 7개 제품의 6개 버전 또는 구성(versions or configurations)에 대해 이미지를 구축해야 한다면, 모든 이미지를 구축하는데 42개의 전용 컴퓨터가 필요하다. 전용 기계에 대한 초기 하드웨어, 유지 보수, 및 지원 비용이 상당하다. 소프트웨어 이미지를 생성하는데 외부 자원을 사용할 수 있는 시스템이 필요하다. 또한, 소수의 구축 컴퓨터를 효율적으로 사용하여 이미지를 구축하는 시스템이 필요하다. 또한, 오퍼레이팅 시스템의 설치 및 구성이 최종 사용자의 컴퓨터에서 통상적으로 수행될 때, 사용자들은 지연 및 불편을 경험한다. 설치 및 구성이 이미지 생성 동안에 발생하는 시스템이 필요하다.
기존의 일부 시스템들은 완료를 위해 클라이언트 컴퓨터에 태스크를 할당한다. 예를 들어, 기존의 일부 시스템들은, 클라이언트 컴퓨터가 애플리케이션 프로그램의 일부를 컴파일하고 중앙 서버가 컴파일된 부분들을 다함께 애플리케이션 프로그램으로 링크하는 분산 컴파일링(distributed compiling)을 구현한다. 다른 예에서, SETI@home project는 지구밖의 생명을 찾아서 데이터를 분석하기 위해 클라이언트 컴퓨터에 태스크를 분산한다. 그러나, 이러한 시스템에서는, 클라이언트컴퓨터가 최종적인 제품을 생성하지 않는다. 또한, 이러한 시스템은 설치된 소프트웨어 이미지의 생성과 관련이 없다.
따라서, 하나 이상의 이들 및 다른 단점들을 처리하기 위해, 소프트웨어 이미지의 분산 구축 환경 시스템이 필요하다.
도 1은 클라이언트/서버 네트워크 시스템의 예시적 실시예이다.
도 2는 본 발명에 따른 클라이언트와 서버간의 통신을 도시하는 예시적인 블록도이다.
도 3은 모든 클라이언트에 대한 모든 서버로부터의 작업을 보유하는 마스터 서버의 사용을 도시하는 예시적 블록도이다.
도 4는 본 발명에 따른 클라이언트 소프트웨어의 동작을 도시하는 예시적 흐름도이다.
도 5는 본 발명에 따른 서버 소프트웨어의 동작을 도시하는 예시적 흐름도이다.
도 6은 클라이언트 컴퓨터에 의해 액세스될 수 있는 예시적인 컴퓨터-판독가능 매체를 도시하는 블록도이다.
도 7은 서버 컴퓨터에 의해 액세스될 수 있는 예시적인 컴퓨터-판독가능 매체를 도시하는 블록도이다.
도 8은 본 발명이 구현될 수 있는 적당한 컴퓨팅 시스템 환경의 일례를 도시하는 블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
50 : 네트워크 시스템
51 : 서버
52 : 클라이언트
53 : 네트워크
202 : 열거 수단
204 : 인터페이스 수단
206 : 설치 수단
302 : 마스터 서버
본 발명의 실시예는 분산 구축 환경에 관한 것이다. 일 실시예에서, 본 발명은 소프트웨어 이미지의 설치 및 구성을 제1 컴퓨터로부터 제2 컴퓨터로 위임하는 것을 포함한다. 일 형태에서는, 복수개 서버 컴퓨터가 소프트웨어 이미지 설치 및 구성에 관한 작업들을 정의한다. 복수개 클라이언트는 이 작업들을 식별하고, 수용하며, 완료하기 위해 서버와 통신한다. 예를 들어, 본 발명의 분산 구축 환경의 클라이언트 컴퓨터 각각은 계속해서 상이한 소프트웨어 이미지를 생성하는데 이용될 수 있다. 이러한 방식으로, 이미지를 생성하는데 필요한 클라이언트 컴퓨터의 수는 감소된다.
본 발명은 이미지화(imaging)를 통한 설치 및 구성의 보편적인 방법을 제공한다. 또한, 구축을 수행하는 클라이언트에 의해 설치 및 이미지화를 개별화할 수 있으면서, 오퍼레이팅 시스템의 설치 시간은 감소된다. OEM(original equipment manufacturers) 및 시스템 구축가(system builders)는 본 발명의 분산 이미지화 프로세스를 이용하여 공장의 클라이언트들을 용이하게 변경하고, 생성하며, 이미지화함으로써 자원 소비 및 시간을 현저히 감소시킬 수 있다.
본 발명의 일 태양에 따르면, 분산 구축용 시스템은 제1 컴퓨터 및 제2 컴퓨터를 포함한다. 제1 컴퓨터는 작업 리스트를 유지한다. 각각의 작업은 설치된 소프트웨어 이미지의 생성에 관한 동작을 가진다. 제2 컴퓨터는 제1 컴퓨터로부터의 작업들 중 하나를 수용하여 그와 관련된 동작을 수행함으로써, 수용된 작업을 실행한다.
본 발명의 다른 태양에 따르면, 일 방법은, 하나 이상의 제1 컴퓨터가 설치된 소프트웨어 이미지의 생성을 제2 컴퓨터에 위임하는 분산 구축 환경에서 동작한다. 제2 컴퓨터에 의해 수행되는 방법은 하나 이상의 제1 컴퓨터로부터의 작업을 수용하는 것을 포함한다. 이 작업은 설치된 소프트웨어 이미지의 생성과 관련된 동작을 갖는다. 또한, 본 방법은 동작을 수행함으로써 수용된 작업을 완료하는 것을 포함한다. 완료된 작업은 설치된 소프트웨어 이미지를 나타낸다.
본 발명의 또 다른 태양에 따르면, 일 방법은, 제1 컴퓨터가 설치된 소프트웨어 이미지의 생성을 하나 이상의 제2 컴퓨터에 위임하는 분산 구축 환경에서 동작한다. 제1 컴퓨터에 의해 수행되는 방법은 작업 리스트를 유지하는 것을 포함한다. 각각의 작업은 설치된 소프트웨어 이미지의 생성과 관련이 있다. 각각의 제2 컴퓨터는 하나 이상의 작업을 선택하여 선택된 작업을 수행한다.
본 발명의 또 다른 태양에 따르면, 데이터 구조는, 제1 컴퓨터가 설치된 소프트웨어 이미지의 생성을 제2 컴퓨터에 위임하는 분산 구축 환경에 존재한다. 데이터 구조는 소프트웨어 이미지의 설치와 관련된 상태를 나타낸다. 데이터 구조는 제2 컴퓨터와 관련된 식별자를 포함한다. 또한, 데이터 구조는 식별자에 의해 식별된 제2 컴퓨터에 의해 수행된 설치의 상태를 지시하는 서술자(descriptor)를 포함한다.
본 발명의 또 다른 태양에 따르면, 데이터 구조는, 제1 컴퓨터가 설치된 소프트웨어 이미지의 생성을 제2 컴퓨터에 위임하는 분산 구축 환경에 존재한다. 데이터 구조는 제1 컴퓨터상에 저장된다. 데이터 구조는 하나 이상의 작업을 나타낸다. 데이터 구조는 각각의 작업과 관련된 작업 식별자를 포함한다. 또한, 데이터 구조는 소프트웨어 이미지를 설치하기 위해 제2 컴퓨터에 의해 수행될 작업 식별자와 관련된 복수개 동작을 정의하는 스크립트를 포함한다.
본 발명의 또 다른 태양에 따르면, 시스템은, 제1 컴퓨터가 설치된 소프트웨어 이미지의 생성을 제2 컴퓨터에 위임하는 분산 구축을 제공한다. 시스템은 제1 컴퓨터에 대한 열거 수단, 제2 컴퓨터에 대한 인터페이스 수단, 및 제2 컴퓨터에 대한 설치 수단을 포함한다. 열거 수단은 작업 리스트를 보유한다. 각각의 작업은 설치된 소프트웨어 이미지의 생성과 관련이 있다. 인터페이스 수단은 열거 수단을 통해 제1 컴퓨터에 의해 보유된 작업들 중 하나를 수용한다. 작업은 소프트웨어 이미지의 설치와 관련된 동작을 갖는다. 설치 수단은, 이 동작을 수행함으로써, 인터페이스 수단을 통해 수용된 작업을 완료한다. 완료된 작업은 설치된 소프트웨어 이미지를 나타낸다.
다른 방법으로, 본 발명은 다양한 다른 방법 및 장치를 구비할 수 있다.
이하에서는 다른 특징들이 어느 정도 분명해지고 어느 정도 지적된다.
대응되는 참조 부호는 전체 도면의 대응되는 부분을 지시한다.
일 실시예에서, 본 발명은, 하나 이상의 제1 컴퓨터가 소프트웨어 이미지의 생성(예를 들어, 설치 및 구성)을 하나 이상의 제2 컴퓨터에 위임하는 분산 구축 환경을 포함한다. 특히, 하나 이상의 서버는 하나 이상의 분산 클라이언트에 의해 완료될 이미지화 작업 항목들(예를 들어, 작업들)의 리스트를 생성한다. 리스트는 서버 구성, 및 구축이 이루어지고 있는 환경에 기초하여 생성된다. 작업 항목 리스트가 생성된 후, 임의의 이용가능한 이미지화 클라이언트는 서버들 중 하나로부터의 작업 항목들 중 하나를 선택하여 완료할 수 있다. 각각의 작업 항목은 클라이언트들 중 하나에 의해서만 선택되고 완료된다. 클라이언트는 오퍼레이팅 시스템을 설치, 구성, 및 이미지화한 다음, 최종 이미지를 서버에 다시 업로드한다. 서버는 (예를 들어, 스크립팅 메커니즘을 통해) 클라이언트에 작업을 완료하라는 명령을 제공한다. 클라이언트가 작업을 완료한 후, 클라이언트는 완료 상태로 서버를 업데이트한다. 그 다음, 클라이언트는 수용하고 완료할 다른 작업을 검색한다.
본 발명의 분산 구축 환경은 클라이언트의 재할당 및 재분산을 간략화하는, 클라이언트상의 최소 구성을 포함한다. 분산 환경은 부가적인 클라이언트 자원을 임의의 서버에 할당한다. 부가적으로, 프로세스는 확장가능하다. 하나의 이미지화 클라이언트가 다수를 생성할 수 있기 때문에, 부가적인 이미지화 클라이언트를 추가하는 것에 의해, 구축 시간은 크게 감소될 수 있다. 다수의 소프트웨어 이미지를 설치하고 구성하는 다수의 이미지화 클라이언트를 가지면 클라이언트 자원 사용 및 효율성이 크게 증가한다. 예를 들어, 종래 시스템으로, 상이한 7개 제품의6가지 버전 또는 구성에 대해 이미지를 구축해야 한다면, 모든 이미지를 구축하기 위해 42개의 전용 컴퓨터가 필요하다. 그러나, 본 발명을 이용하면, 하나의 컴퓨터가 각각의 이미지를 연속적으로 구축할 수 있으므로, 프로세싱 하드웨어의 양과 비용을 감소시킬 수 있다.
먼저 도 1을 참조하면, 블록도가 본 발명의 분산 구축 환경에 사용하기 위한 클라이언트/서버 네트워크 시스템의 예시적 실시예를 도시한다. 도 1은 복수개 서버(51) 및 클라이언트(52)를 구비하는 네트워크 시스템(50)을 나타낸다. 이들 컴퓨터(51, 52)는 공지의 네트워킹 기술을 사용하는 네트워크(53)를 통해 고속 데이터 통신을 위해 접속된다. 인터넷이 네트워크(53)의 일례이다. 서버(51)는 다수의 원격 네트워크 클라이언트(52)로부터의 요청을 수용한다. 서버(51)는, 다른 통신 수단이 이용될 수도 있지만, 네트워크(53)를 통해 클라이언트(52)에 대한 데이터를 구비한 응답을 제공한다. 서버(51) 및 클라이언트(52)를 참조하여 본 발명을 설명하긴 하지만, 발명자들에 의해, 본 발명은 다른 네트워크 시스템에서도 동작할 수도 있다. 즉, 본 발명은 도 1 에 도시한 클라이언트/서버 네트워크 시스템(50)에 한정되지 않는다. 예를 들어, 본 발명은 피어-대-피어 네트워크 시스템에도 적용될 수 있다.
다음으로 도 2를 참조하면, 예시적 블록도가 본 발명에 따른 클라이언트(52)와 서버(51)간의 통신을 도시한다. 도 2에서, 서버 A 및 서버 B와 같은 서버 컴퓨터(51) 각각은, 분산 구축 환경에서, 설치된 소프트웨어 이미지의 생성을 위임하기 위해 클라이언트 X, 클라이언트 Y, 및 클라이언트 Z와 같은 복수개 클라이언트 컴퓨터(52)와 통신한다. 서버 컴퓨터(51) 각각은 작업 리스트를 보유하도록 동작하는 제1 컴퓨터로서 작동한다. 각각의 작업은 설치된 소프트웨어 이미지의 생성과 관련된 하나 이상의 동작과 관련이 있다. 예를 들어, 소프트웨어 제품당 하나의 작업이 존재할 수 있고 서버(51)당 다수의 작업이 존재할 수 있다. 클라이언트 컴퓨터(52) 각각은 제1 컴퓨터로부터의 작업들 중 하나를 수용하고 그에 관련된 동작을 수행함으로써 수용된 작업을 완료하도록 동작하는 제2 컴퓨터로서 작동한다. 특히, 이 동작은 소프트웨어의 설치하는 것, 구성하는 것, 그리고 이미지화하는 것을 포함한다. 제2 컴퓨터(예를 들어, 클라이언트 컴퓨터(52))는 설치되고 구성된 소프트웨어 이미지를 제1 컴퓨터(예를 들어, 서버 컴퓨터)로 전달한다.
일 형태에서, 서버 컴퓨터(51) 및 서버 소프트웨어는 작업 리스트를 보유하는 열거 수단(202)을 구성한다. 클라이언트 컴퓨터(52) 및 클라이언트 소프트웨어는 서버 컴퓨터(51)로부터의 작업들 중 하나를 수용하는 인터페이스 수단(204)을 구성한다. 또한, 클라이언트 컴퓨터(52) 및 클라이언트 소프트웨어는 작업과 관련된 하나 이상의 동작을 수행함으로써 수용된 작업을 완료하는 설치 수단(206)을 구성한다. 완료된 작업은 설치된 소프트웨어 이미지를 나타낸다. 열거 수단, 인터페이스 수단, 및 설치 수단에 대응되는 구조는, 도면에 도시되어 있으며 여기에서 설명하는 요소들을 더 포함한다. 또한, 설치된 소프트웨어 이미지를 구성하는 (나타내지 않은) 수단에 대응되는 구조는 클라이언트 컴퓨터(52), 클라이언트 소프트웨어, 및 도면에 도시되어 있으며 여기에서 설명하는 요소들을 포함한다.
다음으로 도 3을 참조하면, 예시적 블록도가 모든 클라이언트(52)에 대한 모든 서버(51)로부터의 작업을 유지하는 마스터 서버(302)의 사용을 도시한다. 도 3의 예시적 실시예에서, 각각의 클라이언트 컴퓨터(52)는 마스터 서버(302)를 폴링하거나 점거한다. 마스터 서버(302)는 이용가능한 서버 컴퓨터(51)의 리스트를 보유하며 그 리스트를 규칙적으로(예를 들어, 요청시 또는 동시전송으로) 각각의 클라이언트 컴퓨터(52)에 통신한다. 클라이언트 컴퓨터(52)는 위임되어 완료될 작업을 가진 서버(51;예를 들어, 서버 A)를 찾기 위해 이 리스트에 액세스한다. 그 다음, 이 작업은 마스터 서버(302)를 통해 또는 서버(51)와 클라이언트(52)간의 피어-대-피어 접속을 통해 클라이언트(52)에 위임된다. 다른 실시예에서는, 클라이언트 컴퓨터(52)가 복수개 마스터 서버(302) 중 하나 이상과 통신한다.
다음으로 도 4를 참조하면, 예시적 흐름도는 본 발명에 따른 클라이언트 소프트웨어의 동작을 도시한다. 클라이언트 소프트웨어는 서버들(51) 중 하나로부터의 작업을 요청하는 402에서의 컴퓨터 실행가능 명령, 그 작업을 수용하는 404에서의 컴퓨터 실행가능 명령, 및 동작을 수행함으로써 수용된 작업을 완료하는 406에서의 컴퓨터 실행가능 명령을 포함한다. 작업을 수용하는 것은 서버(51)와 관련된 하나 이상의 작업을 식별한 다음 각각의 서버(51)와 통신하는 것을 포함한다. 각각의 서버(51)는 이용가능한 작업 리스트를 서버(51)와 관련된 특정 파일(예를 들어, 도 7의 rebuild.xml)에 저장한다. 클라이언트 컴퓨터(52)는 이용가능한 작업을 식별하기 위해 서버(51)상의 특정 파일에 액세스한다. 일 형태에서, 각각의 서버(51)는 또한, 각각의 작업과 관련되며 서버(51)에 의해 액세스될 수 있는 매체상에 저장된 작업 상태 파일(예를 들어, 도 7의 job_id.xml)을 저장한다. 클라이언트 컴퓨터(52)는 작업에 관한 작업 상태 파일을 검색함으로써 각각의 작업에 대한 가용성 상태(availability status)를 판정한다. 예를 들어, 작업 상태 파일의 부재는 작업의 가용성을 지시한다.
각각의 작업은 그에 대응되는 우선 순위(priority)를 갖는다. 작업 리스트는 각 작업의 우선 순위에 따라 조직된다. 그에 따라, 클라이언트 컴퓨터(52)는 (예를 들어, 가장 먼저 식별된 작업을 선택하는 것에 의해) 최고 우선 순위의 작업을 선택한다. 다른 방법으로 또는 부가적으로, 클라이언트 컴퓨터(52)는 서버들(51) 중 하나에 의해 할당된 작업을 수용할 수도 있다. 작업을 수용한 후, 클라이언트 컴퓨터(52)는, 클라이언트 컴퓨터(52)가 그 작업에 관한 동작을 수행 중인 것을 지시하기 위해 그 작업에 관한 파일(예를 들어, 도 7의 job_id.xml)을 생성한다. 이 파일은 클라이언트 컴퓨터(52) 및/또는 서버 컴퓨터와 관련된 컴퓨터-판독가능 매체에 저장된다. 도 7에서와 같이, 파일을 서버 컴퓨터와 관련된 매체에 저장하기 위해, 클라이언트 컴퓨터(52)는 서버(51)에 인증을 위한 신임장(credentials)을 제공한다.
당업자는, 작업이 클라이언트 컴퓨터들(52) 중 하나에 의해 수용된 것을 지시하는 다른 수단이 존재한다는 것을 알 수 있다. 예를 들어, 각 서버(51)상의 작업 리스트는, 작업이 클라이언트 컴퓨터들(52) 중 하나에 의해 수용되었는지의 여부를 지시하는 필드를 포함할 수 있다. 작업들 중 하나의 수용시에, 클라이언트(52) 또는 서버(51)는 클라이언트(52)가 작업을 수용한 것을 지시하기 위해 필드를 업데이트한다. 발명자들에 의해, 이러한 모든 수단들은 본 발명의 범위내에 있을 수 있다.
클라이언트 컴퓨터(52)는 작업을 완료하기 위한 태스크 리스트 또는 스크립트와 같은 명령을 다운로드할 수도 있다. 다른 실시예에서, 이 명령은 작업을 완료하는데 사용하기 위한 라이브러리 또는 다른 객체 파일과 같은 소프트웨어 컴포넌트를 포함한다. 클라이언트 소프트웨어는 설치된 소프트웨어 이미지를 구성하는 408에서의 명령 및 설치된 소프트웨어 이미지를 작업이 수용된 서버(51)로 다시 전송하는 410에서의 명령을 포함한다. 설치된 소프트웨어 이미지는 오퍼레이팅 시스템 및/또는 배치를 위해 준비된 애플리케이션 프로그램을 나타낸다.
클라이언트 컴퓨터(52)에 의해 액세스될 수 있는 하나 이상의 컴퓨터-판독가능 매체는 도 4에 도시된 방법을 수행하기 위한 컴퓨터-실행가능 명령을 갖는다. 일 실시예에서, 클라이언트 컴퓨터(52)는 실행 중인, 최소 오퍼레이팅 시스템 환경의 맥락에서 명령을 실행한다.
특정 예에서, 클라이언트 소프트웨어는 포스트된 작업들에 대해 계속적으로 서버(들)를 폴링하도록 실행된다. 소정 서버(51)에 의해 포스트된 각각의 작업에 대해, 클라이언트 소프트웨어는 작업의 현재 상태를 판정한다. 일 실시예에서, 클라이언트 소프트웨어는 그 작업과 관련된 작업 상태 파일(도 7 참조)의 부재 또는 존재를 검색한다. 각 작업에 대한 작업 상태 파일이 특정 서버(51)로부터 이용가능한 작업이 존재하지 않는다는 것을 지시하면, 클라이언트 소프트웨어는 포스트된 작업에 대해 계속해서 부가적인 서버(51)를 폴링한다.
소정 서버(51)로부터 하나 이상의 작업이 이용가능하면, 클라이언트 소프트웨어는 작업들 중 하나를 수용하도록 실행된다. 예를 들어, 클라이언트 소프트웨어는 (우선 순위에 의해 순서가 정해져 있다면) 처음으로 이용가능한 작업을 수용하거나 그 작업을 포스트하는 서버(51)에 의해 할당된 작업을 수용할 수 있다. 서버 컴퓨터들(51) 중 하나와 관련된 작업들 중 하나를 수용한 후, 클라이언트 소프트웨어는 신임장을 사용하여 서버 컴퓨터상에 그 작업이 수용된 것을 지시하는 파일(예를 들어, 도 7의 job_id.xml)을 생성한다. 또한, 클라이언트 소프트웨어는 대응되는 상태 파일을 국부적으로 생성할 수도 있다. 클라이언트 소프트웨어는 수용된 작업을 완료하기 위해 그와 관련된 동작들을 수행한다. 예를 들어, 이 동작들은 소프트웨어 이미지(예를 들어, 오퍼레이팅 시스템 또는 애플리케이션 프로그램의 이미지)를 생성, 설치, 개별화, 구성, 및/또는 수정하는 스크립트에 구체화될 수 있다. 작업을 완료한 후, 클라이언트(52)는, 그 후 다른 곳(예를 들어, 작업을 포스트한 서버 컴퓨터)으로 송신될 수 있는 설치되고 구성된 소프트웨어 이미지를 저장한다.
클라이언트(52)에 대한 예시적 스크립트는, 하드 드라이브를 구성하거나 포맷하는 것, 셋업을 위해 소정 파일을 다운로드하는 것, 셋업을 스타트하거나 시작하는 것, 셋업을 완료하는 것, 클라이언트(52)를 활성화하는 것, 최소 오퍼레이팅 시스템 환경으로 부팅하는 것, 오퍼레이팅 시스템을 이미지화하는 것, 및 완료된 이미지를 서버(51)로 업로드하는 것 중의 하나 이상과 같은 동작을 포함한다.
다음으로 도 5를 참조하면, 예시적 흐름도는 본 발명에 따른 서버 소프트웨어의 동작을 도시한다. 서버 소프트웨어는 동적으로 작업 리스트를 생성하고 유지하는 502에서의 컴퓨터-실행가능 명령을 포함한다. 각각의 작업은 설치된 소프트웨어 이미지의 생성(예를 들어, 소프트웨어 이미지의 설치 및 구성)과 관련이 있다. 서버 컴퓨터는 유지된 리스트를 클라이언트 컴퓨터(52)에 의해 액세스될 수 있는 (예를 들어, 저장 매체상의) 네트워크 자원으로서 포스트한다. 각각의 클라이언트 컴퓨터(52)는 하나 이상의 작업을 선택하며 선택된 작업을 수행한다. 리스트는 클라이언트 컴퓨터(52)에 의해 선택될 수 있는 작업, 선택된 작업, 및 수행된(예를 들어, 완료된) 작업을 포함한다.
유지하는 것은 작업을 리스트에 부가하고 사용자 입력에 따라 리스트의 작업을 구성하는 것을 포함한다. 작업 리스트는 서버(51) 및 클라이언트 컴퓨터(52)에 의해 액세스될 수 있는 파일(예를 들어, 도 7의 rebuild.xml)에 저장된다. 유지하는 것은, 504에서, 클라이언트 컴퓨터들(52) 중 하나로부터, 클라이언트 컴퓨터(52)에 의해 선택되고 수행된 작업들 중 하나에 대응되는 생성되고 구성된 소프트웨어 설치를 수신하는 것을 포함한다. 완료된 작업의 수신에 응답하여, 서버 컴퓨터는, 506에서, 그 작업을 리스트에서 제거한다. 소프트웨어 설치는 오퍼레이팅 시스템 및/또는 애플리케이션 프로그램을 포함할 수 있다. 하나 이상의 컴퓨터-판독가능 매체는 도 5에 도시한 방법을 수행하기 위한 컴퓨터-실행가능 명령을 갖는다.
작업이 소정 시주기내에 클라이언트 컴퓨터들(52) 중 하나에 의해 수용되는데 실패하면, 서버(51)는 발신기(originator)에 그 작업을 통지한다. 예를 들어, 시주기는 발신기에 의해 미리 설정되거나 구성될 수 있다. 발신기는 소정 작업에기초하여 시주기를 선택할 수 있다. 일 실시예에서, 서버(51)는, 시주기가 경과한 후, 수용되지 않은 작업을 리스트에서 제거한다. 또한, 서버(51)의 발신기는 수용된 작업을 완료하기 위한 시주기를 특정할 수 있다. 일 실시예에서는, 클라이언트(52)가 시주기내에 수용된 작업을 완료하는데 실패하면(예를 들어, 클라이언트(52)가 실패 및 장애를 경험하면), 서버(51)는, 수용된 작업이 다른 클라이언트(52)에 이용될 수 있도록 하기 위해 수용된 작업을 재요구한다. 서버(51)의 실패를 복구한 후, 서버(51)는 완료되지 않은 작업 리스트를 클라이언트(52)에 리-포스트(re-post)하고, 클라이언트(52)는 그들의 개별적인 작업들을 재요구하며, 이미지화 작업은 서버(51)가 실패하기 전과 같이 계속된다.
특정 예에서, 서버 소프트웨어는 각각의 작업을 우선 순위 지정하여 rebuid.xml과 같은 파일에 저장하도록 실행된다. 우선 순위는 기한 또는 임의의 다른 팩터에 기초할 수 있으며 사용자 입력을 통해 수신되거나 구성 파일에 저장될 수 있다. 또한, 서버(51)는 설치 공유를 증가시켜 rebuild.xml 파일이 클라이언트 컴퓨터(52)에 이용될 수 있도록 하기 위해 서버 소프트웨어를 실행한다. 서버 소프트웨어는 작업이 완료되기를 대기한다. 일 형태에서는, 클라이언트(52)로부터 완료된 이미지를 수신한 후, 서버 소프트웨어는 완료된 소프트웨어 이미지와 네트워크 공유를 생성한다.
다음으로 도 6을 참조하면, 블록도가 클라이언트 컴퓨터(52)와 관련된 예시적 컴퓨터-판독가능 매체(602)를 도시한다. 매체(602)는 분산 구축 환경의 데이터 구조(604)를 저장한다. 데이터 구조(604)는 서버 경로(606) 및 신임장(608)을 포함한다. 서버 경로(606)는 서버(51)로의 경로(예를 들어, //server/install과 같은 네트워크 어드레스)를 정의한다. 신임장(608)은, 서버(51)와 클라이언트(52)간의 통신 동안의 인증을 위해, 클라이언트(52) 및 서버 경로(606)와 관련된 식별자와 관련된다. 클라이언트(52)는, 클라이언트(52)가 소프트웨어 이미지의 설치와 관련된 동작을 수행 중인 것을 서버(51)에 지시하기 위해, 식별자, 신임장(608), 및 서버 경로(606)에 의해 서버(51)와 통신한다.
다음으로 도 7을 참조하면, 블록도는 서버 컴퓨터(51)와 관련된 예시적인 컴퓨터-판독가능 매체(702)를 도시한다. 매체(702)는 분산 구축 환경의 데이터 구조(704)를 저장한다. 데이터 구조(704)는 하나 이상의 작업을 나타낸다. 데이터 구조(704)는 작업 식별자(706) 및 스크립트(708)를 포함한다. 작업 식별자(706)는 소정 작업과 관련된다. 스크립트(708)는 소프트웨어 이미지를 설치하기 위해 클라이언트(52)에 의해 수행될 작업 식별자(706)와 관련된 복수개 동작을 정의한다. 상술한 바와 같이, 각각의 작업은 대응되는 우선 순위를 가지며 각각의 작업은 대응되는 우선 순위에 따른 데이터 구조(704)로 조직된다. 또한, 스크립트(708)는 설치된 소프트웨어 이미지를 구성하기 위한 동작들을 정의한다.
도 7의 컴퓨터-판독가능 매체(702)는 또 하나의 데이터 구조(710)를 저장한다. 데이터 구조(710)는 소프트웨어 이미지의 설치와 관련된 상태를 나타낸다. 클라이언트(52) 및 서버 컴퓨터(51)는 설치 상태를 판정하기 위해 데이터 구조(710)에 액세스한다. 데이터 구조(710)는 클라이언트 식별자(712) 및 설치 상태(714) 또는 다른 서술자를 포함한다. 클라이언트 식별자(712)는 클라이언트 컴퓨터(52)를 식별한다. 설치 상태(714)는 클라이언트 식별자(712)에 의해 식별된 클라이언트 컴퓨터(52)에 의해 수행된 설치의 상태를 지시한다. 예를 들어, 설치 상태(714)는, 설치가 완료되었거나 진행 중인 것을 지시할 수 있다. 설치가 여전히 진행 중이라면, 설치 상태(714)는 완료율 및/또는 완료까지 남은 추정 시간도 지시할 수 있다. 클라이언트 컴퓨터(52)는, 클라이언트 컴퓨터(52)가 작업을 완료함에 따라, 데이터 구조(710)가 그 상태를 갖도록 업데이트한다. 도 7에는 서버 컴퓨터-판독가능 매체(702)에 저장되는 것으로 도시되어 있지만, 작업 상태 데이터 구조(710)는, 발명자들에 의해, 다른 방법으로 또는 부가적으로 도 6의 클라이언트 컴퓨터-판독가능 매체(602)에 저장될 수도 있다.
도 8은 컴퓨터(130) 형태의 범용 컴퓨팅 장치의 일례를 나타낸다. 본 발명의 일 실시예에서, 컴퓨터(130)와 같은 컴퓨터는 여기에 도시하고 설명한 다른 구성에 사용하기에 적당하다. 컴퓨터(130)는 하나 이상의 프로세서 또는 프로세싱 유닛(132) 및 시스템 메모리(134)를 가진다. 도시된 실시예에서, 시스템 버스(136)는 시스템 메모리(134)를 포함하는 다양한 시스템 컴포넌트들을 프로세서(132)에 결합시킨다. 버스(136)는, 메모리 버스 또는 메모리 컨트롤러, 주변장치 버스, 가속 그래픽 포트, 및 다양한 버스 아키텍처 중 하나를 사용하는 프로세서 또는 로컬 버스를 포함하는 몇가지 타입의 버스 구조 중 하나 이상을 나타낸다. 한정이 아닌 일례로써, 이러한 아키텍처로는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 (Mezzanine버스라고도 하는) PCI(Peripheral Component Interconnect) 버스를 들 수 있다.
컴퓨터(130)는 통상적으로 적어도 어떤 형태의 컴퓨터 판독가능 매체를 가진다. 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체 모두를 포함할 수 있는 컴퓨터 판독가능 매체는 컴퓨터(130)에 의해 액세스될 수 있는, 이용가능한 임의의 매체일 수 있다. 한정이 아닌 일례로써, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 구비한다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 예를 들어, 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광학 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 소정의 정보를 저장하는데 사용될 수 있으며 컴퓨터(130)에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파나 다른 전송 메커니즘과 같은 변조 데이터 신호의 다른 데이터를 구체화하며, 임의의 정보 전달 매체를 포함한다. 당업자는 변조 데이터 신호에 익숙한데, 변조 데이터 신호는 하나 이상의 특성 세트를 갖거나 정보를 신호로 부호화하는 방식으로 변경된다. 유선 네트워크 또는 직접적-유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체가 통신 매체의 예들이다. 상기한 것의 임의적인 조합 또한 컴퓨터 판독가능 매체의 범위내에 포함된다.
시스템 메모리(134)는 분리형 및/또는 비분리형, 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 도시한 실시예에서, 시스템 메모리(134)는 ROM(read only memory;138) 및 RAM(random access memory;140)을 포함한다. 예를 들어, 스타트-업(strat-up) 동안에, 컴퓨터(130)내의 요소들 사이에서 정보 전달을 돕는 기본적 루틴을 보유하는 기본적 입/출력 시스템(142;BIOS)은 통상적으로 ROM(138)에 저장된다. RAM(140)은 통상적으로 프로세싱 유닛(132)에 즉각적으로 액세스가능한 그리고/또는 프로세싱 유닛(132)에 의해 현재 조작 중인 데이터 및/또는 프로그램 모듈을 보유한다. 한정이 아닌 일례로써, 도 8은 오퍼레이팅 시스템(144), 애플리케이션 프로그램(146), 다른 프로그램 모듈(148), 및 프로그램 데이터(150)를 도시한다.
또한, 컴퓨터(130)는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 예를 들어, 도 8은 비분리형, 비휘발성 자기 매체로부터 판독하고 그에 기입하는 하드 디스크 드라이브(154)를 도시한다. 또한, 도 8은 분리형, 비휘발성 자기 디스크(158)로부터 판독하고 그에 기입하는 자기 디스크 드라이브(156), 및 CD-ROM 또는 다른 광학 매체와 같은 분리형, 비휘발성 광학 디스크(162)로부터 판독하고 그에 기입하는 광학 디스크 드라이브(160)를 도시한다. 예시적 동작 환경에 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, 디지털 다방면 디스크, 디지털 비디오 테이프, 반도체 RAM, 반도체 ROM 등을 들 수 있지만, 그에 한정되는 것은 아니다. 하드 디스크 드라이브(154), 자기 디스크 드라이브(156) 및광학 디스크 드라이브(160)는 통상적으로 인터페이스(166)와 같은 비휘발성 메모리 인터페이스에 의해 시스템 버스(136)에 접속된다.
상술한 그리고 도 8에 도시한 드라이브나 다른 대용량 저장 장치 및 그에 관련된 컴퓨터 저장 매체는 컴퓨터(130)에 대한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 다른 데이터를 저장한다. 예를 들어, 도 8에서는, 하드 디스크 드라이브(154)가 오퍼레이팅 시스템(170), 애플리케이션 프로그램(172), 다른 프로그램 모듈(174), 및 프로그램 데이터(176)를 저장하는 것으로 도시되어 있다. 이들 컴포넌트는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(146), 다른 프로그램 모듈(148), 및 프로그램 데이터(150)와 동일하거나 상이할 수 있다. 여기에서는 최소한 이들이 상이한 카피본임을 도시하기 위해, 오퍼레이팅 시스템(170), 애플리케이션 프로그램(172), 다른 프로그램 모듈(174), 및 프로그램 데이터(176)에 상이한 번호가 부여되어 있다.
사용자는 키보드(180) 및 포인팅 장치(182;예를 들어, 마우스, 트랙볼, 펜, 또는 터치 패드)와 같은 입력 장치 또는 사용자 인터페이스 선택 장치를 통해 컴퓨터(130)에 명령 및 정보를 입력할 수 있다. (나타내지 않은) 다른 입력 장치로는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 들 수 있다. 이들 및 다른 입력 장치들은 시스템 버스(136)에 결합되어 있는 사용자 입력 인터페이스(184)를 통해 프로세싱 유닛(132)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(188) 또는 다른 타입의 디스플레이 장치 또한 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(136)에 접속된다. 모니터(188) 이외에, 컴퓨터는 흔히, (나타내지 않은) 출력 주변장치 인터페이스를 통해 접속될 수 있는, 프린터 및 스피커와 같은 (나타내지 않은) 다른 주변 출력 장치를 포함한다.
컴퓨터(130)는 원격 컴퓨터(194)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(194)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 공통 네트워크 노드일 수 있으며, 통상적으로 컴퓨터(130)와 관련하여 상술한 요소들 중 많은 것을 또는 그 모두를 포함한다. 도 8에 도시된 논리적 접속은 LAN(local area network;196) 및 WAN(wide area network;198)을 포함하지만, 다른 네트워크를 포함할 수도 있다. LAN(136) 및/또는 WAN(138)은 유선 네트워크, 무선 네트워크, 이들의 조합 등일 수 있다. 이러한 네트워크 환경은 사무실, 기업-광역 컴퓨터 네트워크, 인트라넷 및 글로벌 컴퓨터 네트워크(예를 들어, 인터넷)에서 흔히 볼 수 있다.
LAN 네트워크 환경에서 사용될 경우, 컴퓨터(130)는 네트워크 인터페이스 또는 어댑터(186)를 통해 LAN(196)에 접속된다. WAN 네트워크 환경에서 사용될 경우, 컴퓨터(130)는 통상적으로 인터넷과 같은 WAN(198)을 통해 통신을 확립하는 모뎀(178) 또는 다른 수단을 포함한다. 내장형이거나 외장형일 수 있는 모뎀(178)은 사용자 입력 인터페이스(184), 또는 다른 적절한 메커니즘을 통해 시스템 버스(136)에 접속된다. 네트워크 환경에서, 컴퓨터(130)와 관련하여 도시된 프로그램 모듈 또는 그 일부는 (나타내지 않은) 원격 메모리 저장 장치에 저장될 수 있다. 한정이 아닌 일례로써, 도 8은 메모리 장치에 상주하는 원격 애플리케이션 프로그램(192)을 도시한다. 나타낸 네트워크 접속은 예시적인 것이며 컴퓨터들간에 통신 링크를 확립하는 다른 수단이 사용될 수 있다는 것을 알 수 있다.
일반적으로, 컴퓨터(130)의 데이터 프로세서는 컴퓨터의 다양한 컴퓨터-판독가능 저장 매체에 상이한 시간에 저장된 명령들에 의해 프로그램된다. 프로그램 및 오퍼레이팅 시스템은 통상적으로, 예를 들어, 플로피 디스크 또는 CD-ROM에 분산된다. 그로부터, 프로그램 및 오퍼레이팅 시스템은 컴퓨터의 2차 메모리에 설치 또는 로딩된다. 실행시에, 프로그램 및 오퍼레이팅 시스템은 적어도 부분적으로 컴퓨터의 1차 전자 메모리에 로딩된다. 여기에서 설명한 본 발명은, 마이크로프로세서 또는 다른 데이터 프로세서와 관련하여 후술한 단계들을 구현하기 위한 명령 또는 프로그램을 담고 있는, 이들 및 여러가지 다른 타입의 컴퓨터-판독가능 저장 매체를 포함한다. 또한, 본 발명은, 여기에서 설명한 방법 및 기술에 따라 프로그램된 컴퓨터 자체를 포함한다.
예시적 목적을 위해, 오퍼레이팅 시스템과 같은 프로그램 및 다른 실행가능 프로그램 컴포넌트들을 여기에서는 개별적인 블록으로 도시한다. 그러나, 이러한 프로그램 및 컴포넌트들은 다양한 시간에 컴퓨터의 상이한 저장 컴포넌트에 상주하며, 컴퓨터의 데이터 프로세서(들)에 의해 실행된다는 것을 알 수 있다.
컴퓨터(130)를 포함하는 예시적 컴퓨팅 시스템 환경을 참조하여 설명하긴 하지만, 본 발명은 다수의 다른 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성으로도 동작할 수 있다. 본 컴퓨팅 시스템 환경은 본 발명의 사용 범위 또는 기능성에 어떤 제한을 가하려는 것이 아니다. 또한, 본 컴퓨팅 시스템 환경이, 예시적 동작 환경에 도시한 컴포넌트들 중 어느 하나 또는 그 조합에 관해 어떤 의존성이나 요구사항을 갖는 것으로 해석되어서는 안된다. 본 발명에 사용하기에 적당할 수 있는 널리 공지된 컴퓨팅 시스템 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋톱 박스, 프로그램가능한 상용 전자장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 장치들 중 어떤 것을 포함하는 분산 컴퓨팅 환경 등을 들 수 있지만, 이에 한정되는 것은 아니다.
본 발명은 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행되는, 프로그램 모듈과 같은, 컴퓨터-실행가능 명령의 일반적인 문맥에서 설명될 수 있다. 일반적으로, 프로그램 모듈은 소정 태스크를 수행하거나 소정의 추상적 데이터 타입을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 및 데이터 구조를 포함하지만, 이에 한정되는 것은 아니다. 또한, 본 발명은 통신 네트워크를 통해 링크되어 있는 원격 프로세싱 장치에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실행될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 모두에 위치할 수 있다.
실행시에, 컴퓨터(130)와 같은 클라이언트 컴퓨터(52)는 소프트웨어 이미지를 설치 및 구성하기 위해 도 4에 도시되어 있는 바와 같이 컴퓨터-실행가능 명령을 실행한다. 또한, 컴퓨터(130)와 같은 서버 컴퓨터(51)는 소프트웨어 이미지화 작업의 리스트를 생성 및 유지하기 위해 도 5에 도시되어 있는 바와 같이 컴퓨터-실행가능 명령을 실행한다.
예를 들어, 컴퓨터(130)와 같은 서버 컴퓨터(51)는 후구축(postbuild) 프로세스 동안 이미지화 프로세스를 준비, 실증, 및 완료하기 위해 2개의 스크립트를 실행할 수 있다. 후구축 프로세스는 컴파일 및 링크 이후에, 그러나 구축을 해제하기 전에 발생한다. 일 스크립트(예를 들어, stagerel.cmd)는 작업 완료을 위해 네트워크상의 이미지화 공유를 증가시키며 스테이징 디렉토리(staging directory)를 모니터한다. 이미지화 스타트후에, 서버 컴퓨터(51)는,클라이언트(52)가 완료된 이미지를 업로드할 것을 무기한으로 대기한다. 스테이징 디렉토리의 작업 상태 파일은 이미지화 프로세스의 현재 진도를 저장한다. 작업 상태 파일의 MAJORSTATE 필드(이하 참조)는 2이상의 상태(INPROGRESS 및 FINISHD) 중 하나를 저장한다. 모든 작업이 완료된 후, 공유를 낮추고 후속의 후구축 명령으로 진행하는 것에 의해스크립트는 계속된다. 공유가 증가될 수 없거나 이전의 후구축 오류가 검출되면, 스크립트는 이미지를 대기하지 않는다.
다른 스크립트(예를 들어, img_createskus.cmd)는 후구축 프로세스 동안 2번 실행된다. 본 스크립트가 처음으로 시작될 때(즉, 다른 스크립트 stagerel.cmd 이전에), 본 스크립트는 이미지화 기계(예를 들어, 클라이언트 컴퓨터(52))에 의해 요구되는 서버-특정 정보 및 클라이언트 작업을 포함하는 rebuild.xml이라는 명칭의 파일을 생성한다. 이 스크립트의 두번째 인스턴스는 stagerel.cmd후에 실행되며 얻어진 이미지들을 특정 디렉토리에 배치하는 SKUs/제품들과 함께 패치한다. stagerel.cmd 스크립트는 클라이언트 컴퓨터(52)가 이미지를 완료할 것을 대기하며작업 상태 파일을 저장하는 이미지화 디렉토리를 모니터한다. 모든 작업이 수행되고 완료된 후, stagerel.cmd 스크립트는 계속된다. 로그 파일을 뷰(view)하는 것에 의해, 이미지 생성을 확인할 수 있다.
로컬 클라이언트 작업 상태 파일을 삭제하고 클라이언트(52)를 재부팅하는 것에 의해, 작업을 수행하는 동안 클라이언트(52)가 재요구될 수 있다. 또한, 클라이언트(52)에 의해 수용된 이미지화 작업은 클라이언트(52)를 재요구하고 서버 작업 상태 파일을 삭제하는 것에 의해 재시작될 수 있다.
또한, 서버들 중 하나와 관련된 컴퓨터-판독가능 매체에 저장된 데이터 구조에 대한 다음의 예도 본 발명을 도시한다. rebuild.xml(도 6 참조)에 대응되는 예시적 서버 구성 스키마를 다음에 나타낸다. 편의를 위해 하나의 작업만을 스키마에 나타내고 있지만, 스키마는 복수개의 작업을 정의할 수도 있다.
다음의 채워진 데이터 구조는 서버 구성 스키마의 특정 예를 나타낸다.
job_id.xml(도 7 참조)에 대응되는 예시적 작업 상태 스키마를 다음에 나타낸다.
다음의 채워진 데이터 구조는 작업 상태 스키마의 특정 예를 나타낸다.
클라이언트 컴퓨터들(52) 중 하나와 관련된 컴퓨터-판독가능 매체상에 저장되어 있는 데이터 구조에 대한 다음의 예는 본 발명을 도시한다. buildclient.xml(도 6 참조)에 대응되는 예시적인 클라이언트 구성 스키마를 다음에 나타낸다.
다음의 채워진 데이터 구조는 클라이언트 구성 스키마의 특정 예를 나타낸다.
본 발명의 요소들 또는 그에 대한 실시예(들)을 설명할 때, "일", "그", "본", 및 "상기"의 관사는 하나 이상의 요소들이 존재한다는 것을 의미하는 것이다. "구비하는", "포함하는", 및 "가지는"이라는 용어는 포괄적인 것으로서, 열거된 요소들 이외에 다른 부가적인 요소들이 존재할 수 있음을 의미한다.
상술한 것들을 고려하여, 본 발명의 몇가지 목적들이 실현되며 다른 유익한 결과가 얻어진다는 것을 알 수 있다.
본 발명의 범위를 벗어나지 않으면서, 상기 구성, 제품, 및 방법을 다양하게 변경할 수 있으므로, 상기 설명에 포함되고 첨부된 도면에 나타낸 모든 사실들은 한정이 아닌 예시로서 해석되어야 한다는 것을 알 수 있다.
따라서, 본 발명을 이용하면, 하나 이상의 이들 및 다른 단점들을 처리할 수 있는, 소프트웨어 이미지의 분산 구축 환경 시스템이 얻어진다.

Claims (20)

  1. 분산 구축용 시스템(a system for a distributed build)에 있어서,
    각각이 설치된 소프트웨어 이미지의 생성과 관련된 동작을 갖는 작업 리스트를 보유하는 제1 컴퓨터; 및
    상기 제1 컴퓨터로부터의 작업들 중 하나를 수용하고, 그와 관련된 동작을 수행함으로써 수용된 작업을 실행하는 제2 컴퓨터
    를 포함하는 분산 구축용 시스템.
  2. 제1항에 있어서,
    상기 동작은 소프트웨어 이미지의 설치, 구성, 및 이미지화를 포함하는 분산 구축용 시스템.
  3. 제1항에 있어서,
    상기 제2 컴퓨터가 상기 제1 컴퓨터로부터의 작업들 중 하나를 수용하는 마스터 컴퓨터를 더 포함하는 분산 구축용 시스템.
  4. 분산 구축 환경에서 하나 이상의 제1 컴퓨터가 소프트웨어 이미지의 생성을 제2 컴퓨터에 위임하는 방법에 있어서,
    상기 제2 컴퓨터에 의해 수행되는,
    상기 제1 컴퓨터들 중 하나로부터, 설치된 소프트웨어 이미지의 생성과 관련된 동작을 가진 작업을 수용하는 단계; 및
    그 동작을 수행함으로써 수용된 작업을 완료하는 단계를 포함하고,
    완료된 작업은 설치된 소프트웨어 이미지를 나타내는 방법.
  5. 제4항에 있어서,
    상기 제1 컴퓨터들 중 하나로부터의 작업을 요청하는 단계를 더 포함하는 방법.
  6. 제4항에 있어서,
    상기 설치된 소프트웨어 이미지를 구성하는 단계를 더 포함하는 방법.
  7. 제4항에 있어서,
    상기 제2 컴퓨터는 최소의 오퍼레이팅 시스템을 실행하는 방법.
  8. 제4항에 있어서,
    상기 수용하는 단계는,
    상기 제1 컴퓨터와 관련된 복수의 작업을 식별하기 위해, 계속해서 각각의 상기 제1 컴퓨터와 통신하는 단계; 및
    통신하는 동안에 식별된 복수의 작업들 중 첫 번째 것을 선택하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    각각의 상기 제1 컴퓨터는 작업 리스트를 상기 제1 컴퓨터와 관련된 특정 파일에 저장하고,
    상기 통신하는 단계는, 작업을 식별하기 위해, 각각의 상기 제1 컴퓨터상의 특정 파일에 액세스하는 단계를 포함하는 방법.
  10. 제8항에 있어서,
    각각의 작업과 관련되며 상기 제1 컴퓨터상에 저장되어 있는 작업 상태 파일을 검색함으로써, 각각의 상기 제1 컴퓨터상의 각각의 작업에 대한 상태를 판정하는 단계를 더 포함하는 방법.
  11. 제8항에 있어서,
    복수의 작업들 각각은 그에 대응되는 우선 순위를 갖는 방법.
  12. 제11항에 있어서,
    복수의 작업들 각각은 그에 대응되는 우선 순위에 따라 리스트로 조직(organize)되는 방법.
  13. 제4항에 있어서,
    상기 완료하는 단계는 작업에 관련된 스크립트를 실행하는 단계를 포함하는 방법.
  14. 제4항에 있어서,
    상기 설치된 소프트웨어 이미지를, 작업이 수용된 상기 제1 컴퓨터들 중 하나로 전송하는 단계를 더 포함하는 방법.
  15. 제4항에 있어서,
    상기 설치된 소프트웨어 이미지는 하나 이상의 오퍼레이팅 시스템 및 애플리케이션 프로그램을 나타내는 방법.
  16. 제1 컴퓨터가, 설치된 소프트웨어 이미지의 생성을 제2 컴퓨터에 위임하는 분산 구축 환경에서의 데이터 구조 -상기 데이터 구조는 상기 제1 컴퓨터상에 저장되며, 상기 데이터 구조는 하나 이상의 작업을 나타냄-에 있어서,
    각각의 작업과 관련된 작업 식별자; 및
    설치된 소프트웨어 이미지를 생성하기 위해 상기 제2 컴퓨터에 의해 수행될, 작업 식별자와 관련된 복수개 동작들을 정의하는 스크립트를 포함하는 데이터 구조.
  17. 제16항에 있어서,
    각각의 작업은 그에 대응되는 우선 순위를 갖고,
    각각의 작업은 그에 대응되는 우선 순위에 따라 데이터 구조로 조직되는 데이터 구조.
  18. 제16항에 있어서,
    상기 스크립트는 또한 설치된 소프트웨어 이미지를 구성하기 위한 동작을 정의하는 데이터 구조.
  19. 제1 컴퓨터가, 설치된 소프트웨어 이미지의 생성을 제2 컴퓨터에 위임하는 분산 구축용 시스템에 있어서,
    각각이 설치된 소프트웨어 이미지의 생성에 관련되는 작업들의 리스트를 보유하기 위한, 상기 제1 컴퓨터에 대한 열거 수단;
    설치된 소프트웨어 이미지의 생성에 관련된 동작을 갖는, 열거 수단을 통해 상기 제1 컴퓨터에 의해 보유된 작업들 중 하나를 수용하기 위한, 제2 컴퓨터에 대한 인터페이스 수단; 및
    동작을 수행함으로써, 상기 인터페이스 수단을 통해 수용된 작업을 완료하기 위한, 제2 컴퓨터에 대한 설치 수단을 포함하고,
    완료된 작업은 설치된 소프트웨어 이미지를 나타내는 분산 구축용 시스템.
  20. 제19항에 있어서,
    설치된 소프트웨어 이미지를 구성하기 위한, 제2 컴퓨터에 대한 수단을 더 구비하는 분산 구축용 시스템.
KR1020040042485A 2003-06-24 2004-06-10 분산 구축용 시스템, 및 소프트웨어 이미지의 설치를 위임하는 방법 KR101099221B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/603,294 2003-06-24
US10/603,294 US7281247B2 (en) 2003-06-24 2003-06-24 Software image creation in a distributed build environment

Publications (2)

Publication Number Publication Date
KR20050001321A true KR20050001321A (ko) 2005-01-06
KR101099221B1 KR101099221B1 (ko) 2011-12-27

Family

ID=33418653

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040042485A KR101099221B1 (ko) 2003-06-24 2004-06-10 분산 구축용 시스템, 및 소프트웨어 이미지의 설치를 위임하는 방법

Country Status (5)

Country Link
US (1) US7281247B2 (ko)
EP (1) EP1492001A3 (ko)
JP (1) JP2005018782A (ko)
KR (1) KR101099221B1 (ko)
CN (1) CN100437492C (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100384146C (zh) * 2005-06-08 2008-04-23 杭州华三通信技术有限公司 管理分布式网络设备的方法
US7596615B2 (en) * 2006-02-22 2009-09-29 Microsoft Corporation Multi-server automated redundant service configuration
US20070234345A1 (en) * 2006-02-22 2007-10-04 Microsoft Corporation Integrated multi-server installation
US7853945B2 (en) * 2006-02-22 2010-12-14 Michael Kramer Integrated computer server imaging
US8806476B2 (en) * 2006-03-14 2014-08-12 International Business Machines Corporation Implementing a software installation process
US7865877B2 (en) * 2006-12-13 2011-01-04 International Business Machines Corporation Computer method and apparatus for referencing files in a software configuration management system
US8069341B2 (en) * 2007-06-29 2011-11-29 Microsoft Corporation Unified provisioning of physical and virtual images
US8539098B2 (en) 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US8560634B2 (en) 2007-10-17 2013-10-15 Dispersive Networks, Inc. Apparatus, systems and methods utilizing dispersive networking
US8856752B2 (en) 2007-10-26 2014-10-07 Microsoft Corporation Monitoring asset state to enable partial build
US20090249322A1 (en) * 2008-03-27 2009-10-01 Sony Corporation Of Japan Techniques for updating software
US20090327396A1 (en) * 2008-06-30 2009-12-31 International Business Machines Corporation Tiny File Transfer Protocol (TFTP) Relay Agent
US8495624B2 (en) * 2008-10-23 2013-07-23 International Business Machines Corporation Provisioning a suitable operating system environment
US8578375B2 (en) * 2009-12-23 2013-11-05 International Business Machines Corporation Virtual machine administration for data center resource managers
US8667464B2 (en) * 2010-03-19 2014-03-04 Honeywell Technologies Sarl Company advanced programming interface
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US8544007B2 (en) * 2010-09-13 2013-09-24 Microsoft Corporation Customization, deployment and management of virtual and physical machine images in an enterprise system
US8270963B1 (en) 2010-10-01 2012-09-18 Viasat, Inc. Cross domain notification
US8495731B1 (en) * 2010-10-01 2013-07-23 Viasat, Inc. Multiple domain smartphone
US9113499B2 (en) 2010-10-01 2015-08-18 Viasat, Inc. Multiple domain smartphone
US8204480B1 (en) * 2010-10-01 2012-06-19 Viasat, Inc. Method and apparatus for secured access
US8458800B1 (en) 2010-10-01 2013-06-04 Viasat, Inc. Secure smartphone
US9086892B2 (en) 2010-11-23 2015-07-21 International Business Machines Corporation Direct migration of software images with streaming technique
US9230118B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc
CA2817109C (en) 2010-12-13 2020-11-03 International Business Machines Corporation Upgrade of software images based on streaming technique
JP5767565B2 (ja) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US9235458B2 (en) 2011-01-06 2016-01-12 International Business Machines Corporation Methods and systems for delegating work objects across a mixed computer environment
US8955110B1 (en) 2011-01-14 2015-02-10 Robert W. Twitchell, Jr. IP jamming systems utilizing virtual dispersive networking
US9052968B2 (en) * 2011-01-17 2015-06-09 International Business Machines Corporation Methods and systems for linking objects across a mixed computer environment
US8941659B1 (en) 2011-01-28 2015-01-27 Rescon Ltd Medical symptoms tracking apparatus, methods and systems
US8635607B2 (en) * 2011-08-30 2014-01-21 Microsoft Corporation Cloud-based build service
US9110747B2 (en) * 2011-11-22 2015-08-18 1Elimited Obtaining program data over a network
US8930685B2 (en) 2011-12-13 2015-01-06 International Business Machines Corporation Deployment of a software image on multiple targets with streaming technique
US9285859B2 (en) * 2011-12-29 2016-03-15 Khalifa University of Science, Technology, and Research British Telecommunications PLC Method and system for determining allocation of clients to servers
US8954953B2 (en) * 2013-03-06 2015-02-10 Dell Products L.P. Systems and methods for deploying a customized operating system
US9588750B2 (en) * 2013-03-22 2017-03-07 International Business Machines Corporation Pseudo program use during program installation
US9792203B2 (en) * 2013-11-14 2017-10-17 Sap Se Isolated testing of distributed development projects
US10114676B2 (en) * 2015-05-05 2018-10-30 Microsoft Technology Licensing, Llc Building multimodal collaborative dialogs with task frames
CN111373369A (zh) 2017-11-16 2020-07-03 惠普发展公司,有限责任合伙企业 使用云系统的软件构建
JP6703281B2 (ja) * 2018-04-11 2020-06-03 キヤノンマーケティングジャパン株式会社 情報処理システム、管理サーバ、制御方法、プログラム
CN111459509A (zh) * 2020-03-27 2020-07-28 北京金山云网络技术有限公司 容器镜像的构建方法、装置和服务器

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142680A (en) 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
JPH05233570A (ja) * 1991-12-26 1993-09-10 Internatl Business Mach Corp <Ibm> 異オペレーティング・システム間分散データ処理システム
EP0592079A2 (en) 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US5469573A (en) 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
US5713024A (en) 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US6110228A (en) 1994-12-28 2000-08-29 International Business Machines Corporation Method and apparatus for software maintenance at remote nodes
US5794052A (en) 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
GB2309104B (en) 1996-01-11 2000-06-07 Ibm Preloading software onto a computer system
EP0859314A3 (en) 1996-12-18 2001-12-19 Sun Microsystems, Inc. Distributed make methods, apparatus, and computer program products
US6247128B1 (en) 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6138179A (en) 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
JPH11143724A (ja) 1997-11-13 1999-05-28 Sharp Corp 情報処理装置および情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11194927A (ja) * 1997-12-17 1999-07-21 Sun Microsyst Inc 分散makeの方法、装置、およびコンピュータプログラム製品
US6230318B1 (en) 1998-02-24 2001-05-08 Microsoft Corporation Application programs constructed entirely from autonomous component objects
US6112225A (en) 1998-03-30 2000-08-29 International Business Machines Corporation Task distribution processing system and the method for subscribing computers to perform computing tasks during idle time
US6080207A (en) 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6377958B1 (en) 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
US6262726B1 (en) 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
TW408286B (en) 1998-12-18 2000-10-11 Inventec Corp Software pre-installation method
US6188779B1 (en) 1998-12-30 2001-02-13 L&H Applications Usa, Inc. Dual page mode detection
US6286138B1 (en) 1998-12-31 2001-09-04 International Business Machines Corporation Technique for creating remotely updatable programs for use in a client/server environment
US6711624B1 (en) 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
US20020174329A1 (en) 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US6385766B1 (en) 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6282711B1 (en) 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6598223B1 (en) 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6681323B1 (en) 1999-11-29 2004-01-20 Toshiba America Information Systems, Inc. Method and system for automatically installing an initial software configuration including an operating system module from a library containing at least two operating system modules based on retrieved computer identification data
EP1187472B1 (en) 2000-02-07 2019-04-03 Sony Corporation Image processor and image processing method and recorded medium
US6772192B1 (en) * 2000-02-29 2004-08-03 Hewlett-Packard Development Company, L.P. Software download and distribution via image building and multicast
US6675221B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Method and apparatus for customizing and fowarding parameters in a network processor
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
US6824019B2 (en) * 2001-05-09 2004-11-30 Innovatit Seafood Systems, Llc Bottom discharge container
US20020188941A1 (en) 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
US6907610B2 (en) 2001-06-15 2005-06-14 Microsoft Corporation System and method for building a target operating system from a source operating system
US20030018759A1 (en) 2001-07-17 2003-01-23 International Business Machines Corporation Method and system for performing computer system cloning
US7068309B2 (en) 2001-10-09 2006-06-27 Microsoft Corp. Image exchange with image annotation
US7260738B2 (en) 2002-06-17 2007-08-21 Microsoft Corporation System and method for splitting an image across multiple computer readable media

Also Published As

Publication number Publication date
KR101099221B1 (ko) 2011-12-27
JP2005018782A (ja) 2005-01-20
US20040268345A1 (en) 2004-12-30
EP1492001A2 (en) 2004-12-29
CN100437492C (zh) 2008-11-26
CN1573701A (zh) 2005-02-02
EP1492001A3 (en) 2007-01-24
US7281247B2 (en) 2007-10-09

Similar Documents

Publication Publication Date Title
KR101099221B1 (ko) 분산 구축용 시스템, 및 소프트웨어 이미지의 설치를 위임하는 방법
US7370322B1 (en) Method and apparatus for performing online application upgrades in a java platform
US9712604B2 (en) Customized configuration of cloud-based applications prior to deployment
Butler et al. User's guide to the p4 parallel programming system
JP4587183B2 (ja) 異種計算環境におけるリソース割り当ての容易化
US8281311B2 (en) Executing a distributed software application on a plurality of compute nodes according to a compilation history
US7165108B2 (en) Method and apparatus for providing application specific strategies to a JAVA platform including load balancing policies
US7085835B2 (en) Apparatus, system and method for subscription computing using spare resources of subscriber computing platforms
US20030217131A1 (en) Processing distribution using instant copy
CN111212116A (zh) 一种基于容器云的高性能计算集群创建方法和系统
WO2019033531A1 (en) METHOD AND APPARATUS FOR HARDWARE ACCELERATION IN HETEROGENEOUS DISTRIBUTED COMPUTING
US7043726B2 (en) Binding of processes in network systems
Nguyen et al. On the role of message broker middleware for many-task computing on a big-data platform
US7177934B2 (en) Method and apparatus for providing application specific strategies to a JAVA platform including start and stop policies
CN113434283B (zh) 服务调度方法及装置、服务器、计算机可读存储介质
US8442939B2 (en) File sharing method, computer system, and job scheduler
US20050055419A1 (en) Method and apparatus for platform independent network virtual memory (PINVM) hierarchy
US20030131042A1 (en) Apparatus and method of sharing a device between partitions of a logically partitioned computer system
JP2011504268A (ja) ソフトウェア・コンポーネントを作成するための方法
CN113885875A (zh) 一种分布式编译方法、系统、主服务器及存储介质
US8082553B2 (en) Client management of java management extensions (JMX) Mbean state
CN111431951A (zh) 一种数据处理方法、节点设备、系统及存储介质
Karoni et al. Cactus-G: Enabling High-Performance Simulation in Heterogeneous Distributed Computing Environments
CN116414803A (zh) 数据迁移方法、设备及可读存储介质
Ashok et al. Evaluation of United Devices (UD) Grid MP SDK

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
LAPS Lapse due to unpaid annual fee