KR100310304B1 - 상태이전을허용하는동기화방법 - Google Patents

상태이전을허용하는동기화방법 Download PDF

Info

Publication number
KR100310304B1
KR100310304B1 KR1019970703856A KR19970703856A KR100310304B1 KR 100310304 B1 KR100310304 B1 KR 100310304B1 KR 1019970703856 A KR1019970703856 A KR 1019970703856A KR 19970703856 A KR19970703856 A KR 19970703856A KR 100310304 B1 KR100310304 B1 KR 100310304B1
Authority
KR
South Korea
Prior art keywords
new
old
software
static process
static
Prior art date
Application number
KR1019970703856A
Other languages
English (en)
Other versions
KR980700608A (ko
Inventor
홀테-로스트 안나
푹스 로버트
마아크스트렘 울프
Original Assignee
에를링 블로메, 타게 뢰브그렌
텔레폰아크티에볼라게트 엘엠 에릭슨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from SE9404297A external-priority patent/SE9404297D0/xx
Application filed by 에를링 블로메, 타게 뢰브그렌, 텔레폰아크티에볼라게트 엘엠 에릭슨 filed Critical 에를링 블로메, 타게 뢰브그렌
Publication of KR980700608A publication Critical patent/KR980700608A/ko
Application granted granted Critical
Publication of KR100310304B1 publication Critical patent/KR100310304B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54575Software application
    • H04Q3/54583Software development, e.g. procedural, object oriented, software generation, software testing
    • 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
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54508Configuration, initialisation
    • H04Q3/54516Initialization, software or data downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1305Software aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13057Object-oriented software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13109Initializing, personal profile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13376Information service, downloading of information, 0800/0900 services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Stored Programmes (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Circuits Of Receivers In General (AREA)
  • Control By Computers (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Control Of Multiple Motors (AREA)
  • Synchronizing For Television (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)

Abstract

본 발명은 운영 컴퓨터 시스템에서 소프트웨어의 교체에 관한 것이며, 특히 구 소프트웨어내의 프로세스에서 새로운 소프트웨어내의 프로세스로 상태 이전의 동기화에 관한 것이다. 구 소프트웨어와 새로운 소프트웨어에서 실행되는 프로세스간의 상태 이전 동기화는 곧 닥쳐올 중단을 위하여 구 소프트웨어내의 구 정적 프로세스를 준비시키는 단계와, 상태 이전을 위해 구 정적 프로세스를 활성화시키는 단계와, 인수를 위하여 새로운 소프트웨어내의 새로운 정적 프로세스를 준비시키는 단계와, 구 정적 소프트웨어의 모든 자원 오브젝트들을 새로운 정적 프로세스로 이전시키는 단계와, 구 정적 프로세스가 모든 서비스를 제거하도록 명령하는 단계와, 구 정적 프로세스를 종료시키는 단계 및, 인수를 위하여 새로운 정적 프로세스를 인계하여, 새로운 정적 프로세스가 구 정적 프로세스로부터 사전에 요청된 모든 자원 오브젝트의 유일한 소유자임을 표시하는 단계를 포함한다.

Description

상태 이전을 허용하는 동기화 방법
컴퓨터 소프트웨어의 한 양상은 사용자에게 적절한 기능성을 제공하고, 소프트웨어를 최적화하고, 소프트웨어의 존속동안 발생하는 에러와 모순을 정정하기 위해 개정, 부가 및/또는 삭제로 주기적으로 갱신되어야만 한다는 것이다. 새로운 특징이 소프트웨어에 부가되면, 사용자에게 새로운 소프트웨어의 특징을 제공하기 위하여 가능한 빨리 구 소프트웨어를 새로운 소프트웨어 버전으로 교체하는 것이 바람직하다.
독립형 또는 일괄 처리 시스템과 같은 어떤 타입의 컴퓨터 시스템에서, 하나의 버전에서 또 다른 버전으로 소프트웨어를 변경시키는 데에는 거의 장애가 없다. 전형적으로, 컴퓨터 시스템이 거의 동작되지 않는 때 그리고 유지보수 관리인이 손쉽게 이용할 수 있는 때 이 컴퓨터 시스템은 중단된다. 그리고 나서, 구 소프트웨어는 간단히 제거되어 보다 새로운 소프트웨어 버전으로 교체된다. 그후에, 컴퓨터 시스템은 재가동되고 모든 장치의 데이터 처리는 새로운 소프트웨어 버전으로 행해진다. 물론, 새로운 소프트웨어가 전체 컴퓨터 시스템을 정지시키고 나서 재가동시키는데 있어 부적절한 차단없이 모든 기능을 수행한다라고 소프트웨어 관리인 및 운영자가 확신이 설 때까지 이 새로운 소프트웨어는 테스트되고 오프라인 시스템에서 디버깅 되었다라는 추정하에서 이 절차는 행해진다.
현대의 저장 프로그램 제어(SPC : stored program control) 전기통신 교환시스템(통상적으로 현장에서 "교환기"로 언급됨)과 같은 다른 타입의 컴퓨터 시스템에서, 새로운 소프트웨어 버전의 테스팅 또는 시스템내의 소프트웨어의 변경 어느 것도 독립형 또는 일괄 처리 시스템과 같이 용이하지 않다. 예컨대, 새로운 소프트웨어 버전은 실제 동작 처리 호출됨이 없이 효율적으로 테스트될 수 없다. 소프트웨어는 실제 운영 조건하에서 적절하게 기능되는지 그리고 새로운 부분이 운영 SPC 교환 시스템의 일부를 형성하는 모든 다른 소프트웨어 블럭과 적절하게 인터페이스 되는지를 판단하기 위해 동작 동안 테스트되어야만 된다. 게다가, 전기통신교환 시스템은 실제론 결코 운영 중단되지 않는다. 이상적으로, 이들 시스템들은 사회에서 통신 서비스를 위해 계속 사용되어야 하기 때문에 중단없이 영구히 운영된다. 즉, 주야로 시스템을 통해 연속적으로 흐르는 전기통신 트래픽이 존재함으로 교환기의 어떠한 중단도 전기통신 트래픽의 원치 않은 두절을 초래한다. 그러한 통신 두절은 사용자 또는 시스템의 고객 사이에 시스템의 수용뿐만 아니라 시스템의 운영과 시스템의 유효성에 심각한 손상을 끼칠 수 있다.
전기통신 교환 시스템의 이들 실시간 요구는 교환기에 의해 처리되는 전기통신 트래픽을 두절함이 없이 교환기에서 에러 정정 또는 "버그 정정"을 포함하는 소프트웨어의 교체뿐만 아니라 새로운 또는 개선된 기능성을 포함하는 향상된 소프트웨어 버전 또는 소프트웨어의 일부를 테스트하는 것에 상당한 제약을 가한다. 그러므로, 통상적인 "편집-컴파일-링크-로드-실행(edit-compile-link-1oad-run)"을 사용하여 시스템에 새로운 소프트웨어 버전의 요소 또는 유닛을 통합하는 것은 바람직하지 않다.
전기통신 교환기와 같은 운영중인 컴퓨터 시스템에 소프트웨어를 교체하는 것과 관련된 또다른 문제점은 구 소프트웨어내의 프로세스와 새로운 소프트웨어내의 프로세스 사이의 상태 이전과 특히, 이의 동기화이다. 프로세스는 하드웨어 자원상의 정보 또는 내부 데이터 구조를 취급하는 오브젝트 타입의 자원 오브젝트를 사용하거나 또는 포함한다. 본원에서, 상태 이전은 자원 오브젝트의 상태 이전이라는 것을 이해하여야만 한다. 자원 오브젝트에 대한 상태는 할당되거나 또는 비할당 됨으로써 특징지어진다. 구 소프트웨어내의 프로세스에서 새로운 소프트웨어내의 프로세스로의 상태 이전은 자원 오브젝트의 상태가 여러 트랜잭션에 의해 사용될 수 있고 이 여러 트랜잭션보다 오래 존속하기 때문에 사용자와 시스템의 고객에게 필수적이다. 프로세스의 상태는 시간에 따라 변경되어, 이들 프로세스의 상태를 새로운 소프트웨어 버전으로 미리 통합시키는 것을 불가능하게 하고, 따라서 만일 프로세스가 오래 존속한다면, 프로세스는 새로운 소프트웨어로의 교체동안 구 소프트웨어에서 새로운 소프트웨어로 이전되어야만 한다. 시스템이 동작하는 동안 새로운 소프트웨어 버전 및 구 소프트웨어 사이의 상태 이전과 함께 소프트웨어를 수정 또는 확장할 수 있는 기능을 제공하고 어떠한 휴지시간을 필요로 하지 않는 방법이 바람직하다.
동작중인 컴퓨터 시스템에 새로운 소프트웨어를 통합시키는 것과 관련된 문제점을 해결하기 위한 시도가 있었다. 예컨대, 독립형 또는 일괄 방식으로 동작하지 않는 오늘날 사용되는 몇몇 향상된 온-라인 운영 시스템은 독립형 또는 일괄 시스템에 사용되는 방법과 명확히 상이한 방식으로 구 소프트웨어 교체의 문제점을 해결한다. 그러나, 독립형 시스템보다 손쉬울지라도, 개별적인 사용자 또는 사용자 그룹이 새로운 또는 개정된 소프트웨어 버전을 사용하여 프로세스를 할지 하지 않을지를 능동적으로 선택하는 것을 필요로 함으로써 이와 같은 시스템은 여전히 수동으로 소프트웨어를 교체한다. 이 선택은 개별적인 사용자-id 하에서 동작하는 프로세스에 의해 활용되는 소프트웨어의 연결을 수정함으로써 사용자에 의해 실행될 수 있다. 이 선택은 고정된 시간 주기, 통상적으로 몇 주 또는 몇 달 동안 사용자에게 이용될 수 있는데, 이 시간에서 소프트웨어는 어떠한 불일치 없이 각각의 선행 레벨에서 성공적으로 동작한 후에 연결 구조에서 여러 레벨로 이동한다. 연결의 최상레벨에 도달할 때에, 소프트웨어는 "사용할 수 있다"라고 선언되고 구 버전은 시스템의 사용자가 더 이상 이용할 수 없다. 다양한 레벨로 새로운 소프트웨어의 이동뿐만 아니라 시스템에 새로운 소프트웨어의 삽입은 구성 관리의 프로세스, 리포팅의 수동 프로세스, 승인, 각 레벨에서 소프트웨어 버전의 트랙킹 및 승인된 변경 실행에 의해 제어된다.
일괄 또는 독립형 시스템의 소프트웨어를 갱신하기 위해 사용된 방법에서, 이 방식으로 시스템에 새로운 또는 수정된 소프트웨어를 통합시키는데 널리 공지된 단점이 있다. 이것은 복잡하고 시간을 소비하는 수동적인 노동 집약적 시스템이다. 사용자가 점진적이고 제한된 온-라인 사용을 실행하는 수단 없이 사용자가 어떤 새로운 소프트웨어로 시스템을 동작시키는 경우에 에러가 급격히 증가하지 않거나 또는 모든 진행중인 동작에 즉각적인 영향을 미치지 않도록 제어하는 문제가 있다. 새로운 또는 개정된 소프트웨어로의 액세스를 제어하는 방법은 소프트웨어를 실행하는 개별적인 사용자에 직접적으로 링크되고 제한된다.
게다가, 이 방법은 구 소프트웨어 버전에서 새로운 소프트웨어 버전으로 상태를 이전시키기 위한 어떠한 수단도 제공하지 않는다. 따라서, 구 소프트웨어에서 새로운 소프트웨어로 상태 이전이 없기 때문에, 이 과정은 사용자에게 나쁜 영향을 미칠 수 있다.
동작중인 컴퓨터 시스템에서 소프트웨어 갱신과 관계된 문제점중 적어도 몇몇 가지 문제점을 해결하기 위한 다른 시도가 있었다. 예컨대 Telefinaktiebolaget LM Ericsson의 미국 특허출원 제5,410,703호에는 동작중인 컴퓨터 시스템에서 소프트웨어를 교체하는 방법이 서술되어 있다. 이 방법에 따라서, 시스템을 통해 진행중인 전기통신 트래픽을 두절함이 없이 전기통신 교환기의 실제 동작 동안 소프트웨어를 테스트하고 변경하는 것이 가능하다. 그러나, 이 방법은 구 소프트웨어 버전에서 새로운 소프트웨어 버전으로 상태를 이전하는 것에 관한 것이 아니다. 이 방법이 상태 이전의 필요성을 인식하였다 하더라도, 이 방법은 구 소프트웨어에서 새로운 소프트웨어로 데이터 이전을 동기화시키기 위한 어떠한 수단도 기술하지 않았다.
그러므로, 전기통신 산업에서, 시스템을 통해 진행중인 트래픽을 두절함이 없이 전기통신 교환기의 실제 동작동안 구 소프트웨어에서 새로운 소프트웨어로 프로세스의 상태 이전을 포함하면서 소프트웨어를 테스트하고 변경할 수 있는 것이 매우 유용하다. 본 발명은 이와 같은 방법을 제공하는 것이다.
본 발명은 운영 컴퓨터 시스템에서 소프트웨어의 교체에 관한 것이며, 특히 구 소프트웨어내의 프로세스에서 새로운 소프트웨어의 프로세스로의 상태 이전의 동기화에 관한 것이다.
제1도는 일반적인 전기통신 시스템을 보여주는 도면.
제2도는 일반적인 전기통신 시스템에서 시스템 구조를 보여주는 도면.
제3도는 구 소프트웨어 유닛에서 새로운 소프트웨어 유닛으로 프로세싱을 다시 보내기 위한 예시적인 절차를 설명하는 블록도.
제4도는 본 발명에 따라서 취소함이 없는 시스템 업그레이드 동안 동기화를 도시하는 도면.
제5도는 본 발명에 따른 취소하는 시스템 업그레이드 동안 동기화를 도시한 도면.
제6도는 시스템 업그레이드 동안 동기화와 상태 이전을 도시하는 도면.
제7a - 7n도는 완만한 시스템 업그레이드 방법이 자원 서버에 적용되는 실예를 도시하는 도면.
SPC 전기통신 교환 시스템과 같은 컴퓨터 시스템의 동적인 작용은 근본적으로 일련의 병렬이고, 상대적으로 독립된 트랜잭션(또한 "스레드(thread)" 또는 "이벤트의 체인(chain of events)"로서 언급된다)으로서 서술되는데, 모든 트랜잭션은 다수의 관계된 액티비티(activities)로 이루어져 있다. 트랜잭션은 전형적으로 시스템의 외부 사용자에게 가시적이고 기능상 유용한 작업을 실행한다. 전기통신 교환 시스템에서, 전형적인 트랜잭션은 호출일 수 있다.
본 발명에 따라서 상태 이전과 더불어 완만한 변경 기술(smooth change techniques)을 사용하여 온라인 소프트웨어를 교체하는 것은 동시에 구 소프트웨어 버전과 새로운 소프트웨어 버전 둘다를 저장할 수 있는 메모리와 함께 트랜잭션 지향 소프트웨어(transaction oriented software)를 사용한다. 새로운 버전으로 상태를 이전하는 완만한 변경은 진행중인 트랜잭션, 즉 "구 트래픽" 을 구 소프트웨어 버전을 사용하여 완료시킴으로써 이루어진다. 소프트웨어 변경이 시작된 후에 시작된 트랜잭션, 즉 "새로운 트래픽"은 새로운 소프트웨어 버전을 사용하여 점진적이고 제어된 방식으로 실행된다. 구 소프트웨어 버전에서 새로운 소프트웨어 버전으로 이전될 상태를 포함하는 프로세스는 소프트웨어 변경 초기에 구 소프트웨어의 제어하에 있다. 상이한 동기화 신호에 의해, 새로운 소프트웨어는 "필요한 기초로서" 구 소프트웨어의 제어하의 프로세스 상태에 액세스하여, 새로운 소프트웨어의 테스팅이 어떠한 교란없이 진행되면은 마침내 갱신된 상태를 포함하는 프로세스의 소유자가 된다.
본 발명의 상태 이전과 더불어 완만한 소프트웨어 변경 기술에 의해 총족되는 주요 필요조건은 최소한의 또는 전혀 사용자 교란이 없으면서 고 레벨의 시스템 활용성을 포함하는 것이다. 본 발명의 주요 특징은 : (1) 하나의 소프트웨어 버전 및 단지 하나의 소프트웨어 버전의 각 특정 트랜잭션을 제어하기 때문에, 즉 시스템이 트랜잭션의 시작에서 끝까지 구 및 새로운 소프트웨어 버전 둘중 하나를 사용하기 때문에 트랜잭션(예컨대 호출)동안 시스템의 개별적인 사용자가 최소한의 교란을 겪게 되거나 전혀 교란을 겪지 않게 되고; (2) 두 소프트웨어 버전 변경동안 병렬로 사용되기 때문에 소프트웨어의 변경으로 인한 시스템의 각각의 사용자가 비활용성을 겪지 않게 되고; (3) 구 소프트웨어 버전 및 새로운 소프트웨어 버전간의 제어된 상태 이전 때문에 구 소프트웨어내의 프로세스의 상태가 없어지지 않는다는 사실을 포함한다는 것이다.
시스템에 의해 처리되고 이전되어야만 되는 프로세스의 상태는 두 개의 상이한 클래스로 분리될 수 있다. : (1) 트랜잭션동안 생성되어 사용되고 또한 트랜잭션이 완료된 후에 삭제되는 동적인 프로세스; 및 (2) 예를 들어 텔레콤 시스템에서 사용되고 수개의 트랜잭션보다 오래 존속하는 정적 프로세스, 즉 특정 가입자에 의해 사용되는 단축 번호 또는 시스템에 연결된 가입자 번호에 관한 상태를 포함하는 프로세스로 분리될 수 있다.
또다른 양상에서, 본 발명의 방법은 또한 구 소프트웨어 버전내 정적 프로세스를 새로운 소프트웨어 버전으로의 상태 이전을 동기화시키기 위한 수단을 제공한다. 본 발명에 따른 구 소프트웨어 및 새로운 소프트웨어에서 실행되는 프로세스 사이에서 상태 이전의 동기화는 다음 동작을 포함한다 :
PrepareShutdown은 구 소프트웨어, 즉 시스템 업그레이드로 인해 교체되는 소프트웨어에서 선언된 정적 프로세스에 대한 첫 번째 동작이다. 이 동작은 교체될 소프트웨어의 곧 닥쳐올 종료에 대한 애플리케이션을 준비한다. PrepareShutdown신호를 수신한 후에, 구 소프트웨어의 정적 프로세스는 자원 오브젝트(상태)의 이전을 위한 애플리케이션 특정 인터페이스를 공표하거나 또는 활성화시킨다. 자원오브젝트는 하드웨어 자원 또는 내부 데이터 구조에 대한 정보를 취급하기 위한 것이 오브젝트 타입인데, 즉, 자원 목적의 이전에 따라서, 이와 같은 정보의 상태가 이전된다.
이 첫 번째 동작을 완료한 후에, 새로운 소프트웨어내의 애플리케이션에 대한 정적 프로세스가 시작되고 새로운 정적 프로세스는 테스트 트래픽으로 호출되고 구 정적 프로세스가 소유한 상태 이전을 위한 인터페이스를 통해 구 정적 프로세스로부터 필수적인 자원을 취한다. 만일 테스트 토래픽이 새로운 소프트웨어에 대해 교란없이 실행된다면, 정상적인 토래픽이 새로운 소프트웨어 버전에 의해 실행되지만, 상태 이전을 위한 인터페이스는 구 정적 프로세스에 의해 여전히 소유된다.
만일, 이 정상적인 트래픽이 또한 어떠한 교란도 없이 진행된다면, Takeover 신호는 새로운 소프트웨어내의 정적 프로세스에 인가된다. 이 동작으로 인해, 새로운 소프트웨어는 구 정적 프로세스에 의해 소유된 상태 이전을 위한 인터페이스를 통해 구 정적 프로세스로부터 나머지 모든 자원의 제어를 얻는다.
그 후에, 동작 CommitShutdown이 구 정적 소프트웨어에 적용된다. 그리고 나서, 애플리케이션은 동작 PrepareShutdown으로 공개되거나 또는 활성화된 상태 이전을 위한 자신의 인터페이스를 제거한다.
마지막으로, 동작 CommitTakeover가 새로운 소프트웨어 버전에 적용된다. 새로운 정적 프로세스는 새로운 소프트웨어가 인계되었다는 것을 통보받는다. 구 소프트웨어 시스템 부분에 의존하는 프로세스는 종료된다.
만일 새로운 소프트웨어가 적절히 기능하지 않으면, 업그레이딩 절차는 리버스될 수 있다. 이 리버스가 동작 Takeover 전에 행해지면, 사용자에게 어떠한 교란도 초래함이 없이 이 리버스를 수행할 수 있다. 이 리버스는 새로운 소프트웨어버전 대신에 구 소프트웨어 버전에 동작 CommitTakeover를 적용함으로써 이루어진다.
본 발명의 목적과 장점들을 보다 잘 이해할 수 있도록, 첨부도면과 함께 상세한 설명이 고려되었다.
상태 이전을 포함하면서 구 소프트웨어를 새로운 소프트웨어로 교체하기 위한 본 발명을 따른 방법은 예컨대, 이후부터 교환기로 언급되는 SPC 전기통신 교환시스템에 사용될 수 있다. 교환기(2), 분산된 프로세서(4), 응용 소프트웨어(6), 데이터베이스(8) 및 전화기(10)를 포함하는 일반적인 전기통신 시스템이 도 1에 도시되어 있다. 교환기(2)는 하나이상의 프로세서(4)에 연결된다. 프로세서(4)는 종래 기술에 공지된 바와 같이 응용 소프트웨어(6) 및 데이터베이스(8)에 접속된다.
본 발명에 따른 방법이 어떻게 이와 같은 시스템에 적용될 수 있는 가를 완전히 이해하기 위하여, 도 2에 도시된 시스템 아키텍쳐가 지금부터 설명될 것이다.
이 구조에서 가장 기본적인 요소는 가장 기본적인 기능이 있는 운영 시스템이다. 본 발명에 따른 운영 시스템은 예컨대, 시스템 업그레이드라 불리는 기능을 포함한다. 예컨대 C++와 같은 오브젝트 지향성 프로그래밍으로 구현되는 시스템 업그레이드 기능이 본 발명의 방법에 의해 사용된다. 이 시스템 업그레이드 기능은 본원에서 참조된 Telefonaktiebolaget LM Ericsson의 미국 특허 출원 제5,410,703 "System for changing software during computer operation"에 상세히 설명되어 있다. 운영 시스템의 최상부는 응용 소프트웨어이다. 이 예에서, 응용 소프트웨어는 두 부분, 즉 전기통신 시스템에서 통신을 위해 사용되는 표준인 #7 시그널링과 같은 모든 응용 소프트웨어(APP)에 대해 공통인 부분 및 ISDN, POTS, GSM, VLL등과 같은 각 응용에 대한 특정 소프트웨어로 나뉘어진다.
예컨대 상술된 전기통신 시스템에서 가장 빈번히 교체 또는 업그레이드되는 소프트웨어는 ISDN, GSM등과 같은 응용소프트웨어이다. 본원에서, 소프트웨어 교체 또는 업그레이딩은 전체 응용소프트웨어를 교체하는 것에서부터 응용소프트웨어의 일부를 교체하는 것일 수 있다.
본 발명에 따른 방법에 의하면, 새로운 소프트웨어 버전은 업그레이딩 동안 구 소프트웨어 버전과 함께 존재하게 된다. 이 방법에서, 구 소프트웨어 버전으로 정상적인 트래픽을 실행하는 동안 새로운 소프트웨어를 테스트 트래픽으로 테스트 할 수 있다. 새로운 소프트웨어와 관계될 수 있는 결함이 발생하면, 업그레이드는 취소되고 새로운 소프트웨어는 제거될 것이다. 시스템 업그레이드 동안 취소는 시스템 업그레이드 소프트웨어내에서 내부적으로 검출된 변칙에 의해 개시된다. 결함관리는 취소시킬 수 있고 유지보수 엔지니어는 업그레이드를 중단함으로써 취소 할수 있다.
최소한의 교란이 필요한 온라인 소프트웨어 교체에 관련된 중대한 문제점은 구 소프트웨어 버전의 상태가 새로운 소프트웨어 버전으로 이전되어야 한다는 것이다. 구 소프트웨어와 새로운 소프트웨어 둘다는 소프트웨어 변경동안 병렬로 동작하기 때문에, 동적인 프로세스를 이전할 필요가 없다. 즉, 프로세스를 시작하는 소프트웨어 버전에서 프로세스가 완료된다. 그러나, 소프트웨어 버전, 예를 들어 새로운 호출이 실행되는 것을 제어하기 위하여, 트래픽을 적절한 소프트웨어의 버전으로 향하도록 하는 선택점(selection point)이 제공되어야만 한다.
어느 소프트웨어 버전이 시스템 업그레이드 동안 사용되는지를 식별하기 위한 메카니즘은 도3과 관련하여 후술된다. 정상적인 트래픽 이외에도, 테스트 트래픽은 또한 선택점에서 식별된 다음 정상적인(존속하는) 트래픽을 실행하기 전에 테스트 받아야만 되는 새로운 소프트웨어 버전으로 지향된다.
상술된 바와 같이, 동시에 소프트웨어의 일부분만을 교체하는 것이 일반적이다. 교체될 소프트웨어는 변경 유닛으로서 언급된다. 도 3에서, 지향점(direction point)라 칭하는 어드레싱 메카니즘(22)을 통해 구 변경 유닛(12) 및 새로운 변경 유닛(14)에 결합된 변경되지 않은 소프트웨어 유닛(20)이 도시되어 있다. 변경되지 않은 인터페이스(16, 18)는 구 변경 유닛(12)과 새로운 변경 유닛(14)을 어드레싱 메카니즘(22)에 연결시킨다. 도 3은 구 변경 유닛(12)이 있는 구 소프트웨어 버전과 새로운 변경 유닛(14)이 있는 새로운 소프트웨어 버전에서 변경 유닛이 있는 경우를 도시한다. 새로운 변경 유닛(14)은 기존의 인터페이스(18)와 호환될 수 있는 인터페이스(16)를 갖도록 선택된 규정에 의해 변경되지 않은 소프트웨어(20)로 된다. 이것은 변경되지 않은 소프트웨어가 구 및 새로운 소프트웨어 버전(변경 유닛)과 협동할 수 있다는 것을 의미한다.
트랜잭션의 동적인 지향 또는 재지향을 위해 제공되는 본 발명의 양상은 지향점의 도입과 사용으로 손쉽게 된다· 이들 지향점은 분산 시스템의 장소(place)로 이루어지는데, 이 장소에서 트랜잭션은 특정한 방식으로 지향될 수 있다. 도 3에 도시된 어드레싱 메카니즘(3)은 지향점의 이행 및 시스템의 트랜잭션을 새로운 또는 구 소프트웨어 버전 각각으로 지향시키는 수단을 나타낸다. 이들 지향점은 세가지 상이한 방식으로 동작할 수 있다. 첫째, 이들 지향점은 시스템에 의해 처리되는 트래픽과 관계된 기능 명칭을 분석함으로써 트리거될 수 있다. 이 동작방법에 따라서, 트래픽은 필요한 처리를 수행하는데 요구되는 특정 기능의 새로운 또는 구 소프트웨어 버전중 하나로 지향될 수 있다. 둘째, 트랜잭션은 소프트웨어의 실행시간링킹의 결과에 따라 공급된 정보를 토대로 프로그램의 새로운 또는 구 소프트웨어버전을 실행하기 위해 지향될 수 있다.
두가지 상이한 동기화 경우가 지금부터 설명되는데, 한가지는 성공적인 업그레이드를 의미하는 리버스 없는 경우이고 다른 한가지는 시스템 업그레이드 동안리버스가 개시되는 경우이다. 리버스가 없는 첫 번째 경우가 도 4에 도시되어 있고 그리고 리버스가 있는 두 번째 경우가 도 5에 도시되어 있다. 도면에서, 프로세스는 모서리가 절단된 직사각형으로 도시되어 있다. 자원은 하나이상의 자원 오브젝트를 가질 수 있다. 자원 오브젝트의 예는 타임슬롯, 음성 프롬프팅 장치등이다.
도 4는 구 소프트웨어 버전이 새로운 소프트웨어 버전으로 교체될 때 시스템 업그레이딩 동안 리버스가 없는 동기화의 여러 단계를 도시한 것이다.
단계 1동안 새로운 소프트웨어가 로딩되기 전에 구 소프트웨어에서 구 정적 프로세스가 PrepareShutdown 신호로 호출되고 새로운 정적 소프트웨어가 시작된다. 이 신호에 의해 구 소프트웨어내의 정적 프로세스는 곧 닥쳐올 종료 및 제거를 인식하여 상태 이전을 위한 준비를 할 것이다. 구 정적 프로세스는 자원 목적의 상태를 이전하기 위한 애플리케이션 규정된 인터페이스를 공표하거나 또는 활성화시킨다. 공표는 프로세스가 다른 프로세스들과 통신하는 방법을 규정하는 것을 의미한다. 이 인터페이스는 나중에 새로운 소프트웨어 버전내에서 정적 프로세스에 의해 호출되어 자원 오브젝트를 할당한다. 구 정적 프로세스는 또한 곧 닥쳐올 종료에 대해서 인접 프로세스, 예컨대 분배기 프로세스(distributor process)에 통보하여, 상술된 미국 특허 출원 제5,410,703호에 따라서 여분의 다른 것을 향하도록 루팅이 행해질 수 있다. 단계 1동안, 모든 트래픽은 통상적으로 구 소프트웨어 버전에 의해 처리된다. 이 제1 단계는 새로운 소프트웨어가 로딩될 때 종료된다.
단계 2에서, 새로운 소프트웨어내의 정적 프로세스는 초기 시작과 상이한 상태로 시작된다. 대신에, 정적 프로세스는 구 소프트웨어 버전 및 새로운 소프트웨어 버전 각각의 구 정적 프로세스 및 새로운 정적 프로세스 사이에 상태의 이전이 존재한다는 것을 표시하는 방식으로 시작되어야만 된다. 이 단계 동안, 새로운 정적 프로세스는 테스트 트래픽을 수신한 다음, 만일 테스트 트래픽의 실행이 어떠한 교란없이 진행된다면 계속해서 정상적인(존속하는)트래픽을 수신한다. 테스트 트래픽 동안 상태 이전의 동기화가 시스템 업그레이드 동안 상태 이전을 설명하는 도 6을 참조하여 보다 상세히 설명된다. 이 제2 단계동안, 정상적인 트래픽은 우선 구 소프트웨어 버전으로 처리되고, 이와 동시에 테스트 트래픽은 새로운 소프트웨어 버전에 의해 처리된다. 그 후에, 테스트 트래픽이 종료된 다음 개시된 모든 "새로운" 트래픽은 새로운 소프트웨어에 의해 처리된다. "구" 트래픽, 즉 테스트 트래픽 종료전의 정상적인 트래픽은 종료되기 전까지 구 소프트웨어 버전에 의해 처리될 것이다.
이 예는 리버스함이 없이 시스템 업그레이드하는 것을 설명하기 때문에, 테스트 트래픽 및 이후에 실행되는 정상적인 트래픽은 어떠한 교란없이 진행된다. 그러므로, 단계 3에서, 새로운 소프트웨어내의 정적 프로세스는 Takeover 신호로 구 소프트웨어에서의 정적 프로세스의 모든 자원 오브젝트를 요청하도록 명령받는다. 상태 이전을 위해 공표되거나 활성화된 애플리케이션 규정된 인터페이스는 자원 오브젝트의 제어를 이전하고 모든 자원 오브젝트를 인수하기 위해 이 새로운 정적 프로세스에 의해 호출된다. 이 제3 단계동안, 구 소프트웨어에 의해 처리되는 나머지 구 트래픽을 제외하면 거의 모든 트래픽은 새로운 소프트웨어에 의해 처리된다.
단계 4에서, 구 프로세스는 CommitShutdown 신호에 따라서 모든 서비스를 제거하도록 명령받는데, 즉 구 프로세스에 대해 이용 가능한 더 이상의 자원 오브젝트가 존재하지 않게 된다. 이 CommitShutdown 신호가 구 프로세스에 인가될 때의 시간과 관계하여 사용될 수 있는 두 개의 상이한 기준이 있다. 첫째로, 이 신호는 구 소프트웨어에 의해 처리되는 모든 구 트래픽이 종료될 때 구 프로세스에 인가된다. 이것은 시스템 업그레이드 동안 진행중인 트래픽이 교란되지 않도록 하는데, 그 이유는 구 소프트웨어의 서비스가 더 이상 처리할 트래픽이 없어질 때까지 제거되지 않기 때문이다. 둘째로, 이 신호는 시스템 업그레이드가 시작된 시간으로부터 얼마간의 시간이 경과한 후에 구 프로세스에 적용될 수 있다. 이것은 종종 상당히 빠른 업그레이딩 절차를 제공하지만 몇몇 트래픽(호출)을 일어버릴 위험이 있다. 서비스가 제거되면, 자원 오브젝트의 이전을 위해 사용되는 인터페이스가 제거된다. CommitShutdown 신호가 제공된 후, 모든 트래픽은 새로운 소프트웨어 버전에 의해 처리된다.
다음에, 단계 5에서, 구 소프트웨어는 차단되어 제거되고 단계 6에서 새로운 프로세스는 구 프로세스로부터 사전에 요청된 자원 오브젝트의 유일한 소유자가 된다. 이는 새로운 프로세스에 대한 CommitTakeover 신호로 표시된다. 이 신호는 시스템 업그레이드 기능이 인계될 때 전송되고 정적 프로세스는 업그레이드보다 오래 존속하게 된다.
도 5는 구 소프트웨어 버전이 새로운 소프트웨어 버전으로 교체될 때, 시스템 업그레이드 동안 리버스를 행하는 동기화 상이한 단계를 도시한 것이다. 도 4와비교하였을 때 주요한 차이점은 CommitTakeover 신호의 수신기이다. 이 경우에, 구 소프트웨어에서 실행되는 프로세스는 수신기이고 자원 오브젝트의 소유자이다. 리버스는 운영 및 유지보수 기술자 또는 자동적으로 시작될 수 있다.
시스템 업그레이드 동안 리버스는 도 4와 관련하여 상술된 바와 같이 구 정적 프로세스에 적용되는 CommitTakeover 신호에 앞서 어떤 시간에서도 수행될 수 있다. 업그레이딩 절차가 리버스되는 단계에 따라 결과는 상이하게 된다. 도 5를 참조하여 두가지 상이한 리버스 경우가 설명될 것이다.
첫 번째 경우에, 화살표 CommitTakeover(1)로 도시된 바와 같이, 리버스는 새로운 정적 프로세스가 Takeover 신호를 수신하기 전에 단계 2에서 수행된다. 단계 2동안, 제1 테스트 트래픽 및 다음의 정상적인 트래픽이 새로운 정적 프로세스에 의해 처리된다. 만일 테스트 트래픽 기간 동안, 새로운 소프트웨어로 인한 문제점이 발생한다면, 자동적으로 또는 업그레이딩하는 엔지니어에 의해 CommitTakeover 신호를 구 정적 프로세스에 인가함으로써 리버스가 시작된다. 이때 구 정적 프로세스가 모든 자원 오브젝트의 소유자이기 때문에, 리버스로 인해 구 정적 프로세스의 상태가 상실되지 않게 된다. 유일하게 발생되는 것은 테스트 트래픽이 중단된다는 것이다. 테스트 트래픽 동안 시간은 리버스를 수행하는데 가장 공통적이고 또한 가장 적합한데, 그 이유는 사용자는 이것에 의해 어떠한 영향을 받지 않기 때문이다. 리버스는 단계 2에서 다소 늦게 발생할 수 있는데, 즉 새로운 소프트웨어가 정상적인 트래픽을 시작하는 시간에 발생할 수 있다. 만일 리버스가 이 시간동안 실행된다면, 구 정적 프로세스의 상태는 리버스로 인해 상실되지않는다. 만일 새로운 소프트웨어에 심각한 문제점이 있다면, 진행중인 정상적인 트래픽을 실행하는데 문제점이 있을 수 있지만, 새로운 소프트웨어는 종료되기까지 정상적인 트래픽을 처리하고자 할 것이다. 리버스후, 즉 신호 CommitTakeover가 구정적 프로세스에 인가된 후에 시작하는 모든 정상적인 트래픽은 구 소프트웨어에의해 처리될 것이다.
두번째 경우에, 화살표 CommitTakeover(2)로 도시된 바와 같이, 신호 Takeover가 단계 4에서 새로운 정적 프로세스에 인가된 후에 리버스가 수행된다. Takeover 신호후에, 상술된 바와 같은 새로운 소프트웨어는 전체 자원 오브젝트에 대해 제어를 행한다. 구 정적 프로세스에 신호 CommitTakeover를 인가함으로써 리버스가 가능하지만, Takeover 신호 및 CommitTakeover 신호 사이의 시간동안 변경된 새로운 정적 프로세스의 상태가 상실될 것이다.
리버스는 또한 신호 CommitShutdown이 구 정적 프로세스에 인가된 후에 행해질 수 있지만, 구 소프트웨어가 초기에 시작되기 때문에 모든 상태가 상실될 것이다.
도 6을 참조하여 시스템 업그레이드 동안 상태 이전의 동기화가 설명될 것이다. 상술된 단계 1동안 공표되거나 활성화된 상태 이전 인터페이스는 애플리케이션에 의해 특정화되어 새로운 정적 프로세스가 구 프로세스로부터의 자원 오브젝트의 제어를 조정하고 이전할 수 있도록 한다. 도 6 및 이하의 설명에서, 이 인터페이스 내에서 일반적이 동작이 사용될 것이다.
GetResource 동작은 구 정적 프로세스에서 새로운 정적 프로세스로 특정한 자원 오브젝트의 제어를 이전하는 것이다. 이 동작은 구 정적 프로세스의 제어하에서 새로운 정적 프로세스가 특정한 자원 오브젝트를 필요로 할 때 호출된다.
GetAnyResource 동작은 구 정적 프로세스에서 새로운 정적 프로세스로 임의의 자원 오브젝트의 제어를 이전하는 것이다. 이 동작은 구 정적 프로세스의 제어하에서 새로운 정적 프로세스가 임의의 자원 오브젝트를 필요로 할 때 호출된다.
GetAllResource 동작은 구 정적 프로세스에 남아있는 모든 자원 오브젝트에 대한 상태 정보의 제어를 새로운 정적 프로세스로 이전하는 것이다. 이 동작은 새로운 정적 프로세스가 신호 Takeover를 수신한 후에만 수행될 수 있다.
시스템 업그레이드 동안 동기화 및 상태 이전은 업그레이딩 절차가 8단계로 나뉘어지는 도 6과 관련하여 지금부터 상세히 설명된다.
업그레이딩 절차가 시작되기 전에 트래픽은 구 소프트웨어에서 정상적으로 실행된다. 단계 1에서, 정적 프로세스는 시스템 업그레이드로 인해 곧 닥쳐올 종료에 대해서 동작 PrepareShutdown으로 통보 받고, 그 후에 애플리케이션은 상술된 바와 같이 상태 이전을 위한 인터페이스를 활성화 또는 공표하여 다음 시스템 업그레이딩을 가능하게 한다. 그리고 나서, 단계 2에서 새로운 소프트웨어 내에서 애플리케이션에 대한 정적 프로세스가 시작된다. 이 단계에서 활성화되거나 공표된 포트 명칭은 구 소프트웨어에 대한 것과 동일하다.
그 후에, 새로운 소프트웨어는 단계 3에서 테스트 트래픽을 수신할 준비가 된다. 테스트 트래픽은 컴퓨터로 생성되거나 운영 및 유지보수 엔지니어에 의해 실행되는 "존속하는" 트래픽일 수 있다. 테스트 트래픽 기간 동안, 새로운 소프트웨어는 구 소프트웨어 버전의 정적 프로세스에 의해 소유되는 자원 오브젝트를 필요로 한다. 새로운 정적 프로세스는 상태 이전을 위한 인터페이스를 통해GetAnyResource으로 구 정적 프로세스로부터 필요한 자원 오브젝트를 얻는다. 새로운 정적 프로세스가 자원 오브젝트에 액세스할지라도, 이들은 구 정적 프로세스가 여전히 소유하고 있다.
만일 테스트 트래픽 기간이 어떠한 교란도 없이 진행된다면, 새로운 정적 프로세스는 단계 4에서 정상적인 트래픽으로 호출되게 되고 상태 이전을 위한 인터페이스를 통해 동작 GetResource 또는 GetAnyResource중 하나에 의해 구 정적 프로세스로부터 필수적인 자원 오브젝트를 얻는다. 이 기간 동안, 새로운 트래픽이 새로운 소프트웨어에 의해 처리될 때, 새로운 정적 프로세스에 의해 요청되었지만 여전히 구 정적 프로세스에 의해 소유된 자원 오브젝트들의 상태가 변경될 수 있다. 이 변경은 구 정적 프로세스로 다시 이전되는데, 그 이유는 이 구 정적 프로세스가 자원 오브젝트들의 소유자이기 때문이다. 만일 이것이 행해지지 않는다면, 이 갱신된 상태 정보는 리버스가 필요로 되는 경우 상실된다. 이 단계 후에, 상태 정보를 상실할 위험성이 없는 리버스는 더 이상 가능하지 않다.
단계 5에서, 새로운 정적 프로세스는 동작 GetAllResource를 활성화시키는 시스템 업그레이드 기능 TakeOver로 호출된다. 새로운 정적 프로세스는 구 정적 프로세스로부터 모든 자원 오브젝트들의 제어를 가지게 된다. 단계 6에서 구 정적 프로세스는 동작 CommitShutdown으로 호출되고 애플리케이션은 단계 1에서 활성화되거나 공표된 인터페이스를 제거한다. 그 후에, 단계 7에서 구 정적 프로세스는 시스템 업그레이드기능에 의해 종료된다. 마지막 단계 8에서, 새로운 정적 프로세스는 시스템 업그레이드에 의해 새로운 소프트웨어가 인계되었다는 것을 통지받는다. 구 소프트웨어 시스템 부분에 의존하는 프로세스는 종료된다.
도7a 내지 도7d와 관계하여 자원 서버에 적용되는 완만한 시스템 업그레이드방법의 실예가 서술될 것이다. 자원 서버는 풀 자원(pool resource)의 할당 및 할당 해제를 제어하는 정적 프로세스이다. 풀 자원은 상호 동등한 자원 오브젝트들이다. 즉, 예를 들어 DTMF-수신기, 루트내 채널 또는 반향 소거기와 같은 풀내 모든 자원 오브젝트들은 상호교환가능하다. 도 7에서, R은 풀 자원을 대표하는 오브젝트를 나타낸다. 만일 자원이 유휴라면, 도 7a의 좌측에 도시되어 있는 바와 같이, 흰색으로 되고, 만일 자원이 할당되었다면, 도 7a의 우측에 도시되어 있는 바와 같이, 음영으로 표시되고 자원 서버의 제어하에 있지 않은 자원은 도 7c의 우측에 도시된 바와 같이 점선으로 표시된다.
시스템 업그레이드를 활성화시키기 전에, 자원할당 및 할당 해제는 통상적인 방법으로 수행된다(도 7a). 만일 요청된 자원이 할당하기가 불가능하다면, 이 요청 프로세스는 자원의 부족을 통지받는다. 이 작용은 시스템 업그레이드가 진행중이라도 변경되지 않고 이 할당은 상태 이전을 위한 인터페이스를 통해서 행해진다.
자원 서버에 적용되는 완만한 시스템 업그레이드 방법이 도 6과 관련하여 설명된 8 단계에 따라 설명될 것이다.
도 7b에 도시된 바와 같이, 애플리케이션은 시스템 업그레이드로 인한 종료에 대해 통지를 받는다. 자원 서버는 상술된 바와 같이 신호 PrepareShutdown을 수신한 후에 상태 이전을 위한 인터페이스를 공표한다. 그 후에, 도 7c에 도시된 바와 같이, 새로운 자원 서버가 단계 2에서 시작된다. 새로운 자원 서버내 자원은 도7c에 도시된 바와 같이 자원 서버에 의해 제어되지 않는 자원이다. 구 자원 서버는 통상적으로 자원 할당과 할당 해제에 대한 호출을 실행한다.
단계 3에서, 도 7d에 도시된 바와 같이, 테스트 트래픽은 새로운 자원 서버에 대해 루팅되는 반면, 정상적인 트래픽은 구 자원 서버에 대해 루팅된다. 새로운 자원 서버가 필요로하는 자원의 제어는 동작 GetResource에 의해 상태 이전을 위한 인터페이스를 통해 인출된다. 도 7e에 도시된 바와 같이, 도 7d의 테스트 트래픽에 의해 요청된 자원은 새로운 자원 서버에서 할당된다.
도 7f에 도시된 바와 같이, 테스트 트래픽이 새로운 자원 서버에 의해 성공적으로 처리된 후에, 정상적인 트래픽은 새로운 자원 서버에 대해서 지향된다. 필요로 될 때 자원의 제어는 GetAnyResource에 의해 상태 이전을 위한 인터페이스를 통해 인출된다. 단계 4에서 두가지 가능성이 존재한다. 도 7g와 7h에 도시된 바와 같이, 자원은 새로운 자원 서버로부터 할당 및 할당 해제된다. 자원은 도 7g에서 아래 우측코너에서 할당되고 그리고 도 7h에서 복귀된다. 다른 경우는 단계 3에서 구 자원 서버로 앞서 할당된 다음 새로운 자원 서버에서 할당해제 되는 것이다.
이 경우, 새로운 자원 서버는 도 7i에 도시된 바와 같이 상태 이전을 위한 인터페이스를 통해 동작 GetResource으로 이 특정한 자원의 제어를 요청한다. 단계 1에서, 위쪽 좌측코너의 자원은 구 자원 서버에 보존되고(도 7b) 단계 4에서 새로운 자원 서버로 복귀된다. 자원의 제어는 GetResource 에 의해 상태 이전을 위한 인터페이스를 통해 요청받는다.
단계 5에서(도 7j와 도 7k), 모든 나머지 자원들의 제어는 상태 이전을 위한 인터페이스를 통해 인출된다. 새로운 자원 서버는 동작 TakeOver로 시스템 업그레이드기능에 의해 호출되고 나머지 자원들은 GetAllResource으로 인해 상태 이전을 위한 인터페이스를 통해 인출된다. GetAllResource 동작 후에, 새로운 자원 서버는 도 7k에 도시된 바와 같이 새로운 자원 서버의 아래쪽 좌측코너에 있는 자원의 이전으로 모든 자원의 제어하에 있다.
단계 6에서, 도 71에 도시된 바와 같이, 구 자원 서버는 도 6과 관련하여 상술된 바와 같이 동작 CommitShutdown으로 인해 시스템 업그레이드로부터 호출된다.
단계 7에서, 도 7m에 도시된 바와 같이, 구 자원 서버는 시스템 업그레이드 기능에 의해 종료된다. 마지막 단계 8에서, 구 소프트웨어 시스템에 의존하는 동적 프로세스는 시스템 업그레이드기능 CommitTakeover에 의해 종료된다.
본 발명의 방법은 상술된 설명으로부터 층분히 알수 있으리라고 판단된다. 도시되고 설명된 방법은 바람직한 것으로 특징지워 졌지만, 청구범위에 규정된 바와 같이 본 발명의 정신과 개념을 벗어남이 없이 다양한 변경과 수정이 이루어질 수 있다는 것을 알수 있을 것이다.

Claims (10)

  1. 구 소프트웨어 버전을 새로운 소프트웨어 버전으로 교체하는 동안 진행중인 작용에 교란을 미침이 없이 구 소프트웨어 버전에서 선언된 구 정적 프로세스를 새로운 소프트웨어 버전에서 선언된 새로운 정적 프로세스로 자원 오브젝트의 상태 이전을 허용하는 동기화 방법에 있어서,
    곧 닥쳐올 중단을 위하여 구 소프트웨어내에서 구 정적 프로세스를 준비시켜, 상태 이전을 위해 상기 구 정적 프로세스를 활성화시키는 단계와,
    인수를 위하여 새로운 소프트웨어내에서 새로운 정적 프로세스를 준비시켜, 상기 구 정적 프로세스의 모든 자원 오브젝트를 상기 새로운 정적 프로세스로 이전시키는 단계와,
    상기 구 정적 프로세스가 모든 서비스를 제거하도록 하여, 구 정적 프로세스를 종료하는 단계, 및
    상기 새로운 정적 프로세스가 인수하도록 하여, 상기 새로운 정적 프로세스가 상기 구 정적 프로세스로부터 사전에 요청된 모든 자원 오브젝트의 유일한 소유자임을 표시하는 단계를 포함하는 것을 특징으로하는 상태 이전을 허용하는 동기화 방법.
  2. 제1항에 있어서, 상기 구 정적 프로세스를 증단하도록 준비시키는 단계는 상태 이전을 위한 인터페이스를 활성화 또는 공표시키는 것을 포함하는 것을 특징으로하는 상태 이전을 허용하는 동기화 방법.
  3. 제2항에 있어서, 인수를 위하여 상기 새로운 정적 프로세스를 준비시키는 단계는 상태 이전을 위한 인터페이스를 통해 상기 새로운 정적 프로세스가 테스트 데이타를 수신하는 기간 동안 상기 새로운 정적 프로세스가 필요로하는 구 정적 프로세스의 어떤 자원 오브젝트를 할당 및 할당해제하는 것을 포함하는 것을 특징으로 하는 상태 이전을 허용하는 동기화 방법.
  4. 제3항에 있어서, 상기 새로운 소프트웨어에 의한 테스트 데이타의 성공적인 처리에 응답하여, 모든 자원 오브젝트는 구 정적 프로세스에서 새로운 정적 프로세스로 이전되는 것을 특징으로하는 상태 이전을 허용하는 동기화 방법.
  5. 제3항에 있어서, 테스트 데이타의 성공적이지 못한 처리에 응답하여, 상기 새로운 소프트웨어는 제거되고 또한 상기 자원 오브젝트들은 구 소프트웨어의 제어하에 있는 것을 특징으로하는 상태 이전을 허용하는 동기화 방법.
  6. 진행중인 작용에 교란을 미침이 없이 전기통신 시스템에서 구 소프트웨어 버전을 새로운 소프트웨어 버전으로 교체시키는 방법에 있어서,
    곧 닥쳐올 중단을 위하여 상기 구 소프트웨어 버전에서 선언된 구 정적 프로세스를 준비시켜, 상기 새로운 소프트웨어 버전에서 선언된 새로운 정적 프로세스로 상태 이전시키기 위하여 상기 구 정적 프로세스를 활성화시키는 단계와,
    상기 구 소프트웨어가 정상적인 트래픽을 처리하는 동안 상기 새로운 소프트웨어를 상기 전기통신 시스템에 로딩시키는 단계와,
    상기 구 소프트웨어로 정상적인 트래픽을 처리함과 동시에 테스트 트래픽으로 상기 새로운 소프트웨어를 테스팅하는 단계와,
    상기 구 소프트웨어로 상기 구 정상적인 트래픽을 처리함과 동시에 상기 새로운 소프트웨어로 새로운 정상적인 트래픽을 처리하는 단계와,
    인수를 위하여 상기 새로운 소프트웨어내에서 상기 새로운 정적 프로세스를 준비시켜, 상기 구 정적 프로세스의 모든 자원 오브젝트를 상기 새로운 정적 프로세스로 이전시키는 단계와,
    상기 구 정적 프로세스가 모든 서비스를 제거하도록 하여, 상기 구 정적 프로세스를 종료시키는 단계, 및
    상기 새로운 정적 프로세스가 인수하도록 하여, 상기 새로운 정적 프로세스가 상기 구 정적 프로세스로부터 사전에 요청된 모든 자원 오브젝트의 유일한 소유자라는 것을 표시하는 단계를 포함하는 것을 특징으로하는 구 소프트웨어 버전을 새로운 소프트웨어 버전으로 교체시키는 방법.
  7. 제6항에 있어서, 상기 구 정적 프로세스를 중단시키기 위하여 준비시키는 단계는 상태 이전을 위한 인터페이스를 활성화 또는 공표하는 것을 포함하는 것을 특징으로하는 구 소프트웨어 버전을 새로운 소프트웨어 버전으로 교체시키는 방법.
  8. 제6항 또는 제7항에 있어서, 상기 새로운 소프트웨어를 테스팅하는 단계는 상태 이전을 위한 인터페이스를 통해 테스트 트래픽의 기간 동안 상기 새로운 정적 프로세스에 의해 필요로되는 상기 구 정적 프로세스의 어떤 자원 오브젝트의 할당 및 할당해제 하는 것을 포함하는 것을 특징으로하는 구 소프트웨어 버전을 새로운 소프트웨어 버전으로 교체시키는 방법.
  9. 제8항에 있어서, 상기 새로운 소프트웨어에 의한 테스트 트래픽의 성공적인 처리에 응답하여, 모든 자원 오브젝트들은 상기 구 정적 프로세스에서 상기 새로운 정적 프로세스로 이전되는 것을 특징으로하는 구 소프트웨어 버전을 새로운 소프트웨어 버전으로 교체시키는 방법.
  10. 제8항에 있어서, 테스트 데이타의 성공적이지 못한 처리에 응답하여, 상기 새로운 소프트웨어가 제거되고 상기 자원 오브젝트들은 상기 구 소프트웨어의 제어하에 있게 되는 것을 특징으로하는 구 소프트웨어 버전을 새로운 소프트웨어 버전으로 교체시키는 방법.
KR1019970703856A 1994-12-09 1995-12-04 상태이전을허용하는동기화방법 KR100310304B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
SE9404297-5 1994-12-09
SE9404297A SE9404297D0 (sv) 1994-12-09 1994-12-09 Sätt och anordning vid telekommunikation
SE9503339-5 1995-09-27
SE9503339A SE504943C2 (sv) 1994-12-09 1995-09-27 Synkroniseringsförfarande som tillåter tillståndsöverföring
PCT/SE1995/001452 WO1996018146A1 (en) 1994-12-09 1995-12-04 Method of synchronization allowing state transfer

Publications (2)

Publication Number Publication Date
KR980700608A KR980700608A (ko) 1998-03-30
KR100310304B1 true KR100310304B1 (ko) 2001-12-17

Family

ID=26662183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970703856A KR100310304B1 (ko) 1994-12-09 1995-12-04 상태이전을허용하는동기화방법

Country Status (14)

Country Link
US (1) US6101327A (ko)
EP (1) EP0796461B1 (ko)
JP (1) JPH10510376A (ko)
KR (1) KR100310304B1 (ko)
CN (1) CN1090778C (ko)
AT (1) ATE222658T1 (ko)
AU (1) AU717645B2 (ko)
BR (1) BR9509893A (ko)
CA (1) CA2205481A1 (ko)
DE (1) DE69527852T2 (ko)
FI (1) FI972405A0 (ko)
NO (1) NO972595L (ko)
SE (1) SE504943C2 (ko)
WO (1) WO1996018146A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762583B1 (ko) * 2000-01-26 2007-10-01 엘지전자 주식회사 디지털 방송 수신기의 소프트웨어 업그레이드 방법 및 장치
WO2021201914A1 (en) * 2020-03-31 2021-10-07 Arris Enterprises Llc Cloud-based computer with runtime-mapped software versions

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19617976A1 (de) * 1996-05-06 1997-11-13 Philips Patentverwaltung Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
US6745224B1 (en) * 1996-12-06 2004-06-01 Microsoft Corporation Object framework and services for periodically recurring operations
US6223343B1 (en) * 1997-04-04 2001-04-24 State Farm Mutual Automobile Insurance Co. Computer system and method to track and control element changes throughout application development
US6360363B1 (en) * 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
DE19810814B4 (de) * 1998-03-12 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem und Zustandskopierverfahren zur skalierbaren Software-Aktualisierung
DE19810807A1 (de) * 1998-03-12 1999-09-23 Ericsson Telefon Ab L M Gerät und Verfahren zum Umsetzen von Meldungen
US6301477B1 (en) * 1998-04-02 2001-10-09 Lucent Technologies Inc. Method for creating and modifying similar and dissimilar databases for use in GSM wireless network configurations for telecommunication systems
US6108669A (en) * 1998-04-02 2000-08-22 Lucent Technologies, Inc. Method and apparatus for creating and modifying databases derived from a database warehouse for a telecommunication system
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
US6931440B1 (en) * 1999-04-21 2005-08-16 Emc Corporation Method and apparatus for dynamically determining whether access to a resource connected to a computer has changed and determining how to access the resource with a new identifier
US7107329B1 (en) * 1999-05-21 2006-09-12 Lucent Technologies Inc. In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption
GB2363879B (en) * 1999-05-27 2004-03-10 Invensys Plc Fieldbus upgradable apparatus and method
US6698017B1 (en) 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
JP2001043070A (ja) * 1999-07-29 2001-02-16 Nec Corp 設定情報自動復帰方法及び装置並びに設定情報自動復帰プログラムを記録した記録媒体
GB2362064A (en) * 2000-05-04 2001-11-07 Marconi Comm Ltd Switching of software in a communications system
EP1195951A3 (en) * 2000-08-10 2002-11-20 Alcatel Method and apparatus for maintaining data communication during a line card soft reset operation
US20020073410A1 (en) * 2000-12-13 2002-06-13 Arne Lundback Replacing software at a telecommunications platform
DE60101994T3 (de) 2001-03-05 2009-01-08 Shimano Inc., Sakai Fahrradgetriebe
ITTO20010264A1 (it) * 2001-03-21 2002-09-21 Telecom Italia Lab Spa Procedimento per l'aggiornamento delle condizioni di programmazione di server di rete, relativo sistema e prodotto informatico.
US7107313B2 (en) * 2001-04-13 2006-09-12 Hewlett-Packard Development Company, L.P. Adding and removing processes in a single view
US20030092438A1 (en) * 2001-11-14 2003-05-15 Moore Brian J. Method and apparatus for stabilizing calls during a system upgrade or downgrade
US7096383B2 (en) 2002-08-29 2006-08-22 Cosine Communications, Inc. System and method for virtual router failover in a network routing system
US7234056B2 (en) * 2002-09-24 2007-06-19 Inrange Technologies Corp. Method and apparatus for downloading executable code in a non-disruptive manner
DE10254531A1 (de) * 2002-11-22 2004-06-09 Abb Research Ltd. Verfahren und System zur Transformation von Programmen, die sich auf die Softwarekonfiguration eines verteilten Leitsystems beziehen
US6978452B2 (en) 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US7698700B2 (en) * 2003-04-17 2010-04-13 International Business Machines Corporation System quiesce for concurrent code updates
US7590683B2 (en) 2003-04-18 2009-09-15 Sap Ag Restarting processes in distributed applications on blade servers
US20040210888A1 (en) * 2003-04-18 2004-10-21 Bergen Axel Von Upgrading software on blade servers
US20040210887A1 (en) * 2003-04-18 2004-10-21 Bergen Axel Von Testing software on blade servers
WO2004092951A2 (en) * 2003-04-18 2004-10-28 Sap Ag Managing a computer system with blades
US8661172B2 (en) 2003-08-15 2014-02-25 Gvbb Holdings S.A.R.L. Changeable functionality in a broadcast router
US7404184B2 (en) * 2004-09-13 2008-07-22 International Business Machines Corporation Efficient firmware update for hierarchical data storage systems
EP1839130A1 (en) * 2004-12-24 2007-10-03 Telecom Italia S.p.A. Method and system for upgrading the software of a telecommunication terminal, in particular of a video telephone, and relatted computer program product
US8346726B2 (en) * 2005-06-24 2013-01-01 Peter Chi-Hsiung Liu System and method for virtualizing backup images
US9378099B2 (en) 2005-06-24 2016-06-28 Catalogic Software, Inc. Instant data center recovery
CN100464522C (zh) * 2007-05-17 2009-02-25 华为技术有限公司 一种进程升级的方法及进程升级系统
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
US8276136B2 (en) * 2007-12-11 2012-09-25 Red Hat, Inc. Transparent configuration of a network appliance
US8418164B2 (en) 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
WO2016131480A1 (en) * 2015-02-18 2016-08-25 Huawei Technologies Co., Ltd. Upgrading of a mobile network function
CN106909410B (zh) * 2015-12-23 2024-04-30 鼎捷软件股份有限公司 一种用于服务器系统的更新方法以及服务器系统
CN107066294B (zh) * 2017-03-17 2020-12-29 深圳市邦华电子有限公司 一种应用安装方法、装置和一种智能终端
US10365641B2 (en) * 2017-06-19 2019-07-30 Fisher-Rosemount Systems, Inc. Synchronization of configuration changes in a process plant
US10983857B2 (en) * 2018-10-26 2021-04-20 International Business Machines Corporation Continuing a running script after modification
US11048549B2 (en) * 2019-04-04 2021-06-29 Google Llc Transferral of process state and/or components in computing environments
US20220164221A1 (en) * 2020-11-23 2022-05-26 Motorola Solutions, Inc. Preserving persistent link connections during a cloud-based service system upgrade

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62271019A (ja) * 1985-12-24 1987-11-25 Mitsubishi Electric Corp ソフトウエア開発システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5175828A (en) * 1989-02-13 1992-12-29 Hewlett-Packard Company Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison
US5155837A (en) * 1989-03-02 1992-10-13 Bell Communications Research, Inc. Methods and apparatus for software retrofitting
US5185742A (en) * 1990-12-31 1993-02-09 At&T Bell Laboratories Transparent signaling for remote terminals
US5212787A (en) * 1991-03-12 1993-05-18 International Business Machines Corporation Method and apparatus for accessing a relational database without exiting an object-oriented environment
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
SE500940C2 (sv) * 1993-02-10 1994-10-03 Ellemtel Utvecklings Ab Sätt och system för att i ett distribuerat operativsystem demontera en kedja av sammanlänkade processer
US5654901A (en) * 1995-01-30 1997-08-05 Telefonaktiebolaget Lm Ericsson Loading software into field test equipment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62271019A (ja) * 1985-12-24 1987-11-25 Mitsubishi Electric Corp ソフトウエア開発システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762583B1 (ko) * 2000-01-26 2007-10-01 엘지전자 주식회사 디지털 방송 수신기의 소프트웨어 업그레이드 방법 및 장치
WO2021201914A1 (en) * 2020-03-31 2021-10-07 Arris Enterprises Llc Cloud-based computer with runtime-mapped software versions

Also Published As

Publication number Publication date
SE504943C2 (sv) 1997-06-02
AU717645B2 (en) 2000-03-30
NO972595L (no) 1997-07-14
SE9503339D0 (sv) 1995-09-27
FI972405A (fi) 1997-06-06
DE69527852T2 (de) 2003-04-10
NO972595D0 (no) 1997-06-06
KR980700608A (ko) 1998-03-30
FI972405A0 (fi) 1997-06-06
BR9509893A (pt) 1997-12-30
CN1090778C (zh) 2002-09-11
CN1169190A (zh) 1997-12-31
ATE222658T1 (de) 2002-09-15
AU4275796A (en) 1996-06-26
EP0796461A1 (en) 1997-09-24
EP0796461B1 (en) 2002-08-21
WO1996018146A1 (en) 1996-06-13
SE9503339L (sv) 1996-06-10
JPH10510376A (ja) 1998-10-06
US6101327A (en) 2000-08-08
CA2205481A1 (en) 1996-06-13
DE69527852D1 (de) 2002-09-26

Similar Documents

Publication Publication Date Title
KR100310304B1 (ko) 상태이전을허용하는동기화방법
US6385770B1 (en) Software upgrade
US5511192A (en) Method and apparatus for managing thread private data in a parallel processing computer
EP0648353B1 (en) System for changing software during computer operation
EP0094416B1 (en) Method and apparatus for introducing program changes in program-controlled systems
US7000228B2 (en) Online upgrade of container-based software components
US5651059A (en) Service package field update for a-i-net SCN and SCP
US6385668B1 (en) Method and apparatus for compound hardware configuration control
EP0753174B1 (en) Software configuration in a telecommunication device
WO1999046675A2 (en) State copying method for software update
US6378006B1 (en) Data processing method, recording medium and data processing apparatus
AU753343B2 (en) Software upgrade
US6343300B1 (en) File updating method capable of updating an operation file without interrupting online processing
US6222916B1 (en) Method and apparatus for introducing and modifying telecommunications services
US5321844A (en) Method for error correction of software errors in a communication system
US6336215B1 (en) Apparatus and method for on-line code only replacement of a running program using checkpoints
US6047384A (en) Rapid recovery and start-up system for peripheral systems
US5568545A (en) Centralized command system for a telecommunications network
US5951682A (en) Start-up system of a computer system
US6205581B1 (en) Method for replace-block loading in a multiprocessor system
US6173249B1 (en) Method of determining termination of a process under a simulated operating system
US6725188B1 (en) Method of cleanup after termination of a process under a simulated operating system
US6205577B1 (en) Program correcting method and system
KR100433007B1 (ko) 실행중인통신프로그램중단없이전기통신스위치내부의소프트웨어를변경하는방법및장치
KR100443633B1 (ko) 에이티엠 교환기에서의 서브 시스템 추가 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20070906

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee