KR100303548B1 - 컴퓨터시스템내에서소프트웨어모듈들을프로그램실행중동적으로결합시키는방법및그장치 - Google Patents

컴퓨터시스템내에서소프트웨어모듈들을프로그램실행중동적으로결합시키는방법및그장치 Download PDF

Info

Publication number
KR100303548B1
KR100303548B1 KR1019940704822A KR19940704822A KR100303548B1 KR 100303548 B1 KR100303548 B1 KR 100303548B1 KR 1019940704822 A KR1019940704822 A KR 1019940704822A KR 19940704822 A KR19940704822 A KR 19940704822A KR 100303548 B1 KR100303548 B1 KR 100303548B1
Authority
KR
South Korea
Prior art keywords
interface
server
customer
software
generating
Prior art date
Application number
KR1019940704822A
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 KR100303548B1 publication Critical patent/KR100303548B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

전체 시스템의 계속되는 활동을 방해하지 않고, 새로운 소프트웨어유닛(104)로 오래된 소프트웨어유닛(102)를 대체시키기 위한 연결된 절차 호출 메카니즘 이 연결된 절차 호출 메카니즘은 처리가 언제 발생되었는가에 따라 시스템 실행처리를 오래된 소프트웨어유닛(102) 또는 새로운 소프트웨어유닛(104) 어느 하나로 향하게 하는 트레이더(80)을 포함한다. 대체가 개시되기전에 발생된 처리는 오래된 소프트웨어유닛(102)를 계속해서 사용하며, 대체가 개시된후에 발생된 처리는 새로운 소프트웨어유닛(104)를 사용하도록 된다. 오래된 소프트웨어유닛(102)내의 활동이 끝난때, 대체가 완성되며 오래된 소프트웨어유닛(102)가 메모리로부터 제거될 수 있다

Description

[발명의 명칭]
컴퓨터 시스템내에서 소프트웨어 모듈들을 동적으로 수행-시간 결합시키는 시스템
[도면의 간단한 설명]
제1a-1b도는 동작 소프트웨어 시스템으로 새롭거나 수정된 소프트웨어의 소개를 조정하기 위한 종래 시스템의 개략적 설명을 도시한 도면.
제 2 도는 소프트웨어 블럭이 동시 계속출원의 발명에 따라 동적으로 연결될 수 있는 방법에 대한 개략적 도표.
제 3 도는 "컴퓨터 작동중 소프트웨어 변경"에 대한 동시 계속출원 발명에 따라, 수행시간중에 소프트웨어를 변경시키는 처리를 설명하는 흐름도.
제 4 도는 목적작동들이 본 발명 시스템 소프트웨어내에서 어드레스되는 방식을 설명하는 블럭도표.
제 5 도는 본 발명 시스템내에서 소프트웨어가 어드레스되는 방식을 설명하는 블럭도표.
제 6 도는 소프트웨어가 본 발명 시스템내 트레이더에 의해 어드레스되는 방식을 설명하는 블럭도표.
제 7 도는 목적 적용 접속설명 언어가 본 발명 시스템을 실시하는데 사용되는 방식에 대한 설명적도표.
제 8 도는 본 발명 시스템의 특정특징을 설명하는 챠트.
[발명의 상세한 설명]
본 발명 출원서 공개사항중 일부는 저작권 보호의 대상이 된다. 본 저작권자는 특허청제출, 기록 보관용으로 본원 명세서등을 재생하는데 대하여 반대하지 않으나 그밖의 용도에 대하여서는 저작권 보호를 주장하는 바이다.
본 발명은 소프트웨어 수정에 관한 것이며, 특히 컴퓨터 내에서 공존하며 그속에서 동시에 수행가능한 수정된 소프트웨어의 오래된 버젼과 새로운 버젼 모두를 갖는 동작 컴퓨터 시스템내에서 소프트웨어를 대체시키는 것에 관한 것이다.
병백하고 간섭을 받지않는 소프트웨어의 갱신을 허용하기 위해 컴퓨터 시스템의 동작중에 소프트웨어의 분리 및 동시 실행가능한 버젼을 동적으로 결합시키기 위한 한 연결된 절차호출이 작동중인 컴퓨터 시스템으로 수정된 소프트웨어를 삽입시키는 큰 문제와 관련해서 가장잘 이해될 수 있다. 컴퓨터 소프트웨어의 한 특징은 사용자에게 적절한 기능도를 계속해서 제공하고, 소프트웨어를 가장 적합하게 하며 소프트 웨어의 수명중에 일어나는 오차 및 불일치를 교정하도록 하기 위해 개정, 추가 및/또는 삭제로 주기적으로 갱신되어야 한다. 새로운 특징이 소프트웨어로 추가되는때, 사용자에게 새로운 소프트웨어 특징을 제공하기 위해 가능한한 일찍 그리고 쉽게 오래된 소프트웨어를 새로운 소프트웨어로 대체시키는 것이 바람직하다.
자립 또는 배치 처리시스템과 같은 컴퓨터 시스템의 일정타입에서, 소프트웨어를 한 버젼에서 다른 한 버젼으로 변경시키는 것은 몇가지 장애를 제공한다. 대개, 컴퓨터 시스템은 거의 활동이 없고 보수요원이 곧 와줄수 있는 날에 차단될뿐이다. 오래된 소프트웨어는 소프트웨어의 새로운 버젼에 의해 제거되고 대체된다. 다음에 컴퓨터 시스템이 다시 시작되고 모든 미래 자료처리가 소프트웨어의 새로운 버젼으로 처리된다. 물론 이같은 절차는 새로운 소프트웨어가 소프트웨어 요원과 동작관리가 자신이 있는 점까지 오프라인 시스템에서 적절히 검사되고 결함이 제거되며 전체 컴퓨터 시스템을 정지시키고 다시 출발시킴을 필요로 하는 바람직하지 않은 간섭이 업도록된 기능을 적절히 수행하도록 한다.
현대의 저장된 프로그램제어(SPC) 통신 교환 시스템(당해 분야에서는 스위치라한다)과 같은 다른 타입의 계산 시스템에서, 새로운 소프트웨어 버젼에 대한 검사와 시스템내의 소프트웨어 변경이 고립된 배치 처리 시스템에서 만큼 용이하지 않다. 예를 들어 소프트웨어의 새로운 버젼들이 실재의 동작처리 호출내로 놓여지지 않고는 효과적으로 검사될 수 없다. 소프트웨어는 라이브 동작조건하에서 적절히 동작하는지 새로운 부분들이 동작하는 SPC 스위칭 시스템 일부를 형성하는 모든 다른 소프트웨어 블럭과 적절히 접속하는가를 결정하기 위해 동작중에 검사된다. 또한 통신스위칭 시스템은 비동작중인 때가없다. 이상적으로 이들 시스템은 컴뮤니티내 통신 서비스를 위한 계속된 필요로 인한 간섭없이 계속하여 실행될 것이다. 즉, 계속된 통신 트래픽 흐름이 있으며 낮 또는 밤의 꺼진시간에도 시스템을 통해 처리되며 스위치 동작의 어떠한 방해도 그와 같은 통신 트래픽의 방해를 일으키게 된다. 그와 같은 방해는 시스템의 동작과 그 효율성에 큰 손상을 주게되며 시스템의 사용자 또는 소비자 사이의 허용에 큰 손상을 주게된다.
통신 스위칭 교환의 이들 실-시간 요구는 새롭거나 개선된 기능도를 포함하는 소프트웨어의 향상된 버젼 또는 그 일부를 검사하고 오차교정 또는 "버그고정(bug fixes)"을 담고있는 소프트웨어를 기존통신을 방해하지 않고 스위치내로 대체시킴에 심각한 제한을 가져다준다. 따라서, 소프트웨어 컴포넌트 또는 유닛의 새로운 버젼을 종래의 "편집-컴파일-링크-적재-실행" 접근을 사용하는 시스템내로 포함시키는 것은 바람직하지 않다. 시스템이 동작하는 동안에 정시시간의 필요없이 소프트웨어를 수정하거나 확장시키는 능력을 제공하는 방법이 바람직하다.
새로운 소프트웨어를 동작 컴퓨터 시스템내로 일원화함과 관련된 문제를 해결하기 위해 연구가 되어왔다. 가령, 자립 또는 배치방식으로 동작하지 않는 오늘날 사용되는 몇가지 개선된 온-라인 동작시스템은 자립 또는 배치 시스템으로 사용된 방법과는 분명히 다른 방법으로 소프트웨어를 대체하는 문제를 해결한다. 그러나 이와 같은 시스템은 아직도 개인 사용자 또는 사용자 그룹이 소프트웨어의 새롭거나 수정된 버젼을 사용하여 처리할것인가를 선택함을 필요하므로써 비록 자립 시스템에서 보다는 더욱더 명료하다해도 소프트웨어를 수동으로 대체시킨다. 이같은 선택은 이들의 개인사용자-id하에서 동작하는 처리에 의해 사용되도록 소프트웨어의 접합에 의해 수정하므로써 사용자에 의해 실시될 수 있다. 선택은 통상 주 또는 달로 측정되는 고정된 주기중에 사용자에게 이용될 수 있으며 이같은 시간에 어떠한 불일치도 없이 각 종래의 단계에서 성공적으로 동작한후에 접속 구조내에서 여러단계를 이동한다. 접속중 상부단계에 도달하자마자, 소프트웨어는 동작가능한 것으로 선언되며 오래된 버젼이 시스템의 사용자에게 더이상 이용되지 않는다. 시스템내로 새로운 소프트웨어를 삽입하고 여러단계로 이동시키는 것은 구성관리의 처리-보고, 승인, 각 단계에서 소프트웨어 버젼을 트랙킹하고 개선된 변경을 실시하는 수동처리에 의해 조정된다.
배치 또는 자립시스템에서 소프트웨어를 갱신하도록 사용된 방법의 경우, 새롭고 수정된 소프트웨어를 이같은 방식으로 한 시스템내로 일원화하는데에는 공지된 단점이 있다. 이는 복잡하고 시간 소모적인 노동 집약적인 시스템이다. 이는 어떤 경우에 시스템이 점차 제한된 온-라인 사용을 필요로 하지않고 사용자에게 일정한 새로운 소프트웨어로 동작함으로써 오차가 증가하거나 모든 계속되는 작업에 즉시 영향을 미치지 않도록 할것인가에 대하여 조정을 남겨둔다. 새롭거나 수정된 소프트 웨어로의 접근을 조정하는 방법은 소프트웨어를 실행하는 개인 사용자에게 직접 달려있다.
오늘날 사용하고 있는 전형적인 통신 시스템에서는, 소프트웨어 또는 그 일부를 변경시키는 문제가 더욱 심각하다. 비록 그와 같은 시스템이 배치 또는 자립 시스템이라 불려지지는 않는다해도, 이들의 동작은 소프트웨어 변경이 있게되는 때마다 영향을 받게될 것이다. 새로운 소프트웨어는 적재되며 오래된 소프트웨어에 속하는 자료는 새로운 소프트웨어로 변경되고 운반된다. 이같은 운반이 진행되는 시간중에, 시스템은 어떠한 새로운 호출도 등록할 수 없다. 이같이 작동하지 않는 기간이 한시간 또는 그이상 지속될 수 있으며, 오프-피크 동작기간동안 소프트웨어 변경을 계획하는 것이 필요하도록 한다. 그렇다하더라도 통신 스위칭 시스템에서 1시간의 비가동 시간은 이같은 기간중에 어떠한 새로운 호출도 처리될 수 없으며 이같은 시간중에 긴급통신을 위한 어떠한 필요도 서비스될 수 없기 때문에 매우 길고 값비싼 기간들이다.
컴퓨터 시스템내에서 실행중에 소프트웨어를 변경시키는 문제는 소프트웨어 모두 또는 일부가 연결을 필요로하는때 더욱더 복잡하게 된다. 보통, 이와 같은 시스템에서는 소프트웨어의 분리된 부분이 개발되고 분리하여 다시-컴파일되어야 한다. 상호작동하는 모든 부분들이 실행을 위해 다시 연결되어야 한다. 소프트웨어를 통해 사용된 모든 외부기호에 대한 정보를 제공하는 기호표를 발생시키고 이를 유지시키는 것이 또한 필요하다. 연결처리는 표내의 저장을 위한 정보를 발생시키며 어떠한 해결되지 않는 부호도 식별시킨다. 어떠 이유로 소프트웨어의 한 부분이 수정된때, 기호정보가 마찬가지로 변경되기 쉽다. 마찬가지로 메모리내에 남아있는 어떠한 기호정보도 제거되어야 하며 혹은 그렇지 않으면 부정확한 기호가 붙여지므로써 발생되는 처리에서 오차를 일으키게 될것이다.
"컴퓨터 작동중에 소프트웨어를 변경시킴"이라는 명칭으로 닐슨등의 이름으로 ----- 일자로 출원되고 텔레폰 아크티에 블라게트 엘 엠 에릭슨에게 양도되었으며 본원 명세서에서 참고로 인용되는 미국특허 제 --- 호에서 공개된 한 시스템은 몹시 황급히 소프트웨어를 변경시킴에 있어서의 몇가지 제한을 극복하기 위한 시스템 및 방법을 설명하는 것이다. 이 시스템은 오래된 소프트웨어와 함께 그리고 이에 추가하여 통신 시스템의 기록장치내로 새로운 소프트웨어의 설치를 준비한다. 이 시스템에서, 시스템내의 기존 트래픽은 처음에 오래된 소프트웨어에 의해 처리되며 검사트래픽이 새로운 소프트웨어에 의해 처리되기 위해 스위치를 통하여 경로가 배정된다. 다음에, 검사트래픽이 새로운 소프트웨어에 의해 성공적으로 처리되면, 실재 라이브 트래픽(또는 정상적인 트래픽) 일부분이 새로운 소프트웨어를 통하여 선택적으로 경로가 배정되며 라이브 트래픽의 나머지는 아직도 오래된 소프트웨어에 의해 처리된다. 샘플트래픽이 새로운 소프트웨어에 의해 적절히 수행된다면, 모든 트래픽은 새로운 소프트웨어로 향하도록 된다. 오래된 소프트웨어에 의해 처리되는 모든 호출의 처리가 완성되자마자, 오래된 소프트웨어는 더이상 시스템에 의해 사용되지 않으며 시스템으로부터 제거될 수 있다.
상기 공개된 바의 시스템은 새롭거나 수정된 소프트웨어의 원활한 입증을 제공한다. 이 시스템은 점차 그리고 조절된 방식으로 그러나 라이브 동작 시스템의 일부로써 자료가 새로운 소프트웨어를 통해 흐르도록 허용한다. 이 시스템은 새로운 소프트웨어로 경로배정된 초기자료가 시스템에 의해 발생된 검사자료뿐이기 때문에 통신 스위칭 시스템의 실재 동작에 거의 또는 어떠한 충격도 주지않고 오차 및 불일치의 조기탐지를 준비하여준다. 만약 처리검사 자료에서, 통신 시스템이 오차를 탐지하면, 더이상의 어떠한 트래픽도 새로운 소프트웨어로 향하여지지 않으므로 새로운 소프트웨어가 실재 자료를 처리하였다 하더라도 시스템 전체 트래픽에 대한 방해는 최소로 된다.
상기 공개된 바의 시스템은 또한 점진적으로 트래픽을 다시 오래된 소프트웨어로부터 새로운 소프트웨어로 향하게 한다. 이 시스템은 오래된 소프트웨어로 처리를 시작했던 트랜잭션이 오래된 소프트웨어만을 사용하여 그 처리를 완성시키도록 허용하는 능력을 포함한다. 새로운 소프트웨어 설치에 이어 시작했던 트랜잭션만이 새로운 소프트웨어에 의해 처리될 것이다. 이 시스템의 이같은 특징은 일정한 오래된 소프트웨어로부터 새로운 소프트웨어에 의한 대체 또는 사용자에게 최소의 방해만을 가져다준다. 또한 이같은 특징은 처음에 사용된 소프트웨어와는 다른 소프트웨어세트를 위해 변환을 필요로 하는 자료의 양을 최소로한다.
작동중인 컴퓨터 시스템내 소프트웨어를 갱신시킴과 관련된 최소한 몇가지 문제를 해결하기 위한 다른 시도가 전체 문제의 일부만 특히 링크(연결) 문제를 대표하는 다른 특징들에 대하여 촛점을 맞춰왔다. 가령, 앤더스 아브라함슨과 라스홀름퀴비스트에 의한 한 발명을 담고 있으며 텔레폰 아크티에볼라게트 엘 엠 에릭슨 이게도 양도된 미국특허출원 제 734,456 호에서는 수행시간중에 소프트웨어를 동적으로 연결시키기 위한 시스템이 공개된다. 그러나, 이 시스템은 특수하거나 확장된 운영체계 및/또는 특수한 컴파일러 어느하나의 사용을 필요로 하는 간접적인 어드레싱의 복잡한 시스템을 포함한다. 이 시스템은 비-표준 운영체계에 대한 필요를 포함하는 여러개의 다른 제한을 갖는다. 또한, 이 시스템은 표준응용 소프트웨어와 함께 작업하지 않을 것이다.
다른 관련된 기술이 여러 공보에서도 논의되었다. 가령, BYTE MAGAZINE 에서 공표된 "미래서류"라는 명칭의 서류는 목적연결 및 내장 (object linking and embedding)에 대한 것이며 스티븐슨등에게 특허된 미국특허 제 4,791,550 호는 링크 포인터에 관한 것이고,프리먼등에게 특허된 미국특허 제 4,667,546 호는 메모리가 보호받지 못하는 영역내로 강요되는 것에 관한 것이다.
따라서 통신산업내에서 한 컴퓨터 시스템내에서 분리하여 적재된 프로그램 유닛들 사이에서 동적인 수행시간 연결을 효과적으로 수행할 수 있는 것이 매우 유용할 것이다. 따라서 본 발명의 시스템은 그와 같은 방법을 제공한다.
[본 발명의 요약]
본 발명의 시스템은 둘 또는 셋이상의 적재가능한 소프트웨어응용 사이의 소프트웨어 모듈들을 동적으로 결합시키기 이한 시스템을 포함한다. 본 발명 시스템의 이같은 특징은 컴퓨터 시스템내 분리하여 적재가능한 프로그램들 사이의 동적 수행시간 결합을 수행하기 위한 능력과 연결된 절차호출 메카니즘의 창작적인 조합을 구체화한다.
본 발명의 한 특징에서, 본 발명의 시스템은 다른 소프트웨어 유닛들 사이의 접속을 가능하게 하기 위해 한 트레이더와 한 커널을 구체화하는 링크된 절차 호출 메카니즘을 포함한다. 이와 같이 링크된 절차 호출 메카니즘은 실행시간중에 오래된 소프트웨어 유닛과 새로운 소프트웨어 유닛의 상호-연결과 바인딩을 설치하도록 사용되기도 한다. 본 발명 시스템에서 이와 같이 연결된 절차 호출 메카니즘을 사용시에, 필요한 접속 명세는 본 발명 시스템의 또다른 특징을 사용하여 발생되며, 특수한 언어라하는 것은 ELIN 으로 공개된 바와 같은 목적-적용 접속설명언어(ELIN)로서 참조한다. 일렘텔 우트베클링스 아크티에 블라그(Ellemtel Utvecklings Aktiebolag)에 의해 1991년 11월 6일자 저작권에 의해 보호되는 참고 메뉴얼 그리고 룬딘등의 이름으로 1992년 7월 1일자로 출원되고 본원 출원인에게 양도된 미국특허출원 제 907,293 호가 본원 명세서에서 참고로 인용된다. 이같은 언어는 본 발명 시스템의 연결된 절차호출 특징을 위한 접속개발을 위해 특별히 디자인된 특수한 구조를 포함한다. 이들 접속명세가 한 목적적용 패러다임에 의해 지지되는 속성을 포함하기 때문에, 공동의 기본 접속명세를 가지는 목적의 폴리모피즘과 동적결합이 용이하게 달성될 수 있다.
또다른 특징에서, 본 발명 시스템은 한 메카니즘을 포함하는데 이 메카니즘에 의해 프로그램 유닛이 구성될 수 있으며 나중에 계산의 계속되는 작동에 어떠한 간섭도 일으키지 않고 수행 시스템내에서 혹은 수행시스템이 작동하는 통신시스템내에서 분리하여 수정될 수 있다. 이같은 특징에 따라, 프로그램 유닛이 구성되며 언너-독립 접속명세를 사용하여 분리해서 컴파일된다. 이같은 특징은 접속이 변경되지 않은채로 있는한 프로그램 유닛이 독립해서 수정되고 변경되도록 한다. 본 발명 시스템의 이같은 특징은 수행시간에 바인딩이 일어나기 때문에 연결시에 사용하기 위한 기호정보를 저장해야 하는 필요를 제거시키는 추가된 장점을 제공한다.
본 발명 시스템의 또다른 특징에서, 연결된 절차호출(LPC)목적이 목적-적용 파라다임내 로컬 클레스의 목적과 유사한 방식으로 발생되며 조작된다. 여결된 절차호출 메카니즘의 이같은 특징은 시스템 프로그래머에게 명료하다. 이같이 명료함은 본 발명 시스템의 이같은 특징에서 접속 명세에 따라 수행시간 바인성을 수행하는 코드의 자동 발생을 통해 달성된다.
본 발명의 이같은 특징은 어떠한 확장도 필요로 하지 않으며 LPC 모델을 수정할 필요도 없이 표준 언어 컴파일러가 사용되는 장점을 제공한다.
또다른 특징에서, 본 발명의 시스템은 수정된 소프트웨어유닛의 새로운 또는 오래된 버젼 어느하나로 운영체계내에서 ("실" 또는 "사건의 체인"으로 인용된다) 트랜잭션의 방향을 동적으로 정하도록 사용된 한 세트의 방향 포인트를 포함한다. 이 시스템은 소프트웨어 유닛의 새로운 버젼을 수행하는 처리 또는 오래된 버젼을 수행하는 한 처리 어느하나로 메세지의 방향을 저장하는 것을 가능하게하는, 기능 타이틀에 의해 어드레스된 메세지의 분석을 포함하는 다수의 수단을 통해 동적방향을 수행한다. 또다른 타입의 방향 포인트는 소프트웨어 유닛의 새로운 또는 오래된 버젼을 실행하는 것을 한 처리내에서 가능하게 하는 소프트웨어 유닛들 사이의 동적 수행-시간 바인딩(가령, 연결된 절차호출)이다.
본 발명 기술분야에 통상의 기술을 가진자에 의해 잘알수 있는 바와 같이, 본 발명 원리 및 특징은 통신 스위칭 시스템 이외의 다양한 컴퓨터 응용에서 소프트웨어 수행시간 대화에 유익하도록 사용될 수 있기도 하다.
하기에서는 첨부도면을 참조하여 본 발명을 상세히 설명한다.
본 발명의 시스템은 몇가지 특징에서 목적-적용 프로그래밍 원리를 사용한다. 목적-적용 프로그래밍은 기본적으로 4개 요소-클레스, 목적, 순간변수(또는 C++ 내에서 실현되는 자료멤버) 그리고 방법(또는 C++내에서 멤버기능)을 포함한다. 한 클레스는 목적들이 클레스로부터 발생되는 바의 그와 같은 클레스의 예인목적을 규정하기 위해 사용된 템플레이트이다. 클레스는 두 타입의 컴포넌트-예 변수 및 방법을 갖는다. 예변수(instance variables)는 자료요소로 사용되며 방법은 기능으로 사용된다. 예변수 및 방법은 실행시간에 단일의 공동목적으로 결합될 수 있다. 즉 한 목적은 결합된 방법을 사용하므로써 조작될 수 있는 변수의 예를 수용한다. 따라서, 프로그래밍은 수행되어질 기능 또는 작업에 대하여가 아닌 목적에 대한 집중점을 갖고 수행된다.
본 기술분야에서 잘알려진 목적-적용 프로그래밍에 대한 기술은 프로그래밍 언어 C++ 로 본 발명의 시스템의 바람직한 실현에서 본 발명 시스템내로 일원화된다. 이같은 기술로는 인헤리턴스, 폴리모피즘 그리고 인캡슐레이션을 포함한다. 인헤리턴스는 새로운 클레스가 기존 클레스로부터 유도되어 코드가 용이하게 재사용될 수 있도록 하며, 자료 및 코드가 클레스로 가산될 수 있도록 하고 또는 클레스의 행동이 기존 클레스를 변경해야 하지 않고도 변경될 수 있도록 한다. 폴리모피즘은 다른 타입이 한 공동접속을 공유하기 때문에 같은 방법으로 다른 목적타입을 사용하는 능력을 제공하는 특성이다. 접속의 승계는 다른 목적타입을 공통분모로부터 다른 목적타입을 이끌어내는 것이 가능하도록 하는 특성이다. 마지막으로 인캡슐레이션은 자료 그리고 그 자료를 모두한 "루프(loof" 아래에서 처리하기 위해 필요한 동작들을 혼합하기 위한 기술이다. 이는 자료를 지나치거나 불필요한 접근으로부터 보호하고 자료조직의 세부사항을 숨기는 능력을 더욱더 허용한다.
먼저 제1a도에서는 새롭거나 수정된 소프트웨어를 동작 소프트웨어 시스템내로 소개함을 관리하기 위해 종래기술의 시스템에서 사용된 소프트웨어 제어 기법이 도시된다. 제1a도는 소프트웨어 수준의 계급조직 세트를 설명하며, 그 각각의 내용이 검토 보드의 멤버들에 의해 제어된다. 소프트웨어의 모든 변경은 그같은 변경이 시스템내에서 실현되기전에 상기 검토보드에 의해 승인되어야 한다. 어떠한 소프트웨어도 검토보드가 소프트웨어가 필요하며, 그것이 적절히 검사되었고 시스템에는 손상이나 방해를 일으키지 않을 것이라는 정식결정을 할때까지는 시스템내로 통합되지 않을 것이다.
계급조직 단계들은 개인 사용자의 기능을 수행하기 위해 계급 조직 단계들 또는 소프트웨어 "라이브러리"에 접근하며 이들을 필요로 하는 개인사용자에 의해 함께 연결된 여러개의 분리된 계급조직들로 이루어진다. 계급조직의 상부에서 1 은 대표적으로 가장 널리 사용되고 가장 엄격하게 제어되는 ("AB.D") 실시간 동작 소프트웨어이다. 이 단계 아래에는 접미사 C 가 추가로 부착되어 지정된("AB.DC") 변경 라이브러리 2 이다. 계급조직내 동작 소프트웨어의 하측단계는 시스템내 다른 그룹의 사용자에게 속할 수 있으며 그와 같은 수준에서 검토보드에 의해 제어될 것이다. 새롭거나 수정된 실시간 소프트웨어는 가장낮은 적절한 변경단계에서, 즉 (2)와 (3)에서처럼 문자 C로 끝나는 단계에서 승인된 뒤에 시스템내로 들어간다.
일단 새롭거나 수정된 소프트웨어가 시스템내로 들어간 뒤에는 명시된 기간이 경과하고 소프트웨어가 어떠한 탐지가능한 오차도 발생시키지 않을때까지 엔트리단계로 남아있는다. 다음에 이는 다음의 가장 높은 단계로 이동된다. 어떤 경우에서는, 이는 특정된 사전 보드에 의한 사전승인을 필요로 하며, 다른 경우에서는 이동이 규칙적으로 계획된 시스템 활동의 일부로서 이동이 자동으로 발생될 것이다. 이 이동은 사용자에게 명백하며, 소프트웨어는 새롭거나 변경된 소프트웨어를 담고있는 라이브러리내 소프트웨어에 접근하기 위해 이들 소프트웨어 연결을 구성시킨 사용자에게 계급조직으로의 이동 또는 엔트리가 있자마자 즉시 이용될 것이다.
제1a도에서 도시된 바와 같이, 같은 처리가 반복도리 수 있으며 같은 시스템내에 있는 어떠한 실-시간 엔지니어링 타입 소프트웨어에 대하여도 동시에 발생되지 않는다. 이 경우에서 단하나의 차이는 제어처리가 다른 세트의 사람들에 의해 관리되며 이 처리는 중요한 처리를 위해 전 시스템에 걸쳐 사용된 동작 소프트웨어를 위한 것만큼 엄격하지는 않다. 그러나 소프트웨어의 통합은 동작 소프트웨어에서와 같이 이같은 엔지니어링 소프트웨어에 대하여서도 같은 방식으로 발생된다. 새롭거나 수정된 소프트웨어는 (4)에서처럼 접미사에서 마지막 문자로서 C로 지정된 바와 같은 가장 낮은 적절한 변경단계에서 계급조직으로 들어간다. 다음에 계급조직 부분의 상부 5에 도달할때까지 시간경과에 따라 상측방향으로 이동한다. 엔지니어링이나 동작 소프트웨어 어느곳에서도 일단 다음단계로 이동하기만하면 더이상 낮은 단계에 있지는 않는다.
시스템의 계급조직적 라이브러리내로 들어갔던 새롭거나 수정된 소프트웨어를 사용할 것인가에 대한 결정은 개인 사용자 또는 사용자 그룹에 맞겨진다. 사용자는 이들의 사용을 위해 소프트웨어를 연결시키는데 라이브러리의 어떤단계를 시스템이 사용할 것인지 선택할 수 있다. 이들은 낮은단계의 소프트웨어는 우회할것을 선택하거나 단순히 가장 새로운 그리고 가장 적게 검사된 소프트웨어를 담고있는 가장 낮은 변경단계를 피할 것을 선택할 수 있다. 물론 계급조직 각 부분의 가장 높은 단계는 대부분의 사용중인 동작 소프트웨어를 담고있다.
제1b도는 베이스라인과 매일 시스템으로 소개되는 새롭거나 수정된 소프트웨어를 통해 제어를 유지하기 위해 제1a도에서 설명된 소프트웨어 라이브러리 계급조직에 부과되는 구성 제어의 처리를 설명한다. 상기에서 지적한 바와 같이, 새로운 소프트웨어는 검토보드에 의한 승인에 이어 가장 낮은 적절한 변경단계에서 계급조직내로 들어간다. 만약 새로운 소프트웨어가 오차나 불일치를 가져오게되면, 그 소프트웨어가 계급조직으로부터 제거되며 6 에서처럼 추가의 소프트웨어 유지를 위해 복귀된다. 일단 문제가 바로잡아지고 소프트웨어가 다시 검사되면, 보드승인이 있은뒤 가장낮은 변경단계에서 시스템내로 통합된다. 만약 고정된 허용된 기간내에 어떠한 문제도 탐지되지 않으면, 다음의 단계가 7 에서처럼 또다른 보드를 요구하지 않는다면 소프트웨어는 자동적으로 다음의 단계로 이주할 것이다. 그렇지 않다면, 적절히 개선된 뒤에 고정된 계획을 통해 이주할 것이다. 이같은 처리는 소프트웨어가 완전히 동작 소프트웨어인 것으로 선언될 시간인 가장 높은단계에 도달할때까지 계속해서 반복될 것이다.
다음에 제2도에서는, 앞서 공개된 발명에 따라 모듈러소프트웨어 시스템내 소프트웨어 단일정보의 전달에 대한 도식적표시가 도시된다. 블럭A로 인용된 모듈러 소프트웨어블럭(11)은 프로그램 코드 목록부분(12), 신호분산표(13) 그리고 소프트웨어 신호전송표(14)를 포함한다. 또한 작업버퍼(15)는 다수의 레지스터(16)을 포함하며 이 레지스터내에 소프트웨어의 한 요구 블럭으로 이들 신호를 보내기 위해 필요한 중앙처리기에 의한 처리를 기다리는 일시적으로 저장된 소프트웨어 신호가 있다. 또다른 소프트웨어 블럭, 블럭B(17)은 프로그램 코드 목록부(18)과 신호분산표(19)를 포함한다. 본 발명의 대표적인 실시예가 전세계의 신호 분산표를 포함하며, 이같은 표내에 시스템속에 적재된 소프트웨어 각 블럭내에 담긴 특정신호에 대한 모든 로컬신호번호의 목록이 유지된다.
상기에서 간단히 토의된 바와 같이, 전세계의 신호분산표(20)이 소프트웨어의 각기 다른 모듈 가운데 연결주소를 유지시키는 한 기본적인 요소이다. 전세계의 신호분산표(20)은 한 모듈 또는 블럭으로부터 또다른 블럭으로 전송되는 특정신호에 상응하는 전세계 신호번호와 시스템내의 각 개별블럭내 신호 각각에 상응하는 지역 신호번호 사이의 교차-인용을 유지한다. 소프트웨어의 한 블럭이 시스템내로 적재되는때, 그같은 블럭에 상응하는 전세계 신호 분산표(20)의 일부분은 소프트웨어 블럭내에 포함되는 각 신호에 대한 한 지역 신호번호를 포함하도록 다시 기록된다. 이는 통상적으로 그같은 특정신호의 전세계 신호번호를 배타적-or 처리 또는 결합시키는 몇가지 다른 기술을 통해서 그같은 신호를 담고있는 소프트웨어 블럭의 블럭번호와 결합시키므로써 달성된다. 따라서, 한 소프트웨어 블럭이 블럭내 개별신호에 대한 변경을 발생시키도록 어떻게든 해서 수정되거나 향상된 시스템으로부터 제거되는때 소프트웨어 신호 분산표의 그같은 부분이 블럭내 신호의 새로운 내용과 블럭내 이들 신호 각각에 대한 지역 신호번호의 새로운 계산을 반영하도록 다시 기록되어야 한다.
제2도에서 더욱더 설명되는 바와 같이, 소프트웨어신호 S1 이 블럭(A1)으로부터 블럭(B17)로 보내진다. 블럭(B17)은 수신블럭으로 인용되며, 블럭(A11)은 송신블럭으로 인용된다. 수신블럭의 블럭수는 BNR 로 인용된다. 이 시스템이 바람직한 신호(S1)을 수신블럭으로 보내며 블럭(A11)의 프로그램 시작주소(PSAA)와 신호전송포인터(SSP)로 구성된 주소에 의해서 블럭A(11)의 신호전송표(14)에 접근하므로써 신호(S1)에 대한 전세계 신호번호를 먼저 얻는다. 일단(S1)에 대한 전세계 신호번호가 얻어지면, 이는 작업버퍼(15)내 저항기(16)내로 직접 적재되며 중앙처리유닛의 우선순위 프로토콜에 따라 블럭(B)로의 전달을 대기하며 특정 신호로 할당된 이같은 우선순위가 전달된다. 이같은 시간중에 정보가 S1 의 전세계 신호번호와 수신블럭의 블럭번호 형태로 보유되었다. 신호 전달작동이 전달이 실행되어질 충분한 수준의 우선순위로 상승되자마자, 시스템이 전세계 신호분산표(20)으로 접근하여 블럭(B17)내 (S1)의 지역 신호번호를 획득하도록 한다. 이는 전세계 신호번호를 취하고 그값을 블럭번호 BNR 과 배타적 OR 를 하므로써 발견된 주소를 갖는 전세계 신호분산표(20)을 입력시키므로써 달성된다. 수신블럭, 블럭(B17)내 (S1)에 대한 지역신호번호가 상기 분산표 그같은 주소에서 발견된다.
블럭(B17)내 (S1)에 대한 지역 신호번호가 얻어지기만 하면, 다음에 시스템이 신호가 입력되어야 하는 블럭(B17)내 지시주소(IA21)을 발견하므로써 블럭(B17)로 들어간다. 이는 지시주소(21)을 판독하기 위해 (PSAB) 빼기 블럭(B17)내 지역 신호번호인, 블럭(B17)의 프로그램 시작주소를 취하므로써 블럭(B17)의 신호분산표(19)로부터 얻어지므로써 가능해진다. 일단 지시주소(21)이 얻어지기만하면, 신호(S1)은 블럭(B17)내로 입력되며 전달이 완성된다. 다음에 IA(21)에 위치한 지시가 수행을 시작한다.
상기 공개된 시스템의 적용과 관련하여서는 한가지 점이 유의되어야 한다. 블럭내 신호입력점에 영향을 미치는 코드를 수정하는때, 만약 자료구조가 수정된다면 그와 같이 새로운 혹은 수정된 코드의 호출이 수정전에 사용되었단 자료구조의 형태로 주소 및/또는 자료를 담고있는 작업버퍼내 신호를 동반하는 신호자료와 같은 오래된 파라미터값에 도달할 것이다. 반면에, 만약 새로이 수정된 소프트웨어 블럭을 재적재시키는 시간에 블럭이 주소를 되돌려 보냈다면, 오래된 버젼과 새로운 버젼 사이에서 수정된 복귀 주소 스택상의 지역 신호번호들이 운영체계 의해 갱신된다.
다음에 제3도에서는 오래된 소프트웨어 버젼으로부터 새로운 소프트웨어 버젼으로 전이하는 원활한 수정방법을 설명하는 흐름도가 도시된다. 특히, 이 시스템은 기존 소프트웨어가 시스템내에서 활동적으로 실행하며 (30)에서 소프트웨어의 새로운 버젼을 메모리내로 적재하여 시작함을 전제로한다. (32)에서, 시스템이 새로운 버젼으로 변경을 갖는 자료를 복사하며 이를 새로운 소프트웨어로 연결시킨다. (34)에서 시스템은 새로운 소프트웨어로 검사 호출을 수행하기 시작하고 정상 트래픽이 시스템내에서 오래된 소프트웨어와 오래된 자료를 가지고 계속해서 수행한다. (36)에서, 시스템은 질문한다. "새로운 소프트웨어가 검사 트래픽에서 작업하는가?" 만약 그렇지 않다면, 시스템이 (38)로 이동하며 이점에서 새로운 소프트웨어와 자료가 시스템으로부터 이동되며 그 과정이 (40)에서 종료된다. 만약 새로운 소프트웨어가 (36)에서 검사트래픽에서 작업하지 않는다면, 시스템은 (42)로 이동한다. 이점에서 이 시스템은 새로운 소프트웨어로 실재 트래픽의 샘플을 수행하며, 오래된 소프트웨어 및 오래된 자료와 함께 정상적인 트래픽의 나머지를 유지시킨다. 다음에 (44)에서 시스템이 샘플 트래픽상에서 작업하고 있는가에 대하여 질문한다. 만약 그렇지 않다면, 시스템은 (38)로 이동하며 새로운 소프트웨어와 자료가 제거되어 이 처리를 끝내도록 한다. 그러나 만약 새로운 소프트웨어가 (44)에서 샘플 트래픽을 성공적으로 처리하면, 시스템은 (46)에서 새로운 소프트웨어와 자료료 모든 미래호출을 수행토록 이동한다. 다음에 (48)에서, 시스템은 다시 질문한다. "새로운 소프트웨어가 작업하고 있는가?" 만약 그렇지 않다면, 새로운 소프트웨어를 제거하기 위해 (38)로 이동하며, (40)에서 종료된다. 만약 새로운 소프트웨어가 (48)에서 시스템내 정상 트래픽을 수행하는 작업을 하고 있다면, 이 시스템은 (50)에서 모든 오래된 트랜잭션이 시스템내에서 완성되었는가에 대해 질문하며, 만약 그렇지 않다면, 변경에 대한 시간 제한이 (54)에서 끝났는가에 대해 질문하고, 만약 그렇지 않다면, 계속해서 (1) 새로운 소프트웨어로 모든 새로운 트랜잭션을 수행하며, 그리고 (2) (50)에서 yes 가 수신되거나 (54)에서 시간제한이 종료할때까지 (46)에서 오래된 소프트웨어로 모든 오래된 트랜잭션을 수행한다. 만약 시간제한이 (54)에서 종료하면 시스템이 남아있는 호출을 종료하거나 (56)에 있는 새로운 소프트웨어로 전달하고 (52)로 이동한다. 다음에 시스템이 (52)로 이동하며 오래된 소프트웨어가 오래된 자료와 함께 제거되고, 시스템이 통신스위치내에서 기존 트래픽에 위험을 가하거나 지연시키지 않고 수행시간중에 오래된 소프트웨어로부터 새로운 소프트웨어로 스위치를 만든다.
새로운 통신처리 소프트웨어가 오래된 소프트웨어로부터 새로운 소프트웨어로 정상의 호출들이 다시 지시되기전에 검사호출로 먼저 검사되는 예에서처럼, 각기 다른 소프트웨어 블럭으로 개별 호출들의 연결을 실시하는때에 본 발명의 시스템이 제 5도에서는 호출식별(ID) 카테고리와 포인터 ID 카테고리를 담고있는 것으로 가시화된다. 검사호출인 시스템내 각 호출 주소에 대하여, 새로운 소프트웨어로 하나의 포인터가 제공되며, 정상의 식별을 담고있는 모든 호출 ID 에 대하여 상기 포인터가 오래된 소프트웨어로 제공된다. 이와 같은 포인터의 사용은 본 시스템이 보통의 라이브 트래픽과 검사트래픽 모두를 적절한 소프트웨어 버젼으로 적절히 향하도록 할수 있는 방법을 설명한다.
이는 오래된 그리고 새로운 소프트웨어가 본 발명의 시스템내에서 주소되는 방식에 대한 간단한 해석이며, 사실 상세한 연결과정 호출 메카니즘 분리하여 적재된 프로그램 유닛들 사이의 동적 수행시간 바인딩을 발생시키도록 사용된다. 즉, 상기 설명된 예D ? 프로그램 유닛을 대체시키는때, 소프트웨어의 오래된 그리고 새로운 버젼은 새로운 버젼이 올바른 것으로 입증될 수 있고 오래된 버젼에서 실행되는 활동이 상기에서 설명되는 바와 같이 종료될 수 있을때까지 일정한 시간동안 공존한다. 본 발명 시스템은 연결된 과정 호출을 경유해서 접속을 통해 소프트웨어에 접근하기 위한 수단으로서 트레이딩을 사용한다. 적재시간에, 연결된 과정호출로 접근가능한 모든 접속이 커널 대 트레이더 기능으로 공개된다. 모든 접속은 접속으로부터 한 목적을 발생시키는 방법과 관련하는 주체와 주소로 공개된다. 소프트웨어 버젼들 사이의 바인딩은 수행히간에 만들어지며 한 특정접속에 대하여 목적이 발생되는때마다, 한 요구가 호출되어지는 발생방법의 주소를 위해 트레이더로 향하여지며 목적포인터를 발생된 목적으로 되돌려 보낸다.
다음에 제4도에서, 클레스 X 60 의 한 목적을 통한 각 작업이 다음단계에서 목적을 통해 간접적으로 호출된다. (1) 목적 포인터(66)은 목적의 자료 지역을 주소하며; (2) 목적지역의 시작으로부터 사전 예정된 오프셋에서, 작동표(68)의 주소가 발견된다(62)(이 표(68)은 한가지 타입의 모든 목적에 대하여 공통된다; 그리고 (3) 작동시작의 프로그램 코드가 선택적으로 작동표(68)내 작동에 상응하는 오프셋에서 발견될 수 있다.
목적-자료내 작동표 주소의 위치와 작동표내 주소가 저장되는 순서가 고정되고 알려져 있기 때문에, 트레이더로 부터의 도움이 없이도 작동이 호출될 수 있다. 트레이더 없이 호출될 수 있는 접속내의 한가지 그와 같은 작동은 한가지 발생된 목적을 삭제하기 위한 작동이다.
이와 같은 작동표의 사용은 가령 프로그래밍 언어 C++ 와 가상의 표에 대한 구조를 사용하여 실시되는 개념인 폴리모피즘을 달성하는 능력을 제공한다. "많은 형상(many shapes)" 을 의미하는 폴리모피즘(polymorphism)은 각기 다른 목적에 의해 공유되는 컴포넌트 행동이 변경될 수 있게되는 한 기술이다. 다시 말해서 한 컴포넌트가 모든 경우에 같게 나타날 수 있으며, 그러나 관련된 다른 목적에 관련하여서는 다소 다른 방식으로 수행할 수 있는 능력을 갖는다. 폴리모피즘은 관련된 목적의 패밀리 발생을 허용하는데 유용하다. 즉 이들은 공동의 근원 또는 베이스를 가지며, 그러나 이들은 다른 상황에서 달리 수행한다. 이는 한 패밀리내의 각 목적이 각 목적의 방법에 대한 실재 코드가 크게 다르다하더라도 동일한 이름들을 갖는 방법 또는 기능들을 가질수 있도록 한다. 본 발명의 이와 같은 시스템은 폴리모피즘 또는 목적중심 프로그래밍의 다른 원리를 사용한다. 그러나 본 발명의 시스템은 실행중에 소프트웨어의 각기 다른 버젼에 대한 동적이고, 명확한 상호연결을 달성시키기 위해 새롭고 매우 유용한 방식으로 이같은 원리를 수행하고 확장한다.
다음에 제 4 도에본 발명에서 사용된 연결된 절차호출 메카니즘이 고객 클레스(88)과 목적의 서버 클레스(90) 각각을 포함하는 한쌍의 소프트웨어 유닛(84)(86) 사이의 접속관계를 가능하게 하는 커널(82)내에 담긴 트레이더(80)의 개념을 구체화하는 사실이 설명된다. 제 5 도는 제4도에서 도시된 바와 같이 시스템내에서 목적을 발생시키기 위해 요구되는 단계들을 상세하게 설명한다.
목적들은 단일 패키지 또는 유닛내의 자료와 기능 모두의 정의를 담고있는 클레스들의 수행-시간 예들이다. 이들이 자료와 코드모두를 포함할 수 있기 때문에, 이들은 소형이고 독립된 프로그램으로 작용한다. 따라서, 이들은 그와 같은 기능들을 위해 필요한 코드를 다시 개발해야 할 필요없이 더욱 복잡한 프로그램을 발생시키는데 블럭을 세우는 것으로서 사용될 수 있다. 이들이 독립적으로 유지되고 변경될 수 있기 때문에, 프로그램 유지 및 변경이 간단하게 된다.
한 클레스가 한 목적을 규정하기 위해 사용되는 템플레이트 이고, 따라서 목적은 클레스의 한 예이다. 한 클레스는 두개의 컴포넌트 타입, 실례 변수 또는 자료부재 그리고 방법 또는 맴버(member) 기능을 포함한다. 컴퓨터 시스템내 고객 역할을 해내는 프로그램을 개발하는 프로그래머를 지원하기 위해, 고객-클레스가 접속 명세의 사용을 통해서 자동적으로 발생된다. 발생된 고객-클레스는 서버-클레스에 대한 일종의 대리인으로서 작용한다. 시스템의 고객은 호출이 서버-클레스내에 있는 소프트웨어 실현으로 전달될 수 있도록 하기 위해 고객-클레스로부터의 작동을 호출한다. 따라서, 동적 바인딩 기능과 관련된 모든 코드는 고객-클레스내에서 발견된다.
클레스 선언은 컴파일러가 목적-자료내 주소를 저장하고 작동 테이블내의 주소가 설명되어질 순서로 제어한다. 몇가지 클레스 선언은 이 시스템에 의해 자동으로 발생된다. 목적이 시스템내에서 발생되는때, 그 "발생방법" 이 커널(82)내에 위치하는 작동 시스템 트레이더(80) 부분으로의 요구를 통해 발견될 수 있다. 트레이더(80)은 시스템내 연결된 절차호출에 의해 접근가능한 모든 클레스에 대한 모든 접속정보를 포함한다. 즉 트레이더는 각 목적에 대한 정보를 담고있으며 다른 목적에 대해서는 이에 의해 접근이 가능하다.
제6도의 도표는 수행-시간에서의 처리가 연결된 절차호출에 의해 새로운 또는 오래된 소프트웨어 유닛을 사용하는 것으로 연결될 수 있는 방법을 설명한다. 커널(82)내 트레이더(80)은 소프트웨어 유닛(100)의 실행을 오래된 소프트웨어 유닛(102) 또는 새로운 소프트웨어 유닛(104) 어느하나를 향하도록 할수 있다. 대체를 하는 동안, 오래되고 새로운 버젼 모두로부터의 서버-클레스들은 트레이더(80)내에서 공표된 이들의 인터페이스를 갖는다. 트레이더(80)은 각 항에 대한 두개의 주소 엔트리, 오래된 소프트웨어 유닛(102)에 대한 엔트리와 새로운 소프트웨어 유닛(104)에 대한 한 엔트리를 포함한다. 대체 이전에 발생된 처리는 오래된 소프트웨어 유닛와 그 서버-클레스를 계속해서 사용할 것이며, 대체중에 그리고 그이후에 발생된 처리는 새로운 소프트웨어 유닛(104)와 그의 서버-클레스를 사용하도록 지시된다.
대체가 완성되고 오래된 소프트웨어 유닛(102)내의 활동이 끝난뒤에, 오래된 소프트웨어 유닛(102)가 메모리로부터 제거될 수 있으며 오래된 소프트웨어 유닛(102)내 서버-클레스에 의해 공개된 접속이 제거될 것이다. 만약 메모리로부터 이들 서버-클레스를 제거하기 위한 시도가 완성에 달하는 오래된 소프트웨어 유닛내 모든 처리 이전에 만들어지면, 시스템은 커널(82)로부터 예외 호출을 발생시킨다. 다음에 시스템내의 예외처리가 완성되지 않은 처리로 하여금 자신을 다시 지시하고 새로운 소프트웨어 유닛(104)를 사용하거나 종료시키는 기회를 허용한다.
본 발명은 소프트웨어 유닛내에 담긴 실행가능한 프로그램 코드를 저장하기 위한 공유된 메모리를 사용한다. 이때의 소프트웨어 유닛은 처리기내의 모든 처리가 이같은 공유된 메모리내 프로그램 코드를 수행함을 가능하게 한다. 이는 한 처리기내 다른 처리기내 활동이 동적 수행-시간 바인딩을 만드는때 프로그램 코드를 복사하고 재위치시켜야 할 필요가 없음을 의미한다. 따라서 동적 수행-시간 바인딩(또는 연결된 절차 호출)이 프로그램의 어떠한 재위치 또는 복사도 실시간으로 요구되지 않기 때문에 매우 빠르며 실시간 유효 메카니즘이다.
동적 수행-시간 바인딩을 위해 트레이더 메카니즘을 사용하는 한가지 장점은 한 접속의 고객부분을 담고있는 소프트웨어 모듈이 또다른 소프트웨어 모듈내에 담긴 서버부분이 변경되는때 수정될 필요가 없음이다. 즉, 서버부분에 대한 어떠한 관계도 접속명세가 변경되지 않는한 변경될 필요가 없다.
하기에서 설명된 접속 설명 언어 ELIN 으로 독특한 접속 명세를 규정하는때, 한 독특한 번호가 모든 다른 접속으로부터 이를 분리시키는 그같은 접속을 위해 오프-라인으로 발생된다. 이 번호는 트레이더 메카니즘을 통해 동적 실-시간 바인딩에서 고객부분에 의해 그리고 트레이더내 접속을 공표하기 위해 서버부분에 의해 실시간으로 사용된다. 유일한 접속 이름을 담고있는 스프링을 사용하는 대신에 이같은 번호를 사용하는 것이 한 접속으로의 서브부분을 발견하기 위한 알고리즘을 더욱 실시간 효율적이도록 한다. 트레이더 메카니즘내 서버부분을 발견하기 이한 알고리즘은 가령 하쉬(hash) 기술 또는 인덱스 테이블을 사용하는 것일 수 있으며, 이는 코드의 정적 바인딩 만큼이나 거의 효율적이도록 만드나, 소프트웨어 모듈이 오래된 소프트웨어를 사용하는 계속되는 활동을 방해하지 않고 원활한 방식으로 변경될 수 있는 장점을 갖는다.
본 발명의 연결된 절차 호출 메카니즘 사용시에 본 발명 시스템의 접속명세는 ELIN 으로 언급되는 목적중심 접속기 설명언어로 기록된다. 이 언어에서는, 연결된 절차 호출 접속명세로서 목적되는 특수한 구조(ADT)가 있다. ELIN 언어내의 한 ADT 는 일정타입의 목적에 의해 제공되는 접속기의 명세이다. 이들 목적은 목적중심의 프로그래밍 언어가 사용되면 클레스의 예로서 실시되기에 적합하다. ELIN 언어로 연결된 절차 호출 접속은 다음의 정보를 포함한다.
(a) 명세에 대한 이름;
(b) 이같은 이름에 대한 베이스로서 사용된 다른 접속;
(c) 하나 또는 둘이상의 구조기(예를 발생시키기 위해 사용된다); 그리고
(d) 각각이 방법 이름, 인수, 리턴 타입 그리고 예외로 이루어진 제로 또는 둘이상의 방법-명세.
링크 연결절차 호출 메카니즘의 일부로서 사용될 수 있으며 스택타입의 목적으로의 접속을 설명하는 접속 명세의 한 예가 하기에서 설명된다.
ADT Stack IS
BASE
TelecomObject ;
METHODS
CONSTRUCTOR (IN size Int) ;
push (IN data Int) ;
pop ( ) RETURNS Int ;
END ADT Stack ;
ⓒ1992 텔레폰아크티에볼라게트 엘엠 에릭슨.
이같은 접속 명세는 Stacked 이라 불리는 ADT 를 규정하며, 베이스 ADT "TelecomObject"라 불린다. 이같은 ADT 의 목적은 목록된 기능 맴버로부터 처리 또는 메세지 호출을 받아들일 수 있다. 이같은 ADT 에 대하여 식별된 베이스가 TelecomObject 라 불리는 이같은 타입의 ADT의 또다른 명세가 있음을 나타내도록 한다. 이같은 베이스 ADT 는 또한 베이스 ADT 의 예로서 현재 ADT 가 인계받게될 명시된 일정한 방법을 갖는다. 상기 ADT 규정에서 명시된 기능 멤버 또는 방법이 기저 ADT 내에 추가로 명시된다. 결론컨데, 상기 코드는 시스템 에서 발생될 수 있는 접속 명세의 한 타입인 ADT 명세를 포함한다.
한 접속이 유도된 접속의 기저 접속이라 불려지는 또다른 접속으로부터 유도될 수 있다. 접속들은 둘이상의 다른 접속 으로부터 유도되며, 유도된 접속은 베이스 접속 각각의 작동으로부터 인계받는다. 또한 유도된 접속이 비록 기저 접속으로부터 인계된 것들과 같은 이름을 갖는 작동을 규정하지 않는다 해도 그 자신의 추가 작동을 선언한다. 인계는 접속 수준에 영향을 미칠뿐 실현 수준에는 영향을 미치지 않는다.
제 7 도에서 도시된 바와 같이, 본 발명의 시스템은 고객과 한 접속을 통해 수행시간에 동적으로 함께 연결되는 서버사이의 동등성을 확인하기 위해 사용 되는 스터브-코드 발생도구(112)를 포함한다. 접속은 언어-독립 방식으로 명세되며, 그러나 목적 중심 파라다임을 사용하여 명세된다. 스터브-코드 발생 처리는 여러 프로그래밍 언어중 하나에 대한 맵핑이 덜성될 수 있도록하며 다음의 섹션에서는, 그와 같은 맵핑이 C++ 언어를 사용해서 어떻게 수행될 수 있는가에 대한 간단한 설명이 있게된다.
다시 제 7 도에서는, 접속명세(110)이 본 발명의 시스템에서 한 세트의 발생된 파일(114)와 관련된 스터브-발생도구(112)를 사용한다. 제 7 도는 특히 그같은 언어로 실시되는 C++ 맵핑의 전체구조를 설명한다. 본 발명의 시스템에서 사용된바의 언어(ELIN)으로 기록된 접속명세는 프로그래밍 언어 C++ 에서 사용된 클레스 규정과 유사하다. 마찬가지로, 목적을 통해 작동에 접근하기 위한 메카니즘은 프로그래밍 언어 C++ 가 가상 기능을 처리하는 방식과 유사하다. 따라서, 제 7 도에서 도시된 C++ 의 맵핑은 본 발명 시스템의 이같은 특징의 작동에 대하여 교육적이다.
스터브-발생도구(112)은 고객측면과 서버측면 모두에 대한 두개의 파일을 발생시킨다. 하나는 서픽스 ".h"(헤더)를 다른 하나는 서픽스 ".cc"(코드)를 갖는다. 고객의 경우, ".h" 또는 헤더파일은 두개의 클레스 규정을 담고 있는다. 한가지 클레스는 서버의 ".h" 도는 헤더파일내 상응하는 클레스의 정확한 사본이다. 이는 고객과 서버 사이의 호환성을 보장하며 고객이 서버에 의해 발생된 목적을 호출하는 것을 가능하도록 한다. 그러나 이같은 클레스 구조자는 스택을 통한 자동목적을 발생시키도록 사용될 수 없도록 한다. 두번째 클레스는 서버에 의해 발생된 목적이 이를 통해 접근될 수 있는 대리인으로서 작용하는 고객에서 사용될 수 있는 것이다.
서버측면에 대하여, 상응하는 두개의 ".h"(헤더)와 ".cc"(코드) 파일이 스터브-발생도구(112)에 의해 발생된다. ".h"파일의 내용은 고객과의 호환성을 보장하게될 한 클레스 정의로 이루어진다. 이는 실현을 위해 베이스로서 사용되는 클레스이다. 이 실현은 발생된 클레스를 직접 기초로하며 혹은 발생된 클레스는 다른 클레스를 유도하기 위한 베이스로서 사용될 수 있다. ".cc"파일은 " 발생방법"에 대한 한 스켈리톤과 발생방법 주소가 트레이더에서 등록되어야 하는 각 연결된 절차 호출에 대한 한 엔트리를 갖는 발생된 테이블을 담고있다. 발생방법의 기본은 발생된 클레스와 양립할 수 있는 목적을 발생시키고 포인터를 제4도에서 도시되기도한 새롭게 발생된 목적으로 되돌려 보낼 수 있다.
한가지 공유된 클레스 규정이 아닌 고객과 서버측면에 대한 각기다른 그러나 호환성인 클레스 규정을 발생시키기 위한 여러가지 이유가 있다. 먼저, 이는 고객과 서버내 맴버들에 대한 각기다른 수준의 가시도를 제공한다. 가령, 구조자는 서버내 공중이어야 하며 그러나 고객내에 존재한다면 공중일 필요는 없다. 두번째, 고객과 서버 프로그램은 각기다른 클레스가 사용된다면 이름 충돌의 문제를 만나지 않고 검사목적을 위해 함께 연결될 수 있다.
다음에 제 8 도에서는, 본 발명의 시스템에서 사용되는 바와 같은 일정예시적 코드블럭과 이들의 서로에 대한 관계를 설명하는 일정 챠트 배열이 도시된다. 제 8 도는 본 발명 시스템에서 사용되는 바와 같은 일정 발생된 파일과 기록된 명세의 논리적 구조를 설명한다. 가장 높은 수준으로, 공동 접속명세(120)은 ADT 와 같은 ADT 의 목적에 접근하기 위한 가능한 방법 또는 작동을 규정한다. 규정의 다음 수준에서는 공동 접속명세(120)의 제공자 유닛(124)를 위한 명세와 공동 접속명세(120)의 사용자유닛(122)를 위한 명세가 이같은 ADT 에 논리적으로 부수한다. 사용자 유닛명세(122)는 공동 접속 ADT X 의 한 고객을 규정한다. 제공자 유닛명세(126)은 ADT X 의 서버를 규정한다.
사용자와 제공자 각각에 대한 발생된 클레스 규정은 유닛명세 (122)(124) 아래의 다음의 논리적 수준에 있다. X 사용자(126)에 대하여 발생된 클레스 규정은 두 공공 및 개인 사용을 위해 규정된 일정사용자 클레스들을 설명한다. X 제공자(128)에 대한 발생된 클레스 규정은 제공자 자료와 기능에 대한 공공 및 개인 규정을 설명한다.
상기에서 설명된 바와 같이, 본 발명의 시스템은 네트워크내 통신 트래픽을 방해하지 않고 통신 네트워크와 스위칭 시스템에서 원활하고 명확하게 대체될 수 있을뿐 아니라 소프트웨어가 실시간으로 효과적으로 검사될 수 있도록 한 처리내에서 새로운 소프트웨어와 오래된 소프트웨어를 여결시키거나 실시간 포함을 가능하게 한다.

Claims (30)

  1. 커널(kernel)(82) 첫 번째와 두 번째 응용프로그램내에 각각 담긴 첫 번째 소프트웨어 모듈(102) 그리고 두 번째 소프트웨어 모듈(104)을 갖는 컴퓨터 시스템에서 모듈들을 동적으로 결합시키는 방법으로서, 한 트레이더부(80)를 갖는 연결된 절차호출 메카니즘을 제공하며, 한 고객(클라이언트) 인트페이스를 제공하며, 상기 고객 인터페이스가 상기 트레이더부(80)에 접근할 수 있고, 서버 인터페이스를 제공하고, 상기 서버 인터페이스가 트레이더부(80)에 접근할 수 있으며, 상기 고객 인터페이스를 상기 첫 번째 소프트웨어 모듈(102)내로 삽입시키고, 상기 서버 인터페이스를 상기 두 번째 소프트웨어 모듈(104)내로 삽입시키고, 상기 첫 번째 소프트웨어 모듈(104)을 실행하므로써 고객 인터페이스를 식별 시키고, 상기 식별된 고객 인터페이스로 트레이더부(80)에 접근하므로써 상기 서버 인터페이스를 식별시키며, 그리고 상기 첫 번째 소프트웨어 모듈(102)의 실행중에 상기 식별된 고객 인터페이스 대신에 서버 인터페이스를 사용하고, 이에 의해서 상기 첫 번째와 두 번째 소프트웨어 모듈(102)(104)을 동적으로 결합시키는 단계들을 포함하는 컴퓨터 시스템내에서 소프트웨어 모듈들을 프로그램 실행중 동적으로 결합시키는 방법.
  2. 제 1 항에 있어서, 한 공동 인터페이스 명세(specification)로부터 상기 고객 인터페이스와 상기 서버 인터페이스를 발생시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 한 공동 인터페이스 명세로부터 상기 고객 인터페이스와 서버 인터페이스를 발생시키는 단계가, 오프-라인 스터브 발생도구로, 상기 공동 인터페이스 명세로부터 고객목적(88)과 서버목적(90) 모두를 발생시키며, 상기 오프-라인 스터브 발생도구가 상기 고객목적(88)과 상기 서버목적(90)사이의 조정을 제공하는 단계를 포함함을 특징으로 하는 방법.
  4. 제 3 항에 있어서, 오프-라인 스터브 발생도구로 상기 공동 인터페이스 명세로부터 고객목적(88)과 서버목적(90) 모두를 발생시키는 단계가 적어도 하나의 고객목적(88)을 담고있는 한 고객파일을 발생시키고, 그리고 적어도 하나의 서버목적(90)을 담고 있는 한 서버파일을 발생시키는 단계를 포함함을 특징으로 하는 방법.
  5. 제 4 항에 있어서, 적어도 하나의 고객목적(88)을 담고있는 한 고객파일을 발생시키는 단계가 상기 서버목적(90)을 담고있는 상기 발생된 서버파일내 관계한 서버목적(90)과 모순되지 않는 한 고객목적(88)을 담고있는 한 고객파일을 발생시키는 단계를 포함함을 특징으로 하는 방법.
  6. 제 2 항에 있어서, 객체-중심 인터페이스 설명 언어를 사용하는 상기 공동 인터페이스 명세를 발생시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
  7. 제 6 항에 있어서, 상기 공동 인터페이스 명세를 발생시키는 단계가 공동 인터페이스 명세를 명명하고, 상기 명명된 공동 인터페이스 명세에 대한 베이스로서 사용된 다른 인터페이스들을 식별하며, 적어도 한 구성자(constructor)를 발생시키고, 상기 구성자가 상기 명명된 공동 인터페이스 명세를 명시하는 목적의 예를 어떻게 발생시키는 가를 설명하며, 그리고 상기 명명된 공동 인터페이스 명세의 기능을 수행하기 위해 적어도 한가지의 방법-명세를 발생시키고, 상기 방법-명세가 방법명칭, 논의, 리턴타입 그리고 예외들을 포함시키는 단계들을 더욱더 포함함을 특징으로 하는 방법.
  8. 제 6 항에 있어서, 한 객체-중심 인터페이스 설명 언어를 사용하는 공동 인터페이스 명세를 발생시키는 단계가 한 베이스 인터페이스로부터 상기 공동 인터페이스 명세를 발생시키고, 상기 공동 인터페이스 명세가 상기 베이스 인터페이스의 명세 방법을 승계하는 단계를 포함함을 특징으로 하는 방법.
  9. 제 2 항에 있어서, 한 객체-중심 파라다임을 사용해서 컴퓨터 프로그램 언어-독립방식으로 상기 공동 인터페이스 명세를 발생시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
  10. 제 9 항에 있어서, 한 고객 인터페이스를 제공하는 단계가 한 고객목적(88)을 제공하고, 상기 고객목적(88)이 상기 트레이더부(80)에 접근할 수 있는 단계를 포함함을 특징으로 하는 방법.
  11. 제 9 항에 있어서, 상기 서버 인터페이스의 위치를 상기 트레이더부(80)내로 삽입시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
  12. 제 9 항에 있어서, 한 서버 인터페이스를 제공하는 단계가 한 서버목적(90)을 제공하는 단계를 포함하며, 상기 서버목적(90)이 상기 트레이더부(80)에 접근할 수 있는 단계를 포함함을 특징으로 하는 방법.
  13. 제 12 항에 있어서, 상기 컴퓨터 시스템내로 세 번째 소프트웨어 모듈을 담고있는 세 번째 소프트웨어에 응용을 적재시키고, 상기 세 번째 소프트웨어 모듈이 상기 두 번째 소프트웨어 모듈(104)내로 삽입된 상기 서버목적(90)과 양립할 수있는 서버목적(90)을 포함하며, 그리고 상기 세 번째 소프트웨어 모듈내에 담긴 서버목적(90)의 위치를 상기 트레이더부(80)내로 삽입시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
  14. 제 13 항에 있어서, 상기 세 번째 소프트웨어 모듈을 적재하기전에 발생된 처리를 상기 커널(82)로 트레이더부(80)에 접근하므로써 상기 두 번째 소프트웨어 모듈(104)로 향하게 하는 단계를 더욱더 포함함을 특징으로 하는 방법.
  15. 제 13 항에 있어서, 상기 세 번째 소프트웨어 모듈을 적재시킨뒤에 발생된 처리를 상기 커널(82)로 트레이더부(80)에 접근하므로써 상기 세 번째 소프트웨어 모듈로 향하게 하는 단계를 더욱더 포함함을 특징으로 하는 방법.
  16. 커널(kernal)(82), 첫 번째와 두 번째 응용 프로그램내에 각각 담긴 첫 번째 소프트 모듈(102) 그리고 두 번째 소프트웨어 모듈(104)을 갖는 컴퓨터 시스템에서 모듈들을 동적으로 결합시키는 장치로서, 한 트레이더부(80)를 갖는 연결된 절차호출 메카니즘을 제공하기 위한 수단, 한 고객(클라이언트) 인터페이스를 제공하며, 상기 고객 인터페이스가 상기 트레이더부(80)에 접근할 수 있기 위한 수단, 서버 인터페이스를 제공하고, 상기 서버 인터페이스가 트레이더부(80)에 접근할 수 있기 위한 수단, 상기 고객 인터페이스를 상기 첫 번째 소프트웨어 모듈(102)내로 삽입시키기 위한 수단, 상기 서버 인터페이스를 상기 두번째 소프트웨어 모듈(104)내로 삽입시키기 위한 수단, 상기 첫 번째 소프트웨어 모듈(104)을 실행하므로써 고객 인터페이스를 식별시키기 위한 수단, 상기 식별된 고객 인터페이스로 트레이더부(80)에 접근하므로써 상기 서버 인터페이스를 식별시키기 위한 수단, 그리고 상기 첫 번째 인터페이스 모듈(102)의 실행중에 상기 식별된 고객 인터페이스 대신에 서버 인터페이스를 사용하고, 이에 의해서 상기 첫 번째와 두 번째 소프트웨어 모듈(102)(104)을 동적으로 결합시키기 위한 수단을 포함하는 컴퓨터 시스템내에서 소프트웨어 모듈들을 프로그램 실행중 동적으로 결합시키는 장치.
  17. 제 16 항에 있어서, 한 공동 인터페이스 명세(specification)로부터 상기 고객 인터페이스와 상기 서버 인터페이스를 발생시키기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
  18. 제 17 항에 있어서, 한 공동 인터페이스 명세로부터 상기 고객 인터페이스와 서버 인터페이스를 발생시키기 위한 수단이 오프-라인 스터브 발생도구로, 상기 공동 인터페이스 명세로부터 고객목적(88)과 서버목적(90)모두를 발생시키며, 상기 오프-라인 스터브 발생도구가 상기 고객목적(88)과 상기 서버목적(90) 사이의 조정을 제공하기 위한 수단을 포함함을 특징으로 하는 장치.
  19. 제 18 항에 있어서, 오프-라인 스터브 발생도구로 상기 공동 인터페이스 명세로부터 고객목적(88)과 서버목적(90) 모두를 발생시키기 위한 수단이 적어도 하나의 고객목적(88)을 담고있는 한 고객파일을 발생시키기 위한 수단, 그리고 적어도 하나의 서버목적(90)을 담고 있는 한 서버파일을 발생시키기 위한 수단을 포함함을 특징으로 하는 장치.
  20. 제 19 항에 있어서, 적어도 하나의 고객목적(88)을 담고있는 한 고객파일을 발생시키기 위한 수단이 상기 서버목적(90)을 담고있는 상기 발생된 서버파일내 관계한 서버목적(90)과 모순되지 않는 한 고객목적(88)을 담고있는 한 고객파일을 발생시키기 위한 수단을 포함함을 특징으로 하는 장치.
  21. 제 17 항에 있어서, 객체-중심 인터페이스 설명 언어를 사용하는 상기 공동 인터페이스 명세를 발생시키기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
  22. 제 21 항에 있어서, 상기 공동 인터페이스 명세를 발생시키기 위한 수단이, 공동 인터페이스 명세를 위한 이름, 상기 명명된 공동 인터페이스 명세에 대한 베이스로서 사용된 다른 인터페이스들을 식별하기 위한 수단, 적어도 한 구성자(construction)를 발생시키고, 상기 구성자가 상기 명명된 공동 인터페이스 명세를 명시하는 목적의 예를 어떻게 발생시키는 가를 설명하기 위한 수단, 그리고 상기 명명된 공동 인터페이스 명세의 기능을 수행하기 위해 적어도 한가지의 방법-명세를 발생시키고, 상기 방법-명세가 방법명칭, 논의, 리턴타입 그리고 예외들을 포함시키기 위한 수단들을 더욱더 포함함을 특징으로 하는 장치.
  23. 제 21 항에 있어서, 한 객체-중심 인터페이스 설명 언어를 사용하는 공동 인터페이스 명세를 발생시키는 수단이 한 베이스 인터페이스로부터 상기 공동 인터페이스 명세를 발생시키고, 상기 공동 인터페이스 명세가 상기 베이스 인터페이스의 명세 방법을 승계하도록 하는 수단을 포함함을 특징으로 하는 장치.
  24. 제 17 항에 있어서, 한 객체-중심 파라다임을 사용해서 컴퓨터 프로그램 언어-독립방식으로 상기 공동 인터페이스 명세를 발생시키는 수단을 더욱더 포함함을 특징으로 하는 장치.
  25. 제 16 항에 있어서, 한 고객 인터페이스를 제공하기 위한 수단이, 한 고객목적(88)을 제공하고, 상기 고객목적(88)이 상기 트레이더부(80)에 접근할 수 있는 수단을 포함함을 특징으로 하는 장치.
  26. 제 16 항에 있어서, 상기 서버 인터페이스의 위치를 상기 트레이더부(80)내로 삽입시키기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
  27. 제 16 항에 있어서, 한 서버 인터페이스를 제공하기 위한 수단이 한 서버목적(90)을 제공하기 위한 수단을 포함하며, 상기 서버목적(90)이 상기 트레이더부(80)에 접근할 수 있음을 특징으로 하는 장치.
  28. 제 27 항에 있어서, 상기 컴퓨터 시스템내로 세 번째 소프트웨어 모듈을 담고 있는 세 번째 소프트웨어 응용을 적재시키고, 상기 세 번째 소프트웨어 모듈이 상기 두 번째 소프트웨어 모듈(104)내로 삽입된 상기 서버목적(90)과 양립할 수 있는 서버목적(90)을 포함하기 위한 수단, 그리고 상기 세 번째 소프트웨어 모듈내에 담긴 서버목적(90)의 위치를 상기 트레이더부(80)내로 삽입시키기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
  29. 제 28 항에 있어서, 상기 세 번째 소프트웨어 모듈을 적재하기전에 발생된 처리를 상기 커널(82)의 트레이더부(80)에 접근하므로써 상기 두 번째 소프트웨어 모듈(104)로 향하게 하기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
  30. 제 28 항에 있어서, 상기 세번째 소프트웨어 모듈을 적재시킨뒤에 발생된 처리를 상기 커널(82)로 트레이더부(80)에 접근하므로써 상기 세 번째 소프트웨어 모듈로 향하게 하기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
KR1019940704822A 1992-07-01 1993-05-11 컴퓨터시스템내에서소프트웨어모듈들을프로그램실행중동적으로결합시키는방법및그장치 KR100303548B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US907307 1992-07-01
US07/907,307 US5339430A (en) 1992-07-01 1992-07-01 System for dynamic run-time binding of software modules in a computer system
PCT/SE1993/000416 WO1994001818A1 (en) 1992-07-01 1993-05-11 System for dynamic run-time binding of software modules in a computer system

Publications (1)

Publication Number Publication Date
KR100303548B1 true KR100303548B1 (ko) 2001-11-22

Family

ID=25423875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940704822A KR100303548B1 (ko) 1992-07-01 1993-05-11 컴퓨터시스템내에서소프트웨어모듈들을프로그램실행중동적으로결합시키는방법및그장치

Country Status (14)

Country Link
US (1) US5339430A (ko)
EP (1) EP0648352B1 (ko)
KR (1) KR100303548B1 (ko)
CN (1) CN1047450C (ko)
AU (1) AU664813B2 (ko)
BR (1) BR9306652A (ko)
DE (1) DE69327243T2 (ko)
DK (1) DK0648352T3 (ko)
ES (1) ES2139663T3 (ko)
FI (1) FI946193A0 (ko)
GR (1) GR3032498T3 (ko)
MX (1) MX9303777A (ko)
NO (1) NO311387B1 (ko)
WO (1) WO1994001818A1 (ko)

Families Citing this family (232)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479614A (en) * 1989-09-14 1995-12-26 Fujitsu Limited Object sensor processing method and processor
JP2741994B2 (ja) * 1992-08-28 1998-04-22 富士通株式会社 ジョブ環境動的変更機能を持つ処理装置および処理方法
US5404525A (en) * 1992-09-30 1995-04-04 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
US6209040B1 (en) * 1992-10-09 2001-03-27 Microsoft Corporation Method and system for interfacing to a type library
US5625845A (en) * 1992-10-13 1997-04-29 International Business Machines Corporation System for facilitating continuous, real-time, unidirectional, and asynchronous intertask and end-device communication in a multimedia data processing system using open architecture data communication modules
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
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
US5459837A (en) * 1993-04-21 1995-10-17 Digital Equipment Corporation System to facilitate efficient utilization of network resources in a computer network
US5664106A (en) * 1993-06-04 1997-09-02 Digital Equipment Corporation Phase-space surface representation of server computer performance in a computer network
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
US5615400A (en) * 1993-06-30 1997-03-25 Apple Computer, Inc. System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers
US6430738B1 (en) * 1993-07-01 2002-08-06 International Business Machines Corporation Method and system for reversible installation of software applications in a data processing system utilizing an automated archival process
US5603031A (en) * 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US6684261B1 (en) 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
GB9316948D0 (en) * 1993-08-14 1993-09-29 Ibm Programming aid for distributed computing systems
JPH0773050A (ja) * 1993-09-01 1995-03-17 Fujitsu Ltd プログラム間のデータ授受制御方式
US5742848A (en) * 1993-11-16 1998-04-21 Microsoft Corp. System for passing messages between source object and target object utilizing generic code in source object to invoke any member function of target object by executing the same instructions
US5548779A (en) * 1993-12-21 1996-08-20 Taligent System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects
US5548718A (en) * 1994-01-07 1996-08-20 Microsoft Corporation Method and system for determining software reliability
US5537542A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Apparatus and method for managing a server workload according to client performance goals in a client/server data processing system
US5754855A (en) * 1994-04-21 1998-05-19 International Business Machines Corporation System and method for managing control flow of computer programs executing in a computer system
US6243765B1 (en) * 1994-04-28 2001-06-05 Nortel Networks Limited Method and apparatus for data communication
JP2580536B2 (ja) * 1994-06-02 1997-02-12 工業技術院長 オブジェクト指向言語における動的オブジェクトの管理方式
US5903754A (en) * 1994-06-21 1999-05-11 Microsoft Corporation Dynamic layered protocol stack
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
SE504943C2 (sv) * 1994-12-09 1997-06-02 Ericsson Telefon Ab L M Synkroniseringsförfarande som tillåter tillståndsöverföring
US5764985A (en) * 1994-12-13 1998-06-09 Microsoft Corp Notification mechanism for coordinating software extensions
US5819091A (en) * 1994-12-22 1998-10-06 Arendt; James Wendell User level control of degree of client-side processing
US6202098B1 (en) * 1995-01-04 2001-03-13 International Business Machines Corporation Method and system for object oriented notification
DE19502728A1 (de) * 1995-01-28 1996-08-01 Philips Patentverwaltung Telekommunikationsvorrichtung
CA2143488C (en) * 1995-02-27 2000-01-11 Robert Paul Duncan Dynamic link libraries without linker or loader support
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
EP0735472A3 (en) * 1995-03-31 2000-01-19 Sun Microsystems, Inc. Method and apparatus for conspiracy among objects
US6715148B1 (en) 1995-04-03 2004-03-30 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
US5867713A (en) * 1995-04-05 1999-02-02 International Business Machines Corporation Committing an install plan object for the network installation of application programs
JP3590688B2 (ja) * 1995-04-05 2004-11-17 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションを導入するための導入計画オブジェクトを構築する方法、及びそのシステム
WO1996031823A1 (en) 1995-04-07 1996-10-10 Sofmap Future Design Co., Ltd. Data processing system and method, and computer program architecture
US5799181A (en) * 1995-04-07 1998-08-25 Sofmap Future Design, Inc. Bossless architecture and digital cell technology for computer programs
US5727212A (en) * 1995-04-12 1998-03-10 International Business Machines Corporation Object oriented device driver system for procedural device drivers
US5625804A (en) * 1995-04-17 1997-04-29 International Business Machines Corporation Data conversion in a multiprocessing system usable while maintaining system operations
US5727154A (en) * 1995-04-28 1998-03-10 Fry; Shawn C. Program synchronization on first and second computers by determining whether information transmitted by first computer is an acceptable or unacceptable input to second computer program
US5987505A (en) * 1995-04-28 1999-11-16 Fry; Shawn C. Method for emulation of terminal-resident GUI application by transmitting macros having information and command instructing the terminal how to process the information
US6212575B1 (en) * 1995-05-05 2001-04-03 Apple Computer, Inc. Extensible, replaceable network component system
US5802531A (en) * 1995-05-08 1998-09-01 Apple Computer, Inc. Method and system for embedding parts of documents and synchronizing multiple views thereof
US5664208A (en) * 1995-05-16 1997-09-02 Apple Computer, Inc. Methods and apparatuses for seamless compound document processing
US5740455A (en) * 1995-05-16 1998-04-14 Apple Computer, Inc. Enhanced compound document processing architectures and methods therefor
US5805891A (en) * 1995-07-26 1998-09-08 International Business Machines Corporation System and method for managing maintenance of computer software
WO1997008623A1 (en) * 1995-08-23 1997-03-06 Symantec Corporation Coherent file system access during defragmentation operations on a storage media
DE19533961A1 (de) * 1995-09-13 1997-03-20 Siemens Ag Verfahren zum Laden von Software in Kommunikationssystemen mit nichtredundanten, dezentralen Einrichtungen
US6332168B1 (en) * 1995-09-28 2001-12-18 International Business Machines Corporation Method of, system for, and computer program product for providing a run time subsystem for run time libraries
US6226691B1 (en) * 1995-10-02 2001-05-01 International Business Machines Corporation System, method, and article of manufacture for adding object services to a binary class in an object oriented server
US5732263A (en) * 1995-10-03 1998-03-24 International Business Machines Corporation Systems, methods and computer program products for generating and validating user defined object classes in an object oriented programming environment after build time
US6684259B1 (en) 1995-10-11 2004-01-27 Citrix Systems, Inc. Method for providing user global object name space in a multi-user operating system
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
US5864862A (en) * 1996-09-30 1999-01-26 Telefonaktiebolaget Lm Ericsson (Publ) System and method for creating reusable components in an object-oriented programming environment
US6467085B2 (en) 1995-10-17 2002-10-15 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling in an object-oriented programming environment
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
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
US6421679B1 (en) * 1995-10-27 2002-07-16 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
US5787245A (en) * 1995-11-13 1998-07-28 Object Technology Licensing Corporation Portable debugging service utilizing a client debugger object and a server debugger object
US5815653A (en) * 1995-11-13 1998-09-29 You; Lawrence L. Debugging system with portable debug environment-independent client and non-portable platform-specific server
US5956479A (en) * 1995-11-13 1999-09-21 Object Technology Licensing Corporation Demand based generation of symbolic information
US5812850A (en) * 1995-11-13 1998-09-22 Object Technology Licensing Corp. Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution
US6158045A (en) * 1995-11-13 2000-12-05 Object Technology Licensing Corporation Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support
US5778230A (en) * 1995-11-13 1998-07-07 Object Technology Licensing Corp. Goal directed object-oriented debugging system
US5793982A (en) * 1995-12-07 1998-08-11 International Business Machine Corporation Validating an installation plan containing multiple transports and redirectors by adding data structure of the modules to the plan if the indicated transport and redirector modules are unavailable
US5790132A (en) * 1995-12-07 1998-08-04 Object Technology Licensing Corp. Image rendering system with extensible mechanism for providing visual user feedback when an image graphic is selected
US5742823A (en) * 1996-01-17 1998-04-21 Nathen P. Edwards Total object processing system and method with assembly line features and certification of results
US5822580A (en) * 1996-01-19 1998-10-13 Object Technology Licensing Corp. Object oriented programming based global registry system, method, and article of manufacture
US5838972A (en) * 1996-02-09 1998-11-17 Sun Microsystems, Inc. Method and apparatus for dynamically loading an input run-time module and an output run-time module
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6272559B1 (en) * 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6421704B1 (en) * 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6074434A (en) 1996-06-07 2000-06-13 International Business Machines Corporation Selection of code updates, data updates or new data for client
US5752042A (en) * 1996-06-07 1998-05-12 International Business Machines Corporation Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer
US5877768A (en) * 1996-06-19 1999-03-02 Object Technology Licensing Corp. Method and system using a sorting table to order 2D shapes and 2D projections of 3D shapes for rendering a composite drawing
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5960204A (en) * 1996-10-28 1999-09-28 J.D. Edwards World Source Company System and method for installing applications on a computer on an as needed basis
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US6003095A (en) * 1996-10-31 1999-12-14 International Business Machines Corporation Apparatus and method for demand loading a dynamic link library
US5946486A (en) * 1996-12-10 1999-08-31 International Business Machines Corporation Apparatus and method for tracing entries to or exits from a dynamic link library
US6769126B1 (en) 1996-12-10 2004-07-27 International Business Machines Corporation Apparatus and method for demand load analysis
GB2323944A (en) * 1997-04-01 1998-10-07 Ibm Parallel data processing system
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
US5822748A (en) * 1997-02-28 1998-10-13 Oracle Corporation Group by and distinct sort elimination using cost-based optimization
US6366581B1 (en) 1997-04-02 2002-04-02 Fujitsu Network Communications, Inc. Method and apparatus for generating permanent virtual connections using graphical user interface
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
US20090043907A1 (en) * 1997-09-11 2009-02-12 Digital Delivery Networks, Inc. Local portal
US6072953A (en) * 1997-09-30 2000-06-06 International Business Machines Corporation Apparatus and method for dynamically modifying class files during loading for execution
JPH11110194A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
US6957427B1 (en) 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
WO1999030232A1 (de) * 1997-12-09 1999-06-17 Siemens Aktiengesellschaft Verfahren zur überprüfung der pfadüberdeckung bei software-tests
US6031623A (en) * 1997-12-11 2000-02-29 Hewlett-Packard Company Computer system with evolving printer
US6151708A (en) * 1997-12-19 2000-11-21 Microsoft Corporation Determining program update availability via set intersection over a sub-optical pathway
US5911073A (en) * 1997-12-23 1999-06-08 Hewlett-Packard Company Method and apparatus for dynamic process monitoring through an ancillary control code system
US5953534A (en) * 1997-12-23 1999-09-14 University Of Washington Environment manipulation for executing modified executable and dynamically-loaded library files
WO1999034600A1 (en) * 1997-12-24 1999-07-08 I-See-You Corporation Portable, stand-alone video telephone system
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
JP2002505467A (ja) * 1998-02-26 2002-02-19 サン・マイクロシステムズ・インコーポレーテッド 分散システムにおける動的参照サービス
JP2002505491A (ja) * 1998-02-26 2002-02-19 サンマイクロシステムズ インコーポレーテッド 分散形システムにおける動的情報証明のための装置及び方法
SE9800696D0 (sv) * 1998-03-05 1998-03-05 Nokia Satellite Systems Ab Sätt vid datorsystem
US6484214B1 (en) * 1998-03-05 2002-11-19 Mcdonnell Douglas Helicopter Company Method for distributed object communications based on dynamically acquired and assembled software components
US20020046228A1 (en) * 1998-03-20 2002-04-18 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6681266B2 (en) 1998-04-14 2004-01-20 Dell Usa, L.P. Late binding dynamic software configuration information
US6345387B1 (en) * 1998-04-30 2002-02-05 Cosa Technologies, Inc. Coherent object system architecture
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
US5983021A (en) * 1998-05-27 1999-11-09 Sun Microsystems Dynamically switching statically bound function calls to dynamically bound function calls without recompilation
US6351843B1 (en) * 1998-08-31 2002-02-26 International Business Machines Corporation Dynamically inserting a function into an application executable at runtime
US8434099B2 (en) 1998-09-09 2013-04-30 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US7159222B1 (en) * 1998-09-09 2007-01-02 Microsoft Corporation Highly componentized system architecture with object mutation
US7127701B2 (en) * 1998-09-18 2006-10-24 Wylci Fables Computer processing and programming method using autonomous data handlers
US6651080B1 (en) * 1998-10-16 2003-11-18 Sun Microsystems, Inc. Techniques for implementing pluggable virtual machines
US6163794A (en) 1998-10-23 2000-12-19 General Magic Network system extensible by users
WO2000036506A1 (en) 1998-12-16 2000-06-22 Kent Ridge Digital Labs Process oriented computing environment
US6249783B1 (en) 1998-12-17 2001-06-19 International Business Machines Corporation Method and apparatus for efficiently executing built-in functions
US6397384B1 (en) * 1998-12-18 2002-05-28 Adobe Systems Incorporated Run-time addition of interfaces
US6510551B1 (en) * 1998-12-22 2003-01-21 Channelpoint, Inc. System for expressing complex data relationships using simple language constructs
JP4809968B2 (ja) * 1999-04-09 2011-11-09 キヤノン株式会社 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体
DE19917165C2 (de) * 1999-04-16 2001-02-08 Karlsruhe Forschzent Verfahren zum Abreinigen von rohrförmigen Filterelementen und Vorrichtung zur Ausübung des Verfahrens
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
US6842903B1 (en) * 1999-05-19 2005-01-11 Sun Microsystems, Inc. System and method for providing dynamic references between services in a computer system
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
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 設定情報自動復帰方法及び装置並びに設定情報自動復帰プログラムを記録した記録媒体
EP1079302A1 (de) * 1999-08-23 2001-02-28 Siemens Aktiengesellschaft Verfahren zum Betreiben einer Datenverarbeitungsanlage, Baueinheit und Vermittlungsstelle sowie zugehöriges Computerprogramm
JP3671759B2 (ja) * 1999-08-26 2005-07-13 株式会社日立製作所 ソフトウェア配布方法およびシステム
US6356933B2 (en) * 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US6622170B1 (en) 1999-09-10 2003-09-16 International Business Machines Corporation System and method for DEN/LDAP client database access with a backoff capability
US6330560B1 (en) 1999-09-10 2001-12-11 International Business Machines Corporation Multiple manager to multiple server IP locking mechanism in a directory-enabled network
US7146608B1 (en) * 1999-09-28 2006-12-05 Cisco Technology, Inc. Method and system for a software release process
US6751658B1 (en) * 1999-10-18 2004-06-15 Apple Computer, Inc. Providing a reliable operating system for clients of a net-booted environment
US7089300B1 (en) * 1999-10-18 2006-08-08 Apple Computer, Inc. Method and apparatus for administering the operating system of a net-booted environment
JP3655152B2 (ja) * 1999-11-29 2005-06-02 富士通株式会社 ソフトウェア編集装置及び記憶媒体
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
US7287259B2 (en) 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
EP1160952A3 (en) * 2000-05-29 2004-05-26 Omron Corporation Power supply module and power supply unit using the same
US6941353B1 (en) * 2000-06-29 2005-09-06 Auran Holdings Pty Ltd E-commerce system and method relating to program objects
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US7296275B2 (en) * 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US20020100034A1 (en) * 2001-01-22 2002-07-25 Croix John F. Application personality
US7076496B1 (en) * 2001-02-23 2006-07-11 3Com Corporation Method and system for server based software product release version tracking
US7389515B1 (en) * 2001-05-21 2008-06-17 Microsoft Corporation Application deflation system and method
US7243346B1 (en) 2001-05-21 2007-07-10 Microsoft Corporation Customized library management system
JP2002373077A (ja) * 2001-06-14 2002-12-26 Nec Corp 実行時ライブラリ検索方法及び装置、動的リンカ並びにプログラム
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US20030051030A1 (en) * 2001-09-07 2003-03-13 Clarke James B. Distributed metric discovery and collection in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US20030131347A1 (en) * 2001-10-12 2003-07-10 Allison David S. Method and apparatus for runtime binding of object members
US7210145B2 (en) * 2001-10-15 2007-04-24 Edss, Inc. Technology for integrated computation and communication; TICC
US6915513B2 (en) * 2001-11-29 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for dynamically replacing code
US6981268B2 (en) * 2001-12-05 2005-12-27 Microsoft Corporation System and method for persisting and resolving application assembly binds
KR100462860B1 (ko) * 2002-01-11 2004-12-17 삼성전자주식회사 개방형 교환시스템에서 새 버전 소프트웨어 패키지 설치방법
US7657616B1 (en) 2002-06-10 2010-02-02 Quest Software, Inc. Automatic discovery of users associated with screen names
US20080196099A1 (en) * 2002-06-10 2008-08-14 Akonix Systems, Inc. Systems and methods for detecting and blocking malicious content in instant messages
US7818565B2 (en) * 2002-06-10 2010-10-19 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7428590B2 (en) * 2002-06-10 2008-09-23 Akonix Systems, Inc. Systems and methods for reflecting messages associated with a target protocol within a network
EP1552414A4 (en) 2002-06-10 2010-11-24 Akonix Systems Inc SYSTEM AND METHOD FOR A PROTOCOL GATEWAY
US7707401B2 (en) * 2002-06-10 2010-04-27 Quest Software, Inc. Systems and methods for a protocol gateway
US7774832B2 (en) * 2002-06-10 2010-08-10 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7076312B2 (en) * 2002-08-02 2006-07-11 Fisher-Rosemount Systems, Inc. Integrated electronic signatures for approval of process control and safety system software objects
US7185331B2 (en) * 2002-08-27 2007-02-27 Inrange Technologies Corporation Method and apparatus for downloading executable code in a non-disruptive manner
US7234056B2 (en) * 2002-09-24 2007-06-19 Inrange Technologies Corp. Method and apparatus for downloading executable code in a non-disruptive manner
US7730155B1 (en) * 2002-10-01 2010-06-01 Apple Inc. Method and apparatus for dynamically locating resources
US7213123B2 (en) * 2002-10-24 2007-05-01 International Business Machines Corporation Method and apparatus for mapping debugging information when debugging integrated executables in a heterogeneous architecture
US7200840B2 (en) * 2002-10-24 2007-04-03 International Business Machines Corporation Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture
US7225431B2 (en) * 2002-10-24 2007-05-29 International Business Machines Corporation Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
US7243333B2 (en) * 2002-10-24 2007-07-10 International Business Machines Corporation Method and apparatus for creating and executing integrated executables in a heterogeneous architecture
US7222332B2 (en) * 2002-10-24 2007-05-22 International Business Machines Corporation Method and apparatus for overlay management within an integrated executable for a heterogeneous architecture
US7313267B2 (en) * 2002-11-13 2007-12-25 Lockheed Martin Corporation Automatic encoding of a complex system architecture in a pattern recognition classifier
US7243336B2 (en) * 2002-12-17 2007-07-10 International Business Machines Corporation System and method of extending application types in a centrally managed desktop environment
US7865251B2 (en) * 2003-01-28 2011-01-04 Fisher-Rosemount Systems, Inc. Method for intercontroller communications in a safety instrumented system or a process control system
US20050039196A1 (en) * 2003-08-13 2005-02-17 Sasidharan Prasanth Nalini Method and system for using a library
WO2005026915A2 (en) * 2003-09-11 2005-03-24 Akonix Systems, Inc. Systems and methods for dynamically updating software in a protocol gateway
GB2406663B (en) * 2003-10-01 2006-03-22 Toshiba Res Europ Ltd Flexible protocol stack
US7774774B1 (en) * 2003-10-22 2010-08-10 Apple Inc. Software setup system
US20050091259A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Redmond Wa. Framework to build, deploy, service, and manage customizable and configurable re-usable applications
US8381207B2 (en) * 2003-12-02 2013-02-19 International Business Machines Corporation Script generation engine and mapping semantic models for target platform
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
EP2408126A1 (en) 2004-02-19 2012-01-18 Landmark Digital Services LLC Method and apparatus for identification of broadcast source
US7516459B2 (en) * 2004-02-20 2009-04-07 Intel Corporation Methods and apparatus to optimize managed application program interfaces
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US7444197B2 (en) 2004-05-06 2008-10-28 Smp Logic Systems Llc Methods, systems, and software program for validation and monitoring of pharmaceutical manufacturing processes
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7594217B2 (en) * 2004-12-07 2009-09-22 International Business Machines Corporation Matching client interfaces with service interfaces
US7739656B2 (en) * 2004-12-15 2010-06-15 International Business Machines Corporation Generating asynchronous interfaces and methods from synchronous interfaces and methods
US7779430B2 (en) * 2004-12-15 2010-08-17 International Business Machines Corporation Method, system, and article of manufacture for providing service components
US20060179421A1 (en) * 2005-02-09 2006-08-10 International Business Machines Corporation Dynamic interface binding using XML transformations
US9063725B2 (en) * 2005-06-24 2015-06-23 Oracle International Corporation Portable management
US9542175B2 (en) * 2005-06-24 2017-01-10 Oracle International Corporation Continuous deployment
US9075596B2 (en) * 2005-06-24 2015-07-07 Oracle International Corporation Deployment
EP1746499A1 (de) * 2005-07-05 2007-01-24 Siemens Aktiengesellschaft System und Verfahren zur Entwicklung einer Software oder einer Softwarekomponente sowie Verfahren zum Betrieb einer solchen Software
US7844957B2 (en) * 2005-08-19 2010-11-30 Sybase, Inc. Development system with methodology providing optimized message parsing and handling
US7756981B2 (en) 2005-11-03 2010-07-13 Quest Software, Inc. Systems and methods for remote rogue protocol enforcement
US20070250828A1 (en) * 2005-11-16 2007-10-25 Tseitlin Ariel D Portable libraries
US20070226731A1 (en) * 2005-11-16 2007-09-27 Tseitlin Ariel D Modularity
WO2007123527A1 (en) * 2006-04-20 2007-11-01 Srinivasan Chitoor V Technology for integrated computation and communication; ticc
EP1850260A1 (en) * 2006-04-26 2007-10-31 Macrovision Corporation A computer-implemented method and system for binding digital rights management executable code to a software application
US8458673B2 (en) * 2006-04-26 2013-06-04 Flexera Software Llc Computer-implemented method and system for binding digital rights management executable code to a software application
US20070277170A1 (en) * 2006-05-25 2007-11-29 International Business Machines Corporation Merger driven application installation
CN100464522C (zh) * 2007-05-17 2009-02-25 华为技术有限公司 一种进程升级的方法及进程升级系统
US7996347B2 (en) * 2008-04-04 2011-08-09 International Business Machines Corporation Adaptive information technology solution design and deployment
US8627306B2 (en) * 2008-08-06 2014-01-07 Caterpillar Inc. Method and system for updating an information management system configuration
US10410117B2 (en) 2008-09-21 2019-09-10 Brainchip, Inc. Method and a system for creating dynamic neural function libraries
KR101255685B1 (ko) * 2008-12-22 2013-04-24 한국전자통신연구원 로봇 응용 프로그램 실행 장치 및 방법
US8645936B2 (en) * 2009-09-30 2014-02-04 Zynga Inc. Apparatuses, methods and systems for an a API call abstractor
US8954929B2 (en) * 2010-03-29 2015-02-10 Microsoft Corporation Automatically redirecting method calls for unit testing
US8589867B2 (en) 2010-06-18 2013-11-19 Microsoft Corporation Compiler-generated invocation stubs for data parallel programming model
US20110314256A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Data Parallel Programming Model
EP2469407A1 (en) * 2010-12-21 2012-06-27 Robert Bosch GmbH Method of bypassing an AUTOSAR software component of an AUTOSAR software system
US8468507B2 (en) 2011-06-10 2013-06-18 Microsoft Corporation Binding executable code at runtime
US8990515B2 (en) 2011-06-14 2015-03-24 Microsoft Technology Licensing, Llc Aliasing buffers
US9141356B2 (en) 2011-12-14 2015-09-22 Microsoft Technology Licensing, Llc Process for generating dynamic type
US9160653B2 (en) * 2012-06-07 2015-10-13 International Business Machines Corporation Dynamic redirection of network traffic within a system under test
US9152410B2 (en) * 2012-06-21 2015-10-06 Vaibhav KHANDELWAL Auto-update while running client interface with handshake
US8997047B2 (en) * 2012-12-13 2015-03-31 International Business Machines Corporation Dynamically updating code without requiring processes to restart
US9542172B2 (en) 2013-02-05 2017-01-10 Apple Inc. Automatic updating of applications
US9720651B2 (en) * 2015-07-15 2017-08-01 Bank Of America Corporation Strategy maintenance system
US10594555B2 (en) 2016-12-16 2020-03-17 Intelligent Platforms, Llc Cloud-enabled testing of control systems
US11424865B2 (en) 2020-12-10 2022-08-23 Fisher-Rosemount Systems, Inc. Variable-level integrity checks for communications in process control environments

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307825A (ja) * 1988-06-06 1989-12-12 Nec Corp インターフェイスモジュールを介する動的リンク実行方式

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4369983A (en) * 1980-10-27 1983-01-25 The Firestone Tire & Rubber Company Trailer with mass restraint
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
JPH01239633A (ja) * 1988-03-22 1989-09-25 Nec Corp 動的リンク構造ロードモジュール作成方式
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
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
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
US5185742A (en) * 1990-12-31 1993-02-09 At&T Bell Laboratories Transparent signaling for remote terminals
US5182751A (en) * 1990-12-31 1993-01-26 At&T Bell Laboratories Switching system using identical switching nodes
US5182750A (en) * 1990-12-31 1993-01-26 At&T Bell Laboratories Transparent remoting of switching network control over a standard interface link
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
JPH0778775B2 (ja) * 1991-06-12 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション アプリケーション・プログラム間における情報交換システム及び方法
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307825A (ja) * 1988-06-06 1989-12-12 Nec Corp インターフェイスモジュールを介する動的リンク実行方式

Also Published As

Publication number Publication date
AU4516393A (en) 1994-01-31
NO945053D0 (no) 1994-12-27
AU664813B2 (en) 1995-11-30
ES2139663T3 (es) 2000-02-16
EP0648352B1 (en) 1999-12-08
CN1081006A (zh) 1994-01-19
NO311387B1 (no) 2001-11-19
WO1994001818A1 (en) 1994-01-20
US5339430A (en) 1994-08-16
BR9306652A (pt) 1998-12-08
MX9303777A (es) 1994-01-31
CN1047450C (zh) 1999-12-15
DE69327243D1 (de) 2000-01-13
NO945053L (no) 1995-02-28
DK0648352T3 (da) 2000-05-29
DE69327243T2 (de) 2000-04-06
FI946193A (fi) 1994-12-30
EP0648352A1 (en) 1995-04-19
FI946193A0 (fi) 1994-12-30
GR3032498T3 (en) 2000-05-31

Similar Documents

Publication Publication Date Title
KR100303548B1 (ko) 컴퓨터시스템내에서소프트웨어모듈들을프로그램실행중동적으로결합시키는방법및그장치
KR100323881B1 (ko) 컴퓨터동작중에소프트웨어를변경시키기위한방법및그시스템
US5495612A (en) System for dynamically changing an execution program and method for doing the same
US9015659B2 (en) Method, computer program product, and system for non-blocking dynamic update of statically typed class-based object-oriented software
JP3423220B2 (ja) 情報処理システムのアーキテクチャ
JPH02272627A (ja) デイジタル・コンピユータ・システムとその手続呼び出し方法
CA2248181A1 (en) Interactive software development system
EP0855056B1 (en) Object-oriented method maintenance mechanism that does not require cessation of the computer system
WO1997043711A1 (en) Incremental byte code compilation system
Gregersen et al. Dynamic update of Java applications—balancing change flexibility vs programming transparency
US6957367B2 (en) System and method for controlling activity of temporary files in a computer system
US5995752A (en) Use of language instructions and functions across multiple processing sub-environments
JP3437284B2 (ja) サ−ビス処理システム
JP3019915B2 (ja) 手続き呼出し方法
EP0530351B1 (en) Improved system and method for detecting cross-domain instruction calls and data references especiallly adapted for code interface jacketing in a multi-code execution and debugging system within a multi-architecture environment
CN113535230B (zh) 一种工程源码动态自适应不同硬件资源的方法及系统
US5675806A (en) Program linkage method for using dummy arguments to link program having hierarchical structure
Sunaga et al. Applicability evaluation of service feature enhancement using the partial-file" plug-in" modification technique
US6104873A (en) Use of language instructions and functions across multiple processing sub-environments
CN116795336A (zh) 业务接口注册方法及装置、使用方法及装置、设备及介质
Keane Realization of an Ada architecture for heterogenous distributed embedded processors
JPH10161904A (ja) 複数言語対応のデバッグ装置およびデバッグ方法
JPH0264756A (ja) システム立上げ方式
Wotton The Object Oriented DAQ control program of the OPAL detector at LEP
Datenbanken Flexible Runtime Program Adaptations in Java-A Comparison

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: 20080708

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee