KR100382851B1 - 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치 - Google Patents

분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR100382851B1
KR100382851B1 KR10-2000-0013010A KR20000013010A KR100382851B1 KR 100382851 B1 KR100382851 B1 KR 100382851B1 KR 20000013010 A KR20000013010 A KR 20000013010A KR 100382851 B1 KR100382851 B1 KR 100382851B1
Authority
KR
South Korea
Prior art keywords
image
computer
data processing
user
update
Prior art date
Application number
KR10-2000-0013010A
Other languages
English (en)
Other versions
KR20010006803A (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
Priority to US28269399A priority Critical
Priority to US09/282,693 priority
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20010006803A publication Critical patent/KR20010006803A/ko
Application granted granted Critical
Publication of KR100382851B1 publication Critical patent/KR100382851B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Abstract

본 발명은 컴퓨터에 대한 시스템 이미지를 유지하기 위한 방법 및 장치에 관한 것이다. 시스템 이미지의 초기 상태가 확인된다. 이벤트(event)에 응답해서, 시스템 이미지의 현재 상태가 초기 상태로부터 변경되었는지에 대한 판단이 행해진다. 시스템 이미지의 초기 상태와 현재 상태간의 변경 내용에 응답해서, 시스템 이미지의 갱신 내용이 저장을 위해 전송된다.

Description

분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를 관리하기 위한 방법 및 장치{A METHOD AND APPARATUS FOR MANAGING CLIENT COMPUTERS IN A DISTRIBUTED DATA PROCESSING SYSTEM}

본 발명은 전반적으로 개선된 분산형 데이터 처리 시스템에 관한 것으로서, 상세하게는 분산형 데이터 처리 시스템에서 컴퓨터를 관리하기 위한 방법 및 장치에 관한 것이다. 보다 상세하게는, 본 발명은 분산형 데이터 처리 시스템 내의 컴퓨터 상에 오퍼레이팅 환경(operating environment)을 로딩(loading)하고 관리하기 위한 방법 및 장치를 제공한다.

컴퓨터는 물리적 머신(machine), 즉 하드웨어와 이 물리적 머신을 동작시키는 명령어(instruction), 즉 소프트웨어를 포함하고 있다. 소프트웨어로는 애플리케이션(application) 프로그램과 오퍼레이팅 시스템 프로그램이 있다. 프로그램이 사용자를 위해 소정의 문제를 해결하는 것과 같은 태스크(task)를 수행하면, 이 프로그램은 애플리케이션 소프트웨어로서 지칭된다. 프로그램이 컴퓨터의 하드웨어와 애플리케이션 프로그램의 실행을 제어하면, 이 프로그램은 오퍼레이팅 시스템 소프트웨어로 지칭된다. 시스템 소프트웨어는 실제 컴퓨터 혹은 중앙 처리 유닛 (central processing unit; CPU) 및 프린터와 터미널과 같은 입출력 장치(I/O)를 제어하는 장치 드라이버(device driver)를 제어하는 오퍼레이팅 시스템을 더 포함한다.

범용 컴퓨터는 상당히 복잡하다. 통상적으로, CPU를 사용하기 위해 대기하는 애플리케이션 프로그램의 큐(queue)가 존재한다. 오퍼레이팅 시스템은 어떤 프로그램이 다음에 실행될 것인지, 사용할 수 있는 CPU 시간이 얼마나 되는지, 및 애플리케이션 프로그램이 사용할 수 있는 다른 컴퓨터 자원이 무엇인지를 판단해야할 필요가 있을 것이다. 또한, 각각의 애플리케이션 프로그램은 특정한 입력 혹은 출력 장치를 필요로 할 것이며, 이 애플리케이션 프로그램은 장치 드라이버를 제어하는 오퍼레이팅 시스템에 자신의 데이터를 전송해야만 한다.

컴퓨터가 부팅(booting)되는 경우, 판독 전용 메모리(ROM:read only memory) 내에 저장된 부팅 프로그램이 오퍼레이팅 시스템을 컴퓨터의 메모리 상으로 로딩하는 동작을 초기화시키는 데 사용된다. 부팅이라는 용어는 컴퓨터를 시작 또는 리셋(reset)하는 프로세스를 지칭한다. 처음에 턴 온(turn on)[콜드 부팅(cold boot)]되거나 리셋(reset)[웜 부팅(warm boot)]되는 경우, 컴퓨터는 컴퓨터의 더 복잡한 오퍼레이팅 시스템을 로딩하고 시작하여 컴퓨터를 사용할 수 있도록 준비시키는 소프트웨어를 실행한다. 따라서, 컴퓨터는 자력으로 일을 처리한다고 말할 수 있다. 부팅 프로그램은 컴퓨터에게 오퍼레이팅 시스템을 컴퓨터 상에 로딩하는 데 사용되는 부팅 블럭(block) 데이터 프로그램으로도 지칭되는 대용량 부팅 프로그램을 찾을 장소를 명령한다. 부팅 블럭이라는 용어는 컴퓨터가 시동될 수 있도록 하는 오퍼레이팅 시스템 로더(loader) 및 다른 기본 정보를 포함하는 디스크의 일부분을 지칭한다. 독립형 컴퓨터(stand-alone computer)에서는 부팅 블럭 프로그램 및 오퍼레이팅 시스템이 로컬(local) 하드 드라이브에 있다.

다수의 컴퓨터를 포함하는 네트워크(network)는 컴퓨터 네트워크인 하나 이상의 통신 링크(link) 집합을 통해 상호 통신하며, 노드(node) 혹은 네트워크 컴퓨터로도 지칭되는 컴퓨터들을 구비함으로써 형성될 수 있다. 오늘날, 많은 컴퓨터 워크스테이션(workstation)들은 근거리 통신망(local area network; LAN)을 통해 다른 워크스테이션, 파일 서버(file server), 혹은 다른 자원과 접속되어 있다. 네트워크 상에 있는 각각의 컴퓨터는 네트워크로의 통신 링크를 설정할 수 있는 어댑터 카드(adapter card) 혹은 다른 유사한 수단을 통해 네트워크에 접속된다.

네트워크 컴퓨터(NC)를 관리하는 데 있어서, 상이한 NC 사이에 프로그램, 오퍼레이팅 시스템 및 구성의 동일성을 유지하는 것이 바람직하다. 동일성을 유지하는 데 있어서, 원격 부팅 동작을 사용하는 기법이 네트워크 환경 내의 NC를 지원하는 데 채용될 수 있다. 이러한 경우에 있어서, 각각의 네트워크 컴퓨터(NC)는 네트워크에 접속된 서버 혹은 디스크 어레이(disk array) 시스템과 같이 네트워크 상의 어디에나 위치한 원격 부팅 디스크나 다른 장치로부터 부팅된다. 이와 같은 부팅 시스템은 시스템 관리자가 각각의 NC에 있는 애플리케이션 프로그램을 물리적으로 재구성하거나 변경하지 않아도 되기 때문에 각각의 NC를 변경하는 데 필요한 시간을 또한 최소화시킬 수 있다. 또한, 원격 부팅 프로세스는 디스크가 전혀 없는 NC에 대한 지원을 제공한다. 더욱이, 원격 부팅 파일이 안전한 장소에 보관될 수 있으며 복사본(copy)이 네트워크 내의 NC 간에 분산될 필요가 없기 때문에, 원격 부팅 프로세스가 소프트웨어 및 네트워크 보안을 강화시킨다.

이와 같은 네트워크 환경에 있어서, 사용자는 하나의 NC에서 다른 NC로 이동할 수 있는데, 이것은 로밍(roaming)으로도 지칭된다. 사용자가 새로운 NC로 로밍하는 경우에, 사용자의 환경은 부트 이미지(boot image)가 그 NC를 부팅시키는데 사용되는 재시작 모드(mode)로 설정된다. 또한, 사용자는 그 새로운 NC에서 애플리케이션 프로그램을 재시작하고 문서와 데이터베이스를 다시 열어야 한다. 새로운 NC에서 태스크를 선택하거나 계속 수행하는데 있어서 불필요한 어려움을 일으키는 애플리케이션 프로그램 및 다른 자원을 재시작하는 것은 사용자의 경험으로부터 줄어들 수 있다. 사용자 환경을 재구성하는 것은 시간 낭비이며 귀찮은 일이다. 또한, NC와 애플리케이션 프로그램에 대한 부트 이미지가 서버 시스템으로부터 검색되어 클라이언트 NC 상에서 재시작되어야 하기 때문에, 서버 상의 부하(load)가 증가한다. 이들 동작을 위한 시간이 상당히 길어질 수 있다. 더욱이, 애플리케이션 프로그램의 시작 및 종료가 서버에서 서버 자원 시스템, 특히 파일 시스템에 상당한 부하를 준다.

따라서, 사용자가 하나의 컴퓨터에서 다른 컴퓨터로 이동하거나 로밍할 수 있게 하는 개선된 방법 및 장치를 가지는 것은 이점이 있을 것이다.

본 발명은 컴퓨터에 대한 시스템 이미지를 유지하기 위한 방법 및 장치를 제공한다. 시스템 이미지의 초기 상태가 확인된다. 이벤트(event)에 응답하여, 시스템 이미지의 현재 상태가 초기 상태로부터 변경되었는지의 여부에 대한 판단이 행해진다. 시스템 이미지의 초기 상태와 현재 상태 사이의 변경 내용에 응답하여, 시스템 이미지의 갱신 내용이 저장을 위해 전송된다.

도 1은 본 발명이 구현될 수 있는 분산형 데이터 처리 시스템을 도시하는 도면.

도 2는 본 발명의 바람직한 실시예에 따라 서버로서 구현될 수 있는 데이터 처리 시스템을 도시하는 블럭도.

도 3은 본 발명이 구현될 수 있는 데이터 처리 시스템을 도시하는 블럭도.

도 4는 본 발명의 바람직한 실시예에 따라 예시한 서버 및 클라이언트 상의 이미지를 도시하는 도면.

도 5는 본 발명의 바람직한 실시예에 따라 예시한 이미지를 도시하는 도면.

도 6은 본 발명의 바람직한 실시예에 따라 예시한 사용자 계정을 설정하기 위한 프로세스의 플로차트.

도 7은 본 발명의 바람직한 실시예에 따라 예시한 스냅샷(snapshot) 이미지를 저장하기 위한 프로세스의 플로차트.

도 8은 본 발명의 바람직한 실시예에 따라 예시한 이미지를 변경하기 위한 프로세스의 플로차트.

도 9는 본 발명의 바람직한 실시예에 따라 예시한 스냅샷 이미지를 클라이언트로 전송하기 위한 프로세스의 플로차트.

도 10은 본 발명의 바람직한 실시예에 따라 예시한 이미지를 프리로딩(pre-loading)하기 위한 프로세스의 플로챠트.

도 11은 본 발명의 바람직한 실시예에 따라 예시한 이미지를 클라이언트 상에 복원하기 위한 프로세스의 플로챠트.

도 12는 본 발명의 바람직한 실시예에 따라 예시한 업데이트 내용을 서버로 전송하는데 사용되는 프로세스의 플로챠트.

<도면의 주요부분에 대한 부호의 설명>

102 : 네트워크

104 : 서버

106 : 저장 유닛

108, 110, 112 : 네트워크 컴퓨터

202, 204 : 프로세서

206 : 시스템 버스

208 : 메모리 제어기/캐쉬

209 : 로컬 메모리

210 : I/O 브릿지

212 : I/O 버스

214 , 222, 224 : PCI 브릿지

232 : 하드디스크

216, 226, 228 : PCI 버스

218 : 모뎀

220 : 네트워크 어뎁터

본 발명의 특징이라고 생각되는 신규한 특징들이 첨부한 청구항에 기술되어 있다. 그러나, 본 발명 자체뿐만 아니라 본 발명의 바람직한 사용 모드, 또다른 목적 및 이점들은 첨부한 도면과 함께 예시적인 실시예의 후속하는 상세한 설명을 참조하면 더 잘 이해할 수 있을 것이다.

도 1을 참조하면, 도 1에는 본 발명이 구현될 수 있는 분산형 데이터 처리 시스템이 도시되어 있다. 분산형 데이터 처리 시스템(100)은 본 발명이 구현될 수 있는 컴퓨터의 네트워크이다. 분산형 데이터 처리 시스템(100)은 네트워크(102)를 포함하며, 이 네트워크(102)는 분산형 데이터 처리 시스템(100) 내에서 서로 접속된 여러 가지 장치 및 컴퓨터 사이의 통신 링크(communication link)를 제공하는데 사용되는 매체이다. 네트워크(102)는 와이어(wire)나 광섬유와 같은 영구적인 접속 혹은 전화 접속을 통해 이루어지는 일시적인 접속을 포함할 수 있다.

도시된 예에 있어서, 서버(104)는 저장 유닛(106)과 함께 네트워크(102)에 접속되어 있다. 또한, 네트워크 컴퓨터(108, 110, 112)가 네트워크(102)에 접속되어 있다. 이들 NC(108, 110, 112)는 예컨대 개인용 컴퓨터 혹은 네트워크 컴퓨터일 수 있다. 본 발명의 목적에 있어서, 네트워크 컴퓨터는 네트워크에 접속된 임의의 컴퓨터이며, 이 컴퓨터는 네트워크에 접속된 다른 컴퓨터에서 프로그램이나 다른 애플리케이션 프로그램을 검색한다. 도시된 예에 있어서, 서버(104)는 부팅 파일, 오퍼레이팅 시스템 이미지, 애플리케이션 프로그램과 같은 데이터를 NC(108, 110, 112)에 제공한다. NC(108, 110, 112)는 서버(104)에 대한 클라이언트이다. 분산형 데이터 시스템(100)은 도시되지 않은 부가적인 서버, 클라이언트, 다른 장치를 포함할 수 있다. 도시한 예에 있어서, 분산형 처리 시스템(100)은 네트워크 (102)를 구비한 인터넷(Internet)이며, 이 인터넷은 네트워크의 세계적인 집합체 및 상호간에 통신하기 위해 TCP/IP 프로토콜(protocol)을 사용하는 게이트웨이 (gateway)를 의미한다. 인터넷의 중심은 주요 노드 혹은 호스트 컴퓨터간의 고속 데이터 통신 라인의 백본(backbone)이며, 이 백본은 데이터 및 메시지를 라우팅 (routing) 하는 수천 개의 상업용 컴퓨터, 정부 컴퓨터, 교육용 컴퓨터 및 다른 컴퓨터 시스템으로 구성된다. 물론, 분산형 데이터 처리 시스템(100)은 예컨대 인트라넷(intranet), 근거리 통신망(LAN), 혹은 광대역 통신망(wide area network; WAN)과 같은 다수의 상이한 유형의 네트워크로서도 또한 구현될 수 있다. 도 1은 본 발명에 대한 구조적 제한으로서가 아니라 하나의 예로서 이해되어야 한다.

도 2를 참조하면, 도 2에는 본 발명의 바람직한 실시예에 따라 도 1의 서버(104)와 같은 서버로서 구현될 수 있는 데이터 처리 시스템의 블럭도가 도시되어 있다. 데이터 처리 시스템(200)은 시스템 버스(206)에 접속된 다수의 프로세서 (202, 204)를 포함하는 대칭형 다중 프로세서(symmetric multiprocessor; SMP)일 수 있다. 이와 달리, 단일 프로세서 시스템이 채용될 수도 있다. 또한, 로컬 메모리(local memory)(209)에 대한 인터페이스(interface)를 제공하는 메모리 제어기 /캐쉬(cache)(208)가 시스템 버스(206)에 접속된다. I/O 버스 브릿지(bridge) (210)가 시스템 버스(206)에 접속되어 I/O 버스(212)에 대한 인터페이스를 제공한다. 메모리 제어기/캐쉬(208)와 I/O 버스 브릿지(210)는 도시한 바와 같이 집적될 수도 있다.

I/O 버스(212)에 접속된 PCI(peripheral component interconnect) 버스 브릿지(214)는 PCI 로컬 버스(216)에 대한 인터페이스를 제공한다. 다수의 모뎀이 PCI 버스(216)에 접속될 수 있다. 통상적인 PCI 버스 구현은 4 개의 PCI 확장 슬롯 (slot) 혹은 애드인 커넥터(add-in connector)를 지원할 것이다. 도 1에서 네트워크 컴퓨터(108, 110, 112)에 대한 통신 링크는 애드인 보드(board)를 경유하여 PCI 로컬 버스(216)에 접속된 모뎀(218) 및 네트워크 어댑터(adapter)(220)를 통해 마련될 것이다.

부가적인 PCI 버스 브릿지(222, 224)는 부가적인 모뎀 혹은 네트워크 어댑터가 지원될 수 있는 부가적인 PCI 버스(226, 228)에 대한 인터페이스를 제공한다. 이러한 방식에서는 서버(200)가 다중 네트워크 컴퓨터에 접속할 수 있다. 또한, 메모리 맵핑형(memory-mapped) 그래픽 어댑터(230) 및 하드디스크(232)가 도시된 바와 같이 직접 혹은 간접적으로 I/O 버스(212)에 접속될 수 있다.

당업자라면 도 2에 도시된 하드웨어가 변경될 수 있음을 이해할 수 있을 것이다. 예를 들어, 광 디스크 등과 같은 다른 주변 장치가 추가적으로 또는 도시된 하드웨어 대신에 또한 사용될 수도 있다. 도시한 예는 본 발명에 대한 구조적 제한을 내포하는 것으로 이해되어서는 안된다.

도 2에 도시된 데이터 처리 시스템은 예컨대, AIX(Advanced Interactive Executive) 오퍼레이팅 시스템을 운용하는 뉴욕주 아몽크시에 소재한 인터내셔날 비지니스 머신즈 코포레이션(International Business Machines Corporation)의 제품인 IBM RISC/System 6000 시스템일 수도 있다.

이제 도 3을 참조하면, 도 3에는 본 발명이 구현될 수 있는 데이터 처리 시스템의 블럭도가 도시되어 있다. 데이터 처리 시스템(300)은 클라이언트 컴퓨터의 일 예이다. 데이터 처리 시스템(300)은 PCI 로컬 버스 구조를 채용한다. 도시한 예가 PCI 버스를 채용하였지만, 마이크로 채널(Micro Channel) 및 ISA와 같은 다른 버스 구조가 사용될 수도 있다. 프로세서(302) 및 주 메모리(304)는 PCI 브릿지 (308)를 통해 PCI 로컬 버스(306)에 접속된다. PCI 브릿지(308)는 집적 메모리 제어기 및 프로세서(302)용 캐쉬 메모리를 또한 포함할 수도 있다. PCI 로컬 버스(306)에 대한 부가적인 접속은 직접 구성요소 상호접속(direct component interconnection) 혹은 애드인 보드를 통해 이루어질 수 있다. 도시된 예에서, LAN 어댑터(310), SCSI 호스트 버스 어댑터(312), 확장 버스 인터페이스(314)가 직접 구성요소 상호접속에 의해 PCI 로컬 버스(306)에 접속된다. 이와 반대로, 오디오 어댑터(316), 그래픽 어댑터(318), 오디오/비디오 어댑터(319)는 확장 슬롯에 삽입된 애드인 보드에 의해 PCI 로컬 버스(306)에 접속된다. 확장 버스 인터페이스(314)는 키보드 및 마우스 어댑터(320), 모뎀(322), 부가적인 메모리(324)에 대한 접속을 제공한다. SCSI 호스트 버스 어댑터(312)는 하드디스크 드라이브(326), 테이프 드라이브(328), CD-ROM 드라이브(330)에 대한 접속을 제공한다. 통상적인 PCI 로컬 버스 구현은 3 개나 4 개의 PCI 확장 슬롯 혹은 애드인 접속기를 지원할 것이다.

오퍼레이팅 시스템은 프로세서(302) 상에서 동작하며, 도 3의 데이터 처리 시스템(300) 내에 있는 여러 가지 구성요소를 조정하고 제어하는데 사용된다. 오퍼레이팅 시스템은 OS/2와 같은 상용의 오퍼레이팅 시스템일 수도 있으며, 이 OS/2는 주식회사 IBM으로부터 구입할 수 있다. OS/2는 주식회사 IBM의 등록상표이다. 자바(Java)와 같은 객체 지향형 프로그래밍 시스템이 오퍼레이팅 시스템과 함께 동작할 수 있으며, 데이터 처리 시스템(300) 상에서 실행중인 자바 프로그램이나 애플리케이션 프로그램으로부터 오퍼레이팅 시스템으로 호출(call)을 제공한다. 자바는 선 마이크로시스템즈 인코포레이션(Sun Microsystems, Inc.)사의 등록상표이다. 오퍼레이팅 시스템, 객체 지향형 오퍼레이팅 시스템, 애플리케이션이나 프로그램에 대한 명령어는 하드디스크 드라이브(326)와 같은 저장 장치 상에 위치하며, 주 메모리(304) 내에 로딩되어 프로세서(302)에 의해 실행될 수 있다.

당업자라면 도 3의 하드웨어가 구현 내용에 따라 변경될 수 있음을 알 수 있을 것이다. 플래시 롬(flash ROM)(혹은 균등한 비휘발성 메모리) 또는 광 디스크 드라이브 등과 같은 상이한 내부 하드웨어 또는 주변 장치가 도 3에 도시된 하드웨어에 부가되거나 이를 대신하여 사용될 수도 있다. 또한, NC로서 구현되는 경우에, 데이터 처리 시스템(300)은 통상적으로 도 2에 도시된 구성요소보다 더 적은 구성요소를 포함할 것이다. 예를 들어, 대부분의 NC는 디스크가 없거나 도 2의 하드디스크 드라이브(226)와 같은 단일의 저장 장치만을 포함할 것이다.

예를 들어, 선택에 따라 네트워크 컴퓨터로서 구성되는 경우, 데이터 처리 시스템(300)은 선택적 포함을 나타내는 도 3의 점선(332)으로 표시된 바와 같은 SCSI 호스트 버스 어댑터(312), 하드디스크 드라이브(326), 테이프 드라이브(328), CD-ROM(330)을 포함하지 않을 것이다. 이 경우에, 바람직하게는 클라이언트 컴퓨터로 지칭되어야 하는 컴퓨터는 LAN 어댑터(310), 혹은 모뎀(322) 등과 같은 소정 유형의 네트워크 통신 인터페이스를 포함해야 한다. 다른 예로서, 데이터 처리 시스템(300)은 소정 유형의 네트워크 통신 인터페이스의 포함 여부에 관계없이 이러한 네트워크 통신 인터페이스에 의존하지 않고 부팅 가능하도록 구성된 독립형 시스템일 수도 있다. 또 다른 예로서, 데이터 처리 시스템(300)은 PDA(Personal Digital Assistant) 장치일 수도 있으며, 이 PDA 장치는 오퍼레이팅 시스템 파일 및/또는 사용자에 의해 발생된 데이터를 저장하기 위한 비휘발성 메모리를 제공하기 위해 ROM 및/또는 플래시 ROM을 구비한다.

도 3에 도시된 예 및 전술한 예는 구조적인 제한을 내포하는 것으로서 이해되어서는 안된다.

본 발명은 분산형 데이터 처리 시스템에서 사용자가 하나의 컴퓨터로부터 다른 컴퓨터로 용이하게 로밍할 수 있도록 하는 방법, 장치, 및 명령어를 제공한다. 상세하게는 도 4를 참조하면, 서버(400)가 통신 링크(404)를 통해 NC(402)와 통신한다. NC(402)는 사용자 오퍼레이팅 환경의 완전한 집합체인 이미지(406)를 포함하며, 이 이미지(406)는 예컨대 시스템 메모리, 디스크 이미지, 레지스터 이미지, 원격지 장치에 대한 접속, 네트워크 및 프로세서 상태를 포함한다. 스냅샷 혹은 이미지(406)의 복사본은 NC(402)로부터 만들어져 서버(400) 상에 저장되는 스냅샷 이미지를 형성한다. 도시된 예에서, 서버(400)가 다수의 스냅샷 이미지(408, 410, 412, 414)를 저장한다. NC(402)의 스냅샷 이미지는 이미지(406)에 의해 표현되는 바와 같이 NC(402) 상의 사용자 환경의 복사본이다. 이 스냅샷 이미지는 소정 주기 단위 또는 NC(402) 상에서 사용자의 세션(session) 동안 선택된 이벤트(event)에 응답하여 만들어진다. 주기적인 스냅샷은 타이머(timer)의 종료 및 이벤트에 응답하여 만들어질 수도 있으며, 이러한 이벤트에는 예컨대 사용자가 NC에 대한 접속을 종료하는 것, 사용자가 스냅샷을 요청하는 것, NC가 절전 모드(low-power mode)나 대기 모드로 진입하려고 하는 것이 있을 수 있다. 초기 스냅샷 이미지는 완전한 이미지가 서버 상에 저장될 때까지 점진적인 변화를 서버로 전송하는 클라이언트에 의해 생성될 수 있다. 각각의 사용자는 계정 파일(416)에 저장된 서버(400) 상의 계정을 갖는다. 도시된 예에서, 이 계정 파일(416)은 사용자 ID, 사용자 NC에 대한 머신 유형, 스냅샷 이미지에 대한 할당된 위치 및/또는 공간의 확인을 포함한다.

스냅샷 이미지(408∼414)와 같은 이미지를 갱신하는데 있어서, 갱신 내용은 NC(402)로부터 획득한 대체 이미지(replacement image)이거나 NC(402) 상의 이미지 (406)에 대한 변경 내용의 형태일 수 있다.

사용자가 NC(402)와 같은 NC에 로그 온하는 경우, 스냅샷 이미지가 특정한 NC 상에서 사용가능한지에 대한 판단이 행해진다. 이미지가 특정한 NC 상에서 사용가능하다고 판단되면, 그 이미지는 NC로 전송된다. 스냅샷 이미지가 존재하지 않으면, 스냅샷 이미지는 사용가능하지 않을 수도 있다. 또한, 사용자에 대해 저장된 스냅샷 이미지와 연관된 머신 유형이 사용자가 로그 온한 머신 유형과 일치하지 않으면, 스냅샷 이미지는 사용가능하지 않을 수도 있다. 그렇지 않다면, 디폴트 부트 이미지(418)가 NC로 전송된다. 이 경우에, 사용자는 애플리케이션을 재시작하고 자원을 다시 열어 원하는 상태로 복귀시켜야 한다.

도 5를 참조하면, 도 5에는 본 발명의 바람직한 실시예에 따른 이미지가 도시되어 있다. 이미지(500)는 도 4에서의 NC(402) 상의 이미지(406)와 같이 클라이언트 상의 이미지의 예이다. 이미지(500)는 도 4의 서버(400)와 같은 서버 상에 스냅샷 이미지로서 저장될 수 있다. 이미지(500)는 NC(402)와 같은 컴퓨터를 선택된 상태로 설치하는 데 사용되는 이미지이다. 이 예에서 이미지(500)는 헤더 (header) 정보(502), 상태 정보(504), 페이징(paging) 파일 정보(506)를 포함한다. 헤더 정보(502)는 NC 상의 이미지에 대한 파일 레이아웃(layout) 및 로딩 정보를 나타내는 반면에, 상태 정보(504)는 NC 내에 있는 물리적 메모리 및 하드웨어 장치의 상태(즉, 오퍼레이팅 시스템에 의해 사용되는 장치, 인터럽트(interrupt), 네트워크 기반 실제 시간 클럭)를 포함한다. 상태 정보(504)는 미국 특허 제 5,882,582 호에 기술된 바와 같은 공지된 하이버네이션(hibernation) 기법을 사용하여 획득될 수도 있다.

이미지(500)는 가상 메모리 관리를 포함하는 시스템에 대해서만 페이징 파일 정보(506)를 포함할 것이다. 이미지(500) 내의 페이징 파일 정보는 페이징 파일 자체일 것이다. 이와 달리, 페이징 파일의 일부분은 변경되지 않을 것이며, 이 페이징 파일의 로킹(locking)된 일부분은 NC를 복구, 부팅하는 데 필요하거나 하이버네이션하지 않는 데 필요한 정보를 포함하고 있다. 도시된 예가 페이징 파일을 포함하고 있지만, 오퍼레이팅 시스템의 유형에 따라 페이징 공간(paging space)이 페이징 파일을 대신하여 사용될 수도 있다. 페이징 공간 혹은 페이징 파일은 가상 메모리 관리자를 구비하는 시스템에 적용될 수 있다.

도 6 내지 도 10은 분산형 데이터 처리 시스템에서 클라이언트로부터의 이미지를 관리하기 위해 서버에서 사용되는 프로세스의 플로차트이다. 이들 처리는 사용자 계정을 설정하는 단계와 이미지를 클라이언트로 전송하는 단계뿐만 아니라 이미지를 수신 및 전송하는 단계를 포함한다. 또한, 특정한 시간에 사용자가 선택된 클라이언트에 있을 것으로 예측되는 이벤트에서는 서버에서의 프로세스가 이미지를 프리로딩하는 데 사용될 수도 있다.

이제 도 6을 참조하면, 도 6에는 본 발명의 바람직한 실시예에 따라 사용자 계정을 설정하기 위한 프로세스의 플로차트가 도시되어 있다. 사용자 계정은 서버 상의 사용자를 위한 시스템 관리자에 의해 통상적으로 생성된다. 이 방식에서, 계정을 가진 사용자는 자원을 재개해야하는 것과 연관된 시간 패널티(penalty)를 초래하지 않으면서도 클라이언트간을 로밍할 수 있다. 프로세스는 사용자 ID를 수신함으로써 시작한다[단계(600)]. 다음에, 사용자에 대한 머신 유형이 수신된다[단계(602)]. 머신 유형은 사용자가 위치한 컴퓨터 혹은 NC의 유형을 식별하는 데 사용된다. 이어서, 스냅샷 이미지에 대한 공간이 할당되고[단계(604)], 사용자가 위치한 컴퓨터 혹은 NC에 로밍 소프트웨어가 설치[단계(606)]된 다음에 프로세스가 종료된다.

이제 도 7을 참조하면, 도 7에는 본 발명의 바람직한 실시예에 따라 스냅샷 이미지를 저장하기 위한 프로세스의 플로차트가 도시되어 있다. 프로세스는 시스템 스냅샷 이미지가 수신되었는지의 여부를 판단함으로써 시작한다[단계(700)]. 시스템 스냅샷 이미지가 수신되지 않았으면, 프로세스는 단계(700)로의 복귀를 계속한다. 시스템 스냅샷 이미지가 수신되었으면, 이 스냅샷 이미지에 대한 사용자 계정이 확인된다[단계(702)]. 스냅샷 이미지는 각각의 사용자 ID에 대해 고유하다. 스냅샷 이미지 내의 헤더가 이미지를 포함하는 서버 상의 파일을 확인한다. 스냅샷 이미지 내의 헤더는 사용자 ID, 노드 ID, 세션(스냅샷) ID와 같은 확인 정보를 포함할 수 있다. 스냅샷 이미지 데이터에 대한 사용자 계정을 확인한 다음, 사용자 계정이 스냅샷 이미지 데이터와 결합된다[단계(704)]. 다음에, 전체 스냅샷 이미지가 수신되었는지의 여부에 대한 판단이 행해진다[단계(706)]. 구현 동안, 프로세스가 전체 이미지를 한번에 수신하거나 클라이언트로부터 점진적으로 이미지를 수신할 수도 있다. 전체 이미지가 수신되지 않았으면, 프로세스는 단계 (700)로 복귀하여 부가적인 스냅샷 이미지 데이터가 수신되었는지의 여부를 판단한다. 전체 이미지가 수신되었으면, 타임스탬프(timestamp)가 스냅샷 이미지와 결합된다[단계(708)]. 타임스탬프는 서버 상의 스냅샷 이미지에 대한 변경 내용들을 동기화시키는 데 사용된다. 많은 경우에, 스냅샷 이미지에 대한 변경 내용들이 서버에 의해 처리되어 스냅샷 이미지에 적용되기 위해서 이들이 서버 내에서 대기하고 있기 때문에 타임스탬프가 필요하다. 결과적으로, 타임스탬프는 어떤 변화가 이루어져야 하는지를 확인하는 것과 관련되어 있다. 예를 들어, 이미지에 대한 갱신이 스냅샷 이미지의 타임스탬프보다 오래된 타임스탬프를 갖는 경우, 이러한 갱신은 사용되지 않을 것이다.

스냅샷 이미지가 저장[단계(710)]된 다음에 프로세스는 단계(700)로 복귀한다. 스냅샷 이미지는 완전한 사용자의 오퍼레이팅 환경의 집합체이며, 예컨대 메모리의 복사본, 레지스터 상태의 복사본, 원격 장치에 대한 접속, 클라이언트에 위치한 어떤 저장 장치의 복사본, 어떤 활성 애플리케이션이나 다른 개시 자원을 포함할 수도 있다. 다음에 도 8을 참조하면, 도 8에는 본 발명의 바람직한 실시예에 따라 이미지를 갱신하기 위한 프로세스의 플로차트가 도시되어 있다. 이미지를 갱신한 다음에 스냅샷 이미지를 닫는다. 프로세스는 스냅샷 이미지에 대한 갱신 내용을 수신함으로써 시작한다[단계(800)]. 다음에, 갱신을 위해 사용자 계정이 확인된다[단계(802)]. 사용자 계정과 연관된 스냅샷 이미지를 열어서 사용자 계정에 대한 변화가 가능하도록 한다[단계(804)]. 사용자 계정과 연관된 스냅샷 이미지가 갱신[단계(804)]된 다음에 프로세서가 종료된다. 이러한 갱신은 새로운 스냅샷 이미지의 형태일 수도 있고, 단지 NC 상의 이미지에 대한 변경 내용만을 포함할 수도 있다. 다음에 상세하게 설명될 바와 같이, 이러한 갱신에 대한 전송 개시는 NC의 로밍 소프트웨어에 의해 처리된다. 또한, 스냅샷 이미지의 열기 및 닫기는 각각 사용자 로그인 및 사용자 로그아웃시에 수행될 수 있다. 이 경우에, 스냅샷 이미지는 사용자가 네트워크를 로그 오프할 때 닫히므로 스냅샷 이미지는 사용자가 다음에 네트워크로 로그 온할 때까지 완전한 개체(entity)로서 저장될 것이다. 사용자가 네트워크에 로그 온할 때, 스냅샷 이미지가 열려 이에 대한 변화가 가능하게 된다.

도 9에는 본 발명의 바람직한 실시예에 따라 스냅샷 이미지를 클라이언트로 전송하기 위한 프로세스의 플로차트가 도시되어 있다. 프로세스는 스냅샷 이미지에 대한 요구를 수신함으로써 시작한다[단계(900)]. 이 요구는 사용자가 클라이언트로 로그 온할 때 클라이언트에 의해 자동적으로 개시될 수도 있다. 또한, 이 요구는 스냅샷 이미지가 소정의 어떤 시간에 사용자의 NC로 다운로딩(downloading)되어 대기 시간을 최소화하도록 스케줄링(scheduling)될 수도 있다. 이러한 예에서, 요구는 클라이언트에서의 사용자 ID를 포함한다. 다음에, 사용자 계정이 존재하는지에 대한 판단이 행해진다[단계(902)]. 사용자 계정이 존재하면, 프로세스는 스냅샷 이미지가 사용가능한지를 판단한다[단계(904)]. 이 판단은 스냅샷 이미지가 존재하는지와 그 스냅샷 이미지가 올바른 머신 유형에 관한 것인지를 판단하는 단계를 포함한다. 사용자가 현재 클라이언트와는 상이한 머신 유형을 가진 이전 클라이언트에서 스냅샷 이미지를 생성했을 수도 있다. 스냅샷 이미지가 사용가능하지 않으면, 디폴트 부팅 이미지가 클라이언트로 전송[단계(906)]된 다음에 프로세스가 종료한다.

단계(904)를 다시 참조하면, 요구된 스냅샷 이미지가 사용가능한 경우, 스냅샷 이미지가 클라이언트로 전송[단계(908)]된 다음에 프로세스가 종료한다. 단계 (902)를 다시 참조하면, 사용자 계정이 존재하지 않는 경우, 프로세스가 단계(906)로 진행하여 디폴트 이미지를 클라이언트로 전송한다.

이제 도 10을 참조하면, 도 10에는 본 발명의 바람직한 실시예에 따라 이미지를 프리로딩(pre-loading)하기 위한 프로세스의 플로차트가 도시되어 있다. 이러한 프로세스는 사용자가 미리 설정된(pre-set) 시간에 클라이언트에 있을 것으로 예측되는 경우에 스냅샷 이미지를 프리페치(pre-fetch)하여 이를 클라이언트 상에 로딩하는 데 사용될 수 있다. 이 프로세스는 또한 사용자가 클라이언트 상에서 작업을 시작할 수 있도록 하는데 필요한 시간과 노력을 최소화시킬 수 있다.

프로세스는 현재 날짜 및 시간을 획득함으로써 시작한다[단계(1000)]. 다음에, 현재 날짜 및 시간에서 클라이언트에 대한 이미지 다운로딩이 스케줄링 되었는지에 대한 판단이 이루어진다[단계(1002)]. 다운로딩이 스케줄링 되어 있지 않으면, 프로세스는 단계(1000)로 복귀한다. 다운로딩이 스케줄링 되어 있으면, 스냅샷 이미지가 사용자에 대하여 사용가능한지에 대한 판단이 이루어진다[단계 (1004)]. 스냅샷 이미지가 사용가능하면, 스냅샷 이미지가 클라이언트로 다운로딩된[단계(1006)] 다음에 프로세스는 단계(1000)로 복귀한다. 스냅샷 이미지가 사용가능하지 않으면, 디폴트 부팅 이미지가 클라이언트로 다운로딩[단계(1008)]된 다음에 프로세스는 단계(1000)로 복귀한다.

도 11 및 도 12는 클라이언트에서 이미지를 처리하기 위해 로밍 소프트웨어에 의해 사용되는 프로세스의 플로차트이다. 이 프로세스는 변경 내용을 저장하기 위해 서버로 전송하는 단계뿐만 아니라 스냅샷 이미지를 요구하는 단계를 포함한다. 이들 프로세스는 사용자 오퍼레이팅 환경의 백그라운드에서 동작하며 갱신 내용(예컨대, 변경 내용 혹은 전체 이미지)을 서버로 다시 전송하는 데 사용된다.

도 11을 참조하면, 도 11에는 본 발명의 바람직한 실시예에 따라 이미지를 클라이언트 상에 복원하기 위한 프로세스의 플로차트가 도시되어 있다. 이 프로세스는 서버로부터 스냅샷 이미지를 요구함으로써 시작한다[단계(1100)]. 이 요구는 예컨대 오퍼레이팅 시스템을 서버로부터 클라이언트로 로딩하는 데 통상적으로 사용되는 RIPL(Remote Initial Program Load)과 같이 원격 부팅 혹은 컴퓨터의 기동을 위한 다양한 공지된 메커니즘(mechanism)을 사용하여 달성될 수 있다. 이 프로세스는 스냅샷 이미지를 로딩하는 데 사용될 수 있다. 다음에, 이미지가 서버로부터 수신된다[단계(1102)]. 스냅샷 이미지가 특정한 클라이언트에서 사용자에 대하여 사용가능한지에 따라, 이미지는 스냅샷 이미지 또는 디폴트 부트 이미지일 수 있다. 사용자 오퍼레이팅 환경이 복원된[단계(1104)] 다음에 프로세스는 종료한다. 사용자 오퍼레이팅 환경의 복원은 스냅샷 이미지가 사용가능할 때 완전하게 복원될 수 있다. 스냅샷 이미지가 사용가능하지 않으면, 사용자가 계속하여 소정의 애플리케이션 및 다른 자원을 다시 열 것이기 때문에 복원은 단지 부분적으로 행해진다.

이제 도 12를 참조하면, 도 12에는 본 발명의 바람직한 실시예에 따라 갱신 내용을 서버로 전송하는 데 사용되는 프로세스의 플로차트가 도시되어 있다. 하나의 방안이 스냅샷 이미지나 컴퓨터 시스템에 대한 변화 내용을 포함하는 데이터와 같은 갱신 내용의 생성 및 전송을 개시하는데 사용될 수도 있다. 이 방안은 예컨대, 주기적으로 또는 선택된 이벤트의 발생에 응답하는 것과 같은 다수의 방식으로 갱신을 개시할 수 있다. 프로세스는 타이머를 개시함으로써 시작하고, 초기 시스템 상태를 확인한다[단계(1200)]. 타이머를 사용하여 스냅샷 이미지에 대한 주기적인 갱신을 하는 반면에, 초기 시스템 상태를 사용하여 사용자의 오퍼레이팅 환경에서의 변경 내용을 확인한다. 다음에, 타이머가 시작된다[단계(1202)]. 이어서, 선택된 활동이 발생하였는지에 대한 판단이 행해진다[단계(1204)]. 선택된 활동이 발생하였다면, 이 선택된 활동이 중요 이벤트인지에 대한 판단이 행해진다[단계 (1206)]. 중요 이벤트에는 예컨대, 클라이언트로의 로그 인, 클라이언트로부터의 로그 아웃, 애플리케이션 로딩, 애플리케이션의 언로딩(unloading), 혹은 클라이언트가 절전 모드로 진입하려는 상태를 포함하는 다수의 이벤트가 있다.

그 활동이 중요 이벤트이면, 클라이언트의 스냅샷 이미지가 서버로 전송된다 [단계(1208)]. 다음에, 프로세스가 종료되어야 하는지에 대한 판단이 이루어진다[단계(1210)]. 도시한 예에서, 프로세스는 사용자가 클라이언트로부터 로그 아웃하는 이벤트에서 종료할 것이다. 프로세스가 종료하지 않으면, 타이머가 리셋된[단계(1212)] 다음에 프로세스는 단계(1204)로 복귀한다.

다시 단계(1206)를 참조하면, 선택된 활동이 중요 이벤트가 아닌 경우, 프로세스는 현재 시스템 상태와 초기 시스템 상태를 비교한다[단계(1214)]. 이 단계는 단계(1200)에서 확인된 초기 상태를 가지는 사용자 오퍼레이팅 환경의 현재 상태를 조사한다. 예컨대, 레지스터에서의 변경 내용, 메모리에서의 변경 내용, 혹은 열린 자원에서의 변경 내용과 같은 차이점들이 무제한으로 비교되어 조사된다. 다음에, 사용자 오퍼레이팅 환경에서 상이한 상태간에 변경 내용이 존재하는지에 대한 판단이 행해진다[단계(1216)]. 상이한 상태간에 변경 내용이 존재하지 않으면, 프로세스는 단계(1204)로 복귀한다.

상이한 상태간에 변경 내용이 존재하면, 단계(1214)에서의 비교에 의해 확인된 변경 내용이 서버로 전송된다[단계(1218)]. 초기 시스템 상태가 현재 시스템 상태와 동일하게 설정된[단계(1220)] 다음에 프로세스는 전술한 바와 같이 단계 (1212)로 진행한다. 다시 단계(1204)를 참조하면, 선택한 활동이 발생하지 않으면 시간이 종료되었는지에 대한 판단이 이루어진다[단계(1222)]. 타이머가 종료되지 않았으면, 프로세스는 단계(1204)로 복귀한다. 타이머가 종료되었으면, 프로세스는 단계(1214)로 진행하여 현재 시스템 상태와 초기 시스템 상태를 비교한다.

본 발명이 전체적으로 데이터 처리 시스템의 기능에 대해 설명하였지만, 당업자라면 본 발명의 프로세스가 컴퓨터 판독 가능한 매체의 명령어의 형태 및 다양한 형태로 배포될 수 있으며, 본 발명이 배포를 수행하는 데 실제로 사용되는 매체를 수반하는 특정 유형의 신호에 관계없이 동일하게 적용될 수 있음을 알 수 있다는 것을 주지해야만 한다. 컴퓨터 판독 가능한 매체의 예로는 플로피 디스크, 하드디스크 드라이브, RAM, CD-ROM과 같은 기록가능한 유형의 매체 및 디지털과 아날로그 링크와 같은 전송 유형의 매체가 있다.

본 발명의 설명은 예시와 설명의 목적으로 제공된 것이며, 개시한 형태의 발명으로만 본 발명을 제한하려는 것은 아니다. 도시된 예는 직접적으로 NC에 대한 것이지만, 본 발명의 예가 네트워크에 접속된 개인용 컴퓨터와 같은 다른 유형의 컴퓨터에 적용될 수도 있다. 예를 들면, 본 발명의 프로세스가 랩탑(laptop) 컴퓨터와 같은 휴대용 컴퓨터에 적용될 수도 있다. 예컨대, 사용자가 제1 위치에서 로그 온되어 스냅샷 이미지 및 다른 변경 내용이 저장을 위해 호스트 또는 서버 컴퓨터로 전송될 수 있다. 다음에, 사용자가 휴대용 컴퓨터를 로그 오프하여, 컴퓨터를 접속 해제시키고, 다른 위치로 이동하여 휴대용 컴퓨터를 재접속시켜 로그 인할 수 있다. 제2 위치에서의 로그 인으로 인해 스냅샷 이미지가 제2 위치에 있는 휴대용 컴퓨터로 전송될 것이다. 또한, 도시된 예에서 스냅샷 이미지는 전체 오퍼레이팅 환경, 즉 휘발성 메모리, 레지스터 상태, 및 영구 저장 장치의 내용에 포함된다. 구현 방식에 따라, 로컬 영구 저장 장치가 없는 네트워크 컴퓨터일 경우에 스냅샷 이미지는 하드디스크 드라이브 또는 휘발성 메모리와 같은 영구 저장 장치에만 존재할 수 있다. 당업자에게는 많은 변형 및 변경이 자명할 것이다. 본 발명의 원리를 잘 설명하기 위한 실시예를 선택하여 설명하였으며, 당업자라면 본 발명이 계획한 특정 용도에 적합하도록 다양하게 변형될 수 있음을 이해할 수 있다.

본 발명에 따르면 컴퓨터에 대한 시스템 이미지를 유지하기 위한 방법 및 장치가 제공된다. 본 발명에 따르면, 시스템 이미지의 초기 상태를 확인한 다음에, 이벤트(event)에 응답하여, 시스템 이미지의 현재 상태가 초기 상태로부터 변경되었는지의 여부에 대한 판단이 이루어지고, 시스템 이미지의 초기 상태와 현재 상태간의 변경 내용에 응답하여, 시스템 이미지의 갱신 내용이 저장을 위해 전송된다.

Claims (29)

  1. 컴퓨터 내에서, 상기 컴퓨터에 대한 시스템 이미지를 유지하기 위한 방법에 있어서,
    상기 시스템 이미지의 초기 상태를 확인하는 단계와,
    이벤트에 응답하여, 상기 시스템 이미지의 현재 상태가 상기 시스템 이미지의 초기 상태로부터 변경되었는지에 대하여 판단하는 단계와,
    상기 시스템 이미지의 초기 상태와 상기 시스템 이미지의 현재 상태간의 변경 내용에 응답하여, 상기 시스템 이미지의 갱신 내용을 저장을 위해 원격지 컴퓨터로 전송하는 단계
    를 포함하는 시스템 이미지 유지 방법.
  2. 호스트(host) 컴퓨터 내에서, 분산형 데이터 처리 시스템 내의 복수의 클라이언트 컴퓨터에서의 복수의 사용자에 대한 시스템 이미지를 유지하기 위한 방법에 있어서,
    상기 호스트 컴퓨터 내에서 상기 복수의 사용자에 대한 복수의 시스템 이미지를 유지하는 단계 -상기 복수의 시스템 이미지 내의 각각의 시스템 이미지는 상기 복수의 사용자 내의 하나의 사용자와 연관됨- 와,
    상기 복수의 클라이언트 컴퓨터 내의 하나의 클라이언트 컴퓨터로부터의 시스템 이미지에 대한 갱신 내용의 수신을 모니터링(monitoring)하는 단계와,
    시스템 이미지에 대한 상기 갱신 내용의 수신을 검출하는 단계에 응답하여, 상기 갱신 내용과 연관된 상기 복수의 시스템 이미지 내의 하나의 시스템 이미지를 확인하는 단계와,
    상기 갱신 내용과 연관된 상기 시스템 이미지의 확인 단계에 응답하여, 상기 시스템 이미지를 변경하여 상기 갱신 내용을 반영하는 단계
    를 포함하는 시스템 이미지 유지 방법.
  3. 분산형 데이터 처리 시스템에서의 컴퓨팅(computing) 방법에 있어서,
    방침(policy)에 따라 상기 분산형 데이터 처리 시스템 내의 제1 클라이언트 컴퓨터의 스냅샷 이미지를 생성하는 단계와,
    상기 스냅샷 이미지를 상기 분산형 데이터 처리 시스템 내의 사용자와 연관된 서버 상에 저장하는 단계와,
    상기 사용자에 의한 상기 분산형 데이터 처리 시스템 내의 제2 클라이언트 컴퓨터에의 로그 온에 응답하여, 상기 스냅샷 이미지가 사용가능한지를 판단하는 단계와,
    상기 스냅샷 이미지가 사용가능하다는 판단에 응답하여, 상기 스냅샷 이미지를 상기 제2 클라이언트 컴퓨터 상으로 로딩하는 단계
    를 포함하는 컴퓨팅 방법.
  4. 분산형 데이터 처리 시스템에 있어서,
    네트워크와,
    상기 네트워크에 접속되어, 각각이 시스템 이미지를 포함하며, 선택된 이벤트에 응답하여 상기 시스템 이미지의 갱신 내용을 저장을 위해 전송하는, 복수의 클라이언트 컴퓨터와,
    상기 네트워크에 접속되어, 각각의 시스템 이미지의 복사본(copy)을 저장된 시스템 이미지로서 유지하고, 저장된 시스템 이미지에 대한 갱신 내용을 수신하며, 상기 저장된 시스템 이미지를 변경하여 상기 갱신 내용을 반영하는 서버 컴퓨터
    를 포함하는 분산형 데이터 처리 시스템.
  5. 제4항에 있어서,
    상기 갱신 내용이 상기 저장된 시스템 이미지를 대체하는 새로운 시스템 이미지인 분산형 데이터 처리 시스템.
  6. 제4항에 있어서,
    상기 변경 내용이 상기 저장된 시스템 이미지를 변경시키는 데 사용되는 상기 시스템 이미지에 대한 변경 내용인 분산형 데이터 처리 시스템.
  7. 시스템 이미지를 유지하기 위한 데이터 처리 시스템에 있어서,
    상기 시스템 이미지의 초기 상태를 확인하기 위한 확인 수단과,
    이벤트에 응답하여, 상기 시스템 이미지의 현재 상태가 상기 시스템 이미지의 초기 상태로부터 변경되었는지를 판단하기 위한 판단 수단과,
    상기 시스템 이미지의 초기 상태와 상기 시스템 이미지의 현재 상태 사이의 변경 내용에 응답하여, 상기 시스템 이미지의 갱신 내용을 저장을 위해 원격지 컴퓨터로 전송하기 위한 전송 수단
    을 포함하는 데이터 처리 시스템.
  8. 제7항에 있어서,
    상기 전송 수단이 저장을 위해 상기 변경 내용을 전송하기 위한 전송 수단을 포함하는 데이터 처리 시스템.
  9. 제7항에 있어서,
    상기 전송 수단이 저장을 위해 상기 시스템 이미지의 스냅샷 이미지를 전송하기 위한 전송 수단을 포함하는 데이터 처리 시스템.
  10. 제7항에 있어서,
    상기 원격지 컴퓨터가 서버 컴퓨터인 데이터 처리 시스템.
  11. 제7항에 있어서,
    상기 이벤트가 주기적인 이벤트인 데이터 처리 시스템.
  12. 제7항에 있어서,
    상기 이벤트가 상기 이미지를 갱신하는 사용자로부터의 요구인 데이터 처리 시스템.
  13. 제7항에 있어서,
    상기 이벤트가 상기 컴퓨터의 로그 오프인 데이터 처리 시스템.
  14. 제7항에 있어서,
    상기 데이터 처리 시스템이 레지스터를 포함하고, 상기 시스템 이미지가 상기 레지스터의 상태를 포함하는 데이터 처리 시스템.
  15. 제7항에 있어서,
    활성 애플리케이션이 상기 데이터 처리 시스템 상에 존재하고, 상기 시스템 이미지가 상기 활성 애플리케이션을 포함하는 데이터 처리 시스템.
  16. 분산형 데이터 처리 시스템 내의 복수의 클라이언트 컴퓨터에서 복수의 사용자에 대한 시스템 이미지를 유지하기 위한 컴퓨터에 있어서,
    상기 컴퓨터 내에서 상기 복수의 사용자에 대한 복수의 시스템 이미지를 유지하기 위한 유지 수단 -상기 복수의 시스템 이미지 내의 각각의 시스템 이미지는 상기 복수의 사용자 내의 하나의 사용자와 연관됨- 과,
    상기 복수의 클라이언트 컴퓨터 중 하나의 클라이언트 컴퓨터로부터 시스템 이미지에 대한 갱신 내용의 수신에 대하여 모니터링하기 위한 모니터링 수단과,
    시스템 이미지에 대한 상기 갱신 내용의 수신을 검출하는 단계에 응답하여, 상기 갱신 내용과 연관된 상기 복수의 시스템 이미지 중 하나의 시스템 이미지를 확인하기 위한 확인 수단과,
    상기 갱신 내용과 연관된 상기 시스템 이미지를 확인하는 단계에 응답하여, 상기 시스템 이미지를 변경하여 상기 갱신 내용을 반영하기 위한 변경 수단
    을 포함하는 컴퓨터.
  17. 제16항에 있어서,
    상기 갱신 내용이 새로운 시스템 이미지인 컴퓨터.
  18. 제16항에 있어서,
    상기 갱신 내용이 상기 시스템 이미지에 대한 변경 내용인 컴퓨터.
  19. 제16항에 있어서,
    상기 갱신 내용이 클라이언트 컴퓨터 내의 레지스터의 상태를 포함하는 컴퓨터.
  20. 제16항에 있어서,
    상기 갱신 내용이 클라이언트 컴퓨터 내의 메모리의 상태를 포함하는 컴퓨터.
  21. 제16항에 있어서,
    클라이언트 컴퓨터에서 하나의 사용자에 의한 로그인에 대하여 모니터링하기 위한 모니터링 수단과,
    상기 사용자에 의한 로그인을 검출하는 단계에 응답하여, 상기 사용자에 대한 시스템 이미지가 존재하는지를 판단하기 위한 판단 수단과,
    상기 사용자에 대한 시스템 이미지가 존재한다는 판단에 응답하여, 상기 시스템 이미지를 상기 클라이언트 컴퓨터로 전송하기 위한 전송 수단
    을 더 포함하는 컴퓨터.
  22. 제21항에 있어서,
    상기 사용자에 대한 시스템 이미지가 존재하지 않는다는 판단에 응답하여, 디폴트 이미지를 상기 클라이언트 컴퓨터로 전송하기 위한 전송 수단을 더 포함하는 컴퓨터.
  23. 분산형 데이터 처리 시스템에서 컴퓨팅하기 위한 데이터 처리 시스템에 있어서,
    상기 분산형 데이터 처리 시스템 내의 제1 클라이언트 컴퓨터의 스냅샷 이미지를 주기적으로 생성하기 위한 생성 수단과,
    사용자와 연관된 상기 분산형 데이터 처리 시스템 내의 서버 컴퓨터 상에 상기 스냅샷 이미지를 저장하기 위한 저장 수단과,
    상기 분산형 데이터 처리 시스템 내의 제2 클라이언트 컴퓨터로 로그 온하는 상기 사용자에 응답하여, 상기 스냅샷 이미지가 사용가능한지를 판단하기 위한 판단 수단과,
    상기 스냅샷 이미지가 사용가능하다는 판단에 응답하여, 상기 스냅샷 이미지를 상기 제2 클라이언트 컴퓨터 상으로 로딩하기 위한 로딩 수단
    을 포함하는 데이터 처리 시스템.
  24. 제23항에 있어서,
    상기 스냅샷 이미지가 시스템 메모리, 디스크 이미지, 및 네트워크와 프로세서 상태를 포함하는 데이터 처리 시스템.
  25. 제23항에 있어서,
    상기 제1 클라이언트 컴퓨터 내의 선택된 이벤트의 발생에 응답하여, 상기 제1 클라이언트 컴퓨터의 스냅샷 이미지를 생성하는 수단을 더 포함하는 데이터 처리 시스템.
  26. 제23항에 있어서,
    상기 제1 클라이언트 컴퓨터가 하나의 머신 유형(machine type)을 가지고, 상기 제2 클라이언트 컴퓨터가 하나의 머신 유형을 가지며, 상기 스냅샷 이미지가 사용가능한지를 판단하는 상기 판단 수단은,
    스냅샷 이미지가 사용자와 연관된 상기 서버 상에 저장되는지를 판단하기 위한 제1 판단 수단과,
    사용자와 연관된 상기 서버 상에 저장되어 있는 스냅샷 이미지에 응답하여, 상기 제1 클라이언트 컴퓨터의 머신 유형이 상기 제2 클라이언트 컴퓨터의 머신 유형과 일치하는지를 판단하기 위한 제2 판단 수단
    을 포함하는 데이터 처리 시스템.
  27. 제1항 또는 제2항의 시스템 이미지 유지 방법 또는 제3항의 컴퓨팅 방법의 각 단계를 구현하는 명령어들을 포함하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  28. 삭제
  29. 삭제
KR10-2000-0013010A 1999-03-31 2000-03-15 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치 KR100382851B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US28269399A true 1999-03-31 1999-03-31
US09/282,693 1999-03-31

Publications (2)

Publication Number Publication Date
KR20010006803A KR20010006803A (ko) 2001-01-26
KR100382851B1 true KR100382851B1 (ko) 2003-05-09

Family

ID=23082706

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0013010A KR100382851B1 (ko) 1999-03-31 2000-03-15 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치

Country Status (3)

Country Link
US (1) US20030051128A1 (ko)
JP (1) JP2000330954A (ko)
KR (1) KR100382851B1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
KR20010000169A (ko) * 2000-07-21 2001-01-05 남인태 인터넷을 통한 감시를 위한 영상/음성 전송방법 및 이를위한 인증방법
US8224776B1 (en) 2000-07-26 2012-07-17 Kdl Scan Designs Llc Method and system for hosting entity-specific photo-sharing websites for entity-specific digital cameras
US6636259B1 (en) * 2000-07-26 2003-10-21 Ipac Acquisition Subsidiary I, Llc Automatically configuring a web-enabled digital camera to access the internet
US6654912B1 (en) * 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US9635540B2 (en) * 2002-03-25 2017-04-25 Jeffrey D. Mullen Systems and methods for locating cellular phones and security measures for the same
TWI242160B (en) * 2002-04-01 2005-10-21 Shun-Tang Hsu Method and tools to downsize existing operating systems for embedded applications
AU2003226220A1 (en) * 2002-04-03 2003-10-20 Powerquest Corporation Using disassociated images for computer and storage resource management
US7313623B2 (en) * 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
WO2004021626A2 (en) 2002-08-30 2004-03-11 Broadcom Corporation System and method for handling out-of-order frames
US8180928B2 (en) 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7373590B2 (en) * 2003-05-19 2008-05-13 Microsoft Corporation Shared electronic ink annotation method and system
US7958163B2 (en) 2003-08-05 2011-06-07 Intraware, Inc. System and method for bulk transfer of digital goods
US7142891B2 (en) * 2003-10-10 2006-11-28 Texas Instruments Incorporated Device bound flashing/booting for cloning prevention
US20050180326A1 (en) * 2004-02-13 2005-08-18 Goldflam Michael S. Method and system for remotely booting a computer device using a peer device
US7533134B2 (en) * 2004-04-01 2009-05-12 Microsoft Corporation Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence)
US7870098B2 (en) * 2004-05-07 2011-01-11 Sap Ag Method and system for maintaining historical data for data receivers
US9357031B2 (en) 2004-06-03 2016-05-31 Microsoft Technology Licensing, Llc Applications as a service
US7908339B2 (en) * 2004-06-03 2011-03-15 Maxsp Corporation Transaction based virtual file system optimized for high-latency network connections
US8812613B2 (en) 2004-06-03 2014-08-19 Maxsp Corporation Virtual application manager
US7664834B2 (en) * 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
US8589323B2 (en) 2005-03-04 2013-11-19 Maxsp Corporation Computer hardware and software diagnostic and report system incorporating an expert system and agents
US7512584B2 (en) * 2005-03-04 2009-03-31 Maxsp Corporation Computer hardware and software diagnostic and report system
US8234238B2 (en) * 2005-03-04 2012-07-31 Maxsp Corporation Computer hardware and software diagnostic and report system
US7624086B2 (en) * 2005-03-04 2009-11-24 Maxsp Corporation Pre-install compliance system
US8811396B2 (en) 2006-05-24 2014-08-19 Maxsp Corporation System for and method of securing a network utilizing credentials
US8898319B2 (en) 2006-05-24 2014-11-25 Maxsp Corporation Applications and services as a bundle
JP4793097B2 (ja) * 2006-05-30 2011-10-12 株式会社ケンウッド コンテンツ再生システム、コンテンツ再生装置、及びコンテンツ再生プログラム
US9317506B2 (en) * 2006-09-22 2016-04-19 Microsoft Technology Licensing, Llc Accelerated data transfer using common prior data segments
US20080077622A1 (en) * 2006-09-22 2008-03-27 Keith Robert O Method of and apparatus for managing data utilizing configurable policies and schedules
US7840514B2 (en) * 2006-09-22 2010-11-23 Maxsp Corporation Secure virtual private network utilizing a diagnostics policy and diagnostics engine to establish a secure network connection
US8423821B1 (en) 2006-12-21 2013-04-16 Maxsp Corporation Virtual recovery server
US7844686B1 (en) 2006-12-21 2010-11-30 Maxsp Corporation Warm standby appliance
CN101657807A (zh) * 2007-02-01 2010-02-24 瑞士信贷证券(美国)有限责任公司 用于动态控制对网络的访问的方法和系统
US7937618B2 (en) * 2007-04-26 2011-05-03 International Business Machines Corporation Distributed, fault-tolerant and highly available computing system
US8175418B1 (en) 2007-10-26 2012-05-08 Maxsp Corporation Method of and system for enhanced data storage
US8307239B1 (en) 2007-10-26 2012-11-06 Maxsp Corporation Disaster recovery appliance
US8645515B2 (en) 2007-10-26 2014-02-04 Maxsp Corporation Environment manager
JP2008198210A (ja) * 2008-02-12 2008-08-28 Ardence Inc ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法
WO2010042115A1 (en) * 2008-10-08 2010-04-15 Hewlett-Packard Development Company, L.P. Firmware storage medium with customized image
EP2340484A1 (en) * 2008-10-27 2011-07-06 Hewlett-Packard Development Company, L.P. Imaging process
EP2599007A1 (en) 2010-07-30 2013-06-05 Hewlett-Packard Development Company, L.P. Information technology service management
US8856506B2 (en) * 2011-04-27 2014-10-07 Hewlett-Packard Development Company, L.P. Process for joining a computer to a directory based on either a newly created computer account or renewed computer account depending on a unique identifier associated with an end-user
US9270530B1 (en) * 2011-05-27 2016-02-23 Amazon Technologies, Inc. Managing imaging of multiple computing devices
JP5684170B2 (ja) 2012-02-28 2015-03-11 株式会社東芝 情報処理装置、クライアント管理システムおよびクライアント管理方法
US9208041B2 (en) * 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US8990772B2 (en) 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990082741A (ko) * 1998-04-20 1999-11-25 포만 제프리 엘 분산데이터프로세싱시스템내에서하이버네이션을위한방법및장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223289B1 (en) * 1998-04-20 2001-04-24 Sun Microsystems, Inc. Method and apparatus for session management and user authentication
US6052720A (en) * 1998-05-14 2000-04-18 Sun Microsystems, Inc. Generic schema for storing configuration information on a server computer
US6161125A (en) * 1998-05-14 2000-12-12 Sun Microsystems, Inc. Generic schema for storing configuration information on a client computer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990082741A (ko) * 1998-04-20 1999-11-25 포만 제프리 엘 분산데이터프로세싱시스템내에서하이버네이션을위한방법및장치

Also Published As

Publication number Publication date
JP2000330954A (ja) 2000-11-30
KR20010006803A (ko) 2001-01-26
US20030051128A1 (en) 2003-03-13

Similar Documents

Publication Publication Date Title
US10609112B2 (en) Method, server and system for converging desktop application and web application
US20190058789A1 (en) Method and apparatus for remote control and updating of wireless mobile devices
US10419289B2 (en) System and method for configuration management service
US9654548B2 (en) Intelligent network streaming and execution system for conventionally coded applications
US10122792B2 (en) Read-only storage device having network interface, a system including the device and a method of distributing files over a network
US10348804B2 (en) System to automatically process components on a device
US10417243B1 (en) Method and system for transparent database query caching
CN105765534B (zh) 虚拟计算系统和方法
US6918113B2 (en) Client installation and execution system for streamed applications
JP4943628B2 (ja) ネットワークスイッチ構成のための方法およびシステム
US20150235015A1 (en) Optimized Server for Streamed Applications
US5974566A (en) Method and apparatus for providing persistent fault-tolerant proxy login to a web-based distributed file service
US7543174B1 (en) Providing high availability for an application by rapidly provisioning a node and failing over to the node
JP3864253B2 (ja) リモート・ソフトウェア配布及びインストールのための方法及びシステム
US5802297A (en) Client-server computer system and method utilizing a local client disk drive as a data cache
US6052779A (en) Automatic wake-up of systems in a data processing network
US8862709B2 (en) Remote management of boot application
US7139816B2 (en) Method, apparatus, and program for server based network computer load balancing across multiple boot servers
US9088632B2 (en) Redistribution of operating environments for the redeployment of grid clients
US7424547B2 (en) File sharing device and inter-file sharing device data migration method
US6988193B2 (en) System and method for creating a definition for a target device based on an architecture configuration of the target device at a boot server
US7127635B2 (en) Method for correcting a program running on a computer system
TWI524205B (zh) 用以在無作業系統服務環境中供應韌體之方法
US7873957B2 (en) Minimizing user disruption during modification operations
US9612919B2 (en) Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets

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