KR20060073535A - 디지털 미디어 서버들을 업그레이드하는 방법 - Google Patents

디지털 미디어 서버들을 업그레이드하는 방법 Download PDF

Info

Publication number
KR20060073535A
KR20060073535A KR1020057018871A KR20057018871A KR20060073535A KR 20060073535 A KR20060073535 A KR 20060073535A KR 1020057018871 A KR1020057018871 A KR 1020057018871A KR 20057018871 A KR20057018871 A KR 20057018871A KR 20060073535 A KR20060073535 A KR 20060073535A
Authority
KR
South Korea
Prior art keywords
new
objects
existing
digital media
upgrade package
Prior art date
Application number
KR1020057018871A
Other languages
English (en)
Other versions
KR101076642B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=33097253&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20060073535(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 비치 언리미티드 엘엘씨 filed Critical 비치 언리미티드 엘엘씨
Publication of KR20060073535A publication Critical patent/KR20060073535A/ko
Application granted granted Critical
Publication of KR101076642B1 publication Critical patent/KR101076642B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/818OS software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/241Operating system [OS] processes, e.g. server setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

미디어 전달 서비스들을 중단하지 않고 디지털 미디어 서버의 양 하드웨어 및 소프트웨어 컴포넌트들을 업그레이드하기 위한 시스템 및 방법이 개시된다. 바람직한 실시예에서는, 본 시스템 및 방법은 시스템 서버들로 하여금 충분히 동작하게 하면서 양 오퍼레이팅 시스템과 애플리케이션 레벨들에서의 소프트웨어 업그레이드들이 인스톨되게 하는 객체 지향 모델을 채용한다. 부가적으로, 시스템 및 방법은 용장 또는 분할가능한 프로그램가능 로직 디바이스들을 사용하여 미디어 전달 서비스들을 중단하지 않고 펌웨어 업그레이드들을 수행한다.
소프트웨어 업그레이드, 미디어 전달 서비스, 시스템 서버, 객체 지향 모델, 펌웨어 업그레이드

Description

디지털 미디어 서버들을 업그레이드하는 방법{UPGRADING DIGITAL MEDIA SERVERS}
본 발명은 디지털 미디어 서버 분야에 관한 것이다.
웹기반 서버들과 주문형 비디오 서버들과 같은 디지털 미디어 서버들은 전형적으로 디지털 미디어를 저장하고, 그러한 미디어를 파일 포맷으로부터 배선 포맷으로 변환하고, 미디어 패킷들의 전달을 계획하기 위한 컴포넌트들을 포함하는 다수의 기능 컴포넌트들을 포함한다. 동작시, 미디어 서버는 클라이언트들 또는 관리자들로부터 콘텐츠에 대한 인입 요청들을 받아들이고 네트워크를 통해 클라이언트들에게 미디어 패킷들을 전달한다.
대부분의 디지털 미디어 서버들은 PC 기반 아키텍쳐를 채용하고 각종 소프트웨어 컴포넌트들을 실행하여 상술한 기능을 제공한다. 이러한 소프트웨어 컴포넌트들의 설계시 충분히 디버깅되고 결함들이 없는 것을 보장하기 위한 많은 노력이 이루어진다. 그러나, 실제로는 설계 단계 동안 많은 결함이 발견되지는 않고 소프트웨어가 실제로 동작할 때에만 드러난다.
시스템 동작시 발견된 결함들은 종종 소프트웨어 업그레이드를 수행함으로써 보정된다. 소프트웨어 업그레이드는 또한 때때로 서버 기능을 보충 또는 향상시키 기 위해 수행되므로, 서버의 경쟁적 수명을 연장시킨다.
실행 소프트웨어 컴포넌트를 업그레이드하기 위해, 컴포넌트는 정지되어야 하고, 대체 버전이 메모리로 로딩되어 실행되어야 한다. 이러한 기간 동안, 통상적으로 컴포넌트에 의해 제공된 서비스들은 가용하지 않다.
미디어 서버의 오퍼레이팅 시스템에서의 결함의 결과는 보다 심각해질 수 있다. 오퍼레이팅 시스템들은 일반적으로 파일, 메모리 저장장치, 입/출력 스트림, 세마퍼, 프로세스, 및 스레드 등의 추상 데이터 구조들을 다른 프로그램들에 공급하는 다수의 강하게 결합된 모듈들 주변에 설계된다. 애플리케이션 프로그램들은 API(application programming interface)를 통해 상기 추상 구조들에 액세스한다. 상기 구조들중 하나에 변화가 생기면 다른 구조들 또는 모듈들에서도 부작용이 생길 수 있다. 일반적으로, 오퍼레이팅 시스템 레벨의 컴포넌트들의 대체는 전체 오퍼레이팅 시스템의 재로딩을 요구하며, 서버의 재부팅 동안 달성된다. 따라서, 오퍼레이팅 시스템 레벨의 리소스들은 미디어 서버 오프라인을 취하지 않고 업그레이드될 수 있고, 재부팅은 이러한 서비스들이 복구될 수 있기까지 상당한 양의 시간이 걸릴 수 있다.
오프라인 서버들은 인입 요청들을 받아들이거나 기존 세션들에 콘텐츠를 전달할 수 없다. 결과적으로, 적합한 용장 서버들이 가용하지 않다면, 오프라인 서버는 전체 서비스 네트워크의 가용성에 영향을 줄 수 있다.
도 1은 일반적인 업그레이드 프로세스 및 네트워크 가용성에 대한 그 효과를 예시한다. 도 1에 도시된 바와 같이, 단계 105에서, 업그레이드가 개시된다. 이 어서, 단계 110에서, 업그레이드 패키지가 검출된다. 업그레이드 패키지가 다운로드될 수 없으면, 업그레이드 프로세스는 종료한다(단계 190).
업그레이드가 설치될 수 있기까지 프리-업그레이드(pre-upgrade) 관리 단계(120)가 수행된다. 특히, 단계 125에서, 사용자 세션은 영향받지 않은 기계들로 전달되거나 씬닝(thining)된다. 다음, 단계 127에서, 소프트웨어가 업그레이드된 것에 의해 영향을 받은 서비스들은 중단된다.
이어서, 업그레이드 프로세스 단계(140)가 수행된다. 특히, 단계 145에서, 시스템의 설정 및 속성이 카피되거나 변경된다. 단계 147에서, 새로운 컴포넌트들이 업그레이드 패키지로부터 카피된다. 몇몇 미디어 서버들은 동작중에 데이터가 서버로 로컬 또는 원격 전송되는 것을 허용할 수 있지만, 일반적으로 업그레이드를 실행하기 위해 몇몇 서비스 중단이 필요하고, 대부분의 경우에 서버는 우선 오프라인으로 들어가야 한다.
다음, 포스트-업그레이드(post-upgrade) 프로세스 단계(160)가 수행된다. 특히, 단계 165에서, 미디어 서버의 전력은 오프된 후 다시 온되는 것을 반복하며(서버가 오프라인을 취하는 경우), 업그레이드된 소프트웨어에 의해 제공된 서비스들은 재시작된다. 단일 전력 사이클은 몇초에서 수십분까지 어디에서나 지속될 수 있다. 단일 전력 사이클에 필요한 시간의 양은 서버가 파워 오프되기 전에 실행 애플리케이션들의 순차적인 셧다운을 수행할 필요가 있는 시간과 서버를 재부팅하고 다시 파원 온된 후에 애플리케이션들을 복구하기 위해 필요한 시간을 합한 것에 의존한다. 이러한 이벤트들이 종료한 후에만 서버는 새로운 사용자 세션들을 받아 들이기 시작할 수 있다(단계 167).
상기 프로세서는 시스템 동작에 상당히 영향을 미칠수 있는데, 특히 모든 시스템 API와 저레벨 드라이버의 업그레이드와 같은 시스템 광역 업그레이드의 경우에 그렇다. 전형적인 디지털-미디어 회사는 그러한 업그레이드에 의해 영향을 받는 수십개의 온라인 미디어 서버들을 가질 수 있다. 그 회사는 서버 사용이 최저점에 있을 때 업그레이드를 위한 시간을 선택할 수 있지만, 업그레이드는 미디어 서버들을 셧다운할 필요가 있을 때 어느 정도 서비스를 계속 중단할 수 있다. 최소한, 회사는 다운타임에 대한 세입의 감소 및 위험 고객 불만족을 경험할 수 있다.
이러한 서비스 중단을 피하기 위해, 회사들은 종종 과도한 서버 용량 또는 용장 시스템을 유지하여 업그레이드 동안 영향받은 서버들과 분리되어 전달되는 트래픽을 처리한다. 그러나 용장 시스템들은 부가의 오버헤드 비용을 가져오고 많은 경우에 가용하지 않다.
미디어 전달 서비스들을 중단하지 않고 디지털 미디어 서버의 하드웨어 및 소프트웨어 컴포넌트 양자를 업그레이드하기 위한 시스템 및 방법이 개시된다. 바람직한 실시예에서, 본 시스템 및 방법은 시스템 서버들로 하여금 오퍼레이팅 시스템과 애플리케이션 레벨들 양자에서의 소프트웨어 업그레이드가 설치되는 동안 충분히 동작하게 하는 객체 지향 모델을 채용한다. 부가적으로, 시스템 및 방법은 용장 또는 분할가능한 프로그램가능 로직 디바이스들을 사용하여 미디어 전달 서비스들을 중단하지 않고 펌웨어 업그레이드를 수행한다.
일 특징에서, 본 발명은 새로운 오브젝트들을 포함하는 업그레이드 패키지의 존재를 체크하는 단계; 상기 업그레이드 패키지의 새로운 오브젝트들을 식별하는 단계; 상기 새로운 오브젝트들의 기능들 및 속성들을 식별하는 단계; 상기 새로운 오브젝트들의 호환성을 평가하는 단계; 새로운 오브젝트들을 애플리케이션 오브젝트들 또는 서비스 오브젝트들로 인스턴스화하는 단계; 새로운 오브젝트가 기존 오브젝트를 대체할지 여부를 판정하는 단계; 및 상기 새로운 오브젝트가 상기 기존 오브젝트를 대체하는 경우, 상기 기존 오브젝트를 대체하는 단계를 포함하는, 디지털 미디어 서버를 업그레이드하는 방법에 관한 것이다.
본 발명의 또다른 특징에서, 상기 대체 단계는, 상기 기존 오브젝트 및 상기 새로운 오브젝트를 로킹(locking)하는 단계; 상기 기존 오브젝트로부터의 필드들을 상기 새로운 오브젝트로 카피하는 단계; 상기 새로운 오브젝트로부터 상기 기존 오브젝트에 따른 오브젝트들로의 링크들을 확립하는 단계; 상기 기존 오브젝트에 대한 링크들을 다른 오브젝트들로부터 상기 새로운 오브젝트로 재라우팅하는 단계; 상기 새로운 오브젝트를 언로킹하는 단계; 상기 기존 오브젝트를 제거하는 단계를 더 포함한다.
본 발명의 또다른 특징에서, 상기 제거 단계는 상기 기존 오브젝트를 보관하는 단계를 포함한다.
본 발명의 또다른 특징에서, 상기 제거 단계는 상기 기존 오브젝트를 퍼징하는 단계를 포함한다.
본 발명의 또다른 특징에서, 상기 업그레이드 패키지는 기존 오브젝트들에 대한 하나 이상의 새로운 메소드들을 더 포함하고, 상기 방법은, 상기 하나 이상의 새로운 메소드들을 식별하는 단계; 상기 하나 이상의 새로운 메소드들의 호환성을 평가하는 단계; 새로운 메소드가 기존 메소드를 대체할지를 결정하는 단계; 및 상기 새로운 메소드가 상기 기존 메소드를 대체하면, 상기 기존 메소드를 차단 및 대체하는 단계를 더 포함한다.
본 발명의 또다른 특징에서, 상기 기존 메소드는 인터페이스이다.
본 발명의 또다른 특징에서, 상기 방법은 네트워크 소스로부터 상기 업그레이드 패키지를 다운로드하는 단계를 더 포함한다.
본 발명의 또다른 특징에서, 상기 방법은 저장 매체로부터 상기 업그레이드 패키지를 로딩하는 단계를 더 포함한다.
또 다른 특징에서, 본 발명은 제1 활성 파티션 및 제2 비활성 파티션을 갖는 분할가능한 프로그램 가능 로직 디바이스를 갖는 디지털 미디어 서버 업그레이드 방법에 관한 것으로, 새로운 로직으로 상기 제2 파티션을 프로그램하는 단계; 제2 파티션을 상기 비활성 상태로부터 상기 활성 상태로 천이시키고 동시에 상기 제1 파티션으로부터 데이터 처리 기능들을 취하는 단계; 및 상기 제1 파티션을 비활성 상태로 천이시키는 단계를 포함한다.
본 발명의 또다른 특징에서, 상기 방법은 상기 새로운 로직으로 상기 제1 파티션을 프로그램하는 단계를 더 포함한다.
또다른 특징에서, 본 발명은 활성 및 비활성 상태를 각각 갖는 2개 이상의 용장 프로그램 가능 로직 디바이스들을 갖는 디지털 미디어 서버를 업그레이드하는 방법으로서, 활성 상태의 프로그램 가능 로직 디바이스들의 제1 세트를 결정하는 단계; 새로운 로직을 비활성 상태의 하나 이상의 로직 디바이스들의 제2 세트로 로딩하는 단계; 상기 제2 세트의 디바이스들을 상기 활성 상태로 천이시키고 동시에 상기 제1 세트의 디바이스들로부터 데이터 처리 기능들을 취하는 단계; 및 상기 제1 세트의 디바이스들을 상기 비활성 상태로 천이시키는 단계를 포함한다.
본 발명의 또다른 특징에서, 상기 방법은 새로운 로직을 상기 제1 세트의 디바이스들로 로딩하는 단계를 더 포함한다.
또다른 특징에서, 본 발명은 범용 컴퓨터 및 하드웨어 엔진을 포함하는 디지털 미디어 서버에 업그레이드들을 인스톨하는 방법으로서, 상기 컴퓨터는 객체 지향 런타임 환경을 포함하고, 상기 하드웨어 엔진은 제1 활성 파티션 및 제2 비활성 파티션을 갖는 프로그램가능 로직 디바이스를 포함하며, 상기 방법은, 새로운 오브젝트들 및 새로운 로직을 포함하는 업그레이드 패키지의 존재를 체크하는 단계; 상기 업그레이드 패키지의 새로운 오브젝트들을 식별하는 단계; 상기 새로운 오브젝트들의 기능들 및 속성들을 식별하는 단계; 상기 새로운 오브젝트들의 호환성을 평가하는 단계; 새로운 오브젝트들을 애플리케이션 오브젝트들 또는 서비스 오브젝트들로 인스턴스화하는 단계; 새로운 오브젝트가 기존 오브젝트를 대체할지 여부를 판정하는 단계; 상기 새로운 오브젝트가 상기 기존 오브젝트를 대체하는 경우, 상기 기존 오브젝트를 대체하는 단계; 상기 업그레이드 패키지의 새로운 로직을 식별하는 단계; 상기 새로운 로직으로 상기 제2 비활성 파티션을 프로그램하는 단계; 상기 비활성 상태로부터 상기 활성 상태로 상기 제2 파티션을 천이시키고 동시에 상기 제1 파티션으로부터 데이터 처리 기능들을 취하는 단계; 및 상기 제1 파티션을 비활성 상태로 천이시키는 단계를 포함한다.
본 발명의 또다른 특징에서, 상기 대체 단계는, 상기 기존 오브젝트 및 상기 새로운 오브젝트를 로킹(locking)하는 단계; 상기 기존 오브젝트로부터의 필드들을 상기 새로운 오브젝트로 카피하는 단계; 상기 새로운 오브젝트로부터 상기 기존 오브젝트에 따른 오브젝트들로의 링크들을 확립하는 단계; 다른 오브젝트들로부터의 상기 기존 오브젝트에 대한 링크들을 상기 새로운 오브젝트로 재라우팅하는 단계; 상기 새로운 오브젝트를 언로킹하는 단계; 및 상기 기존 오브젝트를 제거하는 단계를 더 포함한다.
또다른 특징에서, 본 발명은 범용 컴퓨터 및 하드웨어 엔진을 포함하는 디지털 미디어 서버에 업그레이드들을 인스톨하는 방법으로서, 상기 컴퓨터는 객체 지향 런타임 환경을 포함하고, 상기 하드웨어 엔진은 각각 활성 및 비활성 상태들을 갖는 2개 이상의 프로그램가능 로직 디바이스들을 포함하며, 상기 방법은, 새로운 오브젝트들 및 새로운 로직을 포함하는 업그레이드 패키지의 존재를 체크하는 단계; 상기 업그레이드 패키지의 새로운 오브젝트들을 식별하는 단계; 상기 새로운 오브젝트들의 기능들 및 속성들을 식별하는 단계; 상기 새로운 오브젝트들의 호환성을 평가하는 단계; 새로운 오브젝트들을 애플리케이션 오브젝트들 또는 서비스 오브젝트들로 인스턴스화하는 단계; 새로운 오브젝트가 기존 오브젝트를 대체할지 여부를 판정하는 단계; 상기 새로운 오브젝트가 상기 기존 오브젝트를 대체하는 경우, 상기 기존 오브젝트를 대체하는 단계; 상기 업그레이드 패키지의 새로운 로직을 식별하는 단계; 활성 상태의 프로그램 가능 로직 디바이스들의 제1 세트를 결정하는 단계; 새로운 로직을 비활성 상태의 하나 이상의 로직 디바이스들의 제2 세트로 로딩하는 단계; 상기 제2 세트의 디바이스들을 상기 활성 상태로 천이시키고 동시에 상기 제1 세트의 디바이스들로부터 데이터 처리 기능들을 취하는 단계; 및 상기 제1 세트의 디바이스들을 상기 비활성 상태로 천이시키는 단계를 포함한다.
본 발명의 또다른 특징에서, 상기 대체 단계는, 상기 기존 오브젝트 및 상기 새로운 오브젝트를 로킹(locking)하는 단계; 상기 기존 오브젝트로부터의 필드들을 상기 새로운 오브젝트로 카피하는 단계; 상기 새로운 오브젝트로부터 상기 기존 오브젝트에 따른 오브젝트들로의 링크들을 확립하는 단계; 다른 오브젝트들로부터의 상기 기존 오브젝트에 대한 링크들을 상기 새로운 오브젝트로 재라우팅하는 단계; 상기 새로운 오브젝트를 언로킹하는 단계; 및 상기 기존 오브젝트를 제거하는 단계를 더 포함하는 방법.
본 발명의 또다른 특징에서, 상기 업그레이드 패키지는 기존 오브젝트들에 대한 하나 이상의 새로운 메소드들을 더 포함하고, 상기 방법은, 상기 하나 이상의 새로운 메소드들을 식별하는 단계; 상기 하나 이상의 새로운 메소드들의 호환성을 평가하는 단계; 새로운 메소드가 기존 메소드를 대체할지를 결정하는 단계; 및 상기 새로운 메소드가 상기 기존 메소드를 대체하면, 상기 기존 메소드를 차단 및 대체하는 단계를 더 포함하는 방법.
본 발명의 또다른 특징에서, 상기 기존 메소드는 인터페이스이다.
또 다른 특징에서, 본 발명은 디지털 미디어 서버로서, 오브젝트 스토어; 및 객체 지향 런타임 환경을 포함하며, 상기 객체 지향 런타임 환경은, 서비스 오브젝트들; 애플리케이션 오브젝트들, 및 상기 서비스 및 애플리케이션 오브젝트들에 의해 공급된 데이터 처리 기능을 방해하지 않고 상기 서비스 오브젝트들 및 상기 애플리케이션 오브젝트들의 대체를 용이화하도록 구성된 오브젝트 관리자를 포함한다.
본 발명의 또다른 특징에서, 상기 서버는, 대체 서비스 및 애플리케이션 오브젝트들을 포함하는 업그레이드 패키지를 다운로드하는 네트워크 인터페이스를 더 포함한다.
본 발명의 또다른 특징에서, 상기 서버는, 대체 서비스 및 애플리케이션 오브젝트들을 포함하는 업그레이드 패키지를 저장하는 저장 매체를 더 포함한다.
또 다른 특징에서, 본 발명은 디지털 미디어 서버로서, 각각 활성 상태와 비활성 상태 사이를 전환할 수 있는 2개 이상의 프로그램가능 로직 디바이스들; 입력 데이터 경로; 및 출력 데이터 경로를 포함하며, 활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 상기 입력 데이터 경로에 도달한 디지털 미디어를 처리하고 처리된 디지털 미디어를 상기 출력 데이터 경로에 보내는 반면 상기 비활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 프로그램된다.
또다른 특징에서, 본 발명은 디지털 미디어 서버에 관한 것으로, 2개 이상의 독립적으로 프로그램가능한 파티션들을 갖는 분할가능한 프로그램가능 로직 디바이스 - 각 파티션은 활성 상태와 비활성 상태 사이에서 전환할 수 있음 - ; 입력 데이터 경로; 및 출력 데이터 경로를 포함하고, 상기 활성 상태의 하나 이상의 파티션들은 상기 입력 데이터 경로에 도달한 디지털 미디어를 처리하고 처리된 디지털 미디어를 상기 출력 데이터 경로에 보내는 반면 상기 비활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 프로그램된다.
또다른 특징에서, 본 발명은 디지털 미디어 서버에 관한 것으로, 오브젝트 스토어; 객체 지향 런타임 환경 - 상기 객체 지향 런타임 환경은, 서비스 오브젝트들; 애플리케이션 오브젝트들, 및 상기 서비스 및 애플리케이션 오브젝트들에 의해 공급된 데이터 처리 기능을 방해하지 않고 상기 서비스 오브젝트들 및 상기 애플리케이션 오브젝트들의 대체를 용이화하도록 구성된 오브젝트 관리자를 포함함 - ; 각각 활성 상태와 비활성 상태 사이를 전환할 수 있는 2개 이상의 프로그램가능 로직 디바이스들; 입력 데이터 경로; 및 출력 데이터 경로를 포함하며, 활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 상기 입력 데이터 경로에 도달한 디지털 미디어를 처리하고 처리된 디지털 미디어를 상기 출력 데이터 경로에 보내는 반면 상기 비활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 새로운 로직으로 프로그램된다.
또 다른 특징에서, 본 발명은 디지털 미디어 서버에 관한 것으로, 오브젝트 스토어; 객체 지향 런타임 환경 - 상기 객체 지향 런타임 환경은, 서비스 오브젝트들; 애플리케이션 오브젝트들, 및 상기 서비스 및 애플리케이션 오브젝트들에 의해 공급된 데이터 처리 기능을 방해하지 않고 상기 서비스 오브젝트들 및 상기 애플리케이션 오브젝트들의 대체를 용이화하도록 구성된 오브젝트 관리자를 포함함 - ; 2개 이상의 독립적으로 프로그램가능한 파티션들을 갖는 분할가능한 프로그램가능 로직 디바이스 - 각 파티션은 활성 상태와 비활성 상태 사이에서 전환할 수 있음 - ; 입력 데이터 경로; 및 출력 데이터 경로를 포함하고, 하나 이상의 상기 활성 상태의 파티션들은 상기 입력 데이터 경로에 도달한 디지털 미디어를 처리하고 처리된 디지털 미디어를 상기 출력 데이터 경로에 보내는 반면 상기 비활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 새로운 로직으로 프로그램된다.
도 1은 종래 기술에 따른 업그레이드 프로세스를 도시하는 흐름도.
도 2는 디지털 미디어 서버의 바람직한 실시예를 나타내는 블럭도.
도 3은 디지털 미디어 서버 스트리밍 프로세스의 바람직할 실시예를 예시하는 흐름도.
도 4A는 오브젝트의 예시적인 실시예를 도시하는 도면.
도 4B는 본 발명의 일 실시예에서의 범용 컴퓨팅 장치의 바람직한 실시예를 나타내는 블럭도.
도 5는 업그레이드 프로세스를 행하는 바람직한 실시예에서의 단계들을 예시하는 흐름도.
도 6은 오브젝트들의 대체를 실시하는 바람직한 실시예에서의 단계들을 예시하는 흐름도.
도 7A는 분할가능한 재프로그램가능 로직 디바이스를 갖는 디지털 미디어 전달 파이프라인의 바람직한 실시예를 예시하는 블럭도.
도 7B는 용장 재프로그램가능 디바이스들을 갖는 디지털 미디어 전달 파이프 라인의 바람직한 실시예를 예시하는 블럭도.
도 8은 분할가능한 프로그램가능 로직 디바이스를 갖는 하드웨어 엔진의 펌웨어 업그레이드를 수행하는 바람직한 실시예를 예시하는 흐름도.
도 9는 용장 프로그램가능 로직 디바이스들을 갖는 하드웨어 엔진의 펌웨어 업그레이드를 수행하는 바람직한 실시예를 예시하는 흐름도.
예시를 위해, 또한 본 발명의 용이한 이해를 위해, 후술되는 바람직한 실시예들은 특정 디지털 미디어 서버와 관련하여 기술될 것이다.
도 2에 도시된 바와 같이, 상기 바람직한 실시예들의 디지털 미디어 서버(200)는 하드웨어 엔진(220), 범용 컴퓨터(240), 및 저장 장치(210)를 포함하는 것이 바람직하다. 하드웨어 엔진(220)은 미디어 버퍼(225), 하나 이상의 PLD(programmable logic devices)(227), 및 네트워크 인터페이스(230)를 포함하는 것이 바람직하다. 이하 상세히 설명하는 바와 같이, 바람직한 실시예에서는, 하드웨어 엔진(220)은 분할가능한 PLD 또는 용장 PLD를 포함하여 서비스 중단 없이 미디어 서버 업그레이드를 용이하게 할 수 있다.
범용 컴퓨터(240)는 객체 지향 런타임 환경(250), 오퍼레이팅 시스템(260), 및 하드웨어 인터페이스(270)를 포함하는 것이 바람직하다. 버스들(280)은 하드웨어 엔진(220), 범용 컴퓨터(240), 및 저장 장치(210) 사이에 데이터 통신 경로들을 제공한다.
하드웨어 엔진(220)은 저장 장치(210)에 저장된 데이터로부터 배선 데이터 패킷들을 생성하고 그들을 디지털 네트워크를 통해 클라이언트들에게 전송하도록 구성된 것이 바람직하다. 바람직한 실시예에서, 데이터는 범용 컴퓨팅 장치(240)의제어 하에서 저장 장치(210)로부터 미디어 버퍼(225)로 카피된다. 범용 컴퓨팅 장치(240) 및 하드웨어 엔진(220)을 포함하는 바람직한 아키텍쳐는 2003년 2월 19일자로 출원된 (페니 & 에드몬드 LLP 참조 번호 11055-005-999로 식별됨) "Hybrid Streaming Platform"이라는 제목의 미국 특허 출원 번호 제10/369,305호에 설명되어 있으며, 그 교시 및 실시예들 각각에 대해서는 전체가 참조로서 본원에 포함되어 있다.
PLD(227)는 미디어 버퍼(225)의 카피된 데이터를 파일 포맷으로부터 배선 포맷으로 변환하도록 구성되는 것이 바람직하다. 완전한 데이터 패킷들은 네트워크 인터페이스(230)에 의해 네트워크 상으로 송신된다. 이러한 단계들을 구현하기 위한 바람직한 시스템 및 방법은 2003년 2월 19일자로 출원된 (페니 & 레이몬드 LLP 참조 번호 11055-006-999로 식별됨) "Flexible Streaming Hardware"라는 제목의 미국 특허 출원 번호 제10/369,306호에 설명되어 있으며, 그 교시 및 실시예들 각각에 대해서는 전체가 참조로서 본원에 포함되어 있다.
디지털 미디어 서버(200)에 의해 구현되는 스트리밍 프로세스의 바람직한 실시예는 도 3에 도시되어 있다. 도 3에 도시된 바와 같이, 단계 310에서, 미디어 데이터의 블럭들은 범용 컴퓨팅 장치(240)로부터의 명령에 따라 저장 장치(210)로부터 판독되고 미디어 버퍼(225)로 직접 카피된다. 단계 320에서, 하드웨어 엔진(220)은 미디어 버퍼(225)에 저장된 블럭들로부터 미디어 데이터를 재조립한다.
단계 330에서, 하드웨어 엔진(220)은 미디어 버퍼(225)로부터의 판독 중 데이터 패킷들을 생성한다. 단계 340에서, 하드웨어 엔진(220)은 새롭게 생성된 데이터 패킷들을 네트워크 인터페이스(230)로 전달하고, 차례로 패킷들을 디지털 네트워크에 기입한다. 언급한 바와 같이, 이러한 프로세스 및 그것을 실현하기 위한 플랫폼은 2003년 2월 19일자로 출원된 (페니 & 에드몬드 LLP 참조 번호 11055-006-999로 식별됨) "Flexible Streaming Hardware"라는 제목의 미국 특허 출원 번호 제10/369,306호 및 2003년 2월 19일자로 출원된 "Hybrid Streaming Platform"이라는 제목의 (페니 & 에드몬드 LLP 참조 번호 11055-005-999로 식별됨) 미국 특허 출원 번호 제10/369,305호에 설명되어 있으며, 이들 모두의 교시 및 실시예들 각각에 대해서는 전체가 참조로서 본원에 포함되어 있다.
바람직한 실시예에서, 범용 컴퓨팅 장치(240)는 임의의 원하는 스트리밍 솔류션 또는 다른 태스크를 달성하기 위한 프로그램들을 포함하는 객체 지향 소프트웨어 프로그램들을 실행하도록 구성된 런타임 환경(250)을 설치하고 있는 것이 바람직하다. 그러한 테스크는 세션 셋업, 스트리밍 세션의 관리 및 해체, 및 에러 처리를 포함할 수 있다. 바람직한 실시예에서, 이러한 프로그램들은 객체 지향 프로그램들로서 설계된다.
도 4A는 바람직한 실시예에서의 오브젝트(410)의 구성을 예시한다. 도 4A에도시된 바와 같이, 오브젝트(410)는 필드(412), 메소드(415), 및 동적 레퍼런스(418)를 포함하는 것이 바람직하다. 필드(412)는 오브젝트(410) 내에 데이터를 저장하며, 다른 오브젝트에 의해 액세스될 수 있고, 속성(414)으로 알려져 있는 데이 터를, 및 다른 오브젝트들로부터 숨겨진 데이터를 포함한다. 필드(412)는 오브젝트(410)의 현재 상태를 나타낸다.
메소드(415)는 필드(412) 내의 데이터에 동작하도록 사용될 수 있는 절차 또는 기능이다. 다른 오브젝트들에 의해 호출되어 그 오브젝트와 상호작용할 수 있는 오브젝트의 메소드들은 인터페이스(417)로서 알려져 있다.
동적 레퍼런스(418)는 오브젝트들(410) 사이의 제어 및 데이터 흐름 경로들을 나타낸다. 오브젝트의 레퍼런스(418)는 런타임 전에 정의될 필요가 없고, 오브젝트(410)가 런타임 환경(250)에서 생성된 후에도 변경될 수 있다.
도 4B는 런타임 환경(250)을 보다 상세히 설명한다. 환경(250)은 애플리케이션(420), 서비스(430), 및 오브젝트 관리자(440)를 포함하는 것이 바람직하다. 애플리케이션(420)은 특정 태스크를 수행하도록 설계된 오브젝트들의 집합이다. 오브젝트들 사이의 동적 레퍼런스(418)는 도 4B에 도시된 양방향 화살표로 도시되어 있다. 서비스(430)는 애플리케이션 오브젝트들과 범용 컴퓨터(240)의 오퍼레이팅 시스템(OS)(260) 및 하드웨어 인터페이스(270) 사이의 인터페이스를 제공하도록 설계된 오브젝트들의 집합이다.
오브젝트 관리자(440)는 애플리케이션(420) 및 서비스(430)에 포함된 모든 오브젝트(410)의 상태를 유지하는 역할을 하는 것이 바람직하다. 바람직한 실시예에서, 오브젝트 관리자(440)는 이러한 오브젝트들이 적절하게 형성되고 런타임 환경(250)으로 로딩되기 전에 변질되지 않는 것을 보장하기 위해 오브젝트들(410)을 확인한다. 오브젝트 관리자(440)는 또한 오브젝트를 열거하고 오브젝트 관리자 (440), 일반적으로 환경(250), 및 다른 오브젝트들(410)과의 호환성을 보장하기 위해 오브젝트들을 평가한다.
런타임 환경(250)은 범용 컴퓨터(240)의 오퍼레이팅 시스템(260)에 의해 제공되는 설비들에 구축되는 것이 바람직하다. 애플리케이션 오브젝트들은 오퍼레이팅 시스템(260)을 통해 서비스들(430)과 상호작용함으로써 하드웨어(270)에 간접적으로 액세스할 수 있다. 본 기술 분야의 당업자들은 오퍼레이팅 시스템(260)이 객체 지향 컴포넌트들을 사용하여 구현될 수 있다는 것을 인식할 것이다. 그러한 오퍼레이팅 시스템은 런타임 환경(250) 내에 배치될 수 있고, 서비스(430)의 확장으로서 동작할 수 있다 효과적으로는, 런타임 환경(250)은 그 후 오퍼레이팅 시스템(260)과 병합된 것으로 간주될 수 있다. 이에 의해, 후술하는 바와 같이, 오퍼레이팅 시스템은 그것이 제공하는 기능을 중단하지 않고 업그레이드될 수 있다.
하드웨어(270)는 데이터 저장 장치(210) 뿐만 아니라 런타임 환경에 있는 오브젝트들과 인터페이싱하기 위한 입출력 인터페이스 카드(272, 274)를 포함하는 것이 바람직하다.
데이터 저장 장치(210)는 바람직하게는, 패키지(490)로 알려진 오브젝트들 또는 오브젝트들의 집합에 대한 정의들을 포함하는 저장소이다. 그러한 패키지들은 전형적으로 오브젝트들의 집합을 보다 편리하게 전달하게 하도록 조립된다.
업그레이드 프로세스
범용 컴퓨터(240)에서 실행되는 객체 지향 소프트웨어를 업그레이드하는 바람직한 실시예가 도 5와 관련하여 설명된다. 도 5에 도시된 바와 같이, 단계 505 에서, 시스템 조정자가 업그레이드 세션을 개시한다. 단계 510에서, 오브젝트 관리자(440)는 오브젝트 패키지(490)(업그레이드된 오브젝트들을 포함)가 데이터 스토어(210) 내에 존재하는지를 판정한다. 업그레이드 패키지가 사용가능하면, 런타임 확장가능 업그레이드가 단계 520에서 실행된다.
런타임 확장가능 업그레이드를 수행하기 전에(단계 520), 오브젝트 관리자(440)는 다른 오브젝트들에 대한 동적 레퍼런스들(418)을 포함한 환경(250)에서 모든 현재 오브젝트 인스턴스들의 상태를 계속 추적한다. 단계 530에서, 오브젝트 관리자(440)는 업그레이드 패키지(490)에서 임의의 새로운 오브젝트들을 식별하고, 만일 있다면, 그들이 적절하게 형성되고 변질되지 않았는지를 검증한다. 단계 535에서, 패키지(490) 내의 각 오브젝트와 그 오브젝트의 대응하는 인터페이스들 및 속성들이 열거된다. 이러한 열거 처리시, 오브젝트 관리자(440)는 오브젝트들이 다른 오브젝트들과 상호작용할 방법을 결정한다. 다음, 단계 540에서, 각 오브젝트는 그것을 호출할 수 있는 다른 오브젝트들과의 호환성에 대해 평가된다. 또한, 오브젝트 버전을 체크하여 오브젝트 버전이 다른 상호작용 오브젝트들 뿐만 아니라, 오브젝트 관리자(440) 및 환경(250)과 호환가능한지를 확인하는 것이 바람직하다.
단계 550에서, 오브젝트 관리자(440)는 환경(250)의 적합한 영역에 새로운 오브젝트들의 인스턴스들을 생성한다. 오브젝트 관리자(440)는 또한 새로운 오브젝트들과 기존의 서비스들(430) 또는 애플리케이션들(420) 사이의 논리 접속을 확립한다.
기존 오브젝트들에 의해 제공된 기능들을 전부 또는 부분적으로 대체하는 새로운 오브젝트들에 대하여, 오브젝트 관리자(440)는 대체되는 기존의 오브젝트들로부터 설치되는 새로운 오브젝트들로의 변화를 차례로 명령하도록 구성되는 것이 바람직하다. 이러한 프로세스는 본원에서 스테이징(staging)이라고 지칭되고, 도 6과 관련하여 이하에 보다 상세히 설명된다. 단계 560에서, 오브젝트 관리자(440)는 기존 오브젝트들로부터의 필드들(412)을 그들의 대응하는 대체 오브젝트들로 카피한다. 다음, 단계 570에서, 라인에 남아 있는 기존 오브젝트들과 임의의 새로운 오브젝트들 사이에 새로운 다이나믹 레퍼런스들(418)이 설정된다. 단계 575에서, 기존의 다이나믹 레퍼런스들(418)은 새로운 오브젝트들로 재라우팅된다. 이에 의해 기존의 오브젝트들로부터 새로운 오브젝트들로 오브젝트 레퍼런스들(418)을 순서대로 재라우팅할 수 있다.
단계 580에서, 더 이상 활성적으로 사용되지 않는 오브젝트들(410)은 오브젝트 관리자(440)에 의해 환경(250)으로부터 영구히 퍼징되거나, 나중에 복구될 가능성을 위해 저장장치(210)에 보관된다.
업그레이드는 기존의 오브젝트들의 부분적이거나 완전한 대체를 포함할 수 있기 때문에, 대체되는 오브젝트들에 의해 제공된 서비스들 또는 기능들의 중지에 대한 가능성이 존재한다. 바람직한 실시예에서, 본 시스템 및 방법은 기존의 오브젝트들이 대체됨에 따른 서비스 중단을 피하기 위해 새로운 대체 오브젝트들을 스테이징함으로써 이러한 문제를 처리한다. 보다 구체적으로, 스테이징에 의해, 오브젝트 관리자(440)는 데이터 통신 경로들을 방해하거나 종료하기보다는 업그레이 드 동안 활성 데이터 통신 경로들을 기존의 오브젝트로부터 새로운 오브젝트들로 전송한다.
예시적인 스테이징 프로세스는 도 6에 예시되어 있다. 도 6의 예시적인 시나리오에서, 오브젝트 A는 업그레이드의 일부로서 오브젝트 B에 의해 대체된다. 단계 610에서, 오브젝트 관리자(440)는 오브젝트 B의 메소드 및 속성이 오브젝트 A가 참조하는 업스트림 오브젝트들과 호환가능한지를 확인한다. 상기 업스트림 오브젝트들은 오브젝트 A로 데이터 또는 서비스들을 제공하는 오브젝트들이다. 단계 615에서, 오브젝트 관리자(440)는 오브젝트 B의 메소드 및 속성이 오브젝트 A를 참조하는 다운스트림 오브젝트들과 호환가능한지를 확인한다. 상기 다운스트림 오브젝트들은 오브젝트 A로부터 데이터를 수신하거나 서비스들을 요구하는 오브젝트들이다. 이러한 확인이 완료되면, 오브젝트 관리자(440)는 환경(250)에서 오브젝트 B의 인스턴스를 생성한다.
다음, 단계 625에서, 오브젝트 관리자(440)는 환경(250)에서 오브젝트 A 및 오브젝트 B를 로킹한다. 로킹은 어느 한쪽의 오브젝트의 필드들(412)이 변하는 것을 방지하고, 오브젝트 A에서 오브젝트 B로의 천이 동안 오브젝트 관리자(440)에게 상기 오브젝트들에 대한 배타적 액세스를 제공한다.
단계 630에서, 오브젝트들이 로킹되어 있는 동안 오브젝트 관리자(440)는오브젝트 A에서 발견된 필드들의 값을 오브젝트 B에 카피한다. 그 후, 단계 635에서, 업스트림 오브젝트들에 대한 레퍼런드들(418)이 오브젝트 A로부터 오브젝트 B로 카피된다. 마찬가지로, 단계 640에서, 다운스트림 오브젝트들에서 발견된 오브 젝트 A에 대한 레퍼런스들이 오브젝트 B로 재지향된다. 단계 645에서, 오브젝트 B는 오브젝트 관리자(440)에 의해 언로킹되기 때문에, 초기에 오브젝트 A에 의해서 제공되었지만 현재는 오브젝트 B에 의해 제공된 서비스 및 기능을 복구하고 오브젝트 B에 의해 제공된 임의의 새로운 서비스 및 기능을 가용하게 한다. 단계 650에서, 오브젝트 관리자(440)는 오브젝트 A를 퍼징 또는 보관하고, 이에 의해 스테이징 프로세스를 종료한다.
스테이징은 또한 오브젝트들의 메소드들이 전체 오브젝트를 대체하지 않고 변경되는 정교한 접근법을 포함한다. 이러한 경우, 전체 오브젝트는 로킹될 필요가 없고, 대신에, 업그레이드된 메소드에 대한 액세스가 제한한다. 예를 들어, 스트림 관리자 오브젝트에 포함된 로그 라이터 인터페이스(log writer interface)가 업그레이드를 요구한다고 가정하자. 스트림 관리자 오브젝트는 다른 메소드들을 통해 다른 오브젝트들에 기능들을 계속해서 제공한다. 스테이징 프로세스는 오브젝트가 로그 라이터 인터페이스에 액세스하는 것을 차단하지만, 스트림 관리자 오브젝트를 로킹하지 않는다. 로그 라이터 인터페이스를 위한 코드가 대체된 후, 오브젝트들은 로그 라이터 인터페이스와의 상호작용을 재개할 수 있다.
런타임 확장가능 디지털 미디어 서버
하드웨어 엔진(220) 내의 프로그램 가능 로직 디바이스들(227)은 일반적으로 범용 컴퓨터(240)와 같은 오퍼레이팅 시스템을 포함하지 않는다. 대신, PLD들은 일반적으로, 상술한 바와 같이, 비교적 한정된 데이터 처리 태스크들의 세트를 효율적으로 달성하기 위해 프로그램 가능 로직으로 설계된다. PLD(227)에서 발견되 는 프로그램 가능 로직의 업그레이드 동안 충분한 용량의 매체 전달을 유지하기 위한 2가지의 바림직한 실시예가 후술된다.
바람직한 제1 실시예에서는, 각 PLD(227)는 디바이스의 특정 부분들을 선택적으로 분할 및 재프로그래밍하고 다른 영향받지 않은 부분들은 정상적으로 동작하게 둘 수 있다. 바람직한 제2 실시예에서는, 하드웨어 엔진(220)은 용장 PLD를 포함한다. 이러한 실시예들은 도 7A-B 및 도 8, 9와 관련하여 설명된다.
도 7A는 분할가능한 PLD 실시예를 도시한다. 이러한 실시예에서, 디지털 미디어 전달 파이프라인(700)은 데이터 경로(710) 및 분할가능한 재프로그램 가능 로직 디바이스(720)를 포함하는 것이 바람직하다. 분할가능한 재프로그램 가능 로직 디바이스(720)는 복수의 파티션들(예를 들어, 722, 724, 726)을 포함하는 것이 바람직하며, 이들 각각은 다른 파티션들이 계속해서 동작하는 동안 독립적으로 재프로그램될 수 있다.
분할가능한 PLD(700)에 대한 펌웨어 업그레이드 프로세스의 예는 도 8에 보다 상세히 설명된다. 도 8에 도시된 바와 같이, 단계 810에서, 시스템 조정자는 펌웨어 업그레이드를 개시하고, PLD(700)에 새로운 파티션이 생성된다. 다음, 단계 820에서, 파티션은 새로운 HLD(hardware description language) 로직 세트로 프로그램된다. 단계 830에서, 동작 전송이 행해지는데, 여기서 파티션은 대체중인 초기 파티션으로부터의 처리 기능들을 제어한다. 보다 구체적으로, 새로운, 비활성 파티션은 활성 상태로 천이되고, 디지털 미디어를 계속 스트리밍하기 위해 필요한 처리 기능들을 제공한다. 동시에, 초기 파티션은 비활성 상태로 천이된다. 그 후, 단계 840에서, 초기 파티션은 재프로그램되며, 이에 따라 업그레이드 세션이 종료된다.
도 7B는 용장 로직 디바이스 실시예를 도시한다. 이러한 실시예에서, 디지털 미디어 전달 파이프라인(750)은 데이터 경로(760), 제1 프로그램 가능 로직 디바이스(770)(PLD-A), 및 제2 프로그램 가능 로직 디바이스(780)(PLD-B)를 포함하는 것이 바람직하다. 비활성 디바이스는 단지 경로(760)를 통해 데이터를 전달한다.
이러한 용장 접근법에 의해, 하나의 PLD는 재프로그램에 사용하도록 남겨질 수 있고, 다른 것은 범용 컴퓨터(240)로부터의 요청들에 응답한다. 후에, 2개의 PLD는 다시 제어를 교환할 수 있기 때문에 나머지가 업그레이드될 수 있다. 따라서 펌웨어 업그레이드는 디지털 미디어 전달 서비스를 중단하지 않고 완료될 수 있다.
용장 PLD 파이프라인(750)에 대한 펌웨어 업그레이드 프로세스의 예는 도 9에서 보다 상세히 도시된다. 도 9에 도시된 바와 같이, 단계 910에서, ㅊ시스템 조정자가 펌웨어 업그레이드를 개시하는 경우, 어떤 디바이스(770, 780)가 활성이고 어떤 것이 비활성 또는 통과인지에 대한 판정이 이루어진다. 도 7B의 예시적인 시나리오를 위해, PLD-A(770)가 활성이라고 가정한다. 다음, 단계 920에서, PLD-B(780)은 새로운 HDL(hardware description language) 로직 세트를 로딩함으로써 업그레이드된다. 단계 930에서, 동작 전송이 이루어지는데, 여기서 PLD-B(780)는 활성 디바이스가 되고, PLD-A(770)는 비활성이 된다. 그 후, 단계 940에서, PLD-A는 새로운 HDL 로직 세트로 업그레이드되어 업그레이드 세션을 완료한다.
본 발명은 특정 실시예들과 관련하여 설명되었지만, 상기 설명의 관점에서 본 기술분야에 숙련된 당업자들에게 수많은 대안, 수정, 및 변화가 명백해질 것이다.

Claims (39)

  1. 디지털 미디어 서버를 업그레이드하는 방법으로서,
    새로운 오브젝트들을 포함하는 업그레이드 패키지의 존재를 체크하는 단계;
    상기 업그레이드 패키지의 새로운 오브젝트들을 식별하는 단계;
    상기 새로운 오브젝트들의 기능들 및 속성들을 식별하는 단계;
    상기 새로운 오브젝트들의 호환성을 평가하는 단계;
    새로운 오브젝트들을 애플리케이션 오브젝트들 또는 서비스 오브젝트들로서 인스턴스화하는 단계;
    새로운 오브젝트가 기존 오브젝트를 대체할지 여부를 판정하는 단계; 및
    상기 새로운 오브젝트가 상기 기존 오브젝트를 대체하는 경우, 상기 기존 오브젝트를 대체하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 대체 단계는,
    상기 기존 오브젝트 및 상기 새로운 오브젝트를 로킹(locking)하는 단계;
    상기 기존 오브젝트로부터의 필드들을 상기 새로운 오브젝트로 카피하는 단계;
    상기 새로운 오브젝트로부터 상기 기존 오브젝트에 따른 오브젝트들로의 링 크들을 확립하는 단계;
    다른 오브젝트들로부터의 상기 기존 오브젝트에 대한 링크들을 상기 새로운 오브젝트로 재라우팅(rerouting)하는 단계;
    상기 새로운 오브젝트를 언로킹(unlocking)하는 단계; 및
    상기 기존 오브젝트를 제거하는 단계
    를 더 포함하는 방법.
  3. 제2항에 있어서,
    상기 제거 단계는 상기 기존 오브젝트를 보관하는 단계를 포함하는 방법.
  4. 제2항에 있어서,
    상기 제거 단계는 상기 기존 오브젝트를 퍼징(purging)하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 업그레이드 패키지는 기존 오브젝트들에 대한 하나 이상의 새로운 메소드들을 더 포함하고, 상기 방법은,
    상기 하나 이상의 새로운 메소드들을 식별하는 단계;
    상기 하나 이상의 새로운 메소드들의 호환성을 평가하는 단계;
    새로운 메소드가 기존 메소드를 대체할지를 결정하는 단계; 및
    상기 새로운 메소드가 상기 기존 메소드를 대체하면, 상기 기존 메소드를 차단 및 대체하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서,
    상기 기존 메소드는 인터페이스인 방법.
  7. 제1항에 있어서,
    네트워크 소스로부터 상기 업그레이드 패키지를 다운로드하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서,
    저장 매체로부터 상기 업그레이드 패키지를 로딩하는 단계를 더 포함하는 방법.
  9. 제1 활성 파티션 및 제2 비활성 파티션을 갖는 분할가능한 프로그램 가능 로직 디바이스를 갖는 디지털 미디어 서버 업그레이드 방법으로서,
    새로운 로직으로 상기 제2 파티션을 프로그램하는 단계;
    상기 비활성 상태로부터 상기 활성 상태로 상기 제2 파티션을 천이시키고 동시에 상기 제1 파티션으로부터 데이터 처리 기능들을 취하는 단계; 및
    상기 제1 파티션을 비활성 상태로 천이시키는 단계
    를 포함하는 방법.
  10. 제9항에 있어서,
    상기 새로운 로직으로 상기 제1 파티션을 프로그램하는 단계를 더 포함하는 방법.
  11. 각각 활성 및 비활성 상태를 갖는 2개 이상의 용장 프로그램 가능 로직 디바이스들을 갖는 디지털 미디어 서버를 업그레이드하는 방법으로서,
    상기 활성 상태의 프로그램 가능 로직 디바이스들의 제1 세트를 결정하는 단계;
    새로운 로직을 상기 비활성 상태의 하나 이상의 로직 디바이스들의 제2 세트로 로딩하는 단계;
    상기 제2 세트의 디바이스들을 상기 활성 상태로 천이시키고 동시에 상기 제1 세트의 디바이스들로부터 데이터 처리 기능들을 취하는 단계; 및
    상기 제1 세트의 디바이스들을 상기 비활성 상태로 천이시키는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    새로운 로직을 상기 제1 세트의 디바이스들로 로딩하는 단계를 더 포함하는 방법.
  13. 범용 컴퓨터 및 하드웨어 엔진을 포함하는 디지털 미디어 서버에 업그레이드들을 인스톨하는 방법으로서, 상기 컴퓨터는 객체 지향 런타임 환경을 포함하고, 상기 하드웨어 엔진은 제1 활성 파티션 및 제2 비활성 파티션을 갖는 프로그램가능 로직 디바이스를 포함하며, 상기 방법은,
    새로운 오브젝트들 및 새로운 로직을 포함하는 업그레이드 패키지의 존재를 체크하는 단계;
    상기 업그레이드 패키지의 새로운 오브젝트들을 식별하는 단계;
    상기 새로운 오브젝트들의 기능들 및 속성들을 식별하는 단계;
    상기 새로운 오브젝트들의 호환성을 평가하는 단계;
    새로운 오브젝트들을 애플리케이션 오브젝트들 또는 서비스 오브젝트들로서 인스턴스화하는 단계;
    새로운 오브젝트가 기존 오브젝트를 대체할지 여부를 판정하는 단계;
    상기 새로운 오브젝트가 상기 기존 오브젝트를 대체하는 경우, 상기 기존 오브젝트를 대체하는 단계;
    상기 업그레이드 패키지의 새로운 로직을 식별하는 단계;
    상기 새로운 로직으로 상기 제2 비활성 파티션을 프로그램하는 단계;
    비활성 상태로부터 활성 상태로 상기 제2 파티션을 천이시키고 동시에 상기 제1 활성 파티션으로부터 데이터 처리 기능들을 취하는 단계; 및
    상기 제1 파티션을 비활성 상태로 천이시키는 단계
    를 포함하는 방법.
  14. 제13항에 있어서,
    상기 새로운 로직으로 상기 제1 파티션을 프로그램하는 단계를 더 포함하는 방법.
  15. 제13항에 있어서,
    네트워크 소스로부터 상기 업그레이드 패키지를 다운로드하는 단계를 더 포함하는 방법.
  16. 제13항에 있어서,
    저장 매체로부터 상기 업그레이드 패키지를 로딩하는 단계를 더 포함하는 방법.
  17. 제13항에 있어서,
    상기 대체 단계는,
    상기 기존 오브젝트 및 상기 새로운 오브젝트를 로킹(locking)하는 단계;
    상기 기존 오브젝트로부터의 필드들을 상기 새로운 오브젝트로 카피하는 단계;
    상기 새로운 오브젝트로부터 상기 기존 오브젝트에 따른 오브젝트들로의 링크들을 확립하는 단계;
    다른 오브젝트들로부터의 상기 기존 오브젝트에 대한 링크들을 상기 새로운 오브젝트로 재라우팅하는 단계;
    상기 새로운 오브젝트를 언로킹하는 단계; 및
    상기 기존 오브젝트를 제거하는 단계
    를 더 포함하는 방법.
  18. 제17항에 있어서,
    상기 제거 단계는 상기 기존 오브젝트를 보관하는 단계를 포함하는 방법.
  19. 제17항에 있어서,
    상기 제거 단계는 상기 기존 오브젝트를 퍼징하는 단계를 포함하는 방법.
  20. 범용 컴퓨터 및 하드웨어 엔진을 포함하는 디지털 미디어 서버에 업그레이드들을 인스톨하는 방법으로서, 상기 컴퓨터는 객체 지향 런타임 환경을 포함하고, 상기 하드웨어 엔진은 각각 활성 및 비활성 상태들을 갖는 2개 이상의 프로그램가능 로직 디바이스들을 포함하며, 상기 방법은,
    새로운 오브젝트들 및 새로운 로직을 포함하는 업그레이드 패키지의 존재를 체크하는 단계;
    상기 업그레이드 패키지의 새로운 오브젝트들을 식별하는 단계;
    상기 새로운 오브젝트들의 기능들 및 속성들을 식별하는 단계;
    상기 새로운 오브젝트들의 호환성을 평가하는 단계;
    새로운 오브젝트들을 애플리케이션 오브젝트들 또는 서비스 오브젝트들로서 인스턴스화하는 단계;
    새로운 오브젝트가 기존 오브젝트를 대체할지 여부를 판정하는 단계;
    상기 새로운 오브젝트가 상기 기존 오브젝트를 대체하는 경우, 상기 기존 오브젝트를 대체하는 단계;
    상기 업그레이드 패키지의 새로운 로직을 식별하는 단계;
    상기 활성 상태의 프로그램 가능 로직 디바이스들의 제1 세트를 결정하는 단계;
    상기 새로운 로직을 비활성 상태의 하나 이상의 로직 디바이스들의 제2 세트로 프로그램하는 단계;
    상기 제2 세트의 디바이스들을 상기 활성 상태로 천이시키고 동시에 상기 제1 세트의 디바이스들로부터의 데이터 처리 기능들을 취하는 단계; 및
    상기 제1 세트의 디바이스들을 상기 비활성 상태로 천이시키는 단계
    를 포함하는 방법.
  21. 제20항에 있어서,
    상기 새로운 로직을 상기 제1 세트의 디바이스들로 프로그램하는 단계를 더 포함하는 방법.
  22. 제20항에 있어서,
    네트워크 소스로부터 상기 업그레이드 패키지를 다운로드하는 단계를 더 포함하는 방법.
  23. 제20항에 있어서,
    저장 매체로부터 상기 업그레이드 패키지를 로딩하는 단계를 더 포함하는 방법.
  24. 제20항에 있어서,
    상기 대체 단계는,
    상기 기존 오브젝트 및 상기 새로운 오브젝트를 로킹(locking)하는 단계;
    상기 기존 오브젝트로부터의 필드들을 상기 새로운 오브젝트로 카피하는 단계;
    상기 새로운 오브젝트로부터 상기 기존 오브젝트에 따른 오브젝트들로의 링크들을 확립하는 단계;
    다른 오브젝트들로부터의 상기 기존 오브젝트에 대한 링크들을 상기 새로운 오브젝트로 재라우팅하는 단계;
    상기 새로운 오브젝트를 언로킹하는 단계; 및
    상기 기존 오브젝트를 제거하는 단계
    를 더 포함하는 방법.
  25. 제24항에 있어서,
    상기 제거 단계는 상기 기존 오브젝트를 보관하는 단계를 포함하는 방법.
  26. 제24항에 있어서,
    상기 제거 단계는 상기 기존 오브젝트를 퍼징하는 단계를 포함하는 방법.
  27. 제20항에 있어서,
    상기 업그레이드 패키지는 기존 오브젝트들에 대한 하나 이상의 새로운 메소드들을 더 포함하고, 상기 방법은,
    상기 하나 이상의 새로운 메소드들을 식별하는 단계;
    상기 하나 이상의 새로운 메소드들의 호환성을 평가하는 단계;
    새로운 메소드가 기존 메소드를 대체할지를 결정하는 단계; 및
    상기 새로운 메소드가 상기 기존 메소드를 대체하면, 상기 기존 메소드를 차단 및 대체하는 단계
    를 더 포함하는 방법.
  28. 제27항에 있어서,
    상기 기존 메소드는 인터페이스인 방법.
  29. 디지털 미디어 서버에 있어서,
    오브젝트 스토어; 및
    객체 지향 런타임 환경을 포함하며,
    상기 객체 지향 런타임 환경은,
    서비스 오브젝트들;
    애플리케이션 오브젝트들, 및
    상기 서비스 및 애플리케이션 오브젝트들에 의해 공급된 데이터 처리 기능을 중단하지 않고 상기 서비스 오브젝트들 및 상기 애플리케이션 오브젝트들의 대체를 용이하게 하도록 구성된 오브젝트 관리자
    를 포함하는 디지털 미디어 서버.
  30. 제29항에 있어서,
    대체 서비스 및 애플리케이션 오브젝트들을 포함하는 업그레이드 패키지를 다운로드하는 네트워크 인터페이스를 더 포함하는 서버.
  31. 제29항에 있어서,
    대체 서비스 및 애플리케이션 오브젝트들을 포함하는 업그레이드 패키지를 저장하는 저장 매체를 더 포함하는 서버.
  32. 디지털 미디어 서버에 있어서,
    각각 활성 상태와 비활성 상태 사이를 전환할 수 있는 2개 이상의 프로그램가능 로직 디바이스들;
    입력 데이터 경로; 및
    출력 데이터 경로
    를 포함하며,
    상기 활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 상기 입력 데이터 경로에 도달한 디지털 미디어를 처리하고 처리된 디지털 미디어를 상기 출력 데이터 경로에 보내는 한편 상기 비활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 프로그램되는 디지털 미디어 서버.
  33. 디지털 미디어 서버에 있어서,
    2개 이상의 독립적으로 프로그램가능한 파티션들을 갖는 분할가능한 프로그램가능 로직 디바이스 - 각 파티션은 활성 상태와 비활성 상태 사이에서 전환할 수 있음 - ;
    입력 데이터 경로; 및
    출력 데이터 경로
    를 포함하고,
    상기 활성 상태의 하나 이상의 파티션들은 상기 입력 데이터 경로에 도달한 디지털 미디어를 처리하고 처리된 디지털 미디어를 상기 출력 데이터 경로에 보내는 반면 상기 비활성 상태의 하나 이상의 파티션들은 프로그램되는 디지털 미디어 서버.
  34. 디지털 미디어 서버에 있어서,
    오브젝트 스토어;
    객체 지향 런타임 환경 - 상기 객체 지향 런타임 환경은,
    서비스 오브젝트들;
    애플리케이션 오브젝트들; 및
    상기 서비스 및 애플리케이션 오브젝트들에 의해 공급된 데이터 처리 기능을 중단하지 않고 상기 서비스 오브젝트들 및 상기 애플리케이션 오브젝트들의 대체를 용이하게 하도록 구성된 오브젝트 관리자
    를 포함함 - ;
    각각 활성 상태와 비활성 상태 사이에서 전환할 수 있는 2개 이상의 프로그램가능 로직 디바이스들;
    입력 데이터 경로; 및
    출력 데이터 경로
    를 포함하며,
    상기 활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 상기 입력 데이터 경로에 도달한 디지털 미디어를 처리하고 처리된 디지털 미디어를 상기 출 력 데이터 경로에 보내는 한편 상기 비활성 상태의 하나 이상의 프로그램가능 로직 디바이스들은 새로운 로직으로 프로그램되는 서버.
  35. 제34항에 있어서,
    대체 서비스 및 애플리케이션 오브젝트들 및 새로운 로직을 포함하는 업그레이드 패키지를 다운로드하는 네트워크 인터페이스를 더 포함하는 서버.
  36. 제34항에 있어서,
    대체 서비스 및 애플리케이션 오브젝트들 및 새로운 로직을 포함하는 업그레이드 패키지를 저장하는 저장 매체를 더 포함하는 서버.
  37. 디지털 미디어 서버에 있어서,
    오브젝트 스토어;
    객체 지향 런타임 환경 - 상기 객체 지향 런타임 환경은,
    서비스 오브젝트들;
    애플리케이션 오브젝트들, 및
    상기 서비스 및 애플리케이션 오브젝트들에 의해 공급된 데이터 처리 기능을 중단하지 않고 상기 서비스 오브젝트들 및 상기 애플리케이션 오브젝트들의 대체를 용이하게 하도록 구성된 오브젝트 관리자
    를 포함함 - ;
    2개 이상의 독립적으로 프로그램가능한 파티션들을 갖는 분할가능한 프로그램가능 로직 디바이스 - 각 파티션은 활성 상태와 비활성 상태 사이에서 전환할 수 있음 - ;
    입력 데이터 경로; 및
    출력 데이터 경로
    를 포함하고,
    상기 활성 상태의 하나 이상의 파티션들은 상기 입력 데이터 경로에 도달한 디지털 미디어를 처리하고 처리된 디지털 미디어를 상기 출력 데이터 경로에 보내는 한편 상기 비활성 상태의 하나 이상의 파티션들은 새로운 로직으로 프로그램되는 서버.
  38. 제37항에 있어서,
    대체 서비스 및 애플리케이션 오브젝트들 및 새로운 로직을 포함하는 업그레이드 패키지를 다운로드하는 네트워크 인터페이스를 더 포함하는 서버.
  39. 제37항에 있어서,
    대체 서비스 및 애플리케이션 오브젝트들 및 새로운 로직을 포함하는 업그레이드 패키지를 저장하는 저장 매체를 더 포함하는 서버.
KR1020057018871A 2003-04-02 2005-10-04 디지털 미디어 서버들을 업그레이드하는 방법 KR101076642B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/406,108 US6978452B2 (en) 2003-04-02 2003-04-02 Upgrading digital media servers
US10/406,108 2003-04-02
PCT/US2004/009887 WO2004090686A2 (en) 2003-04-02 2004-03-30 Upgrading digital media servers

Publications (2)

Publication Number Publication Date
KR20060073535A true KR20060073535A (ko) 2006-06-28
KR101076642B1 KR101076642B1 (ko) 2011-10-26

Family

ID=33097253

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057018871A KR101076642B1 (ko) 2003-04-02 2005-10-04 디지털 미디어 서버들을 업그레이드하는 방법

Country Status (6)

Country Link
US (2) US6978452B2 (ko)
EP (1) EP1609308A4 (ko)
JP (2) JP5329039B2 (ko)
KR (1) KR101076642B1 (ko)
CN (1) CN100568938C (ko)
WO (1) WO2004090686A2 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7284236B2 (en) * 2002-10-29 2007-10-16 Brocade Communications Systems, Inc. Mechanism to change firmware in a high availability single processor system
US6978452B2 (en) 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US6996635B2 (en) * 2003-08-22 2006-02-07 International Business Machines Corporation Apparatus and method to activate transparent data storage drive firmware updates
US7526771B2 (en) * 2003-11-12 2009-04-28 Ntt Docomo, Inc. Method and apparatus for configuring an application while the application is running
US7490323B2 (en) * 2004-02-13 2009-02-10 International Business Machines Corporation Method and system for monitoring distributed applications on-demand
US7543019B1 (en) * 2004-03-31 2009-06-02 Emc Corporation Methods and apparatus providing backward compatibility for applications that access a changing object model
US8146073B2 (en) * 2004-09-30 2012-03-27 Microsoft Corporation Updating software while it is running
TWI255408B (en) * 2004-12-24 2006-05-21 Hon Hai Prec Ind Co Ltd System and method for client linking with server automatically
CN100521676C (zh) * 2005-04-14 2009-07-29 华为技术有限公司 在机顶盒中单独升级业务软件的实现方法和装置
US7814479B2 (en) * 2005-12-14 2010-10-12 International Business Machines Corporation Simultaneous download to multiple targets
US7761734B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Automated firmware restoration to a peer programmable hardware device
US7761735B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Automated firmware restoration to a peer programmable hardware device
US8418164B2 (en) * 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
US8516037B2 (en) * 2008-06-16 2013-08-20 International Business Machines Corporation Methods for dynamic partitioning of applications in client-server environments
WO2010010597A1 (ja) * 2008-07-23 2010-01-28 富士通株式会社 静的にリンクされた実行形式プログラムファイルにおけるオブジェクトを結合するオブジェクト結合装置、オブジェクトの結合方法およびそのプログラム
US8275116B2 (en) 2008-08-29 2012-09-25 8X8, Inc. Networked contact center
US8243913B2 (en) 2008-08-29 2012-08-14 8×8, Inc. Limiting contact in a networked contact center environment
US8984300B2 (en) * 2008-09-30 2015-03-17 Infineon Technologies Ag Secure operation of programmable devices
US8332842B2 (en) * 2008-11-14 2012-12-11 International Business Machines Corporation Application restore points
WO2010124921A1 (en) 2009-04-27 2010-11-04 International Business Machines Corporation Message switching
US8589904B2 (en) * 2009-08-10 2013-11-19 Symantec Corporation Systems and methods for updating a software product
US20110099556A1 (en) * 2009-10-22 2011-04-28 International Business Machines Corporation Updating system for a microcontroller and associated methods
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US20130117738A1 (en) * 2011-11-03 2013-05-09 Microsoft Corporation Server Upgrades with Safety Checking and Preview
TWI462017B (zh) * 2012-02-24 2014-11-21 Wistron Corp 伺服器部署系統及資料更新的方法
JP6040980B2 (ja) * 2012-03-16 2016-12-07 日本電気株式会社 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム
WO2013136717A1 (ja) * 2012-03-16 2013-09-19 日本電気株式会社 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム記憶媒体
US8949818B2 (en) 2012-06-29 2015-02-03 Intel Corporation Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
CN102857949B (zh) * 2012-09-14 2018-11-20 中兴通讯股份有限公司 一种规划数据一致性保证的方法和装置
JP6036835B2 (ja) * 2012-09-18 2016-11-30 日本電気株式会社 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム
CN104903853B (zh) * 2013-01-15 2018-09-04 慧与发展有限责任合伙企业 动态固件更新
US9003386B2 (en) * 2013-02-28 2015-04-07 Sap Se Fallback system for software upgrade
US9575744B2 (en) 2014-09-26 2017-02-21 Oracle International Corporation Live updating of a shared plugin registry with no service loss for active users
CN104898592B (zh) * 2015-03-31 2017-11-28 联想(北京)有限公司 一种联动规则的生成方法及电子设备
US9857975B2 (en) 2015-06-26 2018-01-02 International Business Machines Corporation Non-volatile memory drive partitions within microcontrollers
CN107479937A (zh) * 2017-09-25 2017-12-15 郑州云海信息技术有限公司 一种多节点集群交叉升级的方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE58909255D1 (de) 1989-05-22 1995-06-29 Siemens Ag Halbleiterspeicheranordnung mit Kondensatoren mir zwei in einem Graben angeordneten Elektroden und Verfahren zu deren Herstellung.
US5210854A (en) * 1989-06-14 1993-05-11 Digital Equipment Corporation System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
US5432927A (en) * 1992-06-17 1995-07-11 Eaton Corporation Fail-safe EEPROM based rewritable boot system
JPH07200279A (ja) * 1993-12-28 1995-08-04 Toshiba Corp オブジェクト管理システム及びネットワーク管理システム
SE504943C2 (sv) * 1994-12-09 1997-06-02 Ericsson Telefon Ab L M Synkroniseringsförfarande som tillåter tillståndsöverföring
US5867713A (en) * 1995-04-05 1999-02-02 International Business Machines Corporation Committing an install plan object for the network installation of application programs
JP3590688B2 (ja) * 1995-04-05 2004-11-17 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションを導入するための導入計画オブジェクトを構築する方法、及びそのシステム
US5826085A (en) * 1995-07-12 1998-10-20 Oracle Corporation Object oriented computer interface supporting interactive networked applications
US6112253A (en) * 1995-10-12 2000-08-29 International Business Machines Corporation Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
JPH09198233A (ja) * 1996-01-19 1997-07-31 Canon Inc バージョンアップ方法
DE19628168A1 (de) 1996-07-12 1998-01-22 Ibm Vernetztes multimediales Netz
RU2104130C1 (ru) 1996-08-01 1998-02-10 Закрытое акционерное общество "Техно-ТМ" Способ соединения элементов композиционной мишени из тугоплавкого и труднодеформируемого материалов
JPH1074143A (ja) * 1996-08-30 1998-03-17 Hitachi Ltd ディスクアレイサブシステムのバージョンアップ方法
US6266736B1 (en) * 1997-01-31 2001-07-24 Sony Corporation Method and apparatus for efficient software updating
US6189145B1 (en) * 1997-05-28 2001-02-13 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
EP0934563A1 (en) * 1997-05-30 1999-08-11 Koninklijke Philips Electronics N.V. Failsafe method for upgrading set-top system software from a network server
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6516356B1 (en) * 1997-09-30 2003-02-04 International Business Machines Corporation Application interface to a media server and a method of implementing the same
JPH11161482A (ja) * 1997-11-25 1999-06-18 Fuji Xerox Co Ltd 情報処理システム及びそのソフトウェア更新処理方法
US6360363B1 (en) 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
EP1073955B1 (en) * 1998-03-03 2008-04-16 Siebel Systems, Inc. Method, system, apparatus and program product for distribution and instantiation of software upgrades
DE19810814B4 (de) * 1998-03-12 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem und Zustandskopierverfahren zur skalierbaren Software-Aktualisierung
JP3882321B2 (ja) * 1998-03-13 2007-02-14 株式会社日立製作所 オペレーティングシステムのモジュールプログラムを備えた計算機
JP2000137598A (ja) * 1998-10-30 2000-05-16 Toshiba Corp ファームウェア管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3888827B2 (ja) * 2000-03-15 2007-03-07 富士通株式会社 プログラム置換システム、分散処理システム及びプログラム置換方法
US7031989B2 (en) * 2001-02-26 2006-04-18 International Business Machines Corporation Dynamic seamless reconfiguration of executing parallel software
US7373643B2 (en) * 2001-03-06 2008-05-13 Cybersoft, Inc. Apparatus, methods and articles of manufacture for data transmission
US7266816B1 (en) * 2001-04-30 2007-09-04 Sun Microsystems, Inc. Method and apparatus for upgrading managed application state for a java based application
TWI242725B (en) * 2001-06-11 2005-11-01 Oce Tech Bv A method for executing a hot migrate operation through an incremental roll-over process that uses migration plug-in means for conversion during an upgrade transition, and a multiprocessing system and a system arranged for implementing such method
JP2002366381A (ja) * 2001-06-12 2002-12-20 Hitachi Ltd オブジェクトの動的入替え処理方法
US20030018964A1 (en) * 2001-07-19 2003-01-23 International Business Machines Corporation Object model and framework for installation of software packages using a distributed directory
US20030051235A1 (en) * 2001-09-07 2003-03-13 Simpson Mark D. Method and apparatus for verifying and analyzing computer software installation
US7003767B2 (en) * 2001-10-02 2006-02-21 International Business Machines Corp. System and method for remotely updating software applications
US20030074487A1 (en) * 2001-10-17 2003-04-17 Tankut Akgul Dynamic operating system
US20040133888A1 (en) * 2002-08-02 2004-07-08 Delvan Ard Wizard-based voice/data telecommunications system installation and configuration tool
US7665080B2 (en) * 2003-02-12 2010-02-16 Bea Systems, Inc. System and method for using a classloader hierarchy to load software applications
US6978452B2 (en) 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers

Also Published As

Publication number Publication date
EP1609308A2 (en) 2005-12-28
WO2004090686A3 (en) 2005-08-18
JP2006522416A (ja) 2006-09-28
JP5727200B2 (ja) 2015-06-03
JP2011065676A (ja) 2011-03-31
KR101076642B1 (ko) 2011-10-26
CN100568938C (zh) 2009-12-09
JP5329039B2 (ja) 2013-10-30
US20040197073A1 (en) 2004-10-07
EP1609308A4 (en) 2007-08-08
US6978452B2 (en) 2005-12-20
WO2004090686A2 (en) 2004-10-21
CN1762154A (zh) 2006-04-19
USRE42685E1 (en) 2011-09-06

Similar Documents

Publication Publication Date Title
KR101076642B1 (ko) 디지털 미디어 서버들을 업그레이드하는 방법
US7519964B1 (en) System and method for application deployment in a domain for a cluster
US7320127B2 (en) Configuration synchronization for redundant processors executing different versions of software
US8578371B2 (en) Software distribution method and system with automatic prerequisite installation
US7370322B1 (en) Method and apparatus for performing online application upgrades in a java platform
US20130232245A1 (en) Automation for virtualized it environments
US20020010910A1 (en) Preferable modes of software package deployment
CA2904253C (en) Computer system using in-service software upgrade
US20220244943A1 (en) Software and firmware updates in a combined single pane of glass interface
JP2009519544A (ja) 自動ソフトウェアテストフレームワーク
US20220244944A1 (en) Desired state model for managing lifecycle of virtualization software
US20210311711A1 (en) Desired state model for managing lifecycle of virtualization software
CN116860288A (zh) 一种erp系统升级方法、装置、设备及介质
Bannò et al. Tackling consistency issues for runtime updating distributed systems
US6711737B1 (en) Data processing system, data processing method, and program-providing medium therewith
US12175275B2 (en) Validation of combined software/firmware updates
Wolski et al. Rolling upgrades for continuous services
US20030126312A1 (en) System for customizing on-line computer services
CN118445001B (zh) 基于插件开发框架的异构系统集成方法、装置及设备
Masetti et al. Increasing Availability by Implementing Software Redundancy in the CMS Detector Control System
US11435996B2 (en) Managing lifecycle of solutions in virtualization software installed in a cluster of hosts
WO2007144891A1 (en) A method for the distribution of software processes to a plurality of computers
Muehlbach et al. Concurrent driver upgrade: Method to eliminate scheduled system outages for new function releases
US20210311716A1 (en) Deploying virtualization software in a remote cluster
JP2019219995A (ja) 情報処理装置、ロードモジュール生成方法及びプログラム、並びに、動的プログラム更新システム及び方法

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20051004

Patent event code: PA01051R01D

Comment text: International Patent Application

N231 Notification of change of applicant
PN2301 Change of applicant

Patent event date: 20051208

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20090330

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20101026

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20110729

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20111019

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20111019

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20140929

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20160929

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20170929

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20180928

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20190924

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20210929

Start annual number: 11

End annual number: 11

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20240730