KR20060051932A - 소프트웨어를 실행 동안 업데이트하는 시스템, 방법 및컴퓨터-판독가능 매체 - Google Patents

소프트웨어를 실행 동안 업데이트하는 시스템, 방법 및컴퓨터-판독가능 매체 Download PDF

Info

Publication number
KR20060051932A
KR20060051932A KR1020050092072A KR20050092072A KR20060051932A KR 20060051932 A KR20060051932 A KR 20060051932A KR 1020050092072 A KR1020050092072 A KR 1020050092072A KR 20050092072 A KR20050092072 A KR 20050092072A KR 20060051932 A KR20060051932 A KR 20060051932A
Authority
KR
South Korea
Prior art keywords
service
client
software
running
instance
Prior art date
Application number
KR1020050092072A
Other languages
English (en)
Inventor
스야스 신하
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060051932A publication Critical patent/KR20060051932A/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • 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

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 Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

소프트웨어 또는 데이터 구조를 업데이트하기 위해 클라이언트들의 요구에 대한 서비스가 많은 시간동안 중단되는 것을 피하기 위해, 본 발명의 다양한 실시예는 원래의 소프트웨어 또는 데이터 구조를 업데이트하는 것 대신에, 소프트웨어의 인스턴스 또는 데이터 구조의 인스턴스를 업데이트한다. 이것은 원래의 소프트웨어 또는 데이터 구조가 인터럽션 없이 클라이언트의 요구에 서비스를 제공하게 한다. 업데이트된 인스턴스는 문맥을 손실하지 않고서 클라이언트의 요구에 서비스를 제공하기 시작하는 한편, 원래의 소프트웨어 또는 데이터 구조는 추가적인 동작으로부터 종료된다.
업데이트, 패치, 인스턴스

Description

소프트웨어를 실행 동안 업데이트하는 시스템, 방법 및 컴퓨터-판독가능 매체{UPDATING SOFTWARE WHILE IT IS RUNNING}
도 1은 소프트웨어가 실행되는 동안 그 소프트웨어를 패치하는 다양한 문제점을 나타내는 통상적인 기업 네트워크 시스템을 도시하는 블록도.
도 2는 소프트웨어가 실행될 때 그 소프트웨어를 업데이트하는 예시적인 시스템을 도시하는 블록도.
도 3a는 본 발명의 일 실시예에 따라, 서비스가 실행되는 동안 서비스의 복사본의 업데이트를 지원하기 위해, 복수의 오퍼레이팅 시스템이 실행되게 하는 시스템을 도시하는 블록도.
도 3b는 본 발명의 일 실시예에 따라 서비스를 제어하기 위한 시스템을 도시하는 블록도.
도 3c는 본 발명의 일 실시예에 따라 상태 정보를 포함하는 커스터마이즈가능한 태그-기반의 파일의 예를 도시하는 텍스트 도면.
도 4a 내지 4h는 서비스가 실행되는 동안 서비스를 동적으로 업데이트하기 위한 방법을 도시하는 처리도.
<도면의 주요 부분에 대한 부호의 설명>
202 : 클라이언트
204 : 네트워크
206 : 온라인 서비스 - 업데이트된 서비스
208 : 운영자
312A : 온라인 서비스
312B : 업데이트된 서비스
310A : 제1 게스트 OS - 가상 머신
310B : 제2 게스트 OS - 가상 머신
306 : 가상 서버
304 : 호스트 오퍼레이팅 시스템
302 : 하드웨어
본 발명은 일반적으로 소프트웨어에 관한 것으로서, 특히, 소프트웨어가 실행되는 동안 새로운 특징을 추가하거나 소프트웨어 내의 에러를 정정하기 위해 동적으로 소프트웨어를 업데이트하는 방법에 관한 것이다.
회사와 같은 대기업에서, 컴퓨팅 자원은 기업이 소유하는 컴퓨터 시스템의 네트워크에 의해 상호접속되어 있으며, 이것은 기업의 다양한 컴퓨팅 요구를 충족한다. 이 네트워크는 다양한 지리적 위치들에 걸쳐 있을 수 있다. 기업의 내부 사용자(직원) 뿐만 아니라 외부 클라이언트(고객)도 기업의 컴퓨팅 자원이 쉽게 이 용가능하면서도 매우 안전하기를 요구한다. 실제로, 때때로 이 두가지 요건은 서로 상충한다. 예를 들어, 컴퓨팅 자원을 안전하게 하기 위해서, 컴퓨팅 자원은 종종 보안 패치를 인스톨(install)하기 위해 중단한다. 한편, 컴퓨팅 자원이 연속적인 빈도로 쉽게 이용가능하게 하기 위해, 컴퓨팅 자원은 드물게만 중단되어야 한다. 도 1은 이러한 문제 및 그 외의 문제를 더 상세하게 설명한다.
기업 네트워크(100)는, 사용자가 네트워크(104)를 통해 상호접속되어 있는 공유된 컴퓨팅 자원들에 액세스하는 컴퓨터인 클라이언트(102)를 포함한다. 기업 네트워크(100)의 이 컴퓨팅 자원은 온라인 서비스가 실행되는 서버 A(106)와 같은 하나 이상의 서버에 의해 제공된다. 서버 A(106) 상에서 실행되는 온라인 서비스를 더 안전하게 하기 위해, 기업은 종종, 정책 문제로서, 운영자(110)가 보고되거나 발견된 취약점에 대해 온라인 서비스를 보안 패치파일로 패치하도록 설정한다. 그러한 패치는, 테스트 머신으로서 동작하는 서버 B(108) 상에서 실행되는 온라인 서비스(업데이트된 서비스)의 복사본에 그 패치를 인스톨하고 적용함으로써 수행된다. 운영자(110)는 그 전개 시에, 업데이트된 서비스가 문제를 야기할 가능성이 적을 것을 확실히하기 위해, 기업의 컴퓨팅 정책에 따라 업데이트된 서비스를 검증하고 확인한다. 업데이트된 서비스가 테스트되는 서버 B(108)는 물리적으로, 온라인 서비스가 클라이언트(102)에게 서비스를 제공하고 있는 서버 A(106)와는 다른 머신이다. 업데이트된 서비스가 서버 B(108) 상에서 테스트를 통과한 후에, 운영자(110)는 온라인 서비스가 더 이상 클라이언트(102)에 이용가능하지 않는 소정의 시간 동안, 서버 A(106)를 불러냄으로써 그 패치를 전개한다. 그 후, 그 패치는 온라인 서비스에 적용되고, 그 후에, 서버 A(106)는 다시 클라이언트(102)에게 서비스를 제공하기 위해 복구된다.
패치를 인스톨하기 위해 서버 A(106)를 불러내는 것과 관련한 문제는, 서버 A(106)가 불려질 때 서비스 문맥이 손실되어 비활성 상태로 남아있는다는 것이다. 서비스 문맥은 클라이언트(102)가 서버 A(106) 상에서 실행되는 온라인 서비스에 요구 또는 임의의 정보를 제공한 상태를 말한다. 클라이언트(102)는 온라인 서비스가 그 요구에 서비스를 제공하거나 그 제공된 정보에 관한 소정의 계산을 제공할 것을 기대한다. 온라인 서비스가 불려질 때, 그러한 서비스 문맥은 파괴된다. 서버 A(106)가 패치된 온라인 서비스와 함께 다시 불려질 때, 다수의 서비스가 서비스 문맥을 영구적으로 저장하지 않기 때문에, 또는 서버 A(106)의 리부팅에 의해 야기된 지연이 너무 길어서 클라이언트(102)가 수용할 수 없기 때문에, 클라이언트(102)가 이전에 무엇을 제공하였는지를 서버 A(106)가 기억할 수 있는 가능성은 적다. 예를 들어, 클라이언트(102)는 서버 A(106)가 불려지기 바로 전에 온라인 서비스에 검색 질의를 전송했을 수 있다. 온라인 서비스가 패치와 함께 다시 활성이 될 때, 이전 질의에 대한 응답은 온라인 서비스에 의해 제공되지 않을 것이기 때문에, 클라이언트(102)를 혼동시킨다. 비용이 많이 드는 것이지만 다른 해결책으로는, 서버(106)를 반영하기 위해 추가적인 프로세싱 능력을 추가함으로써 서버 내에 리던던시(redundancy)가 구축된 클러스터-기반의 서버 플랫폼 상에서 온라인 서비스를 실행하는 것이 있다. 그러나, 이것은 장치를 마련하는 비용뿐만 아니라 장치를 운영하는 비용도 증가 시킨다.
매우 안전한 소프트웨어의 늘어나는 요건을 만족시키는 한편, 매우 안전한 소프트웨어를 사용자에게 쉽게 이용가능하게 만드는 문제점에 대한 해결책 없이, 사용자는 결국 요구된 컴퓨팅 경험을 제공하기 위해 더 이상 기업 네트워크(100)를 신뢰할 수 없고, 이것은 시장에서 기업 네트워크(100)에 대한 요구가 감소하게 한다. 따라서, 소프트웨어를 동적으로 업데이트하는 한편, 상술한 문제점 및 기존 시스템에 관한 다른 문제점을 피하거나 감소시키기 위한 시스템, 방법 및 컴퓨터-판독가능 매체가 필요하다.
본 발명에 따라, 소프트웨어를 동적으로 업데이트하기 위한 시스템, 방법 및 컴퓨터-판독가능 매체가 제공된다. 본 발명의 시스템 형태는 클라이언트들의 요구에 서비스를 제공하기 위한 서버로서 동작하는 컴퓨터 시스템을 포함한다. 컴퓨터 시스템은 클라이언트의 요구에 서비스를 제공하기 위한 컴퓨터 시스템 상에서 실행되는 소프트웨어를 포함하는데, 이 소프트웨어는 클라이언트에 의해 제공된 문맥을 수신할 수 있다. 컴퓨터 시스템은 또한, 소프트웨어의 새로운 릴리스로 업데이트된 소프트웨어의 인스턴스를 포함한다. 소프트웨어의 인스턴스는, 테스트가 수행되고 그 후에 소프트웨어의 인스턴스가 실행되며 소프트웨어가 클라이언트에 의해 제공된 문맥을 손실하지 않고서 종료할 수 있게 하기 위해, 컴퓨터 시스템 상에서 소프트웨어와 동시에 실행된다.
본 발명의 다른 양태에 따르면, 본 발명의 다른 시스템 형태는 하나의 서비 스 모드를 다른 서비스 모드로 변환하는 것을 제어하기 위한 소프트웨어(컴퓨터 시스템에서 실행됨)를 포함한다. 이 소프트웨어는 클라이언트의 요구에 서비스를 제공하기 위한 서비스를 포함한다. 서비스는 복수의 모드 중, 서비스가 핸드오프 락(handoff lock)을 획득하고 서비스의 상태를 익스포트(export)하게 하는 모드를 포함한다. 소프트웨어는 특정 모드에 관련된 할당된 콜백(callback) 루틴을 호출함으로써 서비스가 특정 모드로 진입하게 하기 위한 서비스 제어 관리자를 포함한다. 하나의 특정 모드로는, 서비스가 핸드오프 락을 획득하고 서비스의 상태를 익스포트하게 하는 커스터마이즈가능한(customizable) 모드가 있다.
본 발명의 또 다른 양태에 따르면, 본 발명의 컴퓨터-판독가능 매체 형태는 컴퓨팅 시스템이 서비스의 상태를 익스포트하는 데 사용하되기 위한 데이터 구조가 저장되어 있는 컴퓨터-판독가능 매체를 포함한다. 데이터 구조는 클라이언트에 서비스를 제공할 때 서비스에 의해 생성된 내부 문맥에 속하는 정보를 나타내는 서비스 내부 문맥 태그를 포함한다. 데이터 구조는 또한, 클라이언트가 서비스를 수행하기를 요구할 때 그 클라이언트에 의해 제공된 외부 문맥에 속하는 정보를 나타내는 클라이언트 외부 문맥 태그를 포함한다.
본 발명의 또 다른 양태에 따르면, 컴퓨터 시스템 상에서 구현된 방법은 컴퓨터 시스템 상에서 실행되는 제1 게스트 오퍼레이팅 시스템 상에서 실행중인 제1 서비스에 대한 업데이트를 수신하는 단계를 포함하는데, 이 때, 제1 서비스는 클라이언트의 요구를 수행한다. 이 방법은 또한, 제1 서비스의 상태를 포함하는 파일을 생성하기 위해 제1 서비스에 의해 상태 핸드오프를 수행하는 단계를 포함한다. 이 파일은 컴퓨터 시스템 상에서 실행되는 제2 게스트 오퍼레이팅 시스템 상에서 실행중인 제1 서비스의 인스턴스에 익스포트된다. 이 방법은 또한, 클라이언트의 요구에 서비스를 제공하기 위해, 수신된 업데이트에 의해 업데이트된 제1 서비스의 인스턴스에 의해 실행되고, 클라이언트에 의해 제1 서비스에 제공된 문맥을 손실하지 않고서 제1 서비스를 종료하는 단계를 포함한다.
본 발명의 상술된 양태 및 다수의 부수적인 장점은 첨부 도면과 함께 다음의 상세한 설명을 참조함으로써 더 쉽게 인지되고 마찬가지로 더 잘 이해될 것이다.
소프트웨어 또는 데이터 구조를 업데이트하기 위해 클라이언트들의 요구에 대한 서비스가 많은 시간동안 중단되는 것을 피하기 위해, 본 발명의 다양한 실시예는 원래의 소프트웨어 또는 데이터 구조를 업데이트하는 것 대신에, 소프트웨어의 인스턴스 또는 데이터 구조의 인스턴스를 업데이트한다. 이것은 원래의 소프트웨어 또는 데이터 구조가 인터럽션 없이 클라이언트의 요구에 서비스를 제공하게 한다. 업데이트된 소프트웨어의 인스턴스 또는 데이터 구조의 인스턴스가 검증 및 확인에 만족스럽게 통과했을 때, 본 발명의 다양한 실시예는 원래의 소프트웨어 또는 데이터 구조가 순간적으로 중지하여 자신의 상태를 업데이트된 인스턴스에게 익스포트하게 한다. 업데이트된 인스턴스는 문맥을 손실하지 않고서 클라이언트의 요구에 서비스를 제공하기 시작하는 한편, 원래의 소프트웨어 또는 데이터 구조는 추가적인 동작으로부터 종료된다. "소프트웨어"라는 용어는 어플리케이션 모드로 실행되는 서비스, 특권 모드로 실행되는 서비스, 또는 어플리케이션 모드 또는 특권 모드(예를 들어, 코드 프레그먼트)로 실행되는 서비스의 일부분의 포함을 의미 한다.
서비스가 실행되는 동안 이 서비스가 동적으로 업데이트될 수 있는 시스템(200)이 도 2에 도시된다. 시스템(200)은 네트워크(204)를 통해 서버(206)와 통신하는 클라이언트(202)를 포함한다. 클라이언트(202) 및 서버(206)는 함께, 클라이언트/서버 아키텍처라고 불리는 일종의 컴퓨터 네트워크 아키텍처를 형성한다. 클라이언트(202) 및 서버(206)로부터 구성된 클라이언트/서버 아키텍처는 논쟁된 지능을 사용하는 배열이며, 서버(206)와 각각의 클라이언트(202) 둘 다를 지능적인 프로그램가능한 장치로서 다루어 각각의 완전한 컴퓨팅 능력을 활용한다. 이것은 2개의 구분된 컴포넌트, 즉, "프론트-엔드" 클라이언트(202)와 "백-엔드" 서버(206) 사이에서 검색 프로세스와 같은 컴퓨팅 태스크의 프로세싱을 분할함으로써 행해진다. (더 오래된 아키텍처에서 발견된 "덤(dumb)" 터미널에 대비하여) 그 자체가 완전한 독립형 개인용 컴퓨터인 클라이언트(202)는 컴퓨팅 태스크를 개시하기 위한 전력 및 특징의 완전한 범위를 그것의 사용자에게 제공한다. 다른 개인용 컴퓨터, 미니-컴퓨터 또는 메인프레임일 수 있는 서버(206)는 데이터 저장장치, 데이터 관리, 클라이언트들 사이에서 공유하는 정보, 복잡한 네트워크 운영, 보안 특징, 및 클라이언트(202)와 같은 클라이언트에 의해 요구된 다양한 컴퓨팅 태스크에 서비스를 제공하는 것과 같은 시분할 환경에서 미니컴퓨터 및 메인프레임에 의해 제공된 전통적인 능력을 제공함으로써 클라이언트(202)를 강화한다.
네트워크(204)는 통신 설비에 의해 접속되어 있는 컴퓨터 그룹 및 그에 관련된 장치이다. 네트워크(204)는 동축 케이블 또는 다른 케이블과 같은 영구 접속 부, 또는 전화 또는 다른 통신 링크를 통해 만들어진 임시 접속부를 포함할 수 있다. 네트워크(204)는 몇몇의 컴퓨터, 프린터 및 다른 장치로 구성된 LAN(근거리 네트워크) 만큼 작을 수도 있고, 방대한 지리적 영역(WAN 또는 광역 네트워크)을 통해 분산된 다수의 크고 작은 컴퓨터로 구성될 수도 있다. WAN의 한 예시적인 구현예는, TCP/IP 스위트의 프로토콜을 사용하여 서로 통신하는 네트워크 및 게이트웨이의 월드와이드 컬렉션인 인터넷이다. 인터넷의 중심부는 데이터 및 메시지를 라우팅하는 수천 개의 상업적, 행정적, 교육적 및 그 외의 컴퓨터 시스템을 포함하는 주요 노드들 또는 호스트 컴퓨터들 사이의 고속 데이터 통신선의 백본(backbone)이다. 하나 이상의 인터넷 노드는, 단일의 컴퓨터 또는 네트워크가 전체 인터넷을 제어하지 않기 때문에, 인터넷을 위험하게 하거나 인터넷 상의 통신을 멈추게하지 않고서 오프라인할 수 있다.
본 발명의 다양한 실시예를 사용하여, 온라인 서비스는 가상으로 업데이트되어 서버(206)를 불러내지 않고서 업데이트된 서비스를 생성할 수 있다. 따라서, 온라인 서비스가 인터럽션 없이 클라이언트(202)에게 서비스를 계속해서 제공하게 한다. 운영자(208)는 온라인 서비스가 클라이언트(202)에 의해 요구된 컴퓨팅 태스크를 계속해서 수행하는 동안, 업데이트된 서비스를 테스트할 수 있다. 운영자(208)가 업데이트된 서비스가 전개되는 경우 시스템(200)에 문제를 일으킬 가능성이 적다는 것에 만족할 때, 운영자(208)는 업데이트된 서비스가 클라이언트(202)의 요구에 서비스를 제공하기 시작하게 할 수 있는 한편, 온라인 서비스는 클라이언트(202)가 변경이 있었다는 것을 인식하지 못한 채로 언인스톨(uninstall)된다. 본 발명의 다양한 실시예는 온라인 서비스에 의해 저장된 상태가 클라이언트(202)에 의해 의존된 문맥을 손실하지 않고서 그 업데이트된 서비스로 균열없이 변환되게 한다.
본 발명의 다양한 실시예의 가상 업데이트 능력을 이용하여, 운영자(208)는 오퍼레이팅 시스템의 인스턴스에서 실행중인 온라인 서비스의 새로운 인스턴스를 생성하는데, 이것 자체는 온라인 서비스, 및 온라인 서비스가 실행중인 오퍼레이팅 시스템에 병렬로 실행된다. 운영자(208)는 온라인 서비스(업데이트된 서비스)의 인스턴스에 업데이트를 인스톨(install) 및 적용한다. 그 후, 운영자(208)는 테스트하고, 이 테스트가 성공적이면 운영자(208)는 업데이트된 서비스가 시스템(200)에서 전개될 수 있다고 결정한다. 그 후, 운영자(208)는 온라인 서비스가 온라인 서비스의 인스턴스에 문맥 핸드오프를 수행하게 한다. 문맥 핸드오프가 완료된 후, 업데이트된 서비스는 문맥 핸드오프 바로 전에 온라인 서비스가 그만 둔 지점에서 실행하기 시작한다.
도 3a는 온라인 서비스 및 업데이트된 서비스 둘 다가 실행될 수 있는 서버(206)를 더 상세하게 도시한다. 서버(206)는 중앙 처리 장치(도시되지 않음) 및 메모리뿐만 아니라 프린터, 모뎀 및 입력 장치와 같은 주변 장치도 포함하는 서버(206)의 물리적인 컴포넌트인 하드웨어(302)를 포함한다. 하드웨어(302)의 상단에서는, 중앙 처리 장치 타임, 메모리, 디스크 공간 및 주변 장치와 같은 상술된 하드웨어 자원의 할당 및 사용을 제어하는 호스트 오퍼레이팅 시스템(304)이 실행된다. 호스트 오퍼레이팅 시스템(304)은 게스트 오퍼레이팅 시스템 및 그 외의 어플 리케이션이 의존하는 핵심 소프트웨어이다. 호스트 오퍼레이팅 시스템(304)에서는, 가상 머신(310A, 310B)을 관리하는 가상 서비스를 제공하고 하드웨어 에뮬레이션에 소프트웨어 인프라구조를 제공하는 가상 서버(306)가 실행된다.
가상 머신(310A, 310B)은 각각의 가상 머신(310A, 310B)에 대해 가상 하드웨어로서 동작하는 가상화된 장치들의 집합을 포함한다. 제1 및 제2 게스트 오퍼레이팅 시스템은, 다양한 명령어 및 통신이 결국 하드웨어(302)에 의해 수행되는 적절한 하드웨어 명령어로 번역될 가상 서버(306)에 의해 시뮬레이트된다는 완전한 인식 없이, 가상 머신(310A, 310B)에서 실행된다. 가상 서버(306)는 필수적으로, 바람직하게 호스트 오퍼레이팅 시스템(304)의 특권 모드로 실행되는 멀티-스레드 서비스이며, 각각의 가상 머신(310A, 310B)은 자신의 실행 스레드를 실행한다. 호스트 오퍼레이팅 시스템(304)이 중앙 처리 장치 자원 및 시간과 장치 드라이버의 스케줄링을 제공할 뿐만 아니라 하드웨어(302)로의 액세스를 제공하지만, 가상 서버(306)는 게스트 오퍼레이팅 시스템이 실행될 수 있는 서로 다른 머신들{가상 머신(310A, 310B)}의 착각을 발생시키는 소프트웨어 인프라구조를 유지한다.
온라인 서비스(312A)는 제1 게스트 오퍼레이팅 시스템 상에서 실행되며, 제1 게스트 오퍼레이팅 시스템은 가상 머신(310A) 상에서 실행된다. 업데이트된 온라인 서비스의 인스턴스는 업데이트된 서비스(312B)이며, 이것은 제2 게스트 오퍼레이팅 시스템 상에서 실행되고, 제2 게스트 오퍼레이팅 시스템은 가상 머신(310B) 상에서 실행된다. 가상화 기술을 이용하여, 운영자(208)는 온라인 서비스(312A)가 클라이언트(202)와 통신하기 위해 의존하는 동일한 하드웨어(302) 상에서 그 업데 이트된 서비스(312B)를 테스트할 수 있다. 본 발명의 다양한 실시예는 내부 문맥 및 외부 문맥을 포함한 온라인 서비스(312A)의 상태가 제1 게스트 오퍼레이팅 시스템에 의해 캡처되게 하고, 가상 기계들(310A, 310B) 간의 적합한 내부 프로세스 통신 설비(예를 들어, 파이프 또는 큐)를 통해 그러한 상태를 제2 게스트 오퍼레이팅 시스템에 전송한다. 그 후, 업데이트된 서비스(312B)의 상태는 온라인 서비스의 상태로 설정되어, 온라인 서비스(312A)가 실행을 종료하고 업데이트된 서비스(312B)의 실행이 시작될 때 어떤 문맥도 손실되지 않도록 한다.
도 3b는 서비스(318)의 모드일 수 있는 인스톨 모드, 시작 모드, 중지 모드, 정지 모드, 언인스톨 모드 등과 같은 다양한 모드를 관리하는 서비스 제어 관리자(316)의 사용을 도시한다. 각각의 모드에는 서비스 제어 관리자(316)에 의해 호출될 수 있는 할당가능한 콜백(callback) 루틴이 관련된다. 서비스 제어 관리자(316)가 콜백 루틴들 중 하나를 사용하여 서비스를 호출한 후, 서비스에 의해 각각의 모드가 입력된다. 서비스 제어 관리자(316)는 다른 적합한 제어 메커니즘들 중 콘솔(314) 또는 자동 스크립트(도시되지 않음)에 의해 제어될 수 있다. ONPAUSE() 루틴(318A), ONHANDOFF() 루틴(318B) 및 ONSTOP() 루틴(318C)과 같은 서비스(318)에 관련된 콜백 루틴의 일부분이 설명된다. 예를 들어, 서비스 제어 관리자(316)가 ONPAUSE() 루틴(318A)를 호출할 때, 서비스(318)는 ONPAUSE() 루틴(318A)에 의해 지정된 다양한 명령어가 실행되는 중지 모드{클라이언트(202)로부터 추가적인 요구를 수신하는 것을 중단}로 진입한다.
일 실시예에서, 서비스 제어 관리자(316)가 어떤 임의의 콜백 루틴이 커스텀 명령에 관련될 수 있는 커스텀 명령을 호출할 수 있으면, 핸드오프 모드를 포함하도록 서비스(318)의 다양한 모드를 확장하기 위해 ONHANDOFF() 루틴(318B)이 그 커스텀 명령에 관련될 수 있다. 서비스(318)가 핸드오프 모드에 집합하면, ONHANDOFF() 루틴(318B)에 관한 명령어가 실행되어, 업데이트된 서비스(312B)로의 도입을 위해 제1 서비스(312A)의 상태를 익스포트할 수 있다. 다른 실시예에서, 커스텀 명령을 사용하는 것 대신에, 새로운 핸드오프 상태가 서비스(318)와 같은 서비스의 일부를 구성할 수 있으면, ONHANDOFF() 루틴(318B)은 그 모드에 관련될 수 있다. 바람직하게, 그 특정 예에서, ONHANDOFF() 루틴(318B) 내의 명령어들 중 하나는, 서비스를 온라인 서비스(312A)로부터 업데이트된 서비스(312B)로 변환하는 준비가 일어나는 동안, 클라이언트(202)로부터의 추가적인 요구의 수신을 피하기 위해 서비스가 중지하게 한다.
도 3c는 상술된 핸드오프 모드 동안 업데이트된 서비스(312B)에 익스포트될 온라인 서비스(312A)의 상태를 포함하는 파일을 도시한다. 이 파일은 임의의 적합한 언어로 작성될 수 있다. 하나의 적합한 언어는 XML(Extensible Markup Language)과 같은 커스터마이즈가능한 태그-기반의 언어이다. 도 3c에 도시된 파일의 생성을 유도하는 다음의 예를 생각해보자. 온라인 서비스(312A)는 포트(5452)에서 클라이언트(202)로부터의 요청을 듣는다. 클라이언트(202)는 문자 스트링("hello world")을 온라인 서비스(312A)에 전송한다. 온라인 서비스(312A)는 그 스트링, 현재의 시간 스탬프(12:52), 클라이언트 IP 주소(16.12.10.10) 및 클라이언트 포트(5452)를 클라이언트 외부 문맥으로서 저장한다. 초기에, 온라인 서비 스(312A) 내에서, 워커 스레드(worker thread)는 매 35초마다 깨어나, 클라이언트 문맥의 리스트를 조사한다. 클라이언트 문맥이 소정의 시간보다 더 긴 시간 동안 저장되어 있었으면, 워커 스레드는, 이전에 클라이언트(202)에 의해 온라인 서비스(312A)에 제공된 스트링 "hello world"를 갖는 패킷을 클라이언트(202)에 전송한다.
온라인 서비스(312A)의 내부 문맥뿐만 아니라 클라이언트의 외부 문맥 둘 다는 도 3c에 도시된 파일 내로 익스포트될 수 있다. 파일은 시작 태그 <SERVICE_INTERNAL_CONTEXT>(320A) 및 그것의 짝 종료 태그 </SERVICE_INTERNAL_CONTEXT>(320B)를 포함한다. 태그(320A, 320B) 내에는 태그 <WORKER_THREAD_SLEEP_TIME>(322A) 및 그것의 짝 종료 태그 </WORKER_THREAD_SLEEP_TIME>(322B)가 포함된다. 워커 스레드의 수면 시간을 나타내는 숫자 값 "35"이 라인(324) 상에서 표시된다. 파일은 또한, 시작 태그 <CLIENT_EXTERNAL_CONTEXT>(326A) 및 그것의 짝 종료 태그 </CLIENT_EXTERNAL_CONTEXT>(326B)를 포함한다. 태그(326A, 326B) 사에에서는, 또다른 시작 태그 <CONTEXT>(328A) 및 그것의 짝 종료 태그 </CONTEXT>(328B)가 내포된다. 태그 (328A, 328B) 사이에서는, 태그 <IP> 및 그것의 짝 종료 태그 </IP> 가 라인(330)에서 포함된다. IP 주소 16.12.10.10은 태그 <IP>와 그것의 종료 태그 </IP> 사이에 둘러싸여 진다. 라인(332)은 태그 <PORT>와 그것의 짝 종료 태그 </PORT> 사이에 포트 번호 5452를 표시한다. 시간 "12:53"은 라인(334)에서 태그 <TIMESTAMP>와 그것의 짝 종료 태그 </TIMESTAMP> 사이에 캡처된다. 라인(336)은 태그 <STRING>과 그것의 짝 종료 태그 </STRING> 사이에 포함된 클라이언트(202)에 의해 제공된 스트링 "hello world"을 포함한다. 상술된 파일에 관련된 상세사항은, 파일은 서비스의 내부 문맥 및 외부 문맥 둘 다를 캡처하는 개념을 설명하기 위해 제공되고, 서비스의 상태를 캡처하는 것을 도 3c에 도시된 특정 유형의 정보로 제한하려는 것이 아니라는 점에서 이해되어야 한다.
도 4a 내지 4h는 서비스가 실행되는 동안 그 서비스를 동적으로 업데이트하기 위한 방법(400)을 도시한다. 명료성의 목적상, 방법(400)에 대한 다음의 설명은 클라이언트(202) 및 서버(206)(도 2); 하드웨어(302), 호스트 오퍼레이팅 시스템(304), 가상 서버(306), 가상 머신(310A, 310B), 온라인 서비스(312A) 및 업데이트된 서비스(312B)(도 a); 및 도 3c에 도시된 커스터마이즈가능한 태그-기반의 파일과 같은 시스템(200)에 관하여 도시된 다양한 구성요소들을 참조한다. 시작 블록으로부터, 방법(400)은 연속 터미널("터미널 A") 및 종료 터미널("터미널 B") 사이에 정의된 방법 단계의 집합(402)으로 진행된다. 방법 단계의 집합(402)은 게스트 오퍼레이팅 시스템 상에서 실행되는 온라인 서비스(312A)와 같은 제1 서비스에 대한 업데이트가 수신되는 것을 설명한다.
다음의 몇몇 단계에서, 본 발명의 다양한 실시예가 실행되게 하기 위해 가상화 기술의 개시가 설명된다. 터미널 A(도 4b)로부터, 방법(400)은 호스트 오퍼레이팅 시스템(304)을 개시한다. 블록(408)을 참조한다. 블록(410)에서, 방법은 호스트 오퍼레이팅 시스템(304)에서 실행되는 가상 서버(306)를 개시한다. 방법(400)은 방법이 가상 머신(310A)과 같은 제1 가상 머신, 및 제1 가상 머신에 특정 적인 제1 가상화된 장치들의 집합을 개시하는 블록(412)으로 진행된다. 방법(400)은 제1 가상 머신에서 실행되는 제1 게스트 오퍼레이팅 시스템을 개시한다. 블록(414)을 참조한다. 블록(416)에서, 방법은 클라이언트(202)와 같은 클라이언트에 서비스를 제공하기 위해 제1 게스트 오퍼레이팅 시스템 상에서 실행되는 온라인 서비스(312A)와 같은 제1 서비스를 개시한다. 블록(418)에서, 클라이언트는 (요구, 또는 요구에 관한 정보와 같은) 외부 문맥을 제1 서비스에 전송한다. 그 후, 방법(400)은 다른 연속 터미널("터미널 A1")에서 진행된다.
터미널 A1(도 4c)로부터, 방법(400)은 온라인 서비스(312A)와 같은 제1 서비스가 다른 클라이언트의 외부 문맥으로부터 분리된 한 클라이언트에 대한 외부 문맥을 저장하는 블록(420)으로 진행된다. 도 3c의 태그(328A, 328B)의 컨텐츠를 참조한다. 다음으로, 제1 서비스는 클라이언트의 서비스에 관련된 내부 문맥을 생성 및 저장한다. 블록(422)을 참조한다. 또한, 태그(320A, 320B)의 컨텐츠도 참조한다. 블록(424)에서, 제1 서비스에 대한 업데이트의 이용가능성에 대한 통지가 수신된다. 그 후, 방법(400)은 그것이 가상 머신(310B)과 같은 제2 가상 머신, 및 제2 가상 머신에 특정적인 제2 가상화된 장치들의 집합을 개시하는 블록(426)으로 진행된다. 방법은 제2 가상 머신에서 실행되는 제2 게스트 오퍼레이팅 시스템을 개시한다. 블록(428)을 참조한다. 블록(430)에서, 방법은 업데이트를 인스톨하고, 제1 서비스의 업데이트된 복사본{업데이트된 서비스(312B)와 같은 제2 서비스}을 실행한다. (바람직하게, 제2 서비스는 제1 서비스와 동시에 실행된다) 그 후, 방법(400)은 또 다른 연속 터미널("터미널 A2")에서 진행된다.
터미널 A2(도 4d)로부터, 방법(400)은 제2 게스트 오퍼레이팅 시스템 상에서 실행되는 제2 서비스가 운영자(208) 등에 의해 테스트되는 블록(432)으로 진행된다. 테스트는 제2 서비스가 전개될 준비가 되어 있는지를 결정하는 결정 블록(434)에서 수행된다. 결정 블록(434)에서 테스트에 대한 대답이 아니오이면, 방법(400)은 상술된 프로세싱 단계들이 반복되는 블록(432)으로 되돌아간다. 결정 블록(434)에서 테스트에 대한 대답이 예이면, 방법(400)은 종료 터미널 B로 진행된다.
터미널 B(도 4a)로부터, 방법(400)은 연속 터미널("터미널 C")과 종료 터미널("터미널 D") 사이에서 정의된 방법 단계의 집합(404)으로 진행된다. 방법 단계의 집합(404)은 제1 서비스가 상태 핸드오프를 제1 서비스의 인스턴스{제2 서비스 또는 업데이트된 서비스(312B)}에 수행하게 한다. 터미널 C(도 4d)로부터, 방법(400)은 제1 서비스가 핸드오프 모드로 진입하게 하는 블록(436)으로 진행된다. 방법은 제1 서비스가 임의의 추가적인 클라이언트 요구 또는 외부 문맥을 수신하는 것으로부터 중지하게 한다. 블록(438)을 참조한다. {일 예시적인 방법은 서비스 제어 관리자(316)가 ONPAUSE() 루틴(318A)을 호출하게 하는 것이다.} 그 후, 방법(400)은 다른 연속 터미널("터미널 C1")로 진행된다.
터미널 C1(도 4e)으로부터, 방법은 그것의 모드가 핸드오프 동안 변경되지 않을 것을 보장하기 위해, 제1 서비스에 대해 글로벌 락(lock)인 핸드오프 락을 획득한다. 블록(440)을 참조한다. 블록(442)에서, 방법은 제2 서비스에 양도될 각각의 클라이언트의 외부 문맥을 발견한다. 바람직하게, 방법은 제2 서비스에 익스 포트될 필요가 있는 임의의 클라이언트 외부 문맥을 발견해야 한다. 방법(400)은 제2 서비스에 양도될 제1 서비스의 내부 문맥을 발견하는 블록(444)으로 진행된다. 몇몇 경우에, 그것은 다수의 워커 스레드, 내부 큐 및 서비스 관리 데이터 구조와 같은 내부 상세사항을 포함할 수 있다. 방법은 커스터마이즈가능한 태그-기반의 파일에 외부 문맥 및 내부 문맥(총체적으로, 상태)을 익스포트한다. 블록(446)을 참조한다. (단지 예시의 목적상, 도 3c에 도시된 파일은 일례이다.) 다음으로, 블록(448)에서, 방법은 제1 서비스 상의 기존의 네트워크 접속부를 제2 서비스에 맵핑하기 위해 제1 서비스의 네트워크 스택을 변경한다. {바람직하게, 가상 서버(306) 및 가상 머신(310A, 310B)을 포함하는 가상화 설비는 어플리케이션 프로그래밍 인터페이스를 익스포트하여, 기존의 네트워크 접속부를 재맵핑한다.} 그 후, 방법(400)은 또 다른 연속 터미널("터미널 C2")에서 진행된다.
터미널 C2(도 4f)로부터, 방법(400)은 제2 서비스가 클라이언트로부터 요구를 수신할 수 있게 하기 위해, 제1 서비스의 청취 포트를 제2 서비스의 청취 포트로 리디렉션(redirection)하는 블록(450)으로 진행된다. 파이프 또는 큐와 같은 내부 프로세스 통신을 통해, 제1 서비스는 제2 서비스의 상태를 플러시(flush)하기 위해, 제2 게스트 오퍼레이팅 시스템 상에서 실행되는 서비스 제어 관리자(316)와 같은 서비스 제어 관리자를 요구한다. 블록(452)을 참조한다. {바람직하게, 이것은 제2 서비스의 ONSTOP() 루틴(318C)을 호출함으로써 성취될 수 있다.} 다음으로, 블록(454)에서, 제1 서비스는 제2 서비스가 모드를 수신하는 문맥으로 변환되게 하기 위해, 제2 게스트 오퍼레이팅 시스템 상에서 실행되는 서비스 제어 관리자 를 요구한다. 그 후, 방법(400)은 제1 서비스가 제2 서비스에게 제1 서비스의 상태를 포함한 커스터마이즈가능한 태그-기반의 파일을 양도하는 블록(456)으로 진행된다. 그 후, 방법(400)은 또 다른 연속 터미널("터미널 C3")로 진행된다.
터미널 C3(도 4g)으로부터, 제2 서비스는 커스터마이즈가능한 태그-기반의 파일을 수신하고, 스스로를 커스터마이즈가능한 태그-기반의 파일에 의해 지정된 상태로 초기화한다. 블록(460)을 참조한다. (바람직하게, 제2 서비스는 네트워크 인터페이스를 바인딩하는 네트워크 프로토콜의 효과적인 초기화를 위해 더 낮은 네트워크 계층에서 다양한 데이터 구조를 초기화한다.) 제2 서비스가 초기화를 완료했는지를 결정하는 결정 블록(462)에서 테스트가 수행된다. 결정 블록(462)에서 테스트에 대한 대답이 아니오이면, 방법(400)은 상술된 프로세싱 단계들이 반복되는 블록(460)으로 되돌아간다. 이와 달리, 결정 블록(462)에서 테스트에 대한 대답이 예이면, 제2 서비스는 이 제1 서비스에게 초기화가 성공적이었음을 통지한다. 블록(464)을 참조한다. 다음으로, 블록(466)에서, 제1 서비스는 동작을 시작하기 위해 제2 서비스에게 메시지를 전송한다. 그 후, 방법(400)은 또 다른 연속 터미널("터미널 C4")로 진행된다.
터미널 C4(도 4h)로부터, 방법(400)은 제2 서비스가 긍정응답(acknowledge)하였는지를 결정하기 위해 테스트가 수행되는 결정 블록(468)으로 진행된다. 결정 블록(468)에서 테스트에 대한 대답이 아니오이면, 방법(400)은 대답이 예일 때까지 반복한다. 결정 블록(468)에서 테스트에 대한 대답이 예이면, 제1 서비스는 제1 서비스의 업데이트가 성공적이었음을 나타낸다. 블록(470)을 참조한다. 블록 (472)에서, 제1 서비스는 핸드오프 락을 릴리스한다. 그 후, 방법(400)은 제1 서비스가 언인스톨되는 것에 대한 준비로 추가적인 실행으로부터 정지하게 한다. 블록(474)을 참조한다. {바람직하게, 방법은 서비스 제어 관리자(316)가 ONSTOP() 루틴(318C), 및 제1 서비스의 언인스톨을 위한 다른 루틴을 호출하게 한다.} 그 후, 제1 서비스는 언인스톨된다. 블록(476)을 참조한다. 그 후, 방법(400)은 종료 터미널 D로 진행된다.
종료 터미널 D(도 4a)로부터, 방법(400)은 연속 터미널("터미널 E")과 다른 연속 터미널("터미널 F") 사이에서 정의된 방법 단계들의 집합(406)으로 진행된다. 방법 단계들의 집합(406)은 업데이트로 수정된 제1 서비스의 인스턴스{제2 서비스 또는 업데이트된 서비스(312B)}가 제1 서비스의 클라이언트를 실행하고 그것에 서비스를 제공하게 한다. 그 후, 방법(400)은 실행을 종료한다.
본 발명의 바람직한 실시예가 예시되고 설명되었지만, 본 발명의 취지 및 범주를 벗어나지 않고서 다양한 변경이 여기에 행해질 수 있음을 이해할 것이다. 배제적인 속성 또는 권리가 주장되는 본 발명의 실시예는 다음의 청구범위에 의해 정의된다.
본 발명은 서비스가 실행되는 동안 이 서비스가 동적으로 업데이트될 수 있는 시스템을 제공한다.

Claims (20)

  1. 클라이언트의 요구에 서비스를 제공하기 위한 서버로서 동작하는 컴퓨터 시스템으로서,
    클라이언트의 요구에 서비스를 제공하기 위한 상기 컴퓨터 시스템 상에서 실행되는 소프트웨어 - 상기 소프트웨어는 상기 클라이언트에 의해 제공된 문맥을 수신할 수 있음 - ; 및
    상기 소프트웨어의 새로운 릴리스로 업데이트된 상기 소프트웨어의 인스턴스 - 상기 소프트웨어의 인스턴스는, 테스트가 수행되고 그 후에 상기 소프트웨어의 인스턴스가 실행되며 상기 소프트웨어가 상기 클라이언트에 의해 제공된 문맥을 손실하지 않고서 종료할 수 있게 하기 위해, 컴퓨터 시스템 상에서 상기 소프트웨어와 동시에 실행됨 -
    를 포함하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 소프트웨어는 제1 게스트 오퍼레이팅 시스템 상에서 실행되고, 상기 소프트웨어의 인스턴스는 제2 게스트 오퍼레이팅 시스템 상에서 실행되는 컴퓨터 시스템.
  3. 제2항에 있어서,
    상기 제1 게스트 오퍼레이팅 시스템은 제1 가상 머신 상에서 실행되고, 상기 제2 게스트 오퍼레이팅 시스템은 제2 가상 머신 상에서 실행되는 컴퓨터 시스템.
  4. 제3항에 있어서,
    상기 제1 게스트 오퍼레이팅 시스템 및 상기 제2 게스트 오퍼레이팅 시스템은 하드웨어의 에뮬레이션을 제공하는 가상 서버에 의해 관리되는 컴퓨터 시스템.
  5. 제4항에 있어서,
    상기 가상 서버는 하드웨어와 직접 통신하는 호스트 오퍼레이팅 시스템에서 서비스로서 실행되는 컴퓨터 시스템.
  6. 컴퓨터 시스템에서 실행될 때, 하나의 서비스 모드를 다른 서비스 모드로 변환하는 것을 제어하기 위한 소프트웨어로서,
    클라이언트의 요구에 서비스를 제공하기 위한 서비스 - 상기 서비스는 복수의 모드들 중, 상기 서비스가 핸드오프 락(handoff lock)을 획득하고 상기 서비스의 상태를 익스포트(export)하게 하는 하나의 모드를 포함함 - ; 및
    특정 모드에 관련된 할당된 콜백 루틴을 호출함으로써 상기 서비스가 상기 특정 모드로 진입하게 하기 위한 서비스 제어 관리자 - 상기 특정 모드는 상기 서비스가 핸드오프 락을 획득하고 상기 서비스의 상태를 익스포트하게 하는 커스터마이즈가능한(customizable) 모드를 포함함 -
    를 포함하는 소프트웨어.
  7. 제6항에 있어서,
    상기 서비스의 상태를 수신하는 상기 서비스의 인스턴스를 더 포함하고,
    상기 서비스의 인스턴스는, 새로운 특징을 추가하거나 상기 서비스 내의 에러를 정정하기 위해 상기 서비스의 새로운 릴리스에 의해 업데이트되는 소프트웨어.
  8. 제7항에 있어서,
    상기 모드는, 상기 서비스가 클라이언트로부터의 추가적인 요구를 수신하는 것을 중단시키는 중지 모드를 포함하는 소프트웨어.
  9. 제8항에 있어서,
    상기 모드는, 상기 서비스가 상기 서비스 제어 관리자에 의해 시작되고 정지되는 시작 모드 및 정지 모드를 포함하는 소프트웨어.
  10. 제9항에 있어서,
    상기 모드는, 상기 서비스가 상기 서비스 제어 관리자에 의해 인스톨(install)되고 언인스톨(uninstall)되는 인스톨 모드 및 언인스톨 모드를 포함하는 소프트웨어.
  11. 컴퓨팅 시스템에 의해 서비스의 상태를 익스포트하는 데 사용되기 위한 데이터 구조가 저장되어 있는 컴퓨터-판독가능 매체로서, 상기 데이터 구조는,
    클라이언트에 서비스를 제공할 때 서비스에 의해 생성된 내부 문맥에 속하는 정보를 나타내는 서비스 내부 문맥 태그; 및
    클라이언트가 서비스를 수행하기를 요구할 때 상기 클라이언트에 의해 제공된 외부 문맥에 속하는 정보를 나타내는 클라이언트 외부 문맥 태그
    를 포함하는 컴퓨터-판독가능 매체.
  12. 제11항에 있어서,
    상기 데이터 구조는 커스터마이즈가능한 태그-기반의 언어로부터 형성되는 컴퓨터-판독가능 매체.
  13. 컴퓨터 시스템 상에서 구현되는 방법으로서,
    상기 컴퓨터 시스템 상에서 실행되는 제1 게스트 오퍼레이팅 시스템 상에서 실행중인 제1 서비스에 대한 업데이트를 수신하는 단계 - 상기 제1 서비스는 클라이언트의 요구를 수행함 - ;
    상기 제1 서비스의 상태를 포함하는 파일을 생성하기 위해 상기 제1 서비스에 의해 상태 핸드오프를 수행하는 단계 - 상기 파일은 상기 컴퓨터 시스템 상에서 실행되는 제2 게스트 오퍼레이팅 시스템 상에서 실행중인 상기 제1 서비스의 인스 턴스에 익스포트됨 - ; 및
    클라이언트의 요구에 서비스를 제공하기 위해, 상기 수신된 업데이트에 의해 업데이트된 상기 제1 서비스의 인스턴스에 의해 실행되고, 상기 클라이언트에 의해 상기 제1 서비스에 제공된 문맥을 손실하지 않고서 상기 제1 서비스를 종료하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서,
    상기 상태 핸드오프를 수행하는 단계 전에, 업데이트된 상기 제1 서비스의 인스턴스를 테스트하는 단계를 더 포함하는 방법.
  15. 제14항에 있어서,
    상기 테스트 단계 이후지만 상기 상태 핸드오프를 수행하는 단계 전에, 상기 제1 서비스가 핸드오프 모드에 진입하게 하는 단계를 더 포함하는 방법.
  16. 제15항에 있어서,
    상기 제1 서비스가 클라이언트로부터 추가적인 요구를 수신하는 것을 방지하기 위해 상기 제1 서비스를 중지하는 단계를 더 포함하는 방법.
  17. 제16항에 있어서,
    상기 제1 서비스의 상태에 대한 변경을 방지하기 위해 핸드오프 락을 획득하는 단계를 더 포함하고,
    상기 핸드오프 락을 획득하는 단계는 상기 제1 서비스의 상태를 포함하는 파일을 생성하는 단계 전에 일어나는 방법.
  18. 제17항에 있어서,
    상기 파일을 생성하는 단계는 상기 제1 서비스의 외부 문맥뿐만 아니라 내부 문맥을 포함하는 태그를 갖는 커스터마이즈가능한 태그-기반의 파일을 생성하는 단계를 포함하는 방법.
  19. 제18항에 있어서,
    클라이언트의 요구가 상기 제1 서비스의 인스턴스로 리디렉션(redirection)하기 위해 네트워크 접속부 및 청취 포트(listening port)를 상기 제1 서비스로부터 상기 제1 서비스의 인스턴스로 재맵핑하는 단계를 더 포함하는 방법.
  20. 제19항에 있어서,
    상기 핸드오프 락은 상기 제1 서비스의 인스턴스가 상기 제1 서비스의 성공적인 상태 핸드오프를 나타낼 때 상기 제1 서비스에 의해 릴리스되는 방법.
