KR19990037397A - 외부 인터페이스를 갖는 프로그램 목적들 및 프로그램 구성요소들의 시스템 - Google Patents

외부 인터페이스를 갖는 프로그램 목적들 및 프로그램 구성요소들의 시스템 Download PDF

Info

Publication number
KR19990037397A
KR19990037397A KR1019980044945A KR19980044945A KR19990037397A KR 19990037397 A KR19990037397 A KR 19990037397A KR 1019980044945 A KR1019980044945 A KR 1019980044945A KR 19980044945 A KR19980044945 A KR 19980044945A KR 19990037397 A KR19990037397 A KR 19990037397A
Authority
KR
South Korea
Prior art keywords
program
functions
external interface
component
program component
Prior art date
Application number
KR1019980044945A
Other languages
English (en)
Other versions
KR100620765B1 (ko
Inventor
톰 프란스 모리츠 호스틴
Original Assignee
소니 유로파 비. 브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 유로파 비. 브이. filed Critical 소니 유로파 비. 브이.
Publication of KR19990037397A publication Critical patent/KR19990037397A/ko
Application granted granted Critical
Publication of KR100620765B1 publication Critical patent/KR100620765B1/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

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)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 프로그램 목적들 및 프로그램 구성요소들 그리고 프로그램 목적들 및 프로그램 구성요소들간 통신의 시스템에 관한 것이다. 본 발명은 프로그램 구성요소를 프로그램 구성요소 및 상이한 프로그램 목적들간 통신을 통과하는 메시지를 인에이블시키는 외부 또는 전송 인터페이스를 제공한다. 프로그램 구성요소는 로드될 때, 프로그램 구성요소의 전송 인터페이스가 주 목적의 전송 인터페이스에 자동적으로 전달된다. 이것은 그 목적의 전송 인터페이스가 상기 프로그램 구성요소의 전송 인터페이스를 포함하도록 변경된다는 것을 의미한다. 그러므로, 프로그램 목적 및 다른 프로그램 목적들의 프로그램 구성요소들간에 통과하는 메시지에 의하여 통신하는 것이 가능하다.

Description

외부 인터페이스를 갖는 프로그램 목적들 및 프로그램 구성요소들의 시스템
본 발명은 프로그램 목적들 및 프로그램 요소들 및 프로그램 목적들 및 프로그램 요소들간의 통신의 시스템에 관한 것이며, 이 시스템을 이용한 장치에 관한 것이다.
최근 새로운 소프트웨어 기술, 소위 목적 방향성 기술이 개발되고 있다. 목적 방향성이라는 단어는 소프트웨어가 불연속 모듈 또는 프로그램 목적의 한 세트로써 조직된다는 것을 의미하고, 데이터 구조 및 움직임(동작들) 예컨대 일련의 실행들 모두로 구성한다. 이것은 종래 프로그래밍 기술과 반대되고, 그 내부에서 데이터 구조 및 움직임은 단지 느슨하게 연결된다.
프로그램 목적은 그 자체 시스템 자원 실행과 스레드들(threads)의 그 자체 스레드와의 전체 실행 시간이다. 동일한 데이터 구조 및 움직임(동작들)을 갖는 프로그램 목적은 클래스(class)로 분류하여 그룹되는 것이다. 각각의 목적은 어떤 클래스의 예이다. 그 상태가 예를들어 다른 목적들과 같이 외부로부터 숨겨져 있는 동안, 그 동작들은 목적이 응답할 수 있는 메시지를 결정한다. 목적의 내부 상태를 나타내는 변수들은 실예 변수들로 불리우며 그 동작들은 방법들로 불리운다.
각 프로그램 목적은 그 목적이 억세스될 수 있는 메모리 영역들과 같은 목적의 성질들을 기술하고 그 목적 코드를 실행하도록 스레드하는 실행 공간을 가지며, 그 목적의 실행 시간 환경이다. 프로그램 목적들 사이의 통신은 메시지 통과에 의해 일어난다. 출원인은 비공개된 일본 출원 평 9-092446에서 메시지 통과 형태가 기술된다. 각 목적을 통과하는 메시지를 실행하는 것은 역시 전송 인터페이스라 부르는 외부 인터페이스를 가지며, 메시지의 수신을 준비하며 그것으로 그 상응하는 프로그램 목적의 상이한 방법들이 실시 가능하게 된다.
프로그램 목적의 실행 공간에서 하나 또는 그 이상의 프로그램 구성요소의 형태내에 공유된 라이브러리가 로드될 수 있다. 프로그램 구성요소는 목적에 대해 공유된 라이브러리 수행이 이러한 점에서 행해진다. 만일 프로그램 구성요소가 이러한 목적의 실행 공간내에 위치된다면 프로그램 구성요소는 목적내에서 로드된다. 프로그램 구성요소가 정리된 기능 리스트인 내부 인터페이스를 제공하며, 상기 프로그램 구성요소에 의해 수행된 방법들을 제공하고, 어떠한 기능 또는 목적 방법으로 불릴 수 있다.
에릭슨 씨.(Erickson C.) 등에 의한 논설에서: "섬오브젝트 디벨로퍼 툴키트(SOMOBJECTS DEVELOPER TOOLKIT): 디섬을 갖는 섬 오브젝트 공유(SHARING SOM OBJECTS WITH DSOM)" OS/2 DEVELOPER, 6권, 제 1 호, 1994년 1월, 공유된 라이브러리의 표준 수행인 다이나믹 링크 라이브러리(DLL)가 다이나믹하게 로드하는 것이 발표되었다. DLL이 DDL 및 상이한 프로그램 목적들간에 통신을 통과하는 메시지를 인에이블시키는 외부 또는 전송 인터페이스로 제공된다.
그러나, 상기 DDL은 주어진 고정된 외부 인터페이스, 즉, 프로그램 목적의 외부 인터페이스를 실행하는데 단지 사용되며, 상기 프로그램 목적의 외부 인터페이스는 DDL을 로딩함으로써 변화되지 않은 채로 남는다.
본 발명의 일면에 따르면, 시스템은 다음과 같이 구성되어 제공된다.
하나 또는 그 이상의 기능들을 갖는 프로그램 목적;
다른 프로그램 목적들과의 통신을 위한 기능들의 서술을 갖는 외부 인터페이스를 구비하며,
프로그램 구성요소의 로딩과 동시에 프로그램 구성요소의 하나 또는 그 이상의 기능들의 서술이 상기 프로그램 목적의 외부 인터페이스에 전달된다.
프로그램 구성요소가 로딩될 때, 상기 프로그램 구성요소의 전송 인터페이스는 주 목적의 전송 인터페이스에 자동적으로 전달된다. 이것은 목적의 전송 인터페이스가 상기 프로그램 구성요소의 전송 인터페이스를 포함하도록 변경된다. 그러므로, 프로그램 목적 및 다른 프로그램 목적들의 프로그램 구성요소들간에 통과하는 메시지에 의해 통신하는 것이 가능하다. 전송 인터페이스의 내용 및 프로그램 구성요소의 내부 인터페이스의 내용간에는 관계가 없다. 프로그램 구성요소의 방법은 둘중 하나, 두 개 모두 또는 모두 아닌 것으로 나타난다.
적절한 실시예에 따르면, 시스템은, 부가적인 프로그램 구성요소의 로딩과 동시에 부가적인 프로그램 구성요소의 하나 또는 그 이상의 기능들의 서술이 다른 프로그램 목적들과 통신을 위한 프로그램 목적의 외부 인터페이스에 부가되도록 제공된다.
적절한 실시예에 따르면, 시스템은, 프로그램 구성요소를 제거함과 동시에 프로그램 목적의 외부 인터페이스내 프로그램 구성요소의 서술이 외부 인터페이스로부터 제거되도록 제공된다.
본 발명의 더 나은 적절한 실시예에 따르면, 시스템은, 제 1 프로그램 구성요소를 제 2 프로그램 구성요소로 대체함과 동시에, 제 1 프로그램 구성요소의 하나 또는 그 이상의 기능들의 외부 인터페이스내 서술이 제 2 프로그램 구성요소의 하나 또는 그 이상의 기능들의 서술로 대체되도록 제공된다.
더 나은 적절한 실시예에 따르면, 시스템은, 프로그램 구성요소들이 실행 시간에서 다이나믹하게 로드되도록 제공된다.
본 발명은 외부 인터페이스로 프로그램 구성요소들의 다이나믹 로딩을 제공한다. 전송 인터페이스로 프로그램 구성요소를 로딩하는 것은 주 목적에 이러한 인터페이스를 부가하기 때문에, 그리고 프로그램 구성요소들이 다이나믹하게 프로그램 구성요소들로 부가될 수 있거나 또는 대체될 수 있기 때문에, 주 목적들의 인터페이스는 시간 초과하여 전개할 수 있다. 목적의 인터페이스는 하나의 프로그램 구성요소가 제거될 때와 같이 축소할 수 있으며, 또는 새로운 프로그램 구성요소가 확장된 인터페이스와 연결될 때와 같이(또는 구 프로그램 구성요소가 대체될 때와 같이) 성장할 수 있다.
새로운 실행이 예컨대 버그 픽스(bug fix)를 수행하기 위하여 필요로 될 때, 수행 전개는 이용될 수 있다. 이것은 단순히 다이나믹 연결된 프로그램 구성요소를 제거함으로써 그리고 그것을 상이한 방법으로 동일한 기능을 수행하는 상이한 프로그램 구성요소로 대체함으로써 운영될 수 있다.
프로그램 구성요소는 내부 또는 전송 인터페이스를 제공할 수 있거나 또는 제공할 수 없다. 만일 프로그램 구성요소가 전송 인터페이스를 제공하지 않는다면, 기능 콜(call)을 통하여 단지 불러낼 수 있다. 이 경우에, 그것은 단지 동일한 실행 공간내로부터 불러낼 수 있다. 유사하게, 만일 프로그램 구성요소가 단지 전송 인터페이스만을 제공한다면, 그것은 메시지 통과 메카니즘들을 통하여 다른 목적들에 의해서만 단지 접근하기 쉽다.
종래 기술의 고-레벨 프로그램들은 일반적으로 컴파일러(compiler)에 의해 실행할 수 있는 2진수 코드로 번역될 수 있다. 편집의 마지막 단계에서, 연결 편집기는 프로그램내에 인용된 스타트-업(start-up) 코드들 및 라이브러리 기능들과 함께 실행할 수 있는 모든 목적 파일들을 연결한다. 정적 연결(static link)에서, 그 연결 편집기는 목적 파일들의 복사를 링크 시간에서 실행가능한 파일에 병합시킨다. 정적 라이브러리는 라이브러리 루틴들 및 데이터를 포함하는 목적 파일들의 집합이다. 다이나믹 연결에서, 공유된 라이브러리들은 실행 시간에서 맵(map)된다. 연결 편집기는 단지 실행가능한 파일에서 공유된 라이브러리의 이름을 저장하며 상기 실행가능한 파일에 의해 인용된 심볼들에 관한 약간의 부가적인 정보를 저장한다. 다이나믹 로딩과 동시에 루틴은 사용되지 않거나 또는 드물게 사용되는 루틴들을 로딩하지 않음에 의해 메모리를 저장함으로써 루틴이 불려질 때만 로드된다. 더욱 특히, 다이나믹 로딩은 공유된 라이브러리가 실행동안 상기 처리의 어드레스 공간으로 접근할 수 있으며, 라이브러리내 기능 어드레스를 룩업(look up)할 수 있고, 기능을 활성화시킬 수 있으며, 그리고 나서 그것이 더 이상 필요치 않을 때, 공유된 라이브러리를 떼어내는, 예컨대 기능을 메모리로부터 제거한다.
본 발명의 다른 면에 따르면, 장치는,
데이터를 일시적으로 저장하기 위한 메모리 수단;
데이터를 처리하기 위한 처리 수단; 및
상기 메모리 수단 및 처리 수단간의 연결을 위한 연결 수단을 구비하며,
전술한 시스템이 사용되는 것을 제공한다.
본 발명의 또다른 면에 따르면, 방법은,
다른 프로그램 목적들과 통신을 위하여, 상기 프로그램 목적의 하나 또는 그 이상의 기능들의 서술을 포함하는 외부 인터페이스를 갖는 프로그램 목적을 제공하는 단계;
하나 또는 그 이상의 기능들을 갖는 프로그램 구성요소를 로딩하는 단계;
상기 로드된 프로그램 구성요소의 하나 또는 그 이상의 기능들의 서술을 상기 프로그램 목적의 외부 인터페이스로 전달하는 단계를 구비하는 것을 제공한다.
도 1은 프로그램 목적 및 로드된 프로그램 구성요소를 갖는 실행 공간을 개략적으로 보여주는 도면.
도 2는 외부 인터페이스에 공급되는 프로그램 목적 및 프로그램 구성요소의 실행 공간을 개략적으로 보여주는 도면.
도 3은 부가적인 프로그램 구성요소가 프로그램 목적의 외부 인터페이스에 부가되어지는, 도 2의 실행 공간을 보여주는 도면.
도 4는 프로그램 구성요소가 상이한 프로그램 구성요소에 의해 대체되어지는, 도 3의 실행 공간을 보여주는 도면.
도 5는 본 발명의 시스템이 수행되는, 비디오 카세트 레코더(VCR)의 일례를 보이는 도면.
도 6은 도 5의 VCR의 실행 공간을 개략적으로 보이는 도면.
도 7은 VCR의 실행 공간을 개략적으로 보이는 도면.
* 도면의 주요부분에 대한 부호의 설명 *
compa,compb,compc : 프로그램 구성요소 3 : 외부 인터페이스
4 : 내부 인터페이스 10 : VCR 기록/재생 유닛
13 : 랜덤 억세스 메모리 14 : 리드 온리 메모리
도 1에서는 프로그램 목적의 실행 공간을 보인다. 실행 공간(1)내에서 목적 A는 3개의 방법들, 방법 1(m1), 방법 2(m2) 및 방법 3(m3)을 구성한다. 실행 공간 1에서는 프로그램 구성요소(compa)가 로드되며, 2개의 방법들, 방법 4(m4) 및 방법 5(m5)를 포함한다. 프로그램 구성요소(compa)의 내부 인터페이스(2)가 원으로 보여진다. 목적 A의 방법(m1)은 목적 A의 방법(m2)를 부른다. 목적 A의 방법(m2)은 프로그램 구성요소의 내부 인터페이스 방법(m4)을 경유하여 부른다. 프로그램 구성요소(compa)의 방법(m4)은 방법(m5)을 부른다. 방법(m5)은 프로그램 구성요소(compa)의 내부 인터페이스(2)내에서 구성되지 않으며 그러므로 이러한 방법은 단지 프로그램 구성요소(compa)로부터 불러내어질 수 있으며 프로그램 목적 A 그 자체로부터 불러내어지지 않는다.
내부 인터페이스(2)는 목적 A 및 구성요소(compa) 사이의 통신을 위한 유일하게 지지된 방식이다. 프로그램 목적 코드는 내부 인터페이스를 갖지 않기 때문에, 상기 목적은 프로그램 구성요소(compa)로부터 불려질 수 없다. 프로그램 구성요소(compa)의 방법(m4)은 예컨대 목적 A의 방법(m1) 또는 방법(m2)을 부를 수 없다.
도 2에서는 실행 공간(1)의 부가적인 외부 인터페이스(3)가 직사각형으로 표시되는, 도 1의 상태를 보인다. 다른 실행 공간들로부터 프로그램 목적들은 이러한 외부 인터페이스(3)로 목적 A의 실행 공간과 통신할 수 있다. 외부 인터페이스(3)를 경유하여 접근하기 쉬운 프로그램 목적 A의 방법들이 화살표로 보여진다. 이러한 예에서 프로그램 목적 A의 방법(m1) 및 방법(m3)은 현재 실행 공간(1) 바깥쪽에 있는 다른 목적들에 의해 접근하기 쉽다. 남아 있는 방법들이 단지 목적 A로부터 그리고/또는 구성요소(compa)로부터 단지 불러내어진다.
프로그램의 실행 동안에 새로운 프로그램 구성요소들이 다이나믹 로딩에 의해 실행 공간내에서 로드될 수 있다. 도 3에서 프로그램 요소(compb)는 로드된다. 프로그램 구성요소(compb)의 외부 인터페이스는 주 목적 이러한 경우 프로그램 목적 A의 외부 인터페이스로 자동적으로 전달된다. 이것은 실행 공간의 외부 인터페이스(3)가 프로그램 구성요소(compb)의 인터페이스(3)을 구성하도록 적용되는 것을 의미하며, 외부 인터페이스를 경유하여 불러내어질 수 있는 방법들의 숫자가 2개에서 3개의 방법들로 증가한다. 프로그램 구성요소(compb)의 방법(m6)은 프로그램 목적 A에 의한 내부 인터페이스(4)를 경유하여 기능 콜에 의해 불러내어질 수 있으며 상기 프로그램의 남아있는 목적들에 의한 외부 인터페이스(3)을 경유하여 메시지 통과에 의해 활성화 될 수 있다.
프로그램 구성요소(compb)를 그 프로그램의 실행동안 프로그램 구성요소(compc)로 대체하는 것도 가능하다. 이것은 도 4에서 직접적으로 보인다. 이것은 목적 A의 수행이 실행동안 전개되는 것을 의미한다. 이 때문에 예를들면 새로운 기능성들을 부가하는 것이 가능하며, 어떤 프로그램 요소들 등등내에서 버그들(bugs)을 프로그램의 실행 방해 없이 삭제하는 것이 가능하며 또는 처리 유닛을 재시작하도록 하는 것이 가능하고, 그 위에서 상기 프로그램을 실행한다.
비디오 카세트의 비디오 테이프상에 기록/재생 신호들에 대한 비디오 카세트 레코더(VCR-장치)를 도 5에서 보인다. VCR-장치는 비디오 테이프를 이용한 기록/재생 데이터의 기능성을 가지는 기록/재생 유닛(10)을 갖는다. 모터 드라이버(11)는 비디오 카세트의 비디오 테이프를 구동하는데, 예를들면 "플레이(play)", "빠른 감기(fast forward)", "되감기(rewind)", "녹음(record)" 및 "정지(stop)"과 같은 기능들이 수행된다. VCR 기록/재생 유닛(10)에 의해 비디오 카세트상에 기록/재생된 데이터는 중앙처리장치(12)로 보내지거나 또는 수신된다. 또한 그 내부의 프로그램을 저장하기 위하여 랜덤 억세스 메모리(RAM)(13) 및 리드 온리 메모리(ROM)(14)가 제공된다.
IC-카드 드라이브(15)는 카드 형태의 케이싱내에 집적회로를 가지는 기록 매체로서의 IC-카드에 삽입될 수 있는 슬롯(slot)을 가지며 IC-카드로부터 또는 그 상에 쓰기/읽기 데이터에 대한 IC-카드 드라이빙 유닛을 가진다. 다른 방법으로 플로피 디스크 드라이브(16)는 플로피 디스크로부터 또는 그 상에 기록/재생 데이터에 대한 헤드 유닛 및 플로피 디스크를 회전적으로 드라이빙하기 위한 회전 드라이빙 유닛이 포함될수도 있다. IC-카드 드라이브(15) 또는 플로피 디스크 드라이브(16)는 데이터 기록 및 응용 소프트웨어의 설치를 처리한다. 또한 데이터의 입력/출력을 위한 시리얼 포트(17) 및 모뎀(18)이 제공된다. 구성요소들(10 내지 18)간에 통신을 위하여 연결들(19)이 제공된다.
VCR은 보통의 VCR-기능들에 부가하여 부가 응용 기능들을 수신하도록 설계된다. 예를들면, 만일 유저가 응용 소프트웨어의 버전을 업그레이드하려고 한다면, 즉 예를들면 VCR-장치에 새로운 기능들을 부가하도록 하려면, 부가 기능 유닛들은 IC-카드 드라이브(15)를 경유하여 설치될 수 있다. 또한 모뎀(18) 및 시리얼 포트(17)를 경유하여 부가 응용 소프트웨어를 다운로드하도록 인터넷을 이용하는 것이 가능하다. 이것은 유저가 VCR-장치를 환매하지 않고 장치 기능을 업그레이드하도록 허용한다.
도 6에서는 VCR의 플레이, 되감기, 빠른 감기 및 정지 기능을 조작하기 위한 실행 공간을 보인다. 목적 "VCR"은 플레이, 되감기, 빠른 감기 및 정지 기능을 수행하기 위한 4개의 방법들 (플레이), (되감기), (정지)을 포함한다. 이들 방법들은 각각 비디오 카세트를 플레이하고, 비디오 카세트를 되감고, 비디오 카세트를 감고 비디오 카세트를 정지시키는 동작을 수행한다. 상기 동작 중 하나는 에컨대 비디오 테이프를 구동하는 모터 드라이버(11)의 제어이다. 이것은 더한 처리 예컨대 소정의 속도를 갖는 VCR 스핀의 전기 모터를 가짐으로써 이러한 인터페이스를 경유하여 프로그램 구성요소(compmd)를 불러냄으로써 성취할 수 있다. 목적 "VCR"의 외부 인터페이스를 갖는 메시지 통과를 경유하여, 예컨대 VCR의 리모트 제어 또는 VCR 그 자체상에서 플레이, 되감기, 빠른 감기 또는 정지 버튼들을 누르므로써, 목적 "VCR"의 관련된 방법이 초기화된다.
예컨대 모뎀(18) 및 시리얼 포트(17)를 갖는 외부 데이터 연결 또는 IC-카드에 의해 새로운 프로그램들이 VCR의 랜덤 억세스 메모리(13)로 로드될 수 있다. 도 7에서 예컨대 프로그램 구성요소(compsp)는 VCR의 이미 실행된 기능들로 기능 "느린 플레이(slow play)"를 부가하는 것을 덧붙히고 있다. 이러한 프로그램 구성요소(compsp)는 외부 인터페이스(20)를 가지며, 목적 "VCR"의 실행 공간내에서 로드됨과 동시에 프로그램 목적 "VCR"의 외부 인터페이스(20)에 부가된다. 여기서 부가 기능, 이러한 경우에 기능 "느린 플레이"가 실현되고 있으며, 프로그램 목적의 외부 인터페이스를 갖는 메시지 통과로 가동시킨다. 이것은 VCR 상에 프로그램들의 실행 시간동안에 그리고 VCR의 재시작 또는 초기화 없이 새로운 기능을 비디오 레코더(VCR)에 부가하는 것이 가능한 것을 의미한다.

Claims (15)

  1. 시스템에 있어서,
    하나 또는 그 이상의 기능들을 갖는 프로그램 목적;
    다른 프로그램 목적들과의 통신을 위한 기능들의 서술을 갖는 외부 인터페이스를 구비하며,
    프로그램 구성요소의 로딩과 동시에 프로그램 구성요소의 하나 또는 그 이상의 기능들의 서술이 상기 프로그램 목적의 외부 인터페이스에 전달되는 시스템.
  2. 제 1 항에 있어서,
    부가적인 프로그램 구성요소의 로딩과 동시에 부가적인 프로그램 구성요소의 하나 또는 그 이상의 기능들의 서술이 다른 프로그램 목적들과의 통신을 위한 상기 프로그램 목적의 외부 인터페이스에 부가되는 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 프로그램 구성요소를 제거함과 동시에 상기 프로그램 목적의 외부 인터페이스에서 상기 프로그램 구성요소의 서술이 상기 외부 인터페이스로부터 제거되는 시스템.
  4. 제 1, 2 또는 3 항중 어느 한 항에 있어서,
    제 1 프로그램 구성요소를 제 2 프로그램 구성요소로 대체함과 동시에, 상기 제 1 프로그램 구성요소의 하나 또는 그 이상의 기능들의 외부 인터페이스내에서 상기 서술이 상기 제 2 프로그램 구성요소의 하나 또는 그 이상의 기능들의 서술로 대체되는 시스템.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    프로그램 구성요소들은 실행시에서 다이나믹하게 로드되는 시스템.
  6. 시스템에 있어서,
    하나 또는 그 이상의 기능들을 갖는 프로그램 목적;
    다른 프로그램 목적들과 통신을 위한 상기 프로그램 목적의 기능들의 서술을 갖는 외부 인터페이스; 및
    하나 또는 그 이상의 기능들을 갖는 적어도 하나의 프로그램 구성요소를 구비하며,
    각 프로그램 구성요소에 대하여 상기 기능들의 서술이 상기 프로그램 목적의 외부 인터페이스에 부가되는 시스템.
  7. 선행하는 청구항들 중 어느 항에 있어서,
    프로그램 목적내 기능들이 상호 접근하기 쉬운 시스템.
  8. 선행하는 청구항들 중 어느 항에 있어서,
    프로그램 구성요소내 기능들이 상호 접근하기 쉬운 시스템.
  9. 선행하는 청구항들 중 어느 항에 있어서,
    프로그램 구성요소는 상기 대응하는 프로그램 목적에 의해 접근하기 쉬운 상기 프로그램 구성요소의 기능들의 서술을 갖는 내부 인터페이스를 구비하는 시스템.
  10. 선행하는 청구항들 중 어느 항에 있어서,
    프로그램 구성요소의 기능들은 다른 프로그램 목적들에 의해 상기 외부 인터페이스를 경유하여 접근하기 쉬운 시스템.
  11. 선행하는 청구항들 중 어느 항에 있어서,
    상기 외부 인터페이스를 경유한 통신이 메시지 통과에 의해 일어나는 시스템.
  12. 장치에 있어서,
    데이터를 일시적으로 저장하기 위한 메모리 수단;
    데이터를 처리하기 위한 처리 수단; 및
    상기 메모리 수단 및 처리 수단간의 연결을 위한 연결 수단을 구비하며,
    청구항 제 1 항 내지 제 11 항 중 어느 항에 따른 시스템이 사용되는 장치.
  13. 제 12 항에 있어서,
    상기 대응하는 프로그램 목적의 실행과 동시에 프로그램 구성요소는 상기 메모리 수단으로 전송되는 장치.
  14. 제 12 항 또는 제 13 항에 있어서,
    프로그램 구성요소는 그의 실행후에 상기 메모리 수단으로부터 직접적으로 제거되는 장치.
  15. 프로그램 목적들 및/또는 프로그램 구성요소들간에 통신을 위한 방법에 있어서,
    다른 프로그램 목적들과 통신을 위하여, 상기 프로그램 목적의 하나 또는 그 이상의 기능들의 서술을 포함하는 외부 인터페이스를 갖는 프로그램 목적을 제공하는 단계;
    하나 또는 그 이상의 기능들을 갖는 프로그램 구성요소를 로딩하는 단계;
    상기 로드된 프로그램 구성요소의 하나 또는 그 이상의 기능들의 서술을 상기 프로그램 목적의 외부 인터페이스로 전달하는 단계를 구비하는 프로그램 목적들 및/또는 프로그램 구성요소들간에 통신을 위한 방법.
KR1019980044945A 1997-10-27 1998-10-27 외부인터페이스를갖는프로그램오브젝트들및프로그램구성요소들의시스템 KR100620765B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP97203323A EP0911730B1 (en) 1997-10-27 1997-10-27 System of program objects and program components with external interface
EP97203323.7 1997-10-27

Publications (2)

Publication Number Publication Date
KR19990037397A true KR19990037397A (ko) 1999-05-25
KR100620765B1 KR100620765B1 (ko) 2006-12-01

Family

ID=8228864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980044945A KR100620765B1 (ko) 1997-10-27 1998-10-27 외부인터페이스를갖는프로그램오브젝트들및프로그램구성요소들의시스템

Country Status (10)

Country Link
US (1) US6675231B1 (ko)
EP (1) EP0911730B1 (ko)
JP (1) JPH11203138A (ko)
KR (1) KR100620765B1 (ko)
CN (1) CN1226060A (ko)
AT (1) ATE265062T1 (ko)
CA (1) CA2250676C (ko)
DE (1) DE69728766T2 (ko)
SG (1) SG87775A1 (ko)
TW (1) TW494362B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1192539B1 (en) 1999-06-11 2003-04-16 BRITISH TELECOMMUNICATIONS public limited company Communication between software elements
JP4794331B2 (ja) * 2006-03-15 2011-10-19 株式会社日立ソリューションズ 任意アプリケーションによる外部記憶装置への情報持ち出し制御方法
KR101059658B1 (ko) * 2010-07-01 2011-08-25 엔에이치엔(주) 개발자 인터페이스 제공 방법 및 시스템
US9594910B2 (en) 2014-03-28 2017-03-14 Intel Corporation In-system provisioning of firmware for a hardware platform

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5126843A (en) 1989-03-10 1992-06-30 Sony Corporation Interpolation signal producing circuit with improved amplitude interpolation
US5805885A (en) * 1992-12-24 1998-09-08 Microsoft Corporation Method and system for aggregating objects
FI93071C (fi) 1993-02-08 1995-02-10 Nokia Technology Gmbh Menetelmä ja kytkentäjärjestely lomitellun videosignaalin muuttamiseksi lomittelemattomaksi tai sen kenttätaajuuden kaksinkertaistamiseksi
KR970009469B1 (ko) 1993-06-05 1997-06-13 삼성전자 주식회사 더블스무딩(Double Smoothing) 기능을 갖는 비월/순차주사변환장치 및 그 방법
JPH0981486A (ja) * 1994-11-17 1997-03-28 Texas Instr Inc <Ti> ソフトウェア・アプリケーション・プログラム間の共通の通信インターフェースを与えるオブジェクト指向型方法及び装置
JPH096605A (ja) * 1995-06-23 1997-01-10 Hitachi Ltd 機能オブジェクト間通信装置
US5959536A (en) * 1996-10-15 1999-09-28 Philips Electronics North America Corporation Task-driven distributed multimedia consumer system

Also Published As

Publication number Publication date
SG87775A1 (en) 2002-04-16
DE69728766D1 (de) 2004-05-27
CA2250676C (en) 2005-04-12
CN1226060A (zh) 1999-08-18
TW494362B (en) 2002-07-11
EP0911730A1 (en) 1999-04-28
CA2250676A1 (en) 1999-04-27
ATE265062T1 (de) 2004-05-15
DE69728766T2 (de) 2005-03-31
JPH11203138A (ja) 1999-07-30
EP0911730B1 (en) 2004-04-21
KR100620765B1 (ko) 2006-12-01
US6675231B1 (en) 2004-01-06

Similar Documents

Publication Publication Date Title
US7181610B2 (en) Method and system to encapsulate a driver written for an operating system (OS) runtime environment in an OS independent environment firmware extension
US6918106B1 (en) Method and apparatus for collocating dynamically loaded program files
US5950000A (en) Integrated of a third party software tool
US6138175A (en) System for dynamically optimizing DVD navigational commands by combining a first and a second navigational commands retrieved from a medium for playback
JP2004530184A (ja) 共有ライブラリを使用して実行可能ファイルを管理する方法とシステム
US7203868B1 (en) Dynamic monitoring of resources using snapshots of system states
CN101751273A (zh) 用于嵌入式系统的安全引导装置及方法
US20090249311A1 (en) Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment
CN115658160B (zh) 基于多核异构soc的多操作系统升级方法、装置及系统
US20030182460A1 (en) Managed code modules dynamically invoking unmanaged code modules at arbitrary locations
US6925522B2 (en) Device and method capable of changing codes of micro-controller
KR100620765B1 (ko) 외부인터페이스를갖는프로그램오브젝트들및프로그램구성요소들의시스템
US20010029568A1 (en) Apparatus and method for preserving a region code for an optical disk drive
US6708334B1 (en) DVD navigation system with multiple threads
US20130275688A1 (en) Data processing device and method
US5542079A (en) Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage
CN114721735B (zh) 一种程序动态加载方法、装置及电子设备
KR100359200B1 (ko) 펌웨어 운용방법
CN106897588B (zh) 一种标签函数的处理方法及装置
US6785806B1 (en) Bios having macro/effector pairs for hardware initialization
CN115344313B (zh) 安卓系统分区的挂载方法、电子设备和机器可读存储介质
CN113032045B (zh) 应用程序的启动方法以及相关装置、设备
Wootton et al. General Purpose Input/Output (GPIO)
JP2007226788A (ja) 仮想マシン環境におけるメソッド呼び出し方法、および前記方法を行う仮想マシンが搭載されたシステム
CN118312204A (zh) 一种项目打包方法、装置、设备及存储介质

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20120820

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee