KR100303548B1 - 컴퓨터시스템내에서소프트웨어모듈들을프로그램실행중동적으로결합시키는방법및그장치 - Google Patents
컴퓨터시스템내에서소프트웨어모듈들을프로그램실행중동적으로결합시키는방법및그장치 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic 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)
- 커널(kernel)(82) 첫 번째와 두 번째 응용프로그램내에 각각 담긴 첫 번째 소프트웨어 모듈(102) 그리고 두 번째 소프트웨어 모듈(104)을 갖는 컴퓨터 시스템에서 모듈들을 동적으로 결합시키는 방법으로서, 한 트레이더부(80)를 갖는 연결된 절차호출 메카니즘을 제공하며, 한 고객(클라이언트) 인트페이스를 제공하며, 상기 고객 인터페이스가 상기 트레이더부(80)에 접근할 수 있고, 서버 인터페이스를 제공하고, 상기 서버 인터페이스가 트레이더부(80)에 접근할 수 있으며, 상기 고객 인터페이스를 상기 첫 번째 소프트웨어 모듈(102)내로 삽입시키고, 상기 서버 인터페이스를 상기 두 번째 소프트웨어 모듈(104)내로 삽입시키고, 상기 첫 번째 소프트웨어 모듈(104)을 실행하므로써 고객 인터페이스를 식별 시키고, 상기 식별된 고객 인터페이스로 트레이더부(80)에 접근하므로써 상기 서버 인터페이스를 식별시키며, 그리고 상기 첫 번째 소프트웨어 모듈(102)의 실행중에 상기 식별된 고객 인터페이스 대신에 서버 인터페이스를 사용하고, 이에 의해서 상기 첫 번째와 두 번째 소프트웨어 모듈(102)(104)을 동적으로 결합시키는 단계들을 포함하는 컴퓨터 시스템내에서 소프트웨어 모듈들을 프로그램 실행중 동적으로 결합시키는 방법.
- 제 1 항에 있어서, 한 공동 인터페이스 명세(specification)로부터 상기 고객 인터페이스와 상기 서버 인터페이스를 발생시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
- 제 2 항에 있어서, 한 공동 인터페이스 명세로부터 상기 고객 인터페이스와 서버 인터페이스를 발생시키는 단계가, 오프-라인 스터브 발생도구로, 상기 공동 인터페이스 명세로부터 고객목적(88)과 서버목적(90) 모두를 발생시키며, 상기 오프-라인 스터브 발생도구가 상기 고객목적(88)과 상기 서버목적(90)사이의 조정을 제공하는 단계를 포함함을 특징으로 하는 방법.
- 제 3 항에 있어서, 오프-라인 스터브 발생도구로 상기 공동 인터페이스 명세로부터 고객목적(88)과 서버목적(90) 모두를 발생시키는 단계가 적어도 하나의 고객목적(88)을 담고있는 한 고객파일을 발생시키고, 그리고 적어도 하나의 서버목적(90)을 담고 있는 한 서버파일을 발생시키는 단계를 포함함을 특징으로 하는 방법.
- 제 4 항에 있어서, 적어도 하나의 고객목적(88)을 담고있는 한 고객파일을 발생시키는 단계가 상기 서버목적(90)을 담고있는 상기 발생된 서버파일내 관계한 서버목적(90)과 모순되지 않는 한 고객목적(88)을 담고있는 한 고객파일을 발생시키는 단계를 포함함을 특징으로 하는 방법.
- 제 2 항에 있어서, 객체-중심 인터페이스 설명 언어를 사용하는 상기 공동 인터페이스 명세를 발생시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
- 제 6 항에 있어서, 상기 공동 인터페이스 명세를 발생시키는 단계가 공동 인터페이스 명세를 명명하고, 상기 명명된 공동 인터페이스 명세에 대한 베이스로서 사용된 다른 인터페이스들을 식별하며, 적어도 한 구성자(constructor)를 발생시키고, 상기 구성자가 상기 명명된 공동 인터페이스 명세를 명시하는 목적의 예를 어떻게 발생시키는 가를 설명하며, 그리고 상기 명명된 공동 인터페이스 명세의 기능을 수행하기 위해 적어도 한가지의 방법-명세를 발생시키고, 상기 방법-명세가 방법명칭, 논의, 리턴타입 그리고 예외들을 포함시키는 단계들을 더욱더 포함함을 특징으로 하는 방법.
- 제 6 항에 있어서, 한 객체-중심 인터페이스 설명 언어를 사용하는 공동 인터페이스 명세를 발생시키는 단계가 한 베이스 인터페이스로부터 상기 공동 인터페이스 명세를 발생시키고, 상기 공동 인터페이스 명세가 상기 베이스 인터페이스의 명세 방법을 승계하는 단계를 포함함을 특징으로 하는 방법.
- 제 2 항에 있어서, 한 객체-중심 파라다임을 사용해서 컴퓨터 프로그램 언어-독립방식으로 상기 공동 인터페이스 명세를 발생시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
- 제 9 항에 있어서, 한 고객 인터페이스를 제공하는 단계가 한 고객목적(88)을 제공하고, 상기 고객목적(88)이 상기 트레이더부(80)에 접근할 수 있는 단계를 포함함을 특징으로 하는 방법.
- 제 9 항에 있어서, 상기 서버 인터페이스의 위치를 상기 트레이더부(80)내로 삽입시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
- 제 9 항에 있어서, 한 서버 인터페이스를 제공하는 단계가 한 서버목적(90)을 제공하는 단계를 포함하며, 상기 서버목적(90)이 상기 트레이더부(80)에 접근할 수 있는 단계를 포함함을 특징으로 하는 방법.
- 제 12 항에 있어서, 상기 컴퓨터 시스템내로 세 번째 소프트웨어 모듈을 담고있는 세 번째 소프트웨어에 응용을 적재시키고, 상기 세 번째 소프트웨어 모듈이 상기 두 번째 소프트웨어 모듈(104)내로 삽입된 상기 서버목적(90)과 양립할 수있는 서버목적(90)을 포함하며, 그리고 상기 세 번째 소프트웨어 모듈내에 담긴 서버목적(90)의 위치를 상기 트레이더부(80)내로 삽입시키는 단계를 더욱더 포함함을 특징으로 하는 방법.
- 제 13 항에 있어서, 상기 세 번째 소프트웨어 모듈을 적재하기전에 발생된 처리를 상기 커널(82)로 트레이더부(80)에 접근하므로써 상기 두 번째 소프트웨어 모듈(104)로 향하게 하는 단계를 더욱더 포함함을 특징으로 하는 방법.
- 제 13 항에 있어서, 상기 세 번째 소프트웨어 모듈을 적재시킨뒤에 발생된 처리를 상기 커널(82)로 트레이더부(80)에 접근하므로써 상기 세 번째 소프트웨어 모듈로 향하게 하는 단계를 더욱더 포함함을 특징으로 하는 방법.
- 커널(kernal)(82), 첫 번째와 두 번째 응용 프로그램내에 각각 담긴 첫 번째 소프트 모듈(102) 그리고 두 번째 소프트웨어 모듈(104)을 갖는 컴퓨터 시스템에서 모듈들을 동적으로 결합시키는 장치로서, 한 트레이더부(80)를 갖는 연결된 절차호출 메카니즘을 제공하기 위한 수단, 한 고객(클라이언트) 인터페이스를 제공하며, 상기 고객 인터페이스가 상기 트레이더부(80)에 접근할 수 있기 위한 수단, 서버 인터페이스를 제공하고, 상기 서버 인터페이스가 트레이더부(80)에 접근할 수 있기 위한 수단, 상기 고객 인터페이스를 상기 첫 번째 소프트웨어 모듈(102)내로 삽입시키기 위한 수단, 상기 서버 인터페이스를 상기 두번째 소프트웨어 모듈(104)내로 삽입시키기 위한 수단, 상기 첫 번째 소프트웨어 모듈(104)을 실행하므로써 고객 인터페이스를 식별시키기 위한 수단, 상기 식별된 고객 인터페이스로 트레이더부(80)에 접근하므로써 상기 서버 인터페이스를 식별시키기 위한 수단, 그리고 상기 첫 번째 인터페이스 모듈(102)의 실행중에 상기 식별된 고객 인터페이스 대신에 서버 인터페이스를 사용하고, 이에 의해서 상기 첫 번째와 두 번째 소프트웨어 모듈(102)(104)을 동적으로 결합시키기 위한 수단을 포함하는 컴퓨터 시스템내에서 소프트웨어 모듈들을 프로그램 실행중 동적으로 결합시키는 장치.
- 제 16 항에 있어서, 한 공동 인터페이스 명세(specification)로부터 상기 고객 인터페이스와 상기 서버 인터페이스를 발생시키기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
- 제 17 항에 있어서, 한 공동 인터페이스 명세로부터 상기 고객 인터페이스와 서버 인터페이스를 발생시키기 위한 수단이 오프-라인 스터브 발생도구로, 상기 공동 인터페이스 명세로부터 고객목적(88)과 서버목적(90)모두를 발생시키며, 상기 오프-라인 스터브 발생도구가 상기 고객목적(88)과 상기 서버목적(90) 사이의 조정을 제공하기 위한 수단을 포함함을 특징으로 하는 장치.
- 제 18 항에 있어서, 오프-라인 스터브 발생도구로 상기 공동 인터페이스 명세로부터 고객목적(88)과 서버목적(90) 모두를 발생시키기 위한 수단이 적어도 하나의 고객목적(88)을 담고있는 한 고객파일을 발생시키기 위한 수단, 그리고 적어도 하나의 서버목적(90)을 담고 있는 한 서버파일을 발생시키기 위한 수단을 포함함을 특징으로 하는 장치.
- 제 19 항에 있어서, 적어도 하나의 고객목적(88)을 담고있는 한 고객파일을 발생시키기 위한 수단이 상기 서버목적(90)을 담고있는 상기 발생된 서버파일내 관계한 서버목적(90)과 모순되지 않는 한 고객목적(88)을 담고있는 한 고객파일을 발생시키기 위한 수단을 포함함을 특징으로 하는 장치.
- 제 17 항에 있어서, 객체-중심 인터페이스 설명 언어를 사용하는 상기 공동 인터페이스 명세를 발생시키기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
- 제 21 항에 있어서, 상기 공동 인터페이스 명세를 발생시키기 위한 수단이, 공동 인터페이스 명세를 위한 이름, 상기 명명된 공동 인터페이스 명세에 대한 베이스로서 사용된 다른 인터페이스들을 식별하기 위한 수단, 적어도 한 구성자(construction)를 발생시키고, 상기 구성자가 상기 명명된 공동 인터페이스 명세를 명시하는 목적의 예를 어떻게 발생시키는 가를 설명하기 위한 수단, 그리고 상기 명명된 공동 인터페이스 명세의 기능을 수행하기 위해 적어도 한가지의 방법-명세를 발생시키고, 상기 방법-명세가 방법명칭, 논의, 리턴타입 그리고 예외들을 포함시키기 위한 수단들을 더욱더 포함함을 특징으로 하는 장치.
- 제 21 항에 있어서, 한 객체-중심 인터페이스 설명 언어를 사용하는 공동 인터페이스 명세를 발생시키는 수단이 한 베이스 인터페이스로부터 상기 공동 인터페이스 명세를 발생시키고, 상기 공동 인터페이스 명세가 상기 베이스 인터페이스의 명세 방법을 승계하도록 하는 수단을 포함함을 특징으로 하는 장치.
- 제 17 항에 있어서, 한 객체-중심 파라다임을 사용해서 컴퓨터 프로그램 언어-독립방식으로 상기 공동 인터페이스 명세를 발생시키는 수단을 더욱더 포함함을 특징으로 하는 장치.
- 제 16 항에 있어서, 한 고객 인터페이스를 제공하기 위한 수단이, 한 고객목적(88)을 제공하고, 상기 고객목적(88)이 상기 트레이더부(80)에 접근할 수 있는 수단을 포함함을 특징으로 하는 장치.
- 제 16 항에 있어서, 상기 서버 인터페이스의 위치를 상기 트레이더부(80)내로 삽입시키기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
- 제 16 항에 있어서, 한 서버 인터페이스를 제공하기 위한 수단이 한 서버목적(90)을 제공하기 위한 수단을 포함하며, 상기 서버목적(90)이 상기 트레이더부(80)에 접근할 수 있음을 특징으로 하는 장치.
- 제 27 항에 있어서, 상기 컴퓨터 시스템내로 세 번째 소프트웨어 모듈을 담고 있는 세 번째 소프트웨어 응용을 적재시키고, 상기 세 번째 소프트웨어 모듈이 상기 두 번째 소프트웨어 모듈(104)내로 삽입된 상기 서버목적(90)과 양립할 수 있는 서버목적(90)을 포함하기 위한 수단, 그리고 상기 세 번째 소프트웨어 모듈내에 담긴 서버목적(90)의 위치를 상기 트레이더부(80)내로 삽입시키기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
- 제 28 항에 있어서, 상기 세 번째 소프트웨어 모듈을 적재하기전에 발생된 처리를 상기 커널(82)의 트레이더부(80)에 접근하므로써 상기 두 번째 소프트웨어 모듈(104)로 향하게 하기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
- 제 28 항에 있어서, 상기 세번째 소프트웨어 모듈을 적재시킨뒤에 발생된 처리를 상기 커널(82)로 트레이더부(80)에 접근하므로써 상기 세 번째 소프트웨어 모듈로 향하게 하기 위한 수단을 더욱더 포함함을 특징으로 하는 장치.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01307825A (ja) * | 1988-06-06 | 1989-12-12 | Nec Corp | インターフェイスモジュールを介する動的リンク実行方式 |
Family Cites Families (14)
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 |
-
1992
- 1992-07-01 US US07/907,307 patent/US5339430A/en not_active Expired - Lifetime
-
1993
- 1993-05-11 DK DK93915034T patent/DK0648352T3/da active
- 1993-05-11 KR KR1019940704822A patent/KR100303548B1/ko not_active IP Right Cessation
- 1993-05-11 AU AU45163/93A patent/AU664813B2/en not_active Expired
- 1993-05-11 WO PCT/SE1993/000416 patent/WO1994001818A1/en active IP Right Grant
- 1993-05-11 BR BR9306652A patent/BR9306652A/pt not_active IP Right Cessation
- 1993-05-11 DE DE69327243T patent/DE69327243T2/de not_active Expired - Lifetime
- 1993-05-11 EP EP93915034A patent/EP0648352B1/en not_active Expired - Lifetime
- 1993-05-11 ES ES93915034T patent/ES2139663T3/es not_active Expired - Lifetime
- 1993-05-26 CN CN93106449A patent/CN1047450C/zh not_active Expired - Lifetime
- 1993-06-23 MX MX9303777A patent/MX9303777A/es unknown
-
1994
- 1994-12-27 NO NO19945053A patent/NO311387B1/no not_active IP Right Cessation
- 1994-12-30 FI FI946193A patent/FI946193A0/fi unknown
-
2000
- 2000-01-27 GR GR20000400192T patent/GR3032498T3/el not_active IP Right Cessation
Patent Citations (1)
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 |