KR1020050092072A 2004-09-30 2005-09-30 소프트웨어를 실행 동안 업데이트하는 시스템, 방법 및컴퓨터-판독가능 매체 KR20060051932A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/955,641 2004-09-30
US10/955,641 US8146073B2 (en) 2004-09-30 2004-09-30 Updating software while it is running

Publications (1)

Publication Number Publication Date
KR20060051932A true KR20060051932A (ko) 2006-05-19

Family

ID=35527431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050092072A KR20060051932A (ko) 2004-09-30 2005-09-30 소프트웨어를 실행 동안 업데이트하는 시스템, 방법 및컴퓨터-판독가능 매체

Country Status (5)

Country Link
US (1) US8146073B2 (ko)
EP (1) EP1643361A3 (ko)
JP (1) JP2006107500A (ko)
KR (1) KR20060051932A (ko)
CN (1) CN1770121A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100883208B1 (ko) * 2007-12-13 2009-02-13 성균관대학교산학협력단 가상화 기술을 기반으로 하여 소프트웨어의 업데이트가가능한 이동통신 단말기 및 그 업데이트 방법
KR101254208B1 (ko) * 2011-06-17 2013-04-18 인크로스 주식회사 이동 단말기의 애플리케이션 실시간 업데이트 방법
KR20160050637A (ko) * 2014-10-30 2016-05-11 에스케이텔레콤 주식회사 가상화 정보 처리 장치의 소프트웨어 업그레이드 방법

Families Citing this family (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291407B2 (en) * 2002-06-12 2012-10-16 Symantec Corporation Systems and methods for patching computer programs
JP2006146679A (ja) * 2004-11-22 2006-06-08 Hitachi Ltd 情報処理装置の制御方法、情報処理装置、及びプログラム
EP1872214A4 (en) * 2005-04-18 2008-04-23 Research In Motion Ltd IMPLEMENTING CUSTOMIZABLE SERVICES AS WIRELESS APPLICATIONS
EP1803313A4 (en) * 2005-04-18 2007-10-31 Research In Motion Ltd METHOD AND SYSTEM FOR ORDERING SOFTWARE VERSION UPDATES
US20070106993A1 (en) * 2005-10-21 2007-05-10 Kenneth Largman Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US7840398B2 (en) * 2006-03-28 2010-11-23 Intel Corporation Techniques for unified management communication for virtualization systems
US20080126792A1 (en) * 2006-09-19 2008-05-29 Herington Daniel E Systems and methods for achieving minimal rebooting during system update operations
US8776041B2 (en) * 2007-02-05 2014-07-08 Microsoft Corporation Updating a virtual machine monitor from a guest partition
US20080235001A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing emulation decisions in response to software evaluations or the like
US8438609B2 (en) 2007-03-22 2013-05-07 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
US9558019B2 (en) 2007-03-22 2017-01-31 Invention Science Fund I, Llc Coordinating instances of a thread or other service in emulation
US8874425B2 (en) 2007-03-22 2014-10-28 The Invention Science Fund I, Llc Implementing performance-dependent transfer or execution decisions from service emulation indications
US9378108B2 (en) * 2007-03-22 2016-06-28 Invention Science Fund I, Llc Implementing performance-dependent transfer or execution decisions from service emulation indications
US20080235000A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing security control practice omission decisions from service emulation indications
US20080234998A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Coordinating instances of a thread or other service in emulation
US8495708B2 (en) * 2007-03-22 2013-07-23 The Invention Science Fund I, Llc Resource authorizations dependent on emulation environment isolation policies
DE102007041652A1 (de) * 2007-09-03 2009-03-05 Abb Research Ltd. Einrichtung und Verfahren zur Durchführung von Hardware-Anpassungen an einem Server in einem verteilten Computersystem mit wenigstens zwei Servern
DE102007041653A1 (de) * 2007-09-03 2009-03-05 Abb Research Ltd. Einrichtung und Verfahren zur Durchführung von Server-Software-Updates in einem verteilten Computersystem mit wenigstens zwei Servern
JP4983521B2 (ja) * 2007-10-04 2012-07-25 富士通株式会社 ソフトウェア更新検証装置、方法及びプログラム
JP2009217395A (ja) * 2008-03-07 2009-09-24 Nec Corp 仮想サーバソフトウェア更新システム、仮想サーバソフトウェア更新方法、サーバ、及びサーバ用プログラム
US8261254B2 (en) * 2008-03-31 2012-09-04 Symantec Corporation Dynamic insertion and removal of virtual software sub-layers
US9720674B1 (en) 2008-05-05 2017-08-01 Open Invention Network, Llc Automating application of software patches to a server having a virtualization layer
US8185884B2 (en) * 2008-06-23 2012-05-22 Novell, Inc. System and method for offline updation of software in virtual machine (VM) images
EP2214101A1 (de) 2009-01-29 2010-08-04 Siemens Aktiengesellschaft Verändern von Objekten einer Anwendung
US8689206B2 (en) * 2009-03-05 2014-04-01 International Business Machines Corporation Isolating operating system in-memory modules using error injection
US20110053583A1 (en) * 2009-08-31 2011-03-03 Ramesh Parmar User initiated virtual mobile management
US8972781B2 (en) * 2009-04-20 2015-03-03 Aetherpal Inc. Session recovery during virtual mobile management
US20100299664A1 (en) * 2009-05-21 2010-11-25 Salesforce.Com, Inc. System, method and computer program product for pushing an application update between tenants of a multi-tenant on-demand database service
US8589904B2 (en) * 2009-08-10 2013-11-19 Symantec Corporation Systems and methods for updating a software product
US8918093B2 (en) 2009-08-31 2014-12-23 Aetherpal Inc. User initiated virtual mobile management
JP5430298B2 (ja) * 2009-09-03 2014-02-26 サンデン株式会社 自動販売機の制御装置
US9589114B2 (en) * 2010-01-05 2017-03-07 Microsoft Technology Licensing, Llc Policy for digital rights management
US20110265072A1 (en) * 2010-04-27 2011-10-27 Jack Matthew Dynamic Installation of Files for Running Programs
JP2012069088A (ja) * 2010-06-25 2012-04-05 Toshiba Corp 医用情報処理装置及びソフトウェア配信システム
US20120102480A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation High availability of machines during patching
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US8473957B2 (en) * 2010-12-13 2013-06-25 Microsoft Corporation Architecture for providing on-demand and background processing
JP5655677B2 (ja) * 2011-04-04 2015-01-21 富士通株式会社 ハイパーバイザ置き換え方法および情報処理装置
US8819660B2 (en) * 2011-06-29 2014-08-26 Microsoft Corporation Virtual machine block substitution
EP2828745B1 (en) * 2012-03-22 2020-01-08 Irdeto B.V. Updating software components
US8972964B2 (en) * 2012-07-26 2015-03-03 Unisys Corporation Dynamic firmware updating system for use in translated computing environments
CN103838947B (zh) * 2012-11-26 2016-12-21 北京新媒传信科技有限公司 一种实现应用割接的方法和装置
GB2510874B (en) * 2013-02-15 2020-09-16 Ncr Corp Server system supporting remotely managed IT services
US8739151B1 (en) * 2013-03-15 2014-05-27 Genetec Inc. Computer system using in-service software upgrade
CN104182241A (zh) * 2013-05-24 2014-12-03 华为终端有限公司 一种网页应用程序更新方法及通信设备
CN104423989B (zh) * 2013-09-02 2017-11-28 联想(北京)有限公司 一种应用更新方法及电子设备
US9626180B2 (en) 2013-12-16 2017-04-18 International Business Machines Corporation Live operating system update mechanisms
US9098375B2 (en) * 2013-12-23 2015-08-04 Verizon Patent And Licensing Inc. Automatic management of software patch installation
US20150286505A1 (en) * 2014-04-03 2015-10-08 Oracle International Corporation Computing system resource provisioning
US9430223B2 (en) 2014-09-25 2016-08-30 International Business Machines Corporation Live operating system update mechanisms
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9715402B2 (en) * 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US10318271B2 (en) 2015-01-05 2019-06-11 Irdeto Canada Corporation Updating software components in a program
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
CN106301820B (zh) * 2015-05-15 2020-03-10 阿里巴巴集团控股有限公司 一种基于网络连接服务的升级方法和装置
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10021605B2 (en) * 2016-01-13 2018-07-10 Uber Technologies, Inc. Non-interrupted handoff of real-time network-distributed services
CN105791007B (zh) * 2016-03-01 2019-06-14 中国银联股份有限公司 金融网络接入系统
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10868883B2 (en) * 2016-06-29 2020-12-15 Nicira, Inc. Upgrading a proxy that decouples network connections from an application during application's downtime
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10587673B2 (en) * 2016-06-29 2020-03-10 Nicira, Inc. Decoupling network connections from an application while the application is temporarily down
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10230712B2 (en) 2016-09-12 2019-03-12 Microsoft Technology Licensing, Llc Binary experimentation on running web servers
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10341438B2 (en) * 2017-03-17 2019-07-02 Verizon Patent ad Licensing Inc. Deploying and managing containers to provide a highly available distributed file system
US10261780B2 (en) * 2017-05-01 2019-04-16 Google Llc Transparent upgrade of a system service or application
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11979496B2 (en) 2021-09-15 2024-05-07 Microsoft Technology Licensing, Llc Secret rotation in a cloud service
EP4402853A1 (en) * 2021-09-15 2024-07-24 Microsoft Technology Licensing, LLC Secret rotation in a cloud service
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
CN118245138B (zh) * 2024-05-28 2024-08-30 福建时代星云科技有限公司 一种插件动态管理的方法与存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155837A (en) * 1989-03-02 1992-10-13 Bell Communications Research, Inc. Methods and apparatus for software retrofitting
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US5359730A (en) * 1992-12-04 1994-10-25 International Business Machines Corporation Method of operating a data processing system having a dynamic software update facility
US5664195A (en) * 1993-04-07 1997-09-02 Sequoia Systems, Inc. Method and apparatus for dynamic installation of a driver on a computer system
US6138274A (en) * 1998-01-23 2000-10-24 Lucent Technologies, Inc. Method and apparatus for updating an online computer program
DE19810802A1 (de) * 1998-03-12 1999-09-16 Ericsson Telefon Ab L M Störungsfreies Aktualisieren von Daten
US6070012A (en) * 1998-05-22 2000-05-30 Nortel Networks Corporation Method and apparatus for upgrading software subsystems without interrupting service
US6199203B1 (en) * 1998-07-21 2001-03-06 Hewlett-Packard Company Memory management techniques for on-line replaceable software
US6154878A (en) * 1998-07-21 2000-11-28 Hewlett-Packard Company System and method for on-line replacement of software
US6314567B1 (en) * 1998-11-13 2001-11-06 Hewlett-Packard Company Apparatus and method for transferring state data when performing on-line replacement of a running program code and data
US7062765B1 (en) * 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
US6629315B1 (en) * 2000-08-10 2003-09-30 International Business Machines Corporation Method, computer program product, and system for dynamically refreshing software modules within an actively running computer system
US20020073409A1 (en) * 2000-12-13 2002-06-13 Arne Lundback Telecommunications platform with processor cluster and method of operation thereof
JP4426736B2 (ja) 2001-04-27 2010-03-03 株式会社日立製作所 プログラム修正方法およびプログラム
US20030018950A1 (en) 2001-06-02 2003-01-23 Malcom Sparks Dynamic redeploying environment for the rapid iterative development of software applications
NO20021247D0 (no) * 2002-03-13 2002-03-13 Ericsson Telefon Ab L M Fremgangsmåte og system for oppgradering av programvare
US7174547B2 (en) * 2002-03-25 2007-02-06 Ciena Corporation Method for updating and restoring operating software in an active region of a network element
US20030191870A1 (en) 2002-04-02 2003-10-09 Dominic Duggan Method and apparatus for updating software libraries
US20040010786A1 (en) * 2002-07-11 2004-01-15 Microsoft Corporation System and method for automatically upgrading a software application
US7000229B2 (en) * 2002-07-24 2006-02-14 Sun Microsystems, Inc. Method and system for live operating environment upgrades
US7216343B2 (en) * 2002-09-20 2007-05-08 International Business Machines Corporation Method and apparatus for automatic updating and testing of software
US6978452B2 (en) * 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US7610582B2 (en) * 2003-04-18 2009-10-27 Sap Ag Managing a computer system with blades
WO2004104825A1 (en) * 2003-05-15 2004-12-02 Applianz Technologies, Inc. Systems and methods of creating and accessing software simulated computers
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7886293B2 (en) * 2004-07-07 2011-02-08 Intel Corporation Optimizing system behavior in a virtual machine environment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100883208B1 (ko) * 2007-12-13 2009-02-13 성균관대학교산학협력단 가상화 기술을 기반으로 하여 소프트웨어의 업데이트가가능한 이동통신 단말기 및 그 업데이트 방법
KR101254208B1 (ko) * 2011-06-17 2013-04-18 인크로스 주식회사 이동 단말기의 애플리케이션 실시간 업데이트 방법
KR20160050637A (ko) * 2014-10-30 2016-05-11 에스케이텔레콤 주식회사 가상화 정보 처리 장치의 소프트웨어 업그레이드 방법

Also Published As

Publication number Publication date
JP2006107500A (ja) 2006-04-20
US8146073B2 (en) 2012-03-27
EP1643361A3 (en) 2008-02-06
CN1770121A (zh) 2006-05-10
US20060075076A1 (en) 2006-04-06
EP1643361A2 (en) 2006-04-05

Similar Documents

Publication Publication Date Title
KR20060051932A (ko) 소프트웨어를 실행 동안 업데이트하는 시스템, 방법 및컴퓨터-판독가능 매체
CN112118565B (zh) 多租户服务灰度发布方法、装置、计算机设备和存储介质
US12072851B2 (en) System and method for connection concentration in a database environment
US11405274B2 (en) Managing virtual network functions
WO2019184164A1 (zh) 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质
US8606886B2 (en) System for conversion between physical machines, virtual machines and machine images
EP2697714B1 (en) Deployment system for multi-node applications
US11836542B1 (en) Instantiating VNFs which include VNFCs that are composed of independently manageable software modules
CN104113574B (zh) 一种广域网可信虚拟机的安全迁移方法及系统
US20030217131A1 (en) Processing distribution using instant copy
US11539553B1 (en) Onboarding a VNF which includes a VDU with multiple VNFCs
WO2022267407A1 (zh) 一种基于自动化运维工具的代理部署方法及装置
US20210326162A1 (en) Lifecycle management of a vnfc included in a multi-vnfc vdu
US11573819B2 (en) Computer-implemented method for reducing service disruption times for a universal customer premise equipment, uCPE, device with resource constraint in a network functions virtualization, NFV, network infrastructure
US20160217019A1 (en) Partitioned application environment
US20220342769A1 (en) Application consistent network backup using three phase full quorum
US20210326157A1 (en) Onboarding a vnf with a multi-vnfc vdu
CN113703878B (zh) 组件的启动方法和装置、存储介质及电子设备
CN113297158B (zh) 一种云安全产品管理方法、装置、设备及存储介质
US20240007340A1 (en) Executing on-demand workloads initiated from cloud services in a software-defined data center
CN115080176A (zh) 一种应用saas化方法、saas平台、介质
AU2005227350A1 (en) Object mobility

Legal Events

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