KR100323881B1 - 컴퓨터동작중에소프트웨어를변경시키기위한방법및그시스템 - Google Patents

컴퓨터동작중에소프트웨어를변경시키기위한방법및그시스템 Download PDF

Info

Publication number
KR100323881B1
KR100323881B1 KR1019940704734A KR19940704734A KR100323881B1 KR 100323881 B1 KR100323881 B1 KR 100323881B1 KR 1019940704734 A KR1019940704734 A KR 1019940704734A KR 19940704734 A KR19940704734 A KR 19940704734A KR 100323881 B1 KR100323881 B1 KR 100323881B1
Authority
KR
South Korea
Prior art keywords
software
new
data
existing
processing
Prior art date
Application number
KR1019940704734A
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 에를링 블로메, 타게 뢰브그렌
Application granted granted Critical
Publication of KR100323881B1 publication Critical patent/KR100323881B1/ko

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Telephonic Communication Services (AREA)
  • Monitoring And Testing Of Exchanges (AREA)

Abstract

컴퓨터 시스템의 계속되는 활동을 방해하지 않고 작동 컴퓨터내의 소프트웨어를 대체시키기 위한 방법이 제공된다. 초기단계중에, 시스템(21)은 모든 트래픽을 오래된 소프트웨어 버젼을 향하게 하거나 유닛(22)를 변경시킨다. 적재단계중에 시스템(21)은 새로운 소프트웨어 버젼(23)과 자료변경 정보(24)를 수신한다. 자료변경정보(24)는 변경유닛(22)로부터 반영구자료를 수신하며 모든 대체단계에서 계속하여 그같은 자료와 관련된 갱신을 전달한다. 검사단계중에 시스템(21)은 새로운 버젼(23)을 통하여 먼저 검사 트래픽을 지시하며, 다음에 검사 트래픽이 성공적이면 샘플 트래픽을 지시한다. 만약 검사단계가 성공적이면, 완성단계가 모든 새로운 트래픽을 새로운 버젼(23)으로 향하게하며, 변경유닛(22)를 사용해온 오래된 트래픽만이 변경유닛(22)로 향하도록 된다. 일단 모든 오래된 트래픽이 완성되면, 혹은 종료되면, 변경유닛은 더이상 사용되지 않으며 자료변경정보(24)로 제거될 수 없다.

Description

컴퓨터 작동중에 소프트웨어를 변경하기 위한 시스템
제1A-1B도는 동작 소프트웨어 시스템으로 새롭거나 수정된 소프트웨어의 소개를 조정하기 위한 종래 시스템의 개략적 설명을 도시한 도면.
제 2 도는 본 발명 시스템에 따라 오래된 소프트웨어 유닛으로부터 새로운 소프트웨어 유닛으로 처리를 다시 지시하기 위한 예시적 절차를 설명하는 블럭도표.
제3A-3E도는 본 발명의 시스템에 따라 오래된 스프트웨어로부터 새로운 소프트웨어로의 변경 처리에 대한 개략적 설명을 도시한 도면.
제 4 도는 본 발명 시스템에 따라 수행시간중에 소프트웨어를 변경시키는 처리를 설명하는 흐름도.
제 5 도는 새로운 소프트웨어와 오래된 소프트웨어 모두가 본 발명 시스템내에서 선택적으로 어드레스되는 방식을 설명하는 블럭도표.
제 6 도는 목적들이 본 발명 시스템의 소프트웨어내에서 어드레스되는 방식을 설명하는 블럭도표.
제 7도는 본 발명 시스템내에서 소프트웨어가 어드레스되는 방식을 설명하는 블럭도표.
제 8 도는 트레이더가 본 발명 시스템내 소프트웨어를 어드레스하는 방식을설명하는 블럭도표.
제 9 도는 목적 적용 접속 설명 언어가 본 발명 시스템을 실시하는데 사용되는 방식에 대한 설명적 도표.
저 10 도는 본 발명 시스템의 특정 특징을 설명하는 챠트.
제 11 도는 본 발명 시스템내에서 일정 프로토콜이 접속을 용이하게 하는 방식에 대한 설명적도표.
본 발명 출원서 공개사항중 일부는 저작권 보호의 대상이 된다. 본 저작권자는 특허청제출, 기록 보관용으로 본원 명세서등을 재생하는데 대하여 반대하지 않으나 그밖의 용도에 대하여서는 저작권 보호를 주장하는 바이다.
본 발명은 소프트웨어 수정에 관한 것이며, 특히 동작 컴퓨터 시스템내에서 소프트웨어를 대체시키는 것에 관한 것이다.
컴퓨터 소프트웨어의 한 특징은 사용자에게 적절한 기능도를 계속해서 제공하고, 소프트웨어를 가장 적합하게 하며 소프트웨어의 수명중에 일어나는 오차 및 불일치를 교정하도록 하기 위해 개정, 추가 및/또는 삭제로 주기적으로 갱신도어야 한다. 새로운 특징이 소프트웨어로 추가되는때, 사용자에게 새로운 소프트웨어 특징을 제공하기 위해 가능한한 일찍 그리고 쉽게 오래된 소프트웨어를 새로운 소프트웨어로 대체시키는 것이 바람직하다.
자립 또는 배치 처리시스템과 같은 컴퓨터 시스템의 일정 타입에서, 소프트웨어를 한 버젼에서 다른 한 버젼으로 변경시키는 것은 몇가지 장애를 제공한다.대개, 컴퓨터 시스템은 거의 활동이 없고 보수요원이 곧 와줄수 있는 날에 차단될뿐이다. 오래된 소프트웨어는 소프트웨어의 새로운 버젼에 의해 제거되고 대체된다. 다음에 컴퓨터 시스템이 다시 시작되고 모든 미래 자료처리가 소프트웨이의 새로운 버젼으로 처리된다. 물론 이같은 절차는 새로운 소프트웨어가 소프트웨어 요원과 동작관리가 자신이 있는 점까지 오프라인 시스템에서 적절히 검사되고 결함이 제거되며 전체 컴퓨터 시스템을 정지시키고 다시 출발시킴을 필요로 하는 바람직하지 않은 간섭이 없도록된 기능을 적질히 수행하도록 한다.
현대의 저장된 프로그램제어(SPC) 통신 교환 시스템(당해 분야에서는 스위치라한다)과 같은 다른 타입의 계산 시스템에서, 새로운 소프트웨어 버젼에 대한 검사와 시스템내의 소프트웨어 변경이 고립된 배치 처리 시스템에서 만큼 용이하지 않다. 예를 들어 소프트웨어의 새로운 버젼들이 실재의 동작처리 호출내로 놓여지지 않고는 효과적으로 검사될 수 없다. 소프트웨어는 라이브 동작조건하에서 적절히 동작하는지 새로운 부분들이 동작하는 SPC 스위칭 시스템 여부를 형성하는 모든 다른 소프트웨어 블럭과 적절히 접속하는가를 결정하기 위해 동작중에 검사된다. 또한 통신시위칭 시스템은 비동작중인 때가없다. 이상적으로 이들 시스템은 컴뮤티니내 통신 서비스를 위한 계속된 필요로 인한 간섭없이 계속하여 실행될 것이다. 즉, 계속된 통신 트래픽 흐름이 있으며 낮 또는 밤위 꺼진시간에도 시스템을 통해 처리되며 스위치 동작의 어떠한 방해도 그와 같은 통신 트래픽의 방해를 일으키게 된다. 그와 같은 방해는 시스템의 동작과 그 효율성에 큰 손상을 주게되며 시스템의 사용자 또는 소비자 사이의 허용에 큰 손상을 주게된다.
통신 스위칭 교환의 이들 실-시간 요구는 새롭거나 개선된 기능도를 포함하는 소프트웨어의 향상된 버젼 또는 그 일부를 검사하고 오차교정 또는 "버그고정(bug fixes)"을 담고있는 소프트웨어를 기존통신을 방해하지 않고 스위치내로 대체시킴에 심각한 제한을 가져다준다. 따라서, 소프트웨어 컴포넌트 또는 유닛의 새로운 버젼을 종래의 "편집-컴파일-링크-적재-실행" 접근을 사용하는 시스템내로 포함시키는 것은 바람직하지 않다. 시스템이 동작하는 동안에 정시시간의 필요없이 소프트웨어를 수정하거나 확장시키는 능력을 제공하는 방법이 바람직하다.
새로운 소프트웨어를 동작 컴퓨터 시스템내로 일원화함과 관련된 문제를 해결하기 위해 연구가 되어왔다. 가령, 자립 또는 배치방식으로 동작하지 않는 오늘날 사용되는 몇가지 개선된 온-라인 동작시스템은 자립 또는 배치 시스템으로 사용된 방법과는 분명히 다른 방법으로 소프트웨어를 대체하는 문제를 해결한다. 그러나, 이와 같은 시스템은 아직도 개인 사용자 또는 사용자 그룹이 소프트웨어의 새롭거나 수정된 버젼을 사용하여 처리할 것인가를 선택함을 필요하므로써 비록 자립 시스템에서 보다는 더욱 더 명료하다해도 소프트웨어를 수동으로 대체시킨다. 이같은 선택은 이들의 개인사용자-id하에서 동작하는 처리에 의해 사용되도록 소프트웨어의 접합에 의해 수정하므로써 사용자에 의해 실시될 수 있다. 선택은 통상 주 또는 달로 측정되는 고정된 주기중에 사용자에게 이용될 수 있으며 이같은 시간에 어떠한 불일치도 없이 각 종래의 단계에서 성공적으로 동작한후에 접속 구조내에서 여러단계를 이동한다. 접속중 상부단계에 도달하자마자, 소프트웨어는 동작가능한 것으로 선언되며 오래된 버젼이 시스템의 사용자에게 더이상 이용되지 않는다. 시스템내로 새로운 소프트웨어를 삽입하고 여러단계로 이동시키는 것은 구성관리의 처리-보고, 승인, 각 단계에서 소프트웨어 버젼을 트랙킹하고 개선된 변경을 실시하는 수동처리에 의해 조정된다.
배치 또는 자립시스템에서 소프트웨어를 갱신하도록 사용된 방법의 경우, 새롭고 수정된 소프트웨어를 이같은 방식으로 한 시스템내로 일원화하는데에는 공지된 단점이 있다. 이는 복잡하고 시간 소모적인 노동 집약적인 시스템이다. 이는 어떤 경우에 시스템이 점차 제한된 온-라인 사용을 필요로 하지않고 사용자에게 일정한 새로운 소프트웨어로 동작하므로써 오차가 증가하거나 모든 계속되는 작업에 즉시 영향을 미치지 않도록 할것인가에 대하여 조정을 남겨둔다. 새롭거나 수정된 소프트 웨어로의 접근을 조정하는 방법은 소프트웨어를 실행하는 개인 사용자에게 직접 달려있다.
동작 컴퓨터 시스템내 소프트웨어를 새롭게함과 관련된 적어도 몇가지의 문제를 해결하려는 새로운 시도는 각기 다른 접근을 택하여왔다. 가령 Anders Abrahamsson 과 Lars Holmqvist 에 의한 발명을 담고 있으며 본원 출원인에게 양도된_____ 일자 출원된 미국특허 제_____ 호에서는 실행 시간중에 소프트웨어를 동적으로 연결시키기 위한 시스템이 공개된다. 그러나 이 시스템은 특수하거나 확장된 동작 시스템 및/또는 특수한 컴파일러 어느 하나의 사용을 필요로 하는 복잡한 간접 어드레싱 시스템을 포함한다. 이같은 시스템은 비-표준 동작 시스템에 대한 필요를 포함하는 여러가지 단점을 갖는다. 또한 이같은 시스템은 스탠다드 응용 소프트웨어로 작업되지 않을 것이다. 이 시스템은 전체 문제 가운데 일부만을 어드레스할뿐이며 기존 소프트웨어 모듈과 수정된 소프트웨어 모듈 사이의 조정을 점차로 검사하고 변경시키는 분야에서는 도움을 제공하지 않는다.
오늘날 사용하고 있는 전형적인 통신 시스템에서는, 소프트웨어 또는 그 일부를 변경시키는 문제가 더욱 심각하다. 비록 그와 같은 시스템이 배치 또는 자립 시스템이라 불려지지는 않는다해도, 이들의 동작은 소프트웨어 변경이 있게되는 때마다 영향을 받게될 것이다. 새로운 소프트웨어는 적재되며 오래된 소프트웨어에 속하는 자료는 새로운 소프트웨어로 변경되고 운반된다. 이같은 운반이 진행되는 시간중에, 시스템은 어떠한 새로운 호출도 등록할 수 없다. 이같이 작동하지 않는 기간이 한시간 또는 그이상 지속될 수 있으며, 오프-피크 동작기간동안 소프트웨어 변경을 계획하는 것이 필요하도록 한다. 그렇다하더라도 통신 스위칭 시스템에서 1시간의 비가동 시간은 이같은 기간중에 어떠한 새로운 호출도 처리될 수 없으며 이같은 시간중에 긴급통신을 위한 어떠한 필요도 서비스될 수 없기 때문에 매우 길고 값비싼 기간들이다.
따라서, 이는 통신스위치의 실재 동작중에 시스템을 통한 진행중인 통신트래픽을 방해하지 않고 소프트웨어를 검사하고 변경할 수 있는 것은 매우 유용하다. 새로운 소프트웨어 또는 그 새로운 부분을 통하여 트래픽의 제한된 그리고 명세된 부분을 향하도록 하는 능력을 갖도록 하는 것은 통신분야에 더욱더 바람직하며, 따라서 소프트웨어가 라이브 자료를 처리하기전에 동작환경에서 검사될 수 있도록 한다. 따라서 어떠한 특수한 컴파일러도 필요로 하지 않는 소프트웨어 변경방법이 매우 바람직하다. 본 발명 시스템은 그와 같은 방법을 제공한다.
본 발명의 요약
SPC 원격통신 스위칭 시스템과 같은 계산시스템의 동적행동은 일련의 병렬만 상대적으로 독립된 트랜잭션(실 또는 "사건의 체인" 등으로 인용된다)으로 설명되며, 여기서 모든 트랜잭션은 다수의 관련된 활동으로 이루어진다, 트랜잭션은 대개 시스템의 외부사용자에게 가시적이고 기능적으로 유용한 일을 수행한다. 원격 통신 스위칭 스스템에서 대표적 트랜잭션을 호출이다.
본 발명의 원활한 소프트웨어 변경기술을 사용하는 온라인 소프트웨어 대체는 오래된 소프트웨어 버젼과 새로운 소프트웨어 버젼 모두를 저장할 수 있는 메모리와 함께 트랜잭션 적용 소프트웨어를 사용한다. 새로운 소프트웨어로의 원활한 변경은 온고잉(ongoing) 트랜잭션, 즉 "오래된 트래픽"이 오래된 소프트웨어 벼젼을 사용하여 완성되도록 실행시키므로써 달성된다. 소프트웨어 변경이 시작된 후 시작된 트랜잭션, 즉 "새로운 트래픽"은 점차로 그리고 조절된 방식으로 새로운 소프트웨어 버젼을 사용하여 시작될 것이다.
본 발명의 원활한 소프트웨어 변경 기술에 의해 만족되는 중요한 요구사항은 사용자 방해를 거의 없게하는 것과 시스템 이용가능성을 높은 수준으로 하는 것이다. 본 발명의 중요한 특징은 다음의 사실을 포함한다; (1) 하나 및 단하나의 소프트웨어 버젼이 각 특정 트랜잭션을 제어하기 때문에, 즉 시스템이 트랜잭션의 시작에서 끝까지 오래된 소프트웨어 버젼 또는 새로운 소프트웨어 버젼 어느하나를 사용하기 때문에 트랜잭션(가령 한 호출)중에 시스템의 개별 사용자에 의해 최소의 방해가 경험되거나 어떠한 방해도 경험되지 않는다. (2) 두 소프트웨어 버젼이 변경중에 병렬로 사용되기 때문에 어떠한 불가용성도 소프트웨어 변경으로 인해 시스템의 개별 사용자에 의해 경험되지는 않는다. 만약 이같은 특징이 존재하지 않는다면 더욱더 간단한 해결안은 단순히 시스템 소프트웨어의 오프라인 변경을 만드는 것이다.
따라서 본 시스템에 의해 처리되어질 자료는 두개의 다른 클레스로 분리되어질 수 있다: (1)트랜잭션중에 발생되고 사용되며 트랜잭션이 완성된후에 삭제되는 동적자료, 그리고 (2) 가령 원격통신 시스템에서 여러 트랜잭션에 의해 사용되고 여러 트랜잭션동안 생존하는 반영구자료로서, 시스템으로 연결된 가입자 번호 또는 일정가입자에 의해 사용된 짧은 번호에 대한 자료.
최소의 방해가 요구되는 소프트웨어와 관련되 중요한 문제는 오래된 소프트웨어 버젼의 상태가 새로운 소프트웨어 버젼으로 전달되어야 한다는 것이다. 본 발명에 따른 원활한 소프트웨어변경에 따라 동적이고 반영구적인 자료의 분리는 만약 있다면 단지 반영구 자료만이 오래된 소프트웨어로부터 새로운 버젼으로 변경되어야 한다는 점에서 이같은 문제를 더욱더 간단하게 만든다. 또한, 반영구자료는 분리된 한 자료베이스에서 전형적으로 목적으로 실시되며 통신 소프트웨어 시스템의 다른 부분보다 더욱 드물게 변경된다.
본 발명의 시스템은 오래된 소프트웨어와 함께 그리고 이에 추가하여 통신 시스템의 기록장치내로 새로운 소프트웨어의 설치를 준비한다. 본 발명의 시스템에서, 시스템내의 기존 트래픽은 처음에 오래된 소프트웨어에 의해 처리되며 검사트래픽이 새로운 소프트웨어에 의해 처리되기 위해 스위치를 통하여 경로가 배정된다. 다음에, 검사트래픽이 새로운 소프트웨어에 의해 성공적으로 처리되면, 실제 라이브 트래픽(또는 정상적인 트래픽) 일부분이 새로운 소프트웨어를 통하여 선택적으로 경로가 배정되며 라이브 트래픽의 나머지는 아직도 오래된 소프트웨어에 의해 처리된다. 새로운 소프트웨어에 의해 처리되는 라이브 샘플 트래픽의 퍼센트는 0 과 100% 사시에서 변화된다. 샘플 트래픽이 새로운 소프트웨어에 의해 적절히 수행된다면, 모든 트래픽은 새로운 소프트웨어로 향하도록 된다. 오래된 소프트웨어에 의해 처리되는 모든 호출의 처리가 완성되자마자, 오래된 소프트웨어는 더이상 시스템에 의해 사용되지 않으며 시스템으로부터 제거될 수 있다.
또다른 특징에서, 본 발명의 시스템은 새롭거나 수정된 소프트웨어의 원활한 입증을 위한 한 시스템을 포함한다. 본 발명의 시스템은 점차 그리고 조절된 방식으로 그러나 라이브 동작 시스템의 일부로써 자료가 새로운 소프트웨어를 통해 흐르도록 허용한다. 이 시스템은 새로운 스프트웨어로 경로배정된 초기자료가 시스템에 의해 발생된 검사자료뿐이기 때문에 통신 스위칭 시스템의 실재 동작에 거의 또는 어떠한 충격도 주지않고 오차 및 불일치의 조기탐지를 준비하여준다. 만약 처리검사 자료에서, 통신 시스템이 오차를 탐지하면, 더이상의 어떠한 트래픽도 새로운 소프트웨어로 향하여지지 않으므로 새로운 소프트웨어가 실재 자료를 처리하였다 하더라도 시스템 전체 트래픽에 대한 방해는 최소로 된다.
본 발명 시스템의 또다른 특징에서, 시스템은 점진적으로 트래픽을 다시 오래된 소프트웨어로부터 새로운 소프트웨어로 향하게 한다. 본 발명의 시스템은 오래된 소프트웨어로 처리를 시작했던 트랜잭션이 오래된 소프트웨어만을 사용하여그 처리를 완성시키도록 허용하는 능력을 포함한다. 새로운 소프트웨어 설치에 이어 시작했던 트랜잭션만이 새로운 소프트웨어에 의해 처리될 것이다. 본 발명 시스템의 이같은 특징은 일정한 오래된 소프트웨어로부터 새로운 소프트웨어에 의한 대체 또는 사용자에게 최소의 방해만을 가져다준다. 또한 이같은 특징은 처음에 사용된 소프트웨어와는 다른 소프트웨어 세트를 위해 변환을 필요로 하는 자료의 양을 최소로한다.
또다른 특징으로, 본 발명 시스템은 소프트웨어의 원활한 수정, 식별가능하고 유지가능한 트랜잭션 한 세트로서 소프트웨어의 동작을 모델하는 처리를 포함한다. 본 발명의 시스템에서 그와 같은 체인은 처리를 통해 식별되며 유지된다. 또한, 이같은 특징에서 본 발명의 시스템은 두 버젼이 통신스위치내에 동시에 존재하는동안 새로운 소프트웨어 벼젼 또는 오래된 소프트웨어 버젼 어느 하나로 각 트랜잭션의 연결을 제어한다.
또다른 특징으로, 본 발명의 시스템은 오래된 소프트웨어 유닛내에 포함되고 이에 의해 직접 제어되는 가능한 기존의 반영구 자료를 새로운 소프트웨어 유닛으로 변환시키고 이동시키기 위한 메카니즘을 포함한다.
또다른 특징에서, 본 발명의 시스템은 동적으로 동작시스템내 트랜잭션을 시스템의 새롭거나 오래된 버젼 어느하나로 향하도록 사용되는 한 세트의 방향 포인트를 포함한다. 이 시스템은 기능 이름에 의해 어드레스된 메세지의 분석 그리고 소프트웨어 유닛의 동적 실행시간 링킹(linking)을 포함하는 다수의 수단을 통하여 동적방향을 달성한다.
또다른 특징에서, 본 발명의 시스템은 한 즉시의 수정방법을 포함한다. 이 방법은 두 소프트웨어 버젼의 동시 존재가 가능하지 않은때 사용되며 오래된 소프트웨어 버젼으로부터 새로운 소프트웨어 버젼으로의 순각적인 변경을 제공한다. 모든 트래픽은 새로운 버젼을 사용하여 동작하는 것을 불가능하고 비실용적이도록 하는 새로운 버젼내의 오차가 탐지되는 시간까지 자동으로 다시 새로운 버젼으로 향하도록 된다. 그와 같은 연결로 만약 정지된다면 시스템은 새로운 즉각적인 수정에 의해 오래된 소프트웨어 버젼을 사용하여 다시 모든 트래릭을 처리하도록 된다. 이같은 특징으로 시스템은 시스템내에서 수동상태로 오래된 버젼을 유지한다.
또다른 특징에서, 본 발명의 시스템은 다른 클레스들의 소프트웨어 유닛들 사이의 접속을 가능하게 하기 위해 한 트레이더와 한 커널을 구체화하는 링크된 절차(호출) 메카니즘을 포함한다. 이와 같이 링크된 과정 호출 메카니즘은 실행시간중에 오래된 소프트웨어 유닛과 새로운 소프트웨어 유닛의 상호-연결과 바인딩을 실시하도록 사용되기도 한다. 본 발명 시스템에서 이와 같이 연결된 절차 호출 메카니즘을 사용시에, 필요한 접속 명세는 본 발명 시스템의 또다른 특징을 사용하여 발생되며, 특수한 목적-적용 접속기 설명 언어가 사용되며 ELIN 으로 인용된다. 이같은 언어는 본 발명 시스템의 연결된 절차호출 특징을 위한 접속기를 개발하도록 조정된 특수한 구조를 포함한다.
또다른 특징에서, 본 발명 시스템은 시스템내에서 분산될 수 있는 소프트웨어 유닛들 사이의 접속을 가능하게 하기 위해 트레이더 또는 메세지 경로배정 메카니즘을 구체화하는 한 기능 이름주소를 갖는 메세지를 위한 어드레싱 메카니즘을포함한다, 이같은 메카니즘은 실행시간중에 오래된 그리고 새로운 소프트웨어 유닛으로 메세지를 향하게하도록 사용되기도 한다. 본 발명 세스템에서 이같은 어드레싱 메카니즘으 사용함에 있어서, 필요한 접속 명세는 상기에서 ELIN 이라 인용된 특수언어인 본 발명 시스템의 또다른 특징을 사용하여 발생된다. 이같은 언어는 본 발명 시스템의 메세지 프로토콜 특징을 위한 접속을 개발하기 위해 적용된 특수한 구조를 포함한다.
본 발명 기술분야에 통상의 기술을 가진자에 의해 잘알수 있는 바와 같이, 본 발명의 원리 및 특징은 통신 스위칭 시스템 이외의 다양한 컴퓨터 응용에서 소프트웨어 수행시간 대화에 유익하도록 사용될 수 있기도 하다.
하기에서는 첨부도면을 참조하여 본 발명을 상세히 설명한다.
본 발명의 시스템은 몇가지 특징에서 목적-적용 프로그래밍 원리를 사용한다. 목적-적용 프로그래밍은 기본적으로 4개 요소-클레스, 목적, 순간변수(또는 C++ 내에서 실현되는 자료멤버) 그리고 방법(또는 C++ 내에서 실현되는 멤버기능) 을 포함한다. 한 클레스는 목적들이 클레스로부터 발생되는 바의 그와 같은 클레스의 예인목적을 규정하기 위해 사용된 템플레이트이다. 클레서는 두 타입의 컴포넌트-예 변수 및 방법을 갖는다. 예변수(instance variables)는 자료요소로 사용되며 방법은 기능으로 사용된다. 즉 이들은 목적의 행동을 규정한다. 이들 각각은 동작중인 모듈을 통해 단일의 공동목적으로 결합된다. 따라서, 프로그래밍은 수행되어질 기능 또는 작업에 대하여가 아닌 목적에 대한 집중점을 갖고 수행된다.
본 기술분야에서 잘알려진 목적-적용 프로그래밍에 대한 기술은 프로그래밍언어 C++ 로 본 발명의 시스템의 바람직한 실현에서 본 발명 시스템내로 일원화된다. 이같은 기술로는 인헤리턴스, 폴리모피즘 그리고 인캡슐레이션을 포함한다. 인헤리턴스는 새로운 클레스가 기존 클레스로부터 유도되어 코드가 용이하게 재사용될 수 있도록 하며, 자료 및 코드가 클레스로 가산될 수 있도록 하고 또는 클레스의 행동이 기존 클레스를 변경해야 하지 않고도 변경될 수 있도록 한다. 폴리모피즘은 다른 목적에 의해 공유되는 컴포넌트의 행동을 변경시키는 능력을 제공하며, 컴포넌트 또는 목적의 각기 다른 예가 비록 이들이 동일한 것으로 나타난다해도 각기 달리 행동하는 것을 허락하도록 한다. 마지막으로 인캡슐레이션은 자료 그리고 그 자료를 모두한 "루프(loop" 아래에서 처리하기 위해 필요한 동작들을 혼합하기 위한 기술이다. 이는 자료를 지나치거나 불필요한 접근으로부터 보호하고 자료조직의 세부사항을 숨기는 능력을 더욱더 허용한다.
먼제 제 1A도에서는 새롭거나 수정된 소프트웨어를 동작 소프트웨어 시스템내로 소개함을 관리하기 위해 종래기술의 시스템에서 사용된 소프트웨어 제어 기법이 도시된다. 제1A도는 소프트웨어 수준의 계급조직 세트를 설명하며, 그 각각의 내용이 검토 보드의 멤버들에 의해 제어된다. 소프트웨어의 모든 변경은 그같은 변경이 시스템내에서 실현되기전에 상기 검토보드에 의해 승인되어야 한다. 어떠한 소프트웨어도 검토보드가 소프트웨어가 필요하며, 그것이 적절히 검사되었고 시스템에는 손상이나 방해를 일으키지 않을 것이라는 정식결정을 할때까지는 시스템내로 통합되지 않을 것이다.
계급조직 단계들은 개인 사용자의 기능을 수행하기 위해 계급 조직 단계들또는 소프트웨어 "라이브러리"에 접근하며 이들을 필요로 하는 개인사용자에 의해 함께 연결된 여러개의 분리된 계급조직들로 이루어진다. 계급조직의 상부에서 1 은 대표적으로 가장 널리 사용되고 가장 엄격하게 제어되는 ("AB.D") 실시간 동작 소프트웨어이다. 이 단계 아래에는 접미사 C 가 추가로 부착되어 지정된("AB.DC") 변경 라이브러리 2 이다. 계급조직내 동작 소프트웨어의 하측단계는 시스템내 다른 그룹의 사용자에게 속할 수 있으며 그와 같은 수준에서 검토보드에 의해 제어될 것이다. 새롭거나 수정된 실시간 소프트웨어는 가장낮은 적절한 변경단계에서, 즉 (2)와 (3)에서처럼 문자 C 로 끝나는 단계에서 승인된 뒤에 시스템내로 들어간다.
일단 새롭거나 수정된 소프트웨어가 시스템내로 들어간 뒤에는 명시된 기간이 경과하고 소프트웨어가 어떠한 탐지가능한 오차도 발생시키지 않을때까지 엔트리단계로 남아있는다. 다음에 이는 다음의 가장 높은 단계로 이동된다. 어떤 경우에서는, 이는 특정된 사전 보드에 의한 사전승인을 필요로 하며, 다른 경우에서는 이동이 규칙적으로 계획된 시스템 활동의 일부로서 이동이 자동으로 발생될 것이다. 이 이동은 사용자에게 명백하며, 소프트웨어는 새롭거나 변경된 소프트웨어를 담고있는 라이브러리내 소프트웨어에 접근하기 위해 이들 소프트웨어 연결을 구성시킨 사용자에게 계급조직으로의 이동 또는 엔트리가 있자마자 즉시 이용될 것이다.
제1A도에서 도시된 바와 같이, 같은 처리가 반복될 수 있으며 같은 시스템내에 있는 어떠한 실-시간 엔지니어링 타입 소프트웨어에 대하여도 동시에 발생되지 않는다. 이 경우에서 단하나의 차이는 제어처리가 다른 세트의 사람들에 의해 관리되며 이 처리는 중요한 처리를 위해 전 시스템에 걸쳐 사용된 동작 소프트웨어를 위한 것만큼 엄격하지는 않다. 그러나 소프트웨어의 통합은 동작 소프트웨어에서와 같이 이같은 엔지니어링 소프트웨어에 대하여서도 같은 방식으로 발생된다. 새롭거나 수정된 소프트웨어는 (4)에서처럼 접미사에서 마지막 문자로서 C 로 지정된 바와 같은 가장 낮은 적절한 변경단계에서 계급조직으로 들어간다. 다음에 계급조직 부분의 상부 5 에 도달할때까지 시간경과에 따라 상측방향으로 이동한다. 엔지니어링이나 동작 소프트웨어 어느곳에서도 일단 다음단계로 이동하기만하면 더이상 낮은 단계에 있지는 않는다.
시스템의 계급조직적 라이브러리내로 들어갔던 새롭거나 수정된 소프트웨어를 사용할 것인가에 대한 결정은 개인 사용자 또는 사용자 그룹에 맞겨진다. 사용자는 이들의 사용을 위해 소프트웨어를 연결시키는데 라이브러리의 어떤단계를 시스템이 사용할 것인지 선택할 수 있다. 이들은 낮은단계의 소프트웨어는 우회할 것을 선택하거나 단순히 가장 새로운 그리고 가장 적게 검사된 소프트웨어를 담고있는 가장 낮은 변경단계를 피할 것을 선택할 수 있다. 물론 계급조직 각 부분의 가장 높은 단계는 대부분의 사용중인 동작 소프트웨어를 담고있다.
제1B도는 베이스라인과 매일 시스템으로 소개되는 새롭거나 수정된 소프트웨어를 통해 제어를 유지하기 위해 제1A도에서 설명된 소프트웨어 라이브러리 계급조직에 부과되는 구성 제어의 처리를 설명한다. 상기에서 지적한 바와 같이, 새로운 소프트웨어는 검토보드에 의한 승인에 이어 가장 낮은 적절한 변경단계에서 계급조직내로 들어간다. 만약 새로운 소프트웨어가 오차나 불일치를 가져오게되면, 그 소프트웨어가 계급조직으로부터 제거되며 6 에서처럼 추가의 소프트웨어 유지를 위해 복귀된다. 일단 문제가 바로잡아지고 소프트웨어가 다시 검사되면, 보드 승인이 있은뒤 가장낮은 변경단계에서 스시템내로 통합된다. 만약 고정된 허용되 기간내에 어떠한 문제도 탐지되지 않으면, 다음의 단계가 7 에서처럼 또다른 보드를 요구하지 않는다면 소프트웨어는 자동적으로 다음의 단계로 이주할 것이다. 그렇지 않다면, 적절히 개선된 뒤에 고정된 계획을 통해 이주할 것이다. 이같은 처리는 소프트웨어가 완전히 동작 소프트웨어인 것으로 선언될 시간인 가장 높은단계에 도달할때까지 계속해서 반복될 것이다.
제2도에서는 한 메카니즘을 도시한 본 발명의 한 특징이 설명되며 이를 통하여 소프트웨어의 원활한 수정 또는 변경이 일어난다. 이같이 원활한 수정특징은 일정시간동안 시스템이 소프트웨어의 오래되고 새로운 버젼 모두를 일차 메모리속에 저장하도록 한다. 새로운 트래픽은 다음에 점차로 소프트웨어의 새로운 버젼으로 소개되며 이와 같은 소개는 오래된 트랜잭션이 오래된 소프트웨어 버젼에 의해 실행되도록 성사되며 새로운 트랜잭션은 새로운 소프트웨어 버젼에 의해 실행된다. 제2도에서는 변경되지 않는 소프트웨어유닛(11)이 도시되는데 이는 방향 포인트라 불리는 어드레싱 메카니즘(12)를 통하여 오래된 변경유닛(13)과 새로운 변경유닛(14)로 연결된다. 변경되지 않은 접속(15)(16)은 오래된 변경유닛(13)과 새로운 변경유닛(14)를 주소 메카니즘(12)로 연결시킨다.
설명된 방식으로, 트래픽이 조정될 방식으로 새로운 소프트웨어 버젼으로 트래픽이 소개될 수 있도록 함이 가능하다. 오래된 소프트웨어 버젼은 라이브 자료를통해 계속해서 동작하도록 하며 새로운 소프트웨어 버젼이 동시에 첫번째 검사 트래픽을 처리하고 다음에 명시된 일정 샘플 라이브 트래픽을 마찬가지로 처리한다. 두개의 소프트웨어 버젼은 시스템내에 공존하며, 오래된 소프트웨어 버젼으로 처리를 실시하였던 트랜잭션은 오래된 소프트웨어 버젼을 사용하여 실행을 완성할 것이다. 새로운 소프트웨어 버젼에 의해 먼저 처리된 트래픽은 마찬가지로 새로운 소프트웨어 버젼에 의해 처리될 수 있을뿐이다. 이같이 원활한 수정처리가 새로운 트랜잭션을 점차로 새로운 소프트웨어로 소개시킴을 허용하며, 따라서 시스템 사용자에 대한 방해의 위험을 줄인다. 이와 같은 특징은 제2도에서 도시된 바와 같이 한세트의 병렬이고 독립한 트랜잭션으로서 시스템 트랜잭션을 나타내는 능력, 그리고 각 트랜잭션을 식별하고 새로운 혹은 오래된 소프트웨어 버젼 어느 하나로의 연결시킴을 유지하고 조정시키는 능력을 필요로 한다.
본 발명의 시스템에서는 한번에 소프트웨어의 일부만을 대체시키는 것만이 가능하다. 대체되어질 소프트웨어는 변경 유닛으로서 인용된다. 제2도는 오래된 소프트웨어 버젼, 즉 오래된 변경유닛(13) 그리고 새로운 소프트웨어 버젼, 즉 새로운 변경유닛(14) 모두에서 한 변경유닛R이 있는 경우를 설명한다. 새로운 변경유닛 R' 는 변경되지 않은 소프트웨어(11)로의 기존접속과 양립가능한 접속을 갖도록 선택된 규정에 의한다. 이는 변경되지 않은 소프트웨어가 오래된 그리고 새로운 소프트웨어 버젼(변경유닛) 모두와 협동할 수 있음을 의미한다.
본 발명의 이같은 특징, 즉 트랜잭션의 동적방향 또는 재-방향을 준비하는 것은 방향포인트의 소개 및 사용에 의해 용이하게 된다. 이들 방향 포인트의 소개및 사용에 의해 용이하게 된다. 이들 방향포인트들은 분산된 시스템내 위치들로 이루어지며 이 분산된 시스템에서 트랜잭션은 특정한 방법으로 향하게될 수 있다. 제2도에서 도시된 바와 같은 어드레싱 메카니즘(12)는 방향포인트와 시스템의 트랜잭션이 새로운 또는 오래된 소프트웨어 버젼 어느 하나로 향하게 하는 수단의 실현을 나타낸다. 이들 방향 포인트들은 세가지 다른 방법으로 동작할 수 있다. 먼저, 이들은 시스템에 의해 처리되는 트래픽과 관련된 기능이름을 분석하므로써 트리거될 수 있다. 이같은 동작방법에 따라, 트래픽은 필요한 처리를 수행하기 위해 요구되는 특정기능의 새로운 또는 오래된 소프트웨어 버젼 어느 하나로 향하도록 될수 있다. 두번째로, 소프트웨어의 수행시간 연결의 결과로서 공급된 정보를 기초로한 프로그램의 새로운 또는 오래된 소프트웨어 버젼을 수행하도록 트랜잭션이 지시될 수 있다.
소프트웨어 부분의 다중 버젼이 시스템내 일정기간동안 공존할 수 있다는 사실은 다수의 결과를 가져다준다. 가령, 이같이 원활한 본 발명의 수정특징은 반영구자료 표시에 대한 변경의 경우에 새롭고 오래된 소프트웨어 버젼 모두가 적절한 자료표시에 접근할 수 있도록 한다.
다음에 제3A-3E도와 관련하여서는 일반적인 수정의 경우에 변경유닛이 통과되는 단계가 설명된다. 시스템의 실재동작에서 특정 변경유닛은 설명된 단계의 부분 집합만을 통과하게 될것이다. 또한 실재의 동작에서, 설명된 단계는 수행될 엄격한 한세트의 직렬동작은 아니다. 오히려 이들단계중 하나 또는 둘이상의 단계가 수정과정에서 반복될 수 있다. 본 발명의 이같은 특징의 중요한 특징은 수정과정의다양한 단계에 대한 조정이 시스템의 사용자 모두에게 명백하며 응용 소프트웨어 프로그램 자신들에게 거의 명백하다는 것이다. 이와 같이 설명된 단계는 시스템내에서 존재하는 다양한 방향 포인트로 동작하는 조정자에 의해 조정된다.
제3A도는 그것내에서 구체화한 변경유닛 R(22)를 포함하는 한 시스템(21)을 나타낸다. 이는 수정처리의 출발시에 시스템의 위치를 나타낸다. 이 시점에서의 시스템은 모든 보통 트래픽을 오래된 소프트웨어 버젼을 향하게 한다. 제3B도는 자료 변경 정보(24)와 결합된 새로운 버젼 R'(23)의 수단에 의해 변경유닛(22)의 수정을 나타낸다. 제3A도는 수정 시작에서의 위치를 나타내며, 제3B도는 새로운 소프트웨어 R'(23) 그리고 어떤 경우에서는 자료변경 정보(24)내에 담긴 새로운 자료기법이 오래된 변경유닛 R(22)와 함께 적재되는 초기 또는 적재단계를 나타낸다. 자료 변경정보(24)는 오래된 그리고 새로운 버젼 모두에 대한 자료표시가 알려진 사실로 인해 소프트웨어 개발 시스템내에서 명세되었다.
제3C도는 수정처리 자료단계의 변경을 도시한다. 이같은 단계의 목적은 적절한 순간에 상기에서 기재한 바와 같은 오래된 소프트웨어 부분내에 포함되며 이에 의해 직접 제어되는 기존 반영구자료의 관련된 부분을 새로운 소프트웨어 부분내로 이동시키는 것이며, 즉 허용불가한 방해를 제거하기 위해 오래된 부분을 대체시키는 것이다. 본 발명의 이같은 특징의 구현은 여러 각기 다른 활동을 수행하므로써 관리된다. 먼저 자료변경 단계내에서 집중된 활동은: (a) 대체하는 새로운 소프트웨어 부분이 오래된 소프트웨어 부분에서 사용된 자료표시로부터 변경되어진 경우에 오래된 표시로부터 새로운 표시로의 자료의 변환, 그리고 (b) 오래된 소프트웨어 부분으로부터 새로운 소프트웨어 부분으로의 자료의 전달을 포함한다. 두번째로, 검사단계와 완성단계, 즉 오래된 그리고 새로운 소프트웨어 모두가 병렬로 적용되는 단계에 퍼져있는 활동이 병렬로 사용되며, 새롭거나 오래된 소프트웨어 부분 어느한 곳에서 반영구 자료의 "본래의" 갱신 각각에 대하여 상응하는 반영구 자료의 뒤이은 갱신이 만들어진다. 즉, 뒤이은 갱신은 만약 새로운 소프트웨어로 본래의 갱신이 만들어진다면 그리고 그 반대로도 일어난다면, 오래된 소프트웨어내에 뒤이은 갱신이 만들어진다. 이는 반영구자료가 새롭거나 오래된 소프트웨어에 의해 갱신되는때마다 자료의 변환 및 전달 모두를 의미한다. 자료변환은 소프트웨어 개발중에 지지 시스템내에서 발생된 그리고 "자료변경 정보"라 하여 제3도에서 도시한 바의 초기/적재단계중에 표적 시스템내로 적재된 자료변경 정보에 달려있다.
자료변환과 관련하여, 시스템의 선택적 실현은 자료의 표시를 필요한 상태로 새로운 소프트웨어에 의해 사용된 형태로 변환시킬 뿐이며, 다음에 오래된 소프트웨어가 시스템으로부터 제거되기 이전에 아직 필요하지 않은 남아있는 모든자료를 시스템에 의해 그시간에 변환시킨다. 마찬가지로, 모든 자료는 처음에는 메모리공간을 절약하기 위해 새로운 소프트웨어에 의해 사용된 표시로 변환될 수 있으며, 다음에는 필요한 상태로 제거될때까지 오래된 소프트웨어에 의해 사용된 형태로 다시 자료를 변환시키도록 재변환 프로그램이 사용된다.
제3C도에서 도식적으로 도시된 수정처리의 세번째 단계는 검사 단계이다. 이 단계는 새로운 소프트웨어 버젼이 시스템내로 적재될 것을 허용하도록 되며 초기에는 검사자료만을 통해 라이브트래픽과 함께 이를 동작할 수 있도록 사용하기전에소프트웨어의 질수준을 결정하도록 동작한다. 이같은 검사단계는 두개의 하위단계로 나뉘어진다: (a) 검사트래픽을 갖는 검사, 즉 단지 인위적으로 발생된 트랜잭션은 새로운 소프트웨어 버젼을 사용할 것이며, 그리고 (b) 샘플 트래픽을 갖는 검사, 즉 총 라이브 트래픽 가운데 제로와 100% 사이의 선택된 퍼센트의 실재의 새로운 트랜잭션은 새로운 소프트웨어 버젼으로 수행되도록 지시될 것이다. 이같은 두번째 하위 위상의 완성을 향해, 대부분 또는 모든 라이브 트래픽이 새로운 소프트웨어 버젼하에서 동작될 것이다.
검사트래픽은 특수한 소프트웨어에 의해서 혹은 특수한 검사 가입자를 사용하므로써 발생된다. 검사트래픽은 변경된 유닛 R'23이 사용되도록 조정된다. 이 결과는 새로운 소프트웨어 버젼과 기존의 오래된 소프트웨어 버젼 사이의 선택이 있게되는 모든 방향 포인트에서 검사트래픽을 새로운 소프트웨어 버젼으로 자동으로 향하도록 할 검사플래그(test flag)로 검사플래그를 표시하므로써 보장된다. 보통의 라이브 트래픽을 위해, 새롭거나 오래된 소프트웨어 버젼을 사용할 것인가에 대한 결정이 선택이 있게되는 첫번째 방향 포인트에서 있게된다. 다음에, 그같은 트래픽 또는 트랜잭션이 선택된 소프트웨어 버젼에 의해서만 처리된다. 나중의 방향 포인트에서의 다른 버젼에 대한 변경은 시스템내에서 금지된다. 만약, 이같은 단계중에 검사가 새로운 소프트웨어 버젼을 사용하는 결과로 문제 또는 오차가 발생됨을 나타내며, 수정이 본래로 되돌아가며 모든 새로운 트랜잭션이 오래된 소프트웨어 버젼을 향하도록 지시된다.
어떤 구체예에서는 검사트래픽의 성공적인 처리에 이어 새로운 소프트웨어버젼으로 사용된 샘플트래픽의 양이 제로로 줄어들 수 있다. 이와 같은 경우, 일단 새로운 소프트웨어 버젼이 검사트래픽을 갖는 것으로 입증되면, 모든 새로운 트랜잭션의 완전한 적재가 모든 오래된 트랜잭션이 완성되는때 오래된 소프트웨어를 완전히 대체할 수 있도록 전달될 수 있다.
제3C도에서 도식적으로 도시된 4번째 단계는 완성 단계이다. 이 단계에서, 오래된 소프트웨어 버젼을 사용해왔던 트랜잭션은 오래된 변경유닛(22)를 사용하는 더이상의 트랜잭션이 존재하지 않을때까지 오래된 변경유닛 R(22)를 계속해서 사용한다. 이는 새로운 트랜잭션이 새로운 소프트웨어 버젼을 사용하는때 자연히 일어난다. 이같은 단계중에, 소프트웨어 버젼들은 모두 시스템 메모리내에 남아있으며 새로운 소프트웨어 버젼이 검사단계에서처럼 계속해서 고려된다.
완성단계는 오래된 소프트웨어 버젼을 사용하는 모든 오래된 트래픽이 완성될때까지 또는 특정된 시간에 완성되도록 세트될 수 있을때까지 계속된다. 만약 완성단계가 끝나는 시간에 아직도 오래된 소프트웨어 버젼을 사용하는 어떤 오래된 트래픽이 있다면 이들은 종료될 것이며 혹은 만일 가능하다면, 새로운 소프트웨어 버젼으로 이전될 것이다. 다음에, 오래된 소프트웨어 버젼에 의해 소유된 반영구자료는 더이상 갱신되지 않을 것이며, 오래된 변경유닛이 차단되고 완성단계가 종료될 것이다. 완성단계 이전의 검사단계는 긴 시간에 결쳐 종료되었으며 이같은 긴 시간동안 모든 새로운 트래픽이 샘플 트래픽으로 분류되었고 모든 오래된 트래픽이 완성되었다. 이경우에, 완성단계는 매우 짧으며 반양구자료가 더이상 갱신되지 않고 오래된 변경유닛이 차단됨을 의미한다.
완성단계의 종료는 전체 소프트웨어 수정처리가 종료되었음을 의미한다. 이같은 상태는 제3D도에서 도식적으로 도시된다.
오래된 변경유닛 R(22)와 그 변경정보는 더이상 유지되지 않으며 오래된 소프트웨어 버젼 아래의 동작으로 되돌리는 것이 더이상 가능하지 않다. 이같은 포인트에서 새로운 소프트웨어 버젼에 문제가 있다면, 완전히 새로운 수정이 요구될 것이다. 소프트웨어의 오래된 버젼 또한 시스템으로부터 제거될 수 있다. 제3D도는 이상태를 도식적으로 잘 설명한다.
본 발명 시스템의 또다른 특징은 원활한 수정에 대한 보충으로서 즉각적인 수정을 위한 한 방법을 포함한다. 이 방법은 오래된 소프트웨어 버젼으로부터 새로운 버젼으로 모든 트래픽을 처리할 목적으로 즉시의 또는 순간적인 스위치를 실시하는 능력을 제공한다. 이같은 타입의 수정은 응용이 시스템내에 두개의 다른 소프트웨어 버젼의 동시존재를 막는다. 이같은 즉시의 수정방법으로, 스위치 순간의 소프트웨어 상태가 새로운 버젼으로 필요하고 변형된다면 변환될 수 있다. 이는 본 시스템에서 응용 소프트웨어가 새로운 소프트웨어 버젼으로 그 상태를 재생할 수 있는 능력을 갖기 때문에 가능하다. 본 발명 시스템의 이같은 면의 한 중요한 특징은 비록 변경이 매우 돌연적이라 하여도, 그와 같은 변경은 시스템 사용자에게 그리고 처리되고 있는 트래픽에게 명백한 것이다. 트래픽은 처리에 대한 어떠한 관찰가능 방해도 일으키지 않고 새로운 소프트웨어 버젼으로 다시 지시될 수 있다. 본 발명의 이같은 특징의 또다른 장점은 비록 수동모드로 있다하여 오래된 소프트웨어 버젼이 시스템내에 남아있다는 것이다. 따라서, 만약 새로운 소프트웨어 버젼이 문제를 갖는 것으로 도시되거나 부정확한 것으로 도시되면, 처리를 함에 있어서 더이상의 방해가 없이 오래된 소프트웨어 버젼으로 되돌아가는 것이 아직 가능하다.
다음에 제4도에서는 오래된 소프트웨어 버젼으로부터 새로운 소프트웨어 버젼으로 전이하는 원활한 수정방법을 설명하는 흐름도가 도시된다. 특히, 이 시스템은 기존 소프트웨어가 시스템내에서 활동적으로 실행하며 (101)에서 소프트웨어의 새로운 버젼을 메모리내로 적재하여 시작함을 전제로한다. (102)에서, 시스템이 새로운 버젼으로 변경을 갖는 자료를 복사하며 이를 새로운 소프트웨어로 연결시킨다. (103)에서 시스템은 새로운 소프트웨어로 검사 트랜잭션을 수행하기 시작하고 정상 트래픽이 시스템내에서 오래된 소프트웨어와 오래된 자료를 가지고 계속해서 수행한다. (104)에서, 시스템은 질문한다. "새로운 소프트웨어가 검사트래픽에서 작업하는가?" 만약 그렇지 않다면, 시스템이 (105)로 이동하며 이점에서 새로운 소프트웨어와 자료가 시스템으로부터 이동되며 그 과정이 (106)에서 종료된다. 만약 새로운 소프트웨어가 (104)에서 검사트래픽에서 작업하지 않는다면, 시스템은 (107)로 이동한다. 이점에서 이 시스템은 새로운 소프트웨어로 실재 트래픽의 샘플을 수행하며, 오래된 소프트웨어 및 오래된 자료와 함께 정상적인 트래픽의 나머지를 유지시킨다. 새로운 소프트웨어를 통한 샘플트래픽 수행의 퍼센트는 총 라이브 트래픽중 제로와 100% 사이에서 선택적으로 유지시킨다. 다음에 (108)에서 시스템이 샘플 트래픽상에서 작업하고 있는가에 대하여 질문한다. 만약 그렇지 않다면, 시스템은 (105)로 이동하며 새로운 소프트웨어와 자료가 제거되어 이 처리를 끝내도록 한다. 그러나 만약 새로운 소프트웨어가 (108)에서 샘플 트래픽을 성공적으로처리하면, 시스템은 (109)에서 새로운 소프트웨어와 자료로 모든 미래호출을 수행토록 이동한다. 다음에 (110)에서, 시스템은 다시 질문한다. "새로운 소프트웨어가 작업하고 있는가?" 만약 그렇지 않다면, 새로운 소프트웨어를 제거하기 위해 (105)로 이동하며 (106)에서 종료된다. 만약 새로운 소프트웨어가 (110)에서 시스템내 정상 트래픽을 수행하는 작업을 하고 있다면, 이 시스템은 (111)에서 모든 오래된 트랜잭션이 시스템내에서 완성되었는가에 대해 질문하여, 만약 그렇지 않다면, 변경에 대한 시간 제한이 (113)에서 끝났는가에 대해 질문하고, 만약 그렇지 않다면, 계속해서 (1) 새로운 약 새로운 소프트웨어가 (110)에서로 모든 새로운 트랜잭션을 수행하며, 그리고 (2) (111)에서 yes 가 수신되거나 (113)에서 시간제한이 종료할때까지 (109)에서 오래된 소프트웨어로 모든 오래된 트랜잭션을 수행한다. 만약 시간제한이 (113)에서, 종료하면 시스템이 남아있는 호출을 종료하거나 전달하고 (112)로 이동한다. 만약 (111)에서 yes가 수신되면, 시스템은 (112)로 이동하며 오래된 소프트웨어가 오래된 자료와 함께 제거되고, 시스템이 통신스위치내에서 기존 트래픽에 위협을 가하거나 지연시키지 않고 수행시간중에 오래된 소프트웨어로부터 새로운 소프트웨어로 스위치를 만든다.
제 5도에서는 호출식별(ID) 카테고리와 포인터 ID 카테고리를 담고있는 표(120)이 도시된다. 검사호출인 시스템내 각 호출 주소에 대하여, 새로운 소프트웨어(121)로 하나의 포인터가 제공되며, 정상의 식별을 담고있는 모든 호출 ID에 대하여 상기 포인터가 오래된 소프트웨어(122)로 제공된다. 제5도는 본 발명 시스템이 보통의 라이브 트래픽과 검사트래픽 모두를 적절한 소프트웨어 버젼으로 적절히 향하도록 할수 있는 방법을 도식적으로 설명한다.
이는 오래된 그리고 새로운 소프트웨어가 본 발명의 시스템 내에서 주소되는 방식에 대한 간단한 해석이며, 사실 상세한 연결과정 호출 메카니즘 분리하여 적재된 프로그램 유닛들 사이의 동적 수행시간 바인딩을 발생시키도록 사용된다. 즉 프로그램 유닛을 대체시키는때, 소프트웨어의 오래된 그리고 새로운 버젼은 새로운 버젼이 올바른 것으로 입증될 수 있고 오래된 버젼에서 실행되는 활동이 상기에서 설명되는 바와 같이 종료될 수 있을때까지 일정한 시간동안 공존한다. 적절한 연결과정 메카니즘은 K. Lundin 등의 이름으로 ----- 자로 출원되고 본원 출원인에게 양도된 동시 계속중인 미국특허원 제 -----호에서의 "한 컴퓨터 시스템내에서 소프트웨어 모듈을 동시에 실행하는 동적 수행-시간 바인딩을 위한 시스템"에서 공개되며, 이 특허는 본원 설명에서도 참고로 인용된다. 본 발명 시스템은 연결된 과정 호출을 경유해서 접속을 통해 소프트웨어에 접근하기 위한 수단으로서 트레이딩을 사용한다. 적재시간에, 연결된 과정호출로 접근가능한 모든 접속이 커널 대 트레이더 기능으로 공개된다. 모든 접속은 접속으로부터 한 목적을 발생시키는 방법과 관련하는 주체와 주소로 공개된다. 소프트웨어 버젼들 사이의 바인딩은 수행히간에 만들어지며 한 특정접속에 대하여 목적이 발생되는때마다, 한 요구가 트레이더 또는 호출되어지는 발생방법의 주소로 향하여지며 목적포인터를 발생된 목적으로 되돌려 보낸다.
제6도에서 도시된 바와 같이, 클레스 X(131)의 각 목적은 목적포인터(134)에 의해 목적-자료(133)내 표(132)로부터 호출되며 다음에 목적(131)내에 있는 한 동작표(135)로 지시되고, 그 주소가 상기 클레스의 목적에 의해 규정된 동작의 정의를 포함한다. 서버 프로그램 유닛내 동작표와 관련된 주소의 수는 목적-자료내에 저장된다. 다음에 목적표는 특정 접속에 속하는 동작의 주소를 포함한다. 표 목적-자료내 동작표 주소의 위치와 동작표내 주소가 저장되는 순서가 고정되고 알려져 있기 때문에, 트레이더로 부터의 도움이 없이도 동작이 호출될 수 있다. 트레이더없이 호출될 수 있는 접속내의 한가지 그와 같은 동작은 한가지 발생된 목적을 삭제하기 위한 동작이다.
이와 같은 동작표의 사용은 가령 프로그래밍 언어 C++ 와 가상의 표에 대한 구조를 사용하여 실시되는 개념인 폴리모피즘을 달성하는 능력을 제공한다. "많은 형상(many shapes)" 을 의미하는 폴리모피즘(polymorphism)은 각기 다른 목적에 의해 공유되는 컴포넌트 행동이 변경될 수 있게되는 한 기술이다. 다시 말해서 한 컴포넌트가 모든 경우에 같게 나타날 수 있으며, 그러나 관련된 다른 목적에 관련하여서는 다소 다른 방식으로 수행할 수 있는 능력을 갖는다. 폴리모피즘은 관련된 목적의 패밀리 발생을 허용하는데 유용하다. 즉 이들은 공동의 근원 또는 베이스를 가지며, 그러나 이들은 다른 상황에서 달리 수행한다. 이는 한 패밀리내의 각 목적이 각 목적의 방법에 대한 실재 코드가 크게 다르다하더라도 동일한 이름들을 갖는 방법 또는 기능들을 가질수 있도록 한다. 본 발명의 이와 같은 시스템은 폴리미피즘 또는 목적중심 프로그래밍의 다른 원리를 사용한다. 그러나 본 발명의 시스템은 실행중에 소프트웨어의 각기 다른 버젼에 대한 동적이고, 명확한 상호연결을 달성시키기 위해 새롭고 매우 유용한 방식으로 이같은 원리를 수행하고 확장한다.
다음에 제 7도에서는, 연결된 절차 호출 메카니즘이 고객 클레스(145)와 목적의 서버클레스(146) 각각을 포함하는 한쌍의 소프트웨어 유닛(143)(144) 사이의 접속관계를 가능하게 하는 커널(142)내에 담긴 트레이더(141)의 개념을 구체화하는 사실이 설명된다. 제 7도는 제6도에서 도시된 바와 같이 시스템내에서 목적을 발생시키기 위해 요구되는 단계들을 상세하게 셜명한다.
목적들은 자료와 코드 모두 또는 단일 패키지 또는 유닛내 기능을 담고 있는 언어구조들이다. 이들이 자료와 코드 모두를 포함할 수 있기 때문에, 이들은 소형이고 독립된 프로그램으로 작용한다. 따라서, 이들은 그와 같은 기능들을 위해 필요한 코드를 다시 개발해야 할 필요없이 더욱 복잡한 프로그램을 발생시키는데 블럭을 세우는 것으로서 사용될 수 있다. 이들이 독립적으로 유지되고 변경될 수 있기 때문에 프로그램 유지 및 변경이 간단하게 된다.
한 클레스가 한 목적을 규정하기 위해 사용되는 템플레이트이고, 따라서 목적은 클레스의 한 예이다. 한 클레스는 두개의 컴포넌트 타입, 실례 변수 또는 자료부재 그리고 방법 또는 부재기능을 포함한다. 컴퓨터 시스템내 고객 역할을 해내는 프로그램을 개발하는 프로그래머를 지원하기 위해, 고객-클레스가 접속 명세의 사용을 통해서 자동적으로 발생된다. 발생된 고객-클레스는 서버-클레스에 대한 일정의 대리인으로서 작용한다. 시스템의 고객 노드는 호출이 서버-클레스내에 있는 소프트웨어 실현으로 전달될 수 있도록 하기 위해 고객-클레스 로부터의 연산을 호출한다. 따라서, 동적 구속기능과 관련된 모든 코드는 고객-클레스내에서 발견된다.
클레스 선언은 컴파일러가 목적-자료내 주소를 저장하고 연산 테이블내의 주소가 설명되어질 순서로 제어한다. 몇가지 클레스 선언은 이 시스템에 의해 자동으로 발생된다. 목적이 시스템 내에서 발생되는때, 그 "발생방법" 멤버 기능이 커널(142)내에 위치하는 연산 시스템 트레이더(141) 부분으로의 요구를 통해 발견될 수 있다. 트레이더(141)은 시스템내 연결된 절차호출에 의해 접근가능한 모든 클레스에 대한 모든 접속정보를 포함한다.
제 8 도의 도표는 프로그램 유닛의 오래된 소프트웨어와 새로운 소프트웨어가 상기 언급한 링크연결절차 호출을 통해 실행 시간중에 상호 연결되며 구속된다. 커널 (142)내 트레이더(140)은 소프트웨어 유닛(151)의 실행을 오래된 소프트웨어 유닛(152) 또는 새로운 소프트웨어 유닛(153) 어느 하나를 향하도록 한다. 대체를 하는동안, 오래되고 새로운 버젼모두로부터의 서버-클레스들은 트레이더(120)내에서 공표된 이들의 인터페이스를 갖는다. 트레이더(141)은 각 항에 대한 두개의 주소 엔트리, 오래된 소프트웨어 유닛(152)에 대한 엔트리와 새로운 소프트웨어 유닛(153)에 대한 한 엔트리를 포함한다. 대체이전에 발생된 트랜잭션은 오래된 소프트웨어 유닛(152)를 가리키는 주소와 그 서버-클레스를 수신할 것이며, 다른 트랜잭션이 서버-클레스의 새로운 버젼으로 주소를 수선할 것이다.
대체가 완성되고 오래된 소프트웨어 유닛(152)를 사용하는 트랜잭션이 끝난뒤에, 오래된 소프트웨어 유닛(152)가 메모리로부터 제거될 수 있으며 오래된 소프트웨어 유닛(152)내 서버-클레스에 의해 공개된 접속이 제거될 것이다. 만약 메모리로부터 이들 서버-클레스를 제거하기 위한 시도가 완성에 달하는 오래된 소프트웨어 유닛내 모든 트랜잭션 이전에 만들어지면, 시스템은 커널(142)로부터 예외 호출을 발생시킨다. 다음에 시스템내의 예외처리 트랜잭션이 완성되지 않은 처리로 하여금 자신을 재발생시키고 새로운 소프트웨어 유닛 (153)을 사용할 수 있도록 하며 그렇지 않으면 종료되도록 한다.
본 발명읜 연결된 절차 호출 메카니즘 사용시에 본 발명 시스템의 접속명세는 K. Lundin의 이름으로 --- 일자로 출원되고 봉원 출원인에게 양도된 미국특허원 제 --- 호로 공개된 바, ELIN으로 언급되는 목적중심 접속기 설명 언어로 기록된다. 이 언어에서는, 연결된 절차 호출 접속 명세로서 목적되는 특수한 구조가 있다. ELIN 언어내의 한 클레스는 일정타입의 목적에 의해 제공되는 접속기의 명세이다. 이들 목적은 목적중심의 프로그래밍 언어가 사용되면 클레스의 예로서 실시되기에 적합하다. ELIN 언어로 연결된 절차의 명세는 다음의 정보를 포함한다.
(a) 명세에 대한 이름;
(b) 이같은 접속에 대한 베이스로서 사용된 다른 접속;
(c) 하나 또는 둘이상의 구조기(예를 발생시키기 위해 사용된다); 그리고
(d) 각각이 방법 이름, 인수, 리턴 타입 그리고 예외로 이루어진 제로 또는 둘이상의 방법-명세.
링크 연결절차 호출 메카니즘의 일부로서 사용될 수 있으며 스택된 목적으로의 접속을 설명하는 접속명세의 한 예가 하기에서 설명된다.
CLASS STACK;
BASE
CLASS TelecomObject;
ACCEPTS
CONSTRUCTOR (IN size Int);
METHOD push (IN data Int);
METHOD pop ( ) RETURNS Int;
DESTRUCTOR ( );
END CLASS Stack;
1992 텔레폰아크티에볼라게트 엘엠 애릭슨.
이같은 접속 명세는 한 클레스의 스택된 목적을 규정하며, 클레스 "TelecomObject"라 불린다. 이같은 클레스의 목적은 목록된 기능 멤버로부터 메세지호출을 받아들일 수 있다. 이같은 클레스에 대하여 식별된 베이스가 TelecomObject 라 불리는 이같은 클레스 타입의 또다른 명세가 있음을 나타내도록 한다. 이같은 베이스는 또한 베이스 클레스의 예로서 현재 클레스가 인계받게될 명시된 일정한 방법을 갖는다. 상기 클레스 규정에서 명시된 기능 멤버 또는 방법이 기저 클레스내에 추가로 명시된다. 결론컨데, 상기 코드는 시스템에서 발생될 수 있는 접속 명세의 한 타입인 클레스 명세를 포함한다.
한 접속이 유도된 접속의 기저 접속이라 불려지는 또다른 접속으로부터 유도될 수 있다. 접속들은 둘이상의 다른 접속로부터 유도되며, 유도된 접속의 베이스 접속 각각의 연산으로부터 인계받는다. 또한 유도된 접속이 비록 기저 접속으로부터 인계된 것들과 같은 이름을 갖는 연산을 규정하지 않는다 해도 그 자신의 추가연산을 선언한다. 인계는 클레스의 접속 수준에 영향을 미칠뿐 실현 수준에는 영향을 미치지 않는다.
제 9 도에서 도시된 바와 같이, 본 발명의 시스템은 고객과 한 접속을 통해 수행시간에 동적으로 함께 연결되는 서버사이의 동등성을 확인하기 위해 사용되는 스터브-코드 발생도구(162)를 포함한다. 접속 명세(172) 각 측면에 대하여 발생되었던 스터브-코드의 사용을 통하여 인스테드 바인딩이 실행시간에 동적으로 발생될 수 있다. 접속은 언어-독립 방식으로 명세되며, 그러나 목적 중심 파라다임을 사용하여 명세된다. 스터브-코드 발생 처리는 여러 프로그래밍 언어중 하나에 대한 맵핑이 달성될 수 있도록하며 다음의 섹션에서는, 그와 같은 맵핑이 C++ 언어를 사용해서 어떻게 수행될 수 있는가에 대한 간단한 설명이 있게된다.
다시 제 9 도에서는, 접속명세(161)이 본 발명의 시스템에서 한 세트의 발생된 파일(174)와 관련된 스터브-발생도구(162)를 사용한다. 제 9 도는 특히 그같은 언어로 실시되는 C++ 맵핑의 전체구조를 설명한다. 본 발명의 시스템에서 사용된바의 목적 중심의 접속 명세언어 ELIN 으로 기록된 접속명세는 프로그래밍 언어 C++에서 사용된 클레스 규정과 유사하다. 마찬가지로, 목적을 통해 연산에 접근하기 위한 메카니즘은 프로그래밍 언어 C++ 가 멤버 가상 기능을 처리하는 방식과 유사하다. 따라서, 제 9 도에서 도시된 C++의 맵핑은 본 발명 시스템의 이같은 특징의 연산에 대하여 교육적이다.
스터브-발생도구(162)은 고객측면과 서버측면 모두에 대한 두개의 파일을 발생시킨다. 하나는 서픽스 "h"(헤더)를 다른 하나는 서픽스".cc"(코드)를 갖는다.고객의 경우, ".h" 또는 헤더파일은 두개의 클레스 규장을 담고 있는다. 한가지 클레스는 서버의 ".h" 또는 헤더파일내 상응하는 클레스의 정확한 사본이다. 이는 고객과 서버 사이의 호환성을 보장하며 고객이 서버에 의해 발생된 목적을 호출하는 것을 가능하도록 한다. 그러나 이같은 클레스 구조자는 스택을 통한 자동목적을 발생시키도록 사용될 수 없도록 한다. 두번째 클레스는 서버에 의해 발생된 목적이 이를 통해 접근될 수 있는 대리인으로서 작용하는 고객에서 사용될 수 있는 것이다.
서버측면에 대하여, 같은 두개의 "h"(헤더)와 ".cc"(코드) 파일이 스터브-발생도구(162)에 의해 발생된다. ".h"파일의 내용은 고객과의 호환성을 보장하게될 한 클레스 정의로 이루어진다. 이는 실현을 위해 베이스로서 사용되는 클레스이다. 다른 클레스를 유도하기 위한 베이스로서 사용될 수 있다. ".cc"파일은 발생방법의 주소 발표를 사행하는 "발생방법"과 코드에 대한 개략을 포함한다. 발생방법의 기본은 발생된 클레스와 양립할 수 있는 목적을 발생시키고 포인터를 제6도에서 도시되기도한 새롭게 발생된 목적으로 되돌려 보낼 수 있다.
한가지 공유된 클레스 규정이 아니 고객과 서버측면에 대한 각기다른 그러나 호환성인 클레스 규정을 발생시키기 위한 여러가지 이유가 있다. 먼저, 이는 고객과 서버내 멤버들에 대한 각기다른 수준의 가시도를 제공한다. 가령, 구조자는 서버내 공중이어야 하며 그러나 고객내에 존재한다면 공중일 필요는 없다. 두번째, 고객과 서버 프로그램은 각기다른 클레스가 사용된다면 이름 충돌의 문제를 만나지 않고 검사목적을 위해 함께 연결될 수 있다.
다음에 제 10 도에서는, 본 발명의 시스템에서 사용되는 바와 같은 일정예시적 코드블럭과 이들 서로의 관계를 설명하는 일정 챠트 배열이 도시된다. 제 10 도는 본 발명 시스템에서 사용되는 바와 같은 일정 발생된 파일과 기록된 명세의 논리적 구조를 설명한다. 가장 높은 수준으로, 궁동 접속명세(171)은 클레스 "X"와 클레스가 호출을 받아들이는 방법을 규정한다. 규정의 다음 수준에서는 공동 접속명세(171)의 사용자 유닛(172)를 위한 명세와 공동 접속명세(171)의 제공자유닛(173)을 위한 명세가 이같은 클레스 에 논리적으로 부수한다. 사용자 유닛은 명세(172)는 공동 접속클레스 X 를 규정하며 제공자 유닛명세(173)은 클레스 X의 서버를 규정한다.
사용자의 제공자 각각에 대한 발생된 클레스 규정은 유닛명세(172)(173) 아래의 다음의 논리적 수준에 있다. X 사용자(174)에 대하여 발생된 클레스 규정은 두 공공 및 개인 사용을 위해 규정된 일정사용자 클레스들을 설명한다. X 제공자(175)에 대한 발생된 클레스 규정은 제공자 자료와 기능을 위한 공공 및 개인 규정을 설명한다.
마지막으로 제 11 도에서는, 한 프로토콜 명세가 메세지를 사용하여 어떻게 두 통신자 사이의 완전한 동등함을 보장하는 스터브-코드의 발생을 위해 사용되는가하는 설명적 도표가 도시된다. 스터브-코드의 구조가 제 11 도에서 설명되며, 사용자-기록코드(181), 발생된 코드(182) 그리고 커널 코드(183)를 포함한다. 한 예가 전송통신 시스템인 분산된 모듈러 컴퓨터 시스템에서 시스템의 다양한 부분에서의 통신을 용이하게 하기 위해 많은 응용수준 프로토콜이 사용된다.
프로토콜은 특정한 방식 및 포맷으로 통신하는데 동의하는 시스템내의 통신자 사이의 계약 집합인 것이다. 몇몇 프로토콜은 한 사람만이 개시자인 고객-서버 프로토콜로서 설명될 수 있다. 피어 프로토콜이라하는 다른 프로토콜은 두 통신자가 모두가 통신을 개시하도록 하영한다. 본 발명의 시스템에서는 다른 기존 시스템과는 달리, 통신자 쌍사이의 완전한 등의 또는 프로토콜이 통신자들의 특정 실현과는 분리되는 단일 접속 명세내에 명세된다. 따라서, 이같은 단일 명세는시스템내 어떠한 통신자 쌍사이의 동의를 위해서도 재사용될 수 있는 포괄적인 동의로 사용될 수 있다.
본 발명의 시스템은 ELIN으로 알려진 독점의 목적중심 접속 설명 언어로 단일의 접속/프로토콜 명세를 실현한다. 기령, 피어 타입 프로토콜의 그같은 언어의 명세는 다음의 컴포넌트들을 포함한다. (1) 각 프로토콜이 두 통신자를 가지는 프로토콜내로 정규의 연산접합, 그리고 (2) 상호작용 제한조건의 명세, 피어 프로토콜 명세는 통신을 실행하기 위해 프로토콜을 사용하는 실현과는 분리되어 존재한다. 피어 프로토콜 명세는 다음의 포맷에 따라 조직된다. (1) 프로토콜 이름, (2) 첫번째 통신자의 이름과 허용된 연산들의 목록, (3) 두번째 통신자의 이름과 허용된 연산들의 목록, (4) 상호작용 제한조건(선택적).
상호작용 제한조건을 갖는 프로토콜 명세의 한 예가 하기에서 코드로 기재된다. 이같은 프로토콜 명세내에 포함된 정보가 스터브코드의 발생을 위해 사용될 수 있다.
PROTOCOL 통신서비스
PARTY 자료생산자
ACCEPTS
전송시작
전송종료, 자료재전송
END PARTY 자료생산자
PARTY 자료소비자
ACCEPTS
스트링 자료, 정수 자료
전송할 자료없음
END PARTY 자료소비자
INTERACTION
STATE START
WHEN 전송시작 THEN 시작됨
STATE 시작됨
WHEN 전송종료 THEN START;
WHEN 정수자료 THEN 자료위상;
WHEN 스트링자료 THEN 자료위상;
STATE 자료위상
WHEN 정수자료 THEN 자료위상;
WHEN 스트링자료 THEN 자료위상;
WHEN 재전송자료 THEN 자료위상;
WHEN 전송할 자료없음 THEN 자료위상 종료됨.
STATE 자료위상 종료됨
WHEN 재전송자료 THEN 재전송 명령됨;
WHEN 전송종료 THEN START;
STATE 재전송 명령됨
WHEN 스트링자료 THEN 자료위상 종료됨;
WHEN 정수자료 THEN 자료위상 종료됨;
END PROTOCOL 통신서비스;
1992 텔레폰아크티에볼라게트 엘엠 애릭슨.
시스템내에서 통신하는 통신자의 논리적 구조가 제 11도에서도 도시된다. 제 11 도에서 도시된 바와 같이, 언어 ELIN이 시스템내에서 사용된 자료타입뿐아니라 시스템에서 분산된 목적들 사이의 통신을 설명하도록 사용된다. 본 발명의 이같은 특징으로 사용되고 규정된 프로토콜은 장치가 동일하게 작용하도록 허용하며, 어느 한 통신자도 통신을 개시할 수 있게 된다. 통신자들은 통신 목적을 위한 마스터 또는 슬레이브 어느 것으로도 미리 규정되지 않는다. 본 발명 시스템의 이같은 특징이 각각이 단일의 명세된 접속을 사용하여 개발되는한 각기 다르며 먼위치에서 개발되고 작동되는 시스템들이 용이하게 상호작용할 수 있도록 허용한다. 본 발명 시스템의 이같은 특징의 프로토콜 명세는 시스템내의 어떠한 응용 실현으로부터도 멀리 떨어져 분리된다.
제 11 도에서 더욱 설명되는 바와 같이, 사용자-기록코드(181)은 프로토콜 명세에 따라 신호를 전송하고 수신할 수 있는 통신 프로토콜내 한 통신자로서 작용한다. 자료 수신절차(184), (185) 및 (186)은 프로토콜내에 도달하는 유입 신호들을 처리한다. 자료 전송절차(187, 188, 189)는 사용자에 의해 호출되는때 프로토콜 명세에 따라 메세지를 발생시키고 시스템내로 전송하기 위해 스터브 발생 도구에 의해 자동으로 발생된 코드를 포함한다. 메세지를 수신 (190)하고 메세지를 전송(190)하는 작용은 모두 발생된 코드(182)의 일부인 접속대리(192)를 향하여 있게 된다. 이같은 접속명세 (192)는 발생된 코드(202)의 위임부분이며 접속을 위해 존재해야 하고 프로토콜이 적절히 기능하도록 한다.
디스패쳐(193)는 스터브 발생도구에 의해 발생되며 프로토콜 명세에서 명시된 각 유입되는 메세지에 대하여 호출되는 기능을 갖는다. 디스패쳐(193)은 메세지를 수신하고, 메세지를 해독하며, 신호 바디로부터 메세지식별기를 분리하고 다음에 (194)로 도시된 바와 같이 이를 이 구현에서 기록될 절차로 분산시킨다.
프로토콜 폴리스(195), 발생된 코드(182)의 선택적 부분이 교통을 감독하도록하며 어떠한 주어진 경우에도 두 통신자가 신호를 전송 또는 수신하는데 있어 접속규칙을 준수하는가를 결정하도록 한다. 프로토콜 폴리스(195)는 프로토콜 규칙에 대한 준수를 감독하는데 상태머신으로 작동한다. 상태 머신의 논리는 상기에서 제공된 실시예 코드로 표시된다.
제 11 도에서 도시된 바와 같은 커널코드(183)에서는 통신포트(196)이 있다. 이같은 통신포트(196)은 수동지지수단으로서 본 발명 시스템의 어드레싱 메카니즘에 의해 관찰된다. 통신포트(196)은 이를 통해 통과되는 그러나 그 통신을 용이하게 하는 프로토콜을 알지 못한다. 통신지지(197)은 연산 시스템내에 존재하는 일반적인 통신지지이다. 이는 같은 처리기내의 처리사이와 다른 처리기에서의 처리사이에서 작동할 수 있다. 만약 처리기 사이에서 분산된 목적으로 작동하고 있다면, 통신지지(197)은 하드웨어 통신링크를 구성할 것이다. 제 11 도내에 담긴 전체 설명의 거울상은 시스템내 두번째 통신자의 지지와 작동에서 발생되는 상응하는 활동을 나타낸다.
상기에서 설명된 바와 같이, 본 발명의 시스템은 네트워크내 통신 트래픽을 방해하지 않고 통신 네트워크와 스위칭 시스템에서 원활하고 명확하게 대체될 수 있을뿐 아니라 소프트웨어가 실시간으로 효과적으로 검사될 수 있도록 새로운 스프트웨어와 오래된 스프트웨어를 연결시키거나 실시간 포함을 가능하게 한다.

Claims (18)

  1. 기존 소프트웨어(152)로 기존 데이터를 처리하며(103), 처리되어질 새로운 데이터를 수신하는 동안
    기존 소프트웨어 버전 및 새로운 소프트웨어 버전(152,153) 모두가 동시에 출력 데이터를 발생시킬 때 상기 기존 소프트웨어(152)에 의해 기존 데이터의 처리(103)를 방해하지 않고 컴퓨터의 데이터 처리 제어를 상기 새로운 소프트웨어(153)로 자동으로 보내는 컴퓨터 장치와 관련하여 사용하기 위한 방법으로서,
    상기 컴퓨터 장치내에 새로운 소프트웨어를 설치하고(101),
    상기 새로운 소프트웨어(153)를 사용하여, 상기 기존 데이터와 새로운 데이터가 기존 소프트웨어(152)에 의해 처리되는때 이와 동시에 테스트 데이터를 처리하도록 하며(107),
    기존 소프트웨어(152)를 계속 사용하여 기존 데이터를 처리하고(103), 상기 새로운 소프트웨어(153)와 기존 소프트웨어(152) 모두로부터 동시에 출력 데이터를 발생시키는 동안, 상기 테스트 데이터의 성공적인 처리(107)가 있은뒤에 상기 새로운 소프트웨어(153)로 모든 새로운 데이터 처리제어를 자동으로 전달시키고, 그리 고
    상기 새로운 데이터에 대한 성공적인 처리(109)가 있은 뒤에는 완전한 데이터 처리제어를 상기 새로운 소프트웨어(153)로 자동으로 전달시키는 단계를 포함하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 방법.
  2. 제 1 항에 있어서,
    트랜잭션(transactions)들이 다음 단계들에 의해 기존 소프트웨어(152) 또는 새로운 소프트웨어(153) 어느 한 소프트웨어로 동적으로 향하도록 되는, 다수의 병렬, 독립, 동시 트랜잭션으로 기존 데이터와 새로운 데이터 모두가 처리(103)됨을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 방법.
    1) 트랜잭션 각각을 트랜잭션의 모드(mode)를 나타내는 플래그와 관련시키는 단계, 그리고
    2) 상기 관련된 플래그에 의해 확인된 모드에 따라 각 트랜잭션 전체를 새로운 소프트웨어(153) 또는 기존 소프트웨어(152) 어느 하나로 동적으로 향하도록 하는 단계.
  3. 제 2 항에 있어서,
    한 테스트 모드를 나타내는 플래그가 시스템으로의 테스트 데이터 입력에 따라 모든 트랜잭션과 관련이 있으며, 한 테스트 플래그가 관련하여지게된 모든 트랜잭션이 완전한 처리(109)를 위해 새로운 소프트웨어(153)로 향하도록 됨을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 방법.
  4. 제 2 항에 있어서,
    기존 데이터 모드를 나타내는 한 플래그(flag)가 새로운 소프트웨어(153)로 새로운 데이터를 입력하기 전에 시스템으로의 모든 실제 데이터 입력에 따라 모든 트랜잭션과 관련되며, 관련된 한 기존 데이터 플래그를 가지는 모든 트랜잭션들이 완전한 처리(109)를 위해 상기 기존 소프트웨어(152)로 향하도록 됨을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 방법.
  5. 통신 스위칭 시스템을 계속해서 동작시키는 동안 통신 스위칭 시스템내에서 시스템 방해의 위험없이 기존 호출 처리 소프트웨어(152)를 새로운 호출 처리 소프트웨어(153)로 자동으로 변경시키고,
    동시에 상기 기존 호출 처리 소프트웨어(152)와 새로운 호출 처리 소프트웨어(153) 모두로부터 출력 데이터를 발생시키는 방법으로서,
    상기 기존 소프트웨어(152)가 계속해서 호출을 처리하는 동안 상기 시스템내에 새로운 소프트웨어(153)를 설치시키고,
    상기 시스템을 통해서 다수의 테스트 호출을 실행시키며(103), 상기 모든 테스트 호출을 상기 새로운 소프트웨어(153)로 경로배정하므로써 상기 기존 소프트웨어(152)로 실제 호출들을 처리하는 동안 처리(107)할 수 있도록 하고,
    상기 기존 소프트웨어(152)로 모든 기존 호출들을 처리하며(103), 동시에 상기 기존 소프트웨어(152)와 새로운 소프트웨어(153) 모두로부터 출력 데이터를 발생시키면서, 상기 테스트 호출을 상기 새로운 소프트웨어(153)가 성공적으로 처리함에 응답하여 상기 시스템에 의해 수신된 모든 새로운 호출들을 상기 새로운 소프트웨어(153)로 경로배정하며, 그리고
    상기 새로운 소프트웨어(153)가 상기 테스트 호출들을 성공적으로 처리하지 못함(108)에 응답하여 시스템에 의해 수신된 모든 새로운 호출들을 상기 기존 소프트웨어(152)로 경로배정하는 단계들을 포함하는 컴퓨터 동작중에 자동으로 컴퓨터 소프트웨어를 변경시키기 위한 방법.
  6. 제 5 항에 있어서,
    트랜잭션(transactions)들이 다음 단계들에 의해 기존 호출 처리 소프트웨어(152) 또는 새로운 호출 처리 소프트웨어(153) 어느 한 소프트웨어로 동적으로 향하도록 되는, 다수의 병렬, 독립, 동시 트랜잭션으로 기존 데이터와 새로운 호출 트랜잭션 모두가 처리됨을 특징으로 하는 컴퓨터 동작중에 자동으로 컴퓨터 소프트웨어를 변경시키기 위한 방법.
    1) 호출 트랜잭션 각각을 트랜잭션의 모드(mode)를 나타내는 플래그와 관련시키는 단계, 그리고
    2) 상기 관련된 플래그에 의해 확인된 모드에 따라 각 트랜잭션 전체를 새로운 호출 처리 소프트웨어(153) 또는 기존 호출 처리 소프트웨어(152) 어느 하나로 동적으로 향하도록 하는 단계.
  7. 제 6 항에 있어서,
    한 테스트 모드를 나타내는 플래그가 시스템으로의 테스트 호출 입력에 따라모든 트랜잭션과 관련이 있으며, 한 테스트 플래그가 관련하여지게된 모든 트랜잭션이 완전한 처리(109)를 위해 새로운 소프트웨어(153)로 향하도록 됨을 특징으로 하는 컴퓨터 동작중에 자동으로 컴퓨터 소프트웨어를 변경시키기 위한 방법.
  8. 제 6 항에 있어서,
    기존 호출 모드를 나타내는 한 플래그(flag)가 새로운 소프트웨어(153)로 새로운 데이터를 경로 배정하기 전에 시스템으로의 모든 실제 호출 입력에 따라 모든 트랜잭션과 관련되며, 관련된 한 기존 호출 플래그를 가지는 모든 트랜잭션들이 완전한 처리(109)를 위해 상기 기존 소프트웨어(152)로 향하도록 됨을 특징으로 하는 컴퓨터 동작중에 자동으로 컴퓨터 소프트웨어를 변경시키기 위한 방법.
  9. 새로운 데이터가 컴퓨터 시스템에 의해 수신되는 동안 첫 번째 소프트웨어(152)가 기존 데이터를 처리하는(103) 컴퓨터 시스템내에서, 데이터 처리 작업을 앞서 적재된 첫 번째 소프트웨어(152)로부터 새로이 적재된 두 번째 소프트웨어(153)로 자동으로 이동시키기 위한 장치로서,
    테스트 데이터를 상기 두 번째 소프트웨어(153)로 전달하여 실제 데이터를 시뮬레이트하는 상기 테스트 데이터가 상기 첫 번째 소프트웨어(152)에 의해 처리되도록 하며 동시에 기존의 실제 데이터와 새로운 실제 데이터 모두가 상기 첫 번째 소프트웨어(152)에 의해 처리되도록 하는 첫 번째 수단,
    상기 두 번째 소프트웨어(153)에 의해 상기 테스트 데이터의 성공적인처리(107)에 응답하여 상기 첫 번째 소프트웨어(152) 한 기존 데이터의 계속적 처리(103)중에 그리고 상기 첫 번째 소프트웨어(152)와 두 번째 소프트웨어(153) 모두로부터 출력 데이터를 동시에 발생시키는 동안 상기 새로운 데이터 모두를 두 번째 소프트웨어(153)로 전달하기 위한 두 번째 수단, 그리고
    상기 첫 번째 소프트웨어(152)에 의해 상기 기존 데이터의 처리 종료(103) 또는 상기 두 번째 소프트웨어(153)로 상기 새로운 데이터 모두를 전달하기 시작한 뒤 일정 시간 경과후중 첫 번째(상기 처리종료 또는 일정시간 경과후중)에 응답하여 발생되어 데이터를 처리하기 위한 상기 첫 번째 소프트웨어(152)의 더 이상의 사용을 중단하도록 하며, 이에 의해 상기 첫 번째 소프트웨어(152)로부터 상기 두번째 소프트웨어(153)로의 변경이 데이터 처리 작업계속을 방해하지 않고 컴퓨터시스템 실행중에 자동으로 반영될 수 있도록 하는 세 번째 수단을 포함하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
  10. 제 9 항에 있어서,
    상기 컴퓨터 시스템이 통신 스위칭 시스템이며, 그리고 상기 기존 및 새로운 데이터가 상기 통신 스위칭 시스템에 의해 수신된 호출임을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
  11. 기존 소프트웨어(152)로 기존 데이터를 처리하며(103), 처리되어질 새로운 데이터를 수신하는 동안
    기존 소프트웨어 버전 및 새로운 소프트웨어 버전(152,153) 모두가 동시에 출력 데이터를 발생시킬 때 상기 기존 소프트웨어(152)에 의해 기존 데이터의 처리(103)를 방해하지 않고 컴퓨터의 데이터 처리 제어를 상기 새로운 소프트웨어(153)로 자동으로 보내는 컴퓨터 장치와 관련하여 사용하기 위한 시스템으로서,
    상기 컴퓨터 장치내에 새로운 소프트웨어(153)를 설치하기 위한 수단,
    상기 새로운 소프트웨어(153)를 사용하여, 상기 기존 데이터와 새로운 데이터가 기존 소프트웨어(152)에 의해 처리되는때 이와 동시에 테스트 데이터를 처리하도록 하기 위한 수단,
    기존 소프트웨어(152)를 계속 사용하여 기존 데이터를 처리하고(103) 상기 새로운 소프트웨어(153)와 기존 소프트웨어(152) 모두로부터 동시에 출력 데이터를 발생시키는 동안, 상기 테스트 데이터의 성공적인 처리(107)가 있은뒤에 상기 새로운 소프트웨어(153)로 모든 새로운 데이터 처리제어를 자동으로 전달시키기 위한 수단, 그리고
    상기 새로운 데이터에 대한 성공적인 처리(109)가 있은 뒤에는 완전한 데이터 처리제어를 상기 새로운 소프트웨어(153)로 자동으로 전달시키는 수단을 포함하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
  12. 제 11 항에 있어서,
    자동으로 전달시키기 위한 상기 수단이 기존 소프트웨어(152)가 상기 기존데이터를 처리하는 동안 상기 새로운 소프트웨어(153)로 모든 새로운 데이터를 처리하기 시작한 뒤 일정 기간 경과후 또는 상기 기존 소프트웨어(152)에 의해 상기 기존 데이터의 처리 종료(103)중 첫 번째에 응답함을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
  13. 제 12 항에 있어서,
    상기 일정 시간 경과후에는 기존 소프트웨어(152)를 사용하여 처리(103)되고있는 모든 트랜잭션들이 강제 종료되어짐을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
  14. 제 12 항에 있어서,
    상기 일정 기간 경과후예는 기존 소프트웨어(152)를 사용하여 처리(103)되고있는 모든 트랜잭션들이 처리 종료(109)를 위해 새로운 소프트웨어(153)로 전달되이점을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
  15. 제 12 항에 있어서,
    상기 일정 기간 경과후에는, 상기의 방해에도 불구하고 남아있게된 모든 트랜잭션들이 새로운 소프트웨어(153)로 전달하여지도록 되어 처리되어지며(109) 모든 다른 트랜잭션들은 종료하여지게 됨을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
  16. 제 11 항에 있어서,
    트랜잭션(transactions)들이 다음 수단들을 포함하는, 기존 소프트웨어(152) 또는 새로운 소프트웨어(153) 어느 한 소프트웨어로 동적으로 향하도록 되는, 다수의 병렬, 독립, 동시 트랜잭션으로 기존 데이터와 새로운 데이터 모두가 처리(103)됨을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
    1) 트랜잭션 각각을 트랜잭션의 모드(mode)를 나타내는 플래그와 관련시키기 위한 수단, 그리고
    2) 상기 관련된 플래그에 의해 확인된 모드에 따라 각 트랜잭션 전체를 새로운 소프트웨어(153), 또는 기존 소프트웨어(152) 어느 하나로 동적으로 향하도록 하기 위한 수단.
  17. 제 16 항에 있어서,
    한 테스트 모드를 나타내는 플래그가 시스템으로의 테스트 데이터 입력에 따라 모든 트랜잭션과 관련이 있으며, 한 테스트 플래그가 관련하여지게된 모든 트랜잭션이 완전한 처리(109)를 위해 새로운 소프트웨어(153)로 향하도록 됨을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
  18. 제 16 항에 있어서,
    기존 데이터 모드를 나타내는 한 플래그(flag)가 새로운 소프트웨어(153)로새로운 데이터를 입력하기전에 시스템으로의 모든 실제 데이터 입력에 따라 모든 트랜잭션과 관련되며, 관련된 한 지존 데이테 플래그를 가지는 모든 트랜잭션들이 완전한 처리(109)를 위해 상기 기존 소프트웨어(152)로 향하도록 됨을 특징으로 하는 컴퓨터 동작중에 소프트웨어를 변경시키기 위한 시스템.
KR1019940704734A 1992-07-01 1993-05-11 컴퓨터동작중에소프트웨어를변경시키기위한방법및그시스템 KR100323881B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US907294 1992-07-01
US07/907,294 US5410703A (en) 1992-07-01 1992-07-01 System for changing software during computer operation
PCT/SE1993/000417 WO1994001819A1 (en) 1992-07-01 1993-05-11 System for changing software during computer operation

Publications (1)

Publication Number Publication Date
KR100323881B1 true KR100323881B1 (ko) 2002-07-08

Family

ID=25423853

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940704734A KR100323881B1 (ko) 1992-07-01 1993-05-11 컴퓨터동작중에소프트웨어를변경시키기위한방법및그시스템

Country Status (13)

Country Link
US (2) US5410703A (ko)
EP (1) EP0648353B1 (ko)
KR (1) KR100323881B1 (ko)
CN (2) CN1045829C (ko)
AU (1) AU667559B2 (ko)
BR (1) BR9306651A (ko)
DE (1) DE69326464T2 (ko)
DK (1) DK0648353T3 (ko)
ES (1) ES2140462T3 (ko)
FI (1) FI106752B (ko)
GR (1) GR3031915T3 (ko)
MX (1) MX9303648A (ko)
WO (1) WO1994001819A1 (ko)

Families Citing this family (311)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0458495A3 (en) * 1990-05-21 1993-04-14 Texas Instruments Incorporated Apparatus and method for managing versions and configurations of persistent and transient objects
US5841991A (en) * 1992-11-18 1998-11-24 Canon Information Systems, Inc. In an Interactive network board, a method and apparatus for storing a media access control address in a remotely alterable memory
US5623604A (en) * 1992-11-18 1997-04-22 Canon Information Systems, Inc. Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral
US5590347A (en) * 1992-12-07 1996-12-31 Microsoft Corporation Method and system for specifying alternate behavior of a software system using alternate behavior indicia
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
US6684261B1 (en) * 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
US5809237A (en) * 1993-11-24 1998-09-15 Intel Corporation Registration of computer-based conferencing system
US5845090A (en) 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
JP3140906B2 (ja) * 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
ATE165174T1 (de) * 1994-05-10 1998-05-15 Siemens Ag Datenverwaltungssystem eines realzeitsystems
JP3160149B2 (ja) * 1994-05-13 2001-04-23 株式会社日立製作所 ディスク制御装置の無停止プログラム変更方法およびディスク制御装置
DE69534316T2 (de) * 1994-07-15 2006-04-20 Koninklijke Philips Electronics N.V. Telekommunikationsanlage mit einem prozessorsystem und ein prozessorsystem
US5684952A (en) * 1994-07-25 1997-11-04 Apple Computer, Inc. Supervisory control system for networked multimedia workstations that provides reconfiguration of workstations by remotely updating the operating system
EP0721263B1 (en) * 1994-07-26 2006-11-15 Sony Corporation Information service system
DE4429969A1 (de) * 1994-08-24 1996-02-29 Sel Alcatel Ag Verfahren für einen Programmpaketeaustausch in einem Mehrrechnersystem und Rechner dafür
US5682533A (en) * 1994-09-27 1997-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Updating software within a telecommunications switch without interrupting existing communication and neither moving nor converting data
US8661477B2 (en) 1994-10-12 2014-02-25 Touchtunes Music Corporation System for distributing and selecting audio and video information and method implemented by said system
ES2143556T3 (es) * 1994-10-12 2000-05-16 Touchtunes Music Corp Sistema de reproduccion audiovisual digital inteligente.
US7188352B2 (en) 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US7424731B1 (en) * 1994-10-12 2008-09-09 Touchtunes Music Corporation Home digital audiovisual information recording and playback system
SE504943C2 (sv) * 1994-12-09 1997-06-02 Ericsson Telefon Ab L M Synkroniseringsförfarande som tillåter tillståndsöverföring
WO1996018947A1 (en) * 1994-12-13 1996-06-20 Novell, Inc. Method and apparatus to update or change a network directory
US5680549A (en) * 1994-12-30 1997-10-21 Compuserve Incorporated System for transferring network connections from first to second program where the first enters an inactive state and resumes control of connections when second terminates
DE19502728A1 (de) * 1995-01-28 1996-08-01 Philips Patentverwaltung Telekommunikationsvorrichtung
US5892910A (en) * 1995-02-28 1999-04-06 General Instrument Corporation CATV communication system for changing first protocol syntax processor which processes data of first format to second protocol syntax processor processes data of second format
IL117221A0 (en) * 1995-02-28 1996-06-18 Gen Instrument Corp Configurable hybrid medium access control for cable metropolitan area networks
JPH08249136A (ja) * 1995-03-10 1996-09-27 Sony Corp 記録再生装置及び伝送方法
DE19518266A1 (de) * 1995-05-18 1996-11-21 Philips Patentverwaltung Kommunikationssystem mit Mitteln zum Austausch von Software
US5878246A (en) * 1995-07-05 1999-03-02 Sun Microsystems, Inc. System for linking an interposition module between two modules to provide compatibility as module versions change
US5805891A (en) * 1995-07-26 1998-09-08 International Business Machines Corporation System and method for managing maintenance of computer software
DE19533961A1 (de) * 1995-09-13 1997-03-20 Siemens Ag Verfahren zum Laden von Software in Kommunikationssystemen mit nichtredundanten, dezentralen Einrichtungen
US5838981A (en) * 1995-10-05 1998-11-17 Ricoh Company, Ltd. Data communication apparatus with a program renewal function
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
US6389483B1 (en) 1995-10-17 2002-05-14 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling between modules in a telecommunications environment
US6421679B1 (en) * 1995-10-27 2002-07-16 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
US5727215A (en) * 1995-11-30 1998-03-10 Otis Elevator Company Method for replacing software modules utilizing a replacement address table
US5708812A (en) * 1996-01-18 1998-01-13 Microsoft Corporation Method and apparatus for Migrating from a source domain network controller to a target domain network controller
US5946490A (en) * 1996-03-22 1999-08-31 Northeastern University Automata-theoretic approach compiler for adaptive software
US5999946A (en) * 1996-04-10 1999-12-07 Harris Corporation Databases in telecommunications
DE19617976A1 (de) * 1996-05-06 1997-11-13 Philips Patentverwaltung Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE59604300D1 (de) * 1996-05-22 2000-03-02 Siemens Ag Verfahren zum Austausch von Software in laufenden Steuerungssystemen
US5857106A (en) * 1996-05-31 1999-01-05 Hewlett-Packard Company Runtime processor detection and installation of highly tuned processor specific routines
GB2315637B (en) * 1996-07-19 2000-09-13 Ericsson Telefon Ab L M Testing mechanism
US5896535A (en) * 1996-08-20 1999-04-20 Telefonaktiebolaget L M Ericsson (Publ) Method and system for testing computer system software
FR2753868A1 (fr) 1996-09-25 1998-03-27 Technical Maintenance Corp Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede
US5911069A (en) * 1996-09-30 1999-06-08 Apple Computer, Inc. Exception handling techniques for native methods bound to SOM classes
US5832274A (en) * 1996-10-09 1998-11-03 Novell, Inc. Method and system for migrating files from a first environment to a second environment
DE19652629A1 (de) * 1996-12-18 1998-06-25 Philips Patentverwaltung System zum Austausch von Software
US6175855B1 (en) * 1996-12-20 2001-01-16 Siemens Aktiengesellschaft Method for instantiating a class having different versions
US5922072A (en) * 1997-01-03 1999-07-13 Ncr Corporation Method and apparatus for creating alternate boot environments in a computer
TW325551B (en) * 1997-01-04 1998-01-21 Inventec Corp Auto switching memory space method capable of judging if there is updated version stored in memory circuit to automatically select program stored in ROM or memory circuit as execution stating location
US6058396A (en) * 1997-02-06 2000-05-02 Sterling Software, Inc. Product interface method and system which allow class evolution
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
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
FR2762737B1 (fr) * 1997-04-24 1999-06-11 Alsthom Cge Alcatel Procede pour changer de version de logiciel dans un systeme informatique comportant plusieurs stations, et systeme informatique pour la mise en oeuvre de ce procede
US6401114B1 (en) 1997-05-01 2002-06-04 Stratum Technologies Corporation Method and apparatus for dynamic programming across a computer network
US7162519B2 (en) * 1998-05-01 2007-01-09 Stratum Technologies Corporation Structure and method for providing customized web pages-therefor
JPH10320205A (ja) 1997-05-20 1998-12-04 Fujitsu Ltd 情報処理装置
US6324411B1 (en) * 1997-05-20 2001-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Background software loading in cellular telecommunication systems
US6189145B1 (en) 1997-05-28 2001-02-13 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
GB9711920D0 (en) * 1997-06-09 1997-08-06 Honeywell Oy Computer system
US5913023A (en) * 1997-06-30 1999-06-15 Siemens Corporate Research, Inc. Method for automated generation of tests for software
SE521056C2 (sv) 1997-07-21 2003-09-23 Ericsson Telefon Ab L M Metod för genomförande av schemaförändringar i en databas
US5974429A (en) * 1997-09-03 1999-10-26 Northern Telecom Limited Method and apparatus for updating distributed databases in a telecommunications network
US6044461A (en) * 1997-09-16 2000-03-28 International Business Machines Corporation Computer system and method of selectively rebooting the same in response to a system program code update
FR2769165B1 (fr) 1997-09-26 2002-11-29 Technical Maintenance Corp Systeme sans fil a transmission numerique pour haut-parleurs
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US6074435A (en) * 1997-10-30 2000-06-13 Telefonakiebolaget Lm Ericsson (Publ) Remote software download with automatic adjustment for data access compatibility
KR100247467B1 (ko) 1997-11-07 2000-03-15 윤종용 엠엠씨 커맨드를 이용한 교체 블록 로딩 방법
US6620204B1 (en) * 1997-11-25 2003-09-16 International Business Machines Corporation Automated HTML test page and test data generation for javascript objects
WO1999030229A1 (en) * 1997-12-11 1999-06-17 Digits Corp. Object code analysis and remediation system and method
US6105037A (en) 1997-12-12 2000-08-15 International Business Machines Corporation Apparatus for performing automated reconcile control in a virtual tape system
US5911073A (en) * 1997-12-23 1999-06-08 Hewlett-Packard Company Method and apparatus for dynamic process monitoring through an ancillary control code system
US6360363B1 (en) 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
US6141683A (en) * 1998-01-30 2000-10-31 Lucent Technologies, Inc. Method for remotely and reliably updating of the software on a computer with provision for roll back
DE19803697C2 (de) * 1998-01-30 2000-03-16 Ericsson Telefon Ab L M Verfahren zum Aufrüsten eines Softwaresystems und Vorrichtung zur Durchführung des Verfahrens
US6345382B1 (en) 1998-02-12 2002-02-05 International Business Machines Corporation Run-time customization in object-oriented design
US6151709A (en) * 1998-02-13 2000-11-21 Novell, Inc. Processes and apparatuses for uploading instructions to a computer
DE19810784B4 (de) * 1998-03-12 2006-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem
DE19810807A1 (de) * 1998-03-12 1999-09-23 Ericsson Telefon Ab L M Gerät und Verfahren zum Umsetzen von Meldungen
DE19810802A1 (de) 1998-03-12 1999-09-16 Ericsson Telefon Ab L M Störungsfreies Aktualisieren von Daten
DE19810814B4 (de) * 1998-03-12 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem und Zustandskopierverfahren zur skalierbaren Software-Aktualisierung
DE19810843B4 (de) 1998-03-12 2004-11-25 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Zugriffseinrichtung zum Bestimmen der Speicheradresse eines Datenwerts in einer Speichereinrichtung
US7770123B1 (en) 1998-05-08 2010-08-03 Apple Inc. Method for dynamically generating a “table of contents” view of a HTML-based information system
US6330715B1 (en) * 1998-05-19 2001-12-11 Nortel Networks Limited Method and apparatus for managing software in a network system
US6222916B1 (en) 1998-05-22 2001-04-24 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for introducing and modifying telecommunications services
US6070012A (en) * 1998-05-22 2000-05-30 Nortel Networks Corporation Method and apparatus for upgrading software subsystems without interrupting service
FR2781582B1 (fr) 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
FR2781591B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Systeme de reproduction audiovisuelle
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
US8028318B2 (en) 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
US6564369B1 (en) 1998-08-20 2003-05-13 Pearson Technical Software, Inc. Conflict checking using configuration images
JP4101368B2 (ja) * 1998-08-24 2008-06-18 松下電器産業株式会社 ボタン電話装置およびそのメンテナンス方法並びに記録媒体
DE19843048C2 (de) * 1998-09-19 2000-08-17 Nokia Networks Oy Verfahren für einen Softwarezugriffswechsel in einem Netzwerkknoten eines Telekommunikationsnetzwerkes sowie ein zum Durchführen eines solchen Verfahrens geeigneter Netzwerkknoten
EP1119809B1 (en) * 1998-10-09 2003-05-07 Sun Microsystems, Inc. Process monitoring in a computer system
JP3837244B2 (ja) 1998-10-23 2006-10-25 松下電器産業株式会社 プログラムリンク装置及び方法
US6526523B1 (en) * 1998-10-27 2003-02-25 Microsoft Corporation Kernel streaming test method and system
US6237091B1 (en) * 1998-10-29 2001-05-22 Hewlett-Packard Company Method of updating firmware without affecting initialization information
US6269442B1 (en) * 1998-11-13 2001-07-31 Hewlett-Packard Company Apparatus and method for on-line replacement of a running program code and data using checkpoints
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
JP3674351B2 (ja) * 1999-01-08 2005-07-20 富士通株式会社 マスタサーバ
US6795967B1 (en) * 1999-01-26 2004-09-21 Microsoft Corporation Changing user identities without closing applications
US6385770B1 (en) 1999-01-29 2002-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Software upgrade
US8726330B2 (en) * 1999-02-22 2014-05-13 Touchtunes Music Corporation Intelligent digital audiovisual playback system
GB2348304B (en) 1999-03-24 2003-07-09 Ibm Optimising Device Driver Debug Tracing
US6813629B1 (en) * 1999-04-02 2004-11-02 Oracle International Corporation Method and apparatus for facilitating object communication across a network
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
US6425126B1 (en) * 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
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
US8033913B2 (en) * 1999-06-03 2011-10-11 Igt Gaming machine update and mass storage management
CA2375701C (en) * 1999-06-03 2010-08-10 Anchor Gaming Method and device for implementing a downloadable software delivery system
AU4982100A (en) * 1999-06-03 2000-12-28 Sycamore Networks, Inc. Software translation using metadata
US6501995B1 (en) * 1999-06-30 2002-12-31 The Foxboro Company Process control system and method with improved distribution, installation and validation of components
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
FR2796482B1 (fr) 1999-07-16 2002-09-06 Touchtunes Music Corp Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles
US6715145B1 (en) * 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
JP3669619B2 (ja) * 1999-09-06 2005-07-13 富士通株式会社 無線端末装置のソフトウェア更新方法及びその装置
US7016944B1 (en) 1999-09-30 2006-03-21 Apple Computer, Inc. System and method for passive detection and context sensitive notification of upgrade availability for computer information
WO2001027710A2 (en) * 1999-10-14 2001-04-19 Nokia Corporation A method and system for software updating
US6560614B1 (en) * 1999-11-12 2003-05-06 Xosoft Inc. Nonintrusive update of files
CA2397912A1 (en) * 2000-01-20 2001-07-26 Q3Dm, Llc Method and system for extensible data processing
FR2805377B1 (fr) 2000-02-23 2003-09-12 Touchtunes Music Corp Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede
FR2805060B1 (fr) 2000-02-16 2005-04-08 Touchtunes Music Corp Procede de reception de fichiers lors d'un telechargement
GB2359385B (en) 2000-02-16 2004-04-07 Data Connection Ltd Method for upgrading running software processes without compromising fault-tolerance
FR2805072B1 (fr) 2000-02-16 2002-04-05 Touchtunes Music Corp Procede d'ajustement du volume sonore d'un enregistrement sonore numerique
GB0004090D0 (en) * 2000-02-22 2000-04-12 Innovation Venture Ltd Application programming system and method of operation thereof
DE10008245A1 (de) * 2000-02-23 2001-09-06 Siemens Ag Verfahren zur Sicherstellung der Kompatibilität und Verfahren zur Datensicherung innerhalb eines mehrere Teilrechnersysteme aufweisenden verteilten Rechnersystems
JP3888827B2 (ja) * 2000-03-15 2007-03-07 富士通株式会社 プログラム置換システム、分散処理システム及びプログラム置換方法
DE10109365A1 (de) 2000-03-17 2001-09-20 Heidelberger Druckmasch Ag Vorrichtung zur Erkennung von Funktionseinheiten
GB2362064A (en) * 2000-05-04 2001-11-07 Marconi Comm Ltd Switching of software in a communications system
FR2808906B1 (fr) 2000-05-10 2005-02-11 Touchtunes Music Corp Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles
US6711572B2 (en) 2000-06-14 2004-03-23 Xosoft Inc. File system for distributing content in a data network and related methods
US7951002B1 (en) 2000-06-16 2011-05-31 Igt Using a gaming machine as a server
FR2811175B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles
FR2811114B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement
US6618805B1 (en) * 2000-06-30 2003-09-09 Sun Microsystems, Inc. System and method for simplifying and managing complex transactions in a distributed high-availability computer system
US6931636B2 (en) * 2000-08-08 2005-08-16 Texas Instruments Incorporated Multiprocessor emulation support using dynamic linking
AU2001283264B2 (en) * 2000-08-18 2007-10-18 Igt Gaming system with player tracking
FR2814085B1 (fr) 2000-09-15 2005-02-11 Touchtunes Music Corp Procede de divertissement base sur les jeux concours a choix multiples
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
CA2435624C (en) * 2000-09-22 2013-05-07 Richard B. Levine Systems and methods for preventing unauthorized use of digital content
US8636596B2 (en) * 2000-11-04 2014-01-28 Igt Dynamic player notices for operational changes in gaming machines
US6645077B2 (en) * 2000-10-19 2003-11-11 Igt Gaming terminal data repository and information distribution system
US8556698B2 (en) 2000-10-19 2013-10-15 Igt Executing multiple applications and their variations in computing environments
US9251647B2 (en) * 2000-10-19 2016-02-02 Igt Remote configuration of gaming terminals
US20040180721A1 (en) * 2000-12-21 2004-09-16 Igt Gaming terminal data repository and information distribution system
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US20080214300A1 (en) * 2000-12-07 2008-09-04 Igt Methods for electronic data security and program authentication
US7515718B2 (en) * 2000-12-07 2009-04-07 Igt Secured virtual network in a gaming environment
US20050153778A1 (en) * 2004-01-14 2005-07-14 Dwayne Nelson Methods and apparatus for gaming data downloading
US20070136817A1 (en) * 2000-12-07 2007-06-14 Igt Wager game license management in a peer gaming network
US7972214B2 (en) * 2000-12-07 2011-07-05 Igt Methods and devices for downloading games of chance
US7168089B2 (en) 2000-12-07 2007-01-23 Igt Secured virtual network in a gaming environment
US20020073410A1 (en) * 2000-12-13 2002-06-13 Arne Lundback Replacing software at a telecommunications platform
US6961773B2 (en) 2001-01-19 2005-11-01 Esoft, Inc. System and method for managing application service providers
EP1237078A1 (de) 2001-01-19 2002-09-04 Siemens Aktiengesellschaft Durchführung eines zeitoptimierten Austausches einer Software-Applikation
US7186181B2 (en) * 2001-02-02 2007-03-06 Igt Wide area program distribution and game information communication system
DE10105454A1 (de) * 2001-02-07 2002-08-29 Bosch Gmbh Robert Verfahren zur automatischen Ergänzung von Software
US7086060B2 (en) * 2001-02-15 2006-08-01 Sun Microsystems, Inc. Method for programmatic representation and enforcement of resource controls
US7031989B2 (en) * 2001-02-26 2006-04-18 International Business Machines Corporation Dynamic seamless reconfiguration of executing parallel software
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.
AU2002305490B2 (en) * 2001-05-09 2008-11-06 Sca Ipla Holdings, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
ITMI20010997A1 (it) * 2001-05-16 2002-11-16 Cit Alcatel Metodi per testare il software di controllo di una apparecchiatura per telecomunicazioni dotata di un controllo di tipo distribuito
US20060059479A1 (en) * 2001-07-02 2006-03-16 Pradeep Tumati System and method for modifying software without halting its execution
US20030005408A1 (en) * 2001-07-02 2003-01-02 Pradeep Tumati System and method for creating software modifiable without halting its execution
US20030037313A1 (en) * 2001-07-16 2003-02-20 Joel Halpern System and method for class transitioning
WO2003009096A2 (en) * 2001-07-16 2003-01-30 Vibrant Solutions System and method for class transitioning
US7089559B2 (en) * 2001-07-31 2006-08-08 International Business Machines Corporation Method, apparatus, and program for chaining server applications
US7131909B2 (en) * 2002-09-10 2006-11-07 Igt Method and apparatus for managing gaming machine code downloads
US7931533B2 (en) 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US8708828B2 (en) 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
US6902481B2 (en) * 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US7210145B2 (en) * 2001-10-15 2007-04-24 Edss, Inc. Technology for integrated computation and communication; TICC
EP1306754A1 (en) * 2001-10-23 2003-05-02 Telefonaktiebolaget L M Ericsson (Publ) Device and method for software maintenance
US7162710B1 (en) * 2001-11-01 2007-01-09 Microsoft Corporation Dynamic modifications to a heterogeneous program in a distributed environment
US6931409B2 (en) * 2002-01-08 2005-08-16 International Business Machines Corporation Method, apparatus, and program to efficiently serialize objects
US7168008B2 (en) * 2002-01-18 2007-01-23 Mobitv, Inc. Method and system for isolating and protecting software components
US20030140339A1 (en) * 2002-01-18 2003-07-24 Shirley Thomas E. Method and apparatus to maintain service interoperability during software replacement
JP2003216449A (ja) * 2002-01-23 2003-07-31 Nec Corp パッチ処理システム
DE10206903A1 (de) * 2002-02-19 2003-09-04 Siemens Ag Softwareapplikation, Softwarearchitektur und Verfahren zur Erstellung von Softwareapplikationen, insbesondere für MES-Systeme
US6997803B2 (en) * 2002-03-12 2006-02-14 Igt Virtual gaming peripherals for a gaming machine
US8597116B2 (en) * 2002-03-12 2013-12-03 Igt Virtual player tracking and related services
US20030191870A1 (en) * 2002-04-02 2003-10-09 Dominic Duggan Method and apparatus for updating software libraries
US20040010474A1 (en) * 2002-05-15 2004-01-15 Lockheed Martin Corporation Method and apparatus for estimating the refresh strategy or other refresh-influenced parameters of a system over its life cycle
US7918730B2 (en) * 2002-06-27 2011-04-05 Igt Trajectory-based 3-D games of chance for video gaming machines
US8140635B2 (en) * 2005-03-31 2012-03-20 Tripwire, Inc. Data processing environment change management methods and apparatuses
US7307979B2 (en) * 2002-07-31 2007-12-11 Jeremy Benjamin As Receiver For Chiaro Networks Ltd Configuration rollback
US7185331B2 (en) * 2002-08-27 2007-02-27 Inrange Technologies Corporation Method and apparatus for downloading executable code in a non-disruptive manner
US7263698B2 (en) * 2002-08-29 2007-08-28 Sap Aktiengesellschaft Phased upgrade of a computing environment
US7171432B2 (en) 2002-08-29 2007-01-30 Sap Aktiengesellschaft Phased upgrade of a computing environment
US8083585B2 (en) * 2002-09-10 2011-12-27 Igt Apparatus and method for copying gaming machine configuration settings
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US8151304B2 (en) 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US9646339B2 (en) * 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US12100258B2 (en) 2002-09-16 2024-09-24 Touchtunes Music Company, Llc Digital downloading jukebox with enhanced communication features
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US7234056B2 (en) * 2002-09-24 2007-06-19 Inrange Technologies Corp. Method and apparatus for downloading executable code in a non-disruptive manner
DE10246097A1 (de) * 2002-10-02 2004-04-15 Siemens Ag Verfahren zum Testen eines Softwaresystems für technische Anlagen
US7284234B2 (en) * 2002-11-06 2007-10-16 Alcatel Canada Inc. System and method for implementing maintenance functions for a switch
US6996818B2 (en) * 2002-11-22 2006-02-07 Bitfone Corporation Update system for facilitating software update and data conversion in an electronic device
JP4417123B2 (ja) * 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
US7698700B2 (en) * 2003-04-17 2010-04-13 International Business Machines Corporation System quiesce for concurrent code updates
US7356577B2 (en) * 2003-06-12 2008-04-08 Samsung Electronics Co., Ltd. System and method for providing an online software upgrade in load sharing servers
US7379419B2 (en) * 2003-08-13 2008-05-27 Samsung Electronics Co., Ltd. Apparatus and method for performing an online software upgrade of resource servers
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US20050114853A1 (en) * 2003-11-26 2005-05-26 Glider Joseph S. Software upgrade and downgrade in systems with persistent data
US7305672B2 (en) * 2004-01-06 2007-12-04 International Business Machines Corporation Dynamic software update system, method and program product
US20050198022A1 (en) * 2004-02-05 2005-09-08 Samsung Electronics Co., Ltd. Apparatus and method using proxy objects for application resource management in a communication network
JP2005259113A (ja) * 2004-02-12 2005-09-22 Ricoh Co Ltd プロセス編集装置、プロセス管理装置、プロセス編集プログラム、プロセス管理プログラム、記録媒体、プロセス編集方法及びプロセス管理方法
US7650593B2 (en) * 2004-03-25 2010-01-19 Microsoft Corporation Proxy objects for display
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US20050262494A1 (en) * 2004-05-18 2005-11-24 Bea Systems, Inc. Production redeployment through application versioning
US20050262495A1 (en) * 2004-05-18 2005-11-24 Bea Systems, Inc. Administration mode for server applications
US7660879B2 (en) 2004-05-20 2010-02-09 Ananthan Bala Srinivasan System and method for application deployment service
US7908047B2 (en) * 2004-06-29 2011-03-15 General Electric Company Method and apparatus for run-time incorporation of domain data configuration changes
US7617501B2 (en) 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
US20060217929A1 (en) * 2004-08-06 2006-09-28 Lockheed Martin Corporation Lifetime support process for rapidly changing, technology-intensive systems
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7404184B2 (en) * 2004-09-13 2008-07-22 International Business Machines Corporation Efficient firmware update for hierarchical data storage systems
US8146073B2 (en) * 2004-09-30 2012-03-27 Microsoft Corporation Updating software while it is running
US7219279B2 (en) * 2005-01-18 2007-05-15 International Business Machines Corporation Software testing
US20060179421A1 (en) * 2005-02-09 2006-08-10 International Business Machines Corporation Dynamic interface binding using XML transformations
US20070028208A1 (en) * 2005-06-07 2007-02-01 Alec Maki Runtime generative programming method and system
US8549172B2 (en) * 2005-08-19 2013-10-01 International Business Machines Corporation Distribution of software based on scheduled time to deploy software dynamic resource state of systems involved in deployment of software and based upon environmental conditions
EP1762933B1 (en) * 2005-08-30 2010-10-27 Sony Ericsson Mobile Communications AB Method and software for optimising the positioning of software functions in a memory
US7887420B2 (en) 2005-09-12 2011-02-15 Igt Method and system for instant-on game download
US8287379B2 (en) 2005-09-12 2012-10-16 Igt Distributed game services
CN100459630C (zh) * 2005-09-30 2009-02-04 西安大唐电信有限公司 一种业务动态加载的方法
JP4732864B2 (ja) * 2005-11-15 2011-07-27 株式会社リコー プログラム配布サーバ、プログラム配布方法、及び、プログラム配布プログラムとその記録媒体
US7882503B2 (en) * 2005-11-17 2011-02-01 Oracle International Corporation Production redeployment
US7788660B2 (en) * 2005-11-17 2010-08-31 Bea Systems, Inc. Resource adapter classloading
US7904949B2 (en) * 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US8087075B2 (en) 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
JP4946141B2 (ja) * 2006-04-11 2012-06-06 ブラザー工業株式会社 構成変更プログラム、および情報処理装置
WO2007123527A1 (en) * 2006-04-20 2007-11-01 Srinivasan Chitoor V Technology for integrated computation and communication; ticc
US7996837B2 (en) * 2006-05-03 2011-08-09 Oracle International Corporation Recovery mechanism for transactions
EP2019985B1 (en) 2006-05-12 2018-04-04 Nuance Communications Austria GmbH Method for changing over from a first adaptive data processing version to a second adaptive data processing version
US8429712B2 (en) 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
US8209676B2 (en) 2006-06-08 2012-06-26 Hewlett-Packard Development Company, L.P. Device management in a network
US20070299999A1 (en) * 2006-06-21 2007-12-27 Vicky Duerk Link protocol control for serial protocols
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US8117461B2 (en) 2006-09-13 2012-02-14 Igt Method of randomly and dynamically checking configuration integrity of a gaming system
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
US7895332B2 (en) * 2006-10-30 2011-02-22 Quest Software, Inc. Identity migration system apparatus and method
US7886270B2 (en) * 2006-11-28 2011-02-08 International Business Machines Corporation Methods, systems, and computer program products for file version control management
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
US9330529B2 (en) 2007-01-17 2016-05-03 Touchtunes Music Corporation Game terminal configured for interaction with jukebox device systems including same, and/or associated methods
US9953481B2 (en) 2007-03-26 2018-04-24 Touchtunes Music Corporation Jukebox with associated video server
CN100464522C (zh) * 2007-05-17 2009-02-25 华为技术有限公司 一种进程升级的方法及进程升级系统
US8132165B2 (en) * 2007-05-25 2012-03-06 Samsung Electronics Co., Ltd. Interception proxy-based approach for in-service software upgrade
US20090048022A1 (en) * 2007-08-13 2009-02-19 Igt Dynamic reconfiguration of promotional programs
US8868781B2 (en) * 2007-08-28 2014-10-21 Red Hat, Inc. Service forwarding addresses in distributed computing
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US10290006B2 (en) 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8484376B2 (en) * 2007-10-31 2013-07-09 Red Hat, Inc. Hot-swappable services in distributed computing
US20090177862A1 (en) * 2008-01-07 2009-07-09 Kuo-Shu Cheng Input device for executing an instruction code and method and interface for generating the instruction code
US8689203B2 (en) * 2008-02-19 2014-04-01 Microsoft Corporation Software update techniques based on ascertained identities
US20090248397A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Service Initiation Techniques
US20090247254A1 (en) * 2008-03-25 2009-10-01 Igt Physics modeling for gaming machine displays
US8101543B2 (en) * 2008-06-30 2012-01-24 Weyerhaeuser Nr Company Biodegradable superabsorbent particles
WO2010005569A1 (en) 2008-07-09 2010-01-14 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
US8315996B2 (en) * 2008-08-13 2012-11-20 International Business Machines Corporation Efficient management of customized functionality within shared data objects
US8312447B2 (en) * 2008-09-25 2012-11-13 Microsoft Corporation Managing updates using compiler and linker information
US10235832B2 (en) * 2008-10-17 2019-03-19 Igt Post certification metering for diverse game machines
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
KR101748448B1 (ko) 2009-03-18 2017-06-16 터치튠즈 뮤직 코포레이션 엔터테인먼트 서버 및 관련 소셜 네트워킹 서비스
US12112093B2 (en) 2009-03-18 2024-10-08 Touchtunes Music Company, Llc Entertainment server and associated social networking services
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
EP2241977B1 (en) 2009-04-17 2015-05-27 Accenture Global Services Limited Exchangeable application components
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US8589904B2 (en) * 2009-08-10 2013-11-19 Symantec Corporation Systems and methods for updating a software product
JP4957765B2 (ja) * 2009-08-24 2012-06-20 日本電気株式会社 ソフトウェアプログラム実行装置、ソフトウェアプログラム実行方法、及びプログラム
US8335820B1 (en) * 2009-12-15 2012-12-18 Emc Corporation Techniques for persistence of connections
CN105354940A (zh) 2010-01-26 2016-02-24 踏途音乐公司 具有改进的用户界面的数字点播设备和相关方法
US8881134B2 (en) * 2010-04-29 2014-11-04 International Business Machines Corporation Updating elements in data storage facility using predefined state machine over extended time period
US9134996B2 (en) 2011-04-28 2015-09-15 F-Secure Corporation Updating anti-virus software
EP2759126B8 (en) 2011-09-18 2021-03-31 Touchtunes Music Corporation Digital jukebox device with karaoke and/or photo booth features, and associated methods
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
US9160653B2 (en) * 2012-06-07 2015-10-13 International Business Machines Corporation Dynamic redirection of network traffic within a system under test
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9152410B2 (en) * 2012-06-21 2015-10-06 Vaibhav KHANDELWAL Auto-update while running client interface with handshake
US9292881B2 (en) 2012-06-29 2016-03-22 Crowdstrike, Inc. Social sharing of security information in a group
US20140053144A1 (en) * 2012-08-14 2014-02-20 Microsoft Corporation Service environment upgrades based on upgrade health of service units
CN103677878B (zh) * 2012-09-12 2017-07-14 国际商业机器公司 一种打补丁的方法和装置
CN102880495A (zh) * 2012-10-15 2013-01-16 华为终端有限公司 移动终端及其软件升级方法
US8997047B2 (en) * 2012-12-13 2015-03-31 International Business Machines Corporation Dynamically updating code without requiring processes to restart
US20140229928A1 (en) * 2013-02-11 2014-08-14 Claes Göran Edström Upgrading software in production environments
US9158534B2 (en) * 2013-03-15 2015-10-13 Wolters Kluwer United States Inc. Smart endpoint architecture
US8739151B1 (en) * 2013-03-15 2014-05-27 Genetec Inc. Computer system using in-service software upgrade
US9921717B2 (en) 2013-11-07 2018-03-20 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
WO2015148644A1 (en) 2014-03-25 2015-10-01 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US9947048B2 (en) * 2014-06-04 2018-04-17 Nasdaq Technology Ab Apparatus and methods for implementing changed monitoring conditions and/or requirements using dynamically-modifiable control logic
US9298590B2 (en) * 2014-06-26 2016-03-29 Google Inc. Methods and apparatuses for automated testing of streaming applications using mapreduce-like middleware
KR101907418B1 (ko) 2014-07-01 2018-10-12 한국전자통신연구원 동적 모듈, 이를 구비한 동적 업그레이드 장치 및 방법
GB2531546B (en) 2014-10-21 2016-10-12 Ibm Collaborative maintenance of software programs
EP3757778B1 (en) * 2015-02-18 2023-10-04 Huawei Technologies Co., Ltd. Upgrading of a mobile network function
US10580006B2 (en) 2015-07-13 2020-03-03 Mastercard International Incorporated System and method of managing data injection into an executing data processing system
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
US10698675B2 (en) * 2016-12-19 2020-06-30 International Business Machines Corporation Decentralized automated software updates via blockchain
US10740459B2 (en) 2017-12-28 2020-08-11 Crowdstrike, Inc. Kernel- and user-level cooperative security processing
DE102018204188A1 (de) * 2018-03-20 2019-09-26 Audi Ag Verfahren zum Durchführen eines Updates einer Softwareapplikation in einem Gerät, das sich im Betrieb befindet, sowie Gerät und Kraftfahrzeug
CN108959102B (zh) * 2018-07-27 2020-01-17 百度在线网络技术(北京)有限公司 用于生成测试数据、测试待测试应用的方法和装置

Citations (1)

* 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

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2472234A1 (fr) * 1979-12-21 1981-06-26 Philips Ind Commerciale Protocoles de communication geres par les modules de communication utilises dans un systeme de traitement de donnees reparti
US4688170A (en) * 1983-09-22 1987-08-18 Tau Systems Corporation Communications network for communicating with computers provided with disparate protocols
US4649473A (en) * 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols
US4787028A (en) * 1985-09-03 1988-11-22 Ncr Corporation Multicommunication protocol controller
US5093916A (en) * 1988-05-20 1992-03-03 International Business Machines Corporation System for inserting constructs into compiled code, defining scoping of common blocks and dynamically binding common blocks to tasks
US5008814A (en) * 1988-08-15 1991-04-16 Network Equipment Technologies, Inc. Method and apparatus for updating system software for a plurality of data processing units in a communication network
US4954941A (en) * 1988-08-31 1990-09-04 Bell Communications Research, Inc. Method and apparatus for program updating
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
WO1991008534A1 (de) * 1989-11-29 1991-06-13 Siemens Aktiengesellschaft Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software
DK0544637T3 (da) * 1991-11-27 1999-09-13 Ericsson Telefon Ab L M Programmelstruktur for telekommunikationsomstillingssystemer

Patent Citations (1)

* 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

Also Published As

Publication number Publication date
EP0648353A1 (en) 1995-04-19
EP0648353B1 (en) 1999-09-15
WO1994001819A1 (en) 1994-01-20
CN1081010A (zh) 1994-01-19
FI946195A0 (fi) 1994-12-30
MX9303648A (es) 1994-01-31
BR9306651A (pt) 1998-12-08
GR3031915T3 (en) 2000-03-31
AU4516493A (en) 1994-01-31
DE69326464T2 (de) 2000-02-03
US5410703A (en) 1995-04-25
FI106752B (fi) 2001-03-30
US5555418A (en) 1996-09-10
CN1233011A (zh) 1999-10-27
FI946195A (fi) 1994-12-30
DE69326464D1 (de) 1999-10-21
CN1045829C (zh) 1999-10-20
ES2140462T3 (es) 2000-03-01
DK0648353T3 (da) 2000-04-03
AU667559B2 (en) 1996-03-28

Similar Documents

Publication Publication Date Title
KR100323881B1 (ko) 컴퓨터동작중에소프트웨어를변경시키기위한방법및그시스템
KR100303548B1 (ko) 컴퓨터시스템내에서소프트웨어모듈들을프로그램실행중동적으로결합시키는방법및그장치
US5377350A (en) System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages
EP1400896B1 (en) Compiler for distributed processing
US5365606A (en) Virtual software machine running multiple program modules in a single address space of a target computer
CA2315751C (en) Call mechanism for static and dynamic linked functions within an object-oriented controller using heterogeneous development tool sets
CN100489778C (zh) Java程序可动态更新化实现方法
JP3423220B2 (ja) 情報処理システムのアーキテクチャ
JPH02272627A (ja) デイジタル・コンピユータ・システムとその手続呼び出し方法
JPH04229357A (ja) 異種ネットワーク環境における適用業務プログラムの統合システム
JP2000078625A (ja) 元デ―タベ―スから新たなネットワ―クコンフィグレ―ションデ―タベ―スを操作処理する方法
JPH06110678A (ja) プログラム実行方式及び実行プログラムの動的変更方法
EP0704795B1 (en) A data processing system providing an encapsulation system and a method of operating such a system
US5951682A (en) Start-up system of a computer system
JP3437284B2 (ja) サ−ビス処理システム
CN100512275C (zh) 一种面向服务体系结构的服务调试装置及方法
Tan SwapBox: a hot-swapping framework for swappable JavaBeans
Szitas Technical requirements in enterprise resource planning systems
AU747018B2 (en) Distributed processing
Wotton The Object Oriented DAQ control program of the OPAL detector at LEP

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
FPAY Annual fee payment

Payment date: 20090123

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee