KR20010072982A - 애플리케이션들을 로딩하기 위한 컴퓨터 시스템 및 방법 - Google Patents

애플리케이션들을 로딩하기 위한 컴퓨터 시스템 및 방법 Download PDF

Info

Publication number
KR20010072982A
KR20010072982A KR1020017002430A KR20017002430A KR20010072982A KR 20010072982 A KR20010072982 A KR 20010072982A KR 1020017002430 A KR1020017002430 A KR 1020017002430A KR 20017002430 A KR20017002430 A KR 20017002430A KR 20010072982 A KR20010072982 A KR 20010072982A
Authority
KR
South Korea
Prior art keywords
application
mheg
loaded
class
applications
Prior art date
Application number
KR1020017002430A
Other languages
English (en)
Inventor
모리스스티븐
Original Assignee
요트.게.아. 롤페즈
코닌클리케 필립스 일렉트로닉스 엔.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 요트.게.아. 롤페즈, 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 요트.게.아. 롤페즈
Publication of KR20010072982A publication Critical patent/KR20010072982A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)

Abstract

애플리케이션을 로딩하는 단계와, 애플리케이션에 의해 요구된 각각의 객체의 클래스 타입을 결정하는 단계와, 상기 애플리케이션에 의해 요구된, 많은 관련 기능들을 포함하는 클래스 타입(들)을 로딩하는 단계와, 각각의 클래스와 함께 로딩된 관련 기능들을 결정하는 단계와, 애플리케이션에 의해 사용되는 관련 기능들을 결정하는 단계와, 애플리케이션에 의해 요구되지 않고 로딩된 관련 기능들을 메모리로부터 제거하는 단계를 포함하는 객체-지향 애플리케이션을 로딩하기 위한 방법 및 시스템.

Description

애플리케이션들을 로딩하기 위한 컴퓨터 시스템 및 방법{Computer system and method for loading applications}
본래, 멀티미디어는 월드 와이드 웹(World Wide Web)의 여러 환경 중 하나일 뿐이었다. 그것은 바깥 세상과의 대화(interaction)를 위해 또는 기술 콘텐트의 프리젠테이션을 위한 지원 기술로서 의미되지 않았다. 자바(Java)(선 마이크로시스템즈 주식회사 제품) 및 액티브 엑스(ActiveX)와 같은 기술의 출현은 멀티미디어의 기능성(functionality)을 증가시켰고, 차례로, 이들 이외의 월드 와이드 웹은 월드 와이드 웹으로 메모리 및 CPU 자원 기근 활동(resource hungry activity)을 억세스하게 되었다. 월드 와이드 웹을 억세스하기 위한 저가의 도표식 터미널들을 생산하려는 요구에서, MHEG(Multimedia and Hypermedia Experts Group) 표준은 키오스크 정보 시스템, TV 셋, 또는 셋-탑 박스와 통신하는데 사용하기 위한 VOD(video on demand) 서버에 사용하기 위한 멀티미디어 라이브러리 및 베이직 GUI(Graphical User Interface)를 규정하도록 개발되었다.
MHEG 표준은 다른 타입의 플랫폼(platforms)을 거쳐 클라이언트/서버 구조 내의 대화형 멀티미디어 애플리케이션들의 분배를 지원하도록 개발되었다. MHEG 레벨 5는, 애플리케이션의 외관(appearance)이 모든 플랫폼 타입들을 거쳐 공유하도록, 애플리케이션들에 대한 최종 형태 표시(final form representation)를 규정한다. 그것은 멀티미디어 애플리케이션과 GUI가 그 구성 성분을 규정함으로써 간단하게 생성되는 것을 허락한다. 그것은 MHEG 명령어들을 번역하는 실시간 시스템을 갖고, 사용자에게 애플리케이션을 제공하고, 사용자와의 국부적인 대화(local interaciton)를 조절하는 클라이언트 터미널의 신뢰도(responsibility)이다. MHEG 레벨 5는 바깥 세상과의 대화, 예를 들면 데이터 교환 또는 클라이언트/서버 애플리케이션의 사용을 제공하는데 제한되지 않는다. MHEG 레벨 6는 MHEG 애플리케이션 및 자바 애플리케이션들이 내부-동작하게 허락하는 한 세트의 메커니즘을 규정하는 MHEG 레벨 5의 확장이다. 자바 애플리케이션들은 멀티미디어, GUI's 및 다른 컴퓨터 호스트와 통신을 제공하는 사용자 대화 애플리케이션 등에 한정되지 않는다. 자바와 MHEG 사이의 내부-동작은 MHEG 애플리케이션들이 외부 환경과 통신하도록 허가한다. MHEG 레벨 6는 제한된 자원 터미널들 상에 실행하는 대화형 검색(클라이언트/서버) 애플리케이션들의 분배를 지원하는데 주로 의도된다. DAVIC(Digital Audio-Visual Council)는 대화형 텔레비전을 위한 셋-탑 유닛의 명세서를 위한 기초로서 채택된 MHEG 레벨 6를 갖는다.
MHEG 애플리케이션들은 터미널에서 MHEG 객체들을 도표식의 멀티미디어 출력으로 변화시키는 MHEG 엔진에 의해 사용자의 터미널 상에 번역되는 일련의 MHEG 객체들로서 사용자에게 전달된다. 각각의 MHEG 레벨은 앞선 레벨 위에 만들어진다. MHEG 레벨 6 애플리케이션을 실행할 수 잇는 MHEG 엔진은 자바 가상 머신(Java Virtual Machine)과 인터페이스된 MHEG 레벨 5 엔진을 포함한다. 자바 가상 머신과 MHEG 환경 사이의 인터페이스는 MHEG 애플리케이션들이 자바 애플리케이션들과 대화하고 실행하도록 허가한다.
자바 애플리케이션들은 자바 애플리케이션의 사용자 인터페이스 요소, 특정 데이터 구조를 정의하는 각각의 객체 또는 일련의 객체들에 관하여 기록된다. 각각의 객체는 대화 또는 조작되도록 클래스로부터 생성된 객체에 대해 필요한 데이터 구조들 및 기능들을 규정하는 선정된 클래스로부터 생성된다. 이들 기능은 메소드(method)로서 공지되어 있다. 클래스는, 최초에 객체의 구조를 규정하는 객체를 생성할 때, 참조되는 효과적인 템플릿이고, 객체가 동작할 필요가 있는 데이터 구조들이며, 또한 객체가 사용할 수 있는 메소드들이다. 애플리케이션이 로딩될 때, 사용하는 객체들의 클래스들은, 이미 메모리 내에 보유되어 있다면, 그것들에 대비하여 체크된다. 메모리 내에 보유되지 않고 요구되는 임의의 클래스들은 메모리 내로 로딩된다. 자바 애플리케이션에 의해 객체들을 생성하는데 사용되는 각각의 클래스에 대해, 클래스와 관련된 모든 메소드들은 자바 애플리케이션을 수행하는 자바 가상 머신에 의해 로딩된다. 이러한 접근은, 모든 요구된 메소드들이 로딩되는 것을 보증하는 반면, 많은 클래스들이 애플리케이션에 의해 사용되지 않고, 어떤 식으로든 로딩되는 메소드들을 포함하는 것으로 매우 소모적이다.
MHEG 기반의 셋-탑 박스(MHEG-based set-top box)와 같은 환경에서, 메모리는 매우 제한되고, 애플리케이션에 의해 저장될 수 있는 임의의 메모리는 바람직하다. 본 발명은 MHEG 애플리케이션으로부터 여분의 메소드들을 제거하기 위한 방법 및 시스템을 제공한다.
본 발명은 애플리케이션들을 로딩하기 위한 컴퓨터 시스템 및 방법에 관한 것이며, 특히, 본 발명은 MHEG-6 환경 내에 애플리케이션 로딩을 위한 컴퓨터 시스템 및 방법에 관한 것이다.
도 1은 본 발명을 구현하도록 적응된 컴퓨터 시스템의 블록도.
도 2는 본 발명에 사용하기 위한 메소드 로딩 알고리즘(method loading algorithm)의 흐름도.
도 3은 본 발명에 사용하기 위한 다른 메소드 로딩 알고리즘의 흐름도.
도 4는 본 발명의 방법 또는 시스템을 구현하도록 적응된 컴퓨터 시스템의 블록도.
본 발명의 제 1 관점에 따라, 애플리케이션을 로딩하는 단계와, 애플리케이션에 의해 요구된 각각의 객체의 클래스 타입을 결정하는 단계와, 애플리케이션에 의해 요구된, 많은 관련 기능들을 포함하는 클래스 타입(들)을 로딩하는 단계와, 각각의 클래스와 함께 로딩된 관련 기능들을 결정하는 단계와, 애플리케이션에 의해 사용되는 관련 기능들을 결정하는 단계와, 애플리케이션에 의해 요구되지 않고 로딩된 관련 기능들을 메모리로부터 제거하는 단계를 포함하는 객체-지향 애플리케이션들(object-oriented applications)을 로딩하기 위한 방법이 제공된다.
본 발명의 제 2 관점에 따라, 애플리케이션을 로딩하고, 애플리케이션에 의해 요구된 각각의 객체의 클래스 타입을 결정하며, 애플리케이션에 의해 요구된, 많은 관련 기능들을 포함하는 클래스 타입(들)을 로딩하도록 구성된 애플리케이션 로더와, 각각의 클래스와 함께 로딩된 관련 기능들을 결정하고, 애플리케이션에 의해 사용되는 관련 기능들을 결정하며, 애플리케이션에 의해 요구되지 않고 로딩된 관련 기능들을 메모리로부터 제거하도록 구성된 클래스 프로세서를 포함하는, 애플리케이션들을 로딩하도록 적응된 컴퓨터 시스템이 제공된다.
본 발명의 실시예들은 이제 첨부한 도면을 참조하여 설명될 것이다.
컴퓨터 시스템 실행 MHEG 레벨 6 애플리케이션(computer system running MHEG level 6 applications)은 서버 컴퓨터(10)와, 컴퓨터 네트워크 또는 전화 네트워크와 같은 데이터 통신 링크(30)에 의해 서버에 링크된 클라이언트 터미널(20)(텔레비전 셋 탑 박스)을 포함한다. 클라이언트 터미널(20)은 MHEG 엔진(ENG)(21)과, 자바 가상 머신(VM)(22)과, 코어 MHEG 라이브러리(LIB)(23)를 포함한다.
클라이언트 터미널(20)을 전력 상승(powering up)시킬 때, MHEG 엔진(21)은, 코어 MHEG 라이브러리(23)를 억세스하고, 사용자가 클라이언트 터미널(20)과 대화할 수 있게 하는 MHEG 사용자 인터페이스를 로딩한다. MHEG 엔진(21)은 자바 VM(22)과 서버 컴퓨터(10)를 통신하게 할 수 있는 코어 MHEG 라이브러리(23)로부터 통신 루틴을 또한 로딩한다.
사용자 인터페이스를 경유하여 사용자에 의해 억세스 또는 요청된 MHEG 애플리케이션(대화형 텔레비전 프로그램과 같은)은 MHEG 엔진(21)에 의해 서버컴퓨터(10)로부터 요청된다. 서버 컴퓨터(10)는 일련의 MHEG 객체들(objects)로서 클라이언트 터미널(20)에 MHEG 애플리케이션을 통과시킨다. MHEG 애플리케이션의 모든 MHEG 객체들이 클라이언트 터미널(20)에 의해 한번 수신되면, MHEG 엔진(21)은, 객체를 분석하고, 애플리케이션을 실행한다.
먼저, MHEG 애플리케이션은 자바 애플리케이션과의 대화 또는 실행을 요청하고, 예를 들면, MHEG 애플리케이션과 사용자의 대화가 원격 서버 컴퓨터로부터 요구되는 VOD(video-on-demand)와 같은 자바 애플리케이션의 형태로 서비스를 초래하면, 자바 애플리케이션은 상술된 MHEG 애플리케이션으로서 동일한 방법으로 서버 컴퓨터(10)로부터 일련의 클래스 객체들(class objects)로서 로딩된다. 종래의 컴퓨터 시스템에서, 자바 VM은, 클래스들로부터 애플리케이션 객체를 생성하기 전에, 클라이언트 터미널 메모리 내로 클래스와 관련된 모든 메소드들 및 자바 애플리케이션에 의해 사용된 객체들의 클래스들을 분석하고 로딩하며, 자바 애플리케이션을 실행한다.
도 2는 본 발명에 사용하기 위한 메소드 로딩 알고리즘의 흐름도이다. 상술된 관련된 메소드들 및 클래스들의 분석 및 로딩 동안, 상기 메소드들은 그들이 사용되는지 여부를 결정하는 MHEG 애플리케이션 및 자바 애플리케이션으로부터 메소드 콜(method calls)과 함께 상호 참조되며, 그렇지 않으면, 로딩되는 대신에 폐기된다.
단계(40)에서, 객체가 생성되는 로딩된 클래스는 자신이 포함하는 메소드들을 결정하도록 분석된다. 클래스 내에 포함된 각각의 메소드의 명칭 또는 식별자는단계(50)에서 표에 기록된다. 단계(60)에서, 자바 애플리케이션 및 MHEG 애플리케이션의 메소드 콜은 그들이 클래스의 메소드를 호출하는지 여부를 결정하도록(단계(60)에서) 단계(50)에서 생성된 표와 함께 상호 참조되며, 그렇다면, 그러한 메소드를 위한 표의 엔트리(entry)는 단계(70)에 표시된다. 모든 메소드 콜이 분석되면(단계(71)에서 결정된), 표에 표시되지 않은 메소드들은 단계(80)의 메모리로부터 삭제된다.
도 3은 본 발명에 사용하기 위한 다른 메소드 로딩 알고리즘의 흐름도이다. 클래스 및 그 관련된 메소드의 분석 및 로딩 동안, 클래스가 이미 로딩되고, 상기 클래스에 기초하여 이전에 생성된 객체들을 갖는 다른 애플리케이션에 의해 쓰이고 있음은 결정된다. 단계(40, 50, 60, 69, 70 및 71)는 도 2를 참조하여 이전에 설명된 바와 같이 로딩되는 애플리케이션을 위해 수행된다. 이어서, 단계들은 그들이 요구하는 메소드를 결정하도록 단계(80) 이전에 클래스를 사용하여 각각의 다른 애플리케이션에 대해 또한 반복된다. 이미 실행된 애플리케이션에 의해 요구된 메소드들은 이미 메모리 내에 있다. 그러나, 요구되지 않는 메소드들은 이전에 폐기될 것이고, 새로운 애플리케이션이 임의의 폐기된 메소드들을 요구한다면, 전체 클래스는 재로딩될 것이고, 모든 애플리케이션들에 의해 요구된 메소드들의 세트는 메모리 내에 유지된다.
여분의 메소드들이 한번 결정되면 표는 정상적으로 폐기되지만, 표는 다른 애플리케이션이 클래스를 요구하도록 유지될 수 있고, 로딩된 메소드 이외의 메소드들만이 표를 참조하여 결정되고 로딩될 필요가 있다.
여분의 메소드들을 결정하는 대안으로서, 애플리케이션이 로딩되는 반면, 이러한 처리는 서버에서 수행될 수 있고, 유일하게 필요한 코드는 서버로부터 클라이언트에게 이동된다.
본 발명에 따른 여분의 메소드들을 결정하기 위한 방법 및 시스템은 더 이상 필요가 없는 메소드들을 결정하는 애플리케이션의 실행 동안의 간격에서 또한 호출될 수 있다. 본 명세서는 MHEG 애플리케이션들로부터 여분의 메소드들의 제거에 대해 주로 관여하고 있지만, 본 발명은 가능한 여분의 코드의 부분이 로딩되어야 하는 다른 애플리케이션들에 또한 응용 가능하고, 예를 들면, 자바 코드는 데이터를 로딩하는 JAR 파일을 사용하여 한 "청크(chunk)"에 로딩될 수 있다(JAR 파일은 단일 파일 내로 병합된 자바 클래스 파일의 집합이다).

Claims (7)

  1. 객체-지향 애플리케이션들을 로딩하기 위한 방법에 있어서,
    상기 애플리케이션을 로딩하는 단계와;
    상기 애플리케이션에 의해 요구된 각각의 객체의 클래스 타입을 결정하는 단계와;
    상기 애플리케이션에 의해 요구된, 많은 관련 기능들을 포함하는 클래스 타입(들)을 로딩하는 단계와;
    각각의 클래스와 함께 로딩된 상기 관련 기능들을 결정하는 단계와;
    상기 애플리케이션에 의해 사용되는 상기 관련 기능들을 결정하는 단계와;
    상기 애플리케이션에 의해 요구되지 않은 로딩된 상기 관련 기능들을 메모리로부터 제거하는 단계를 포함하는 객체-지향 애플리케이션 로딩 방법.
  2. 제 1 항에 있어서,
    상기 클래스 타입(들)과 함께 로딩된 상기 관련 기능들을 결정하는 단계에서, 각각의 로딩된 관련 기능을 위한 엔트리를 포함하는 데이터 구조가 발생되는, 객체-지향 애플리케이션 로딩 방법.
  3. 제 2 항에 있어서,
    상기 애플리케이션에 의해 사용되는 상기 관련 기능들을 결정하는 단계에서,상기 데이터 구조 내에 각각의 엔트리가 표시되는, 객체-지향 애플리케이션 로딩 방법.
  4. 제 3 항에 있어서,
    상기 데이터 구조 내에 표시되지 않은 엔트리들에 대응하는 관련 기능들은 메모리로부터 제거되는, 객체-지향 애플리케이션 로딩 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 관련 기능들은 메소드들을 포함하는, 객체-지향 애플리케이션 로딩 방법.
  6. 애플리케이션들을 로딩하도록 적응된 컴퓨터 시스템에 있어서,
    애플리케이션을 로딩하고, 상기 애플리케이션에 의해 요구된 각각의 객체의 상기 클래스 타입을 결정하고, 상기 애플리케이션에 의해 요구된, 많은 관련 기능들을 포함하는 클래스 타입(들)을 로딩하도록 구성된 애플리케이션 로더와;
    각각의 클래스와 함께 로딩된 상기 관련 기능들을 결정하고, 상기 애플리케이션에 의해 사용되는 상기 관련 기술들을 결정하고, 상기 애플리케이션에 의해 요구되지 않고 로딩된 상기 관련 기능들을 메모리로부터 제거하도록 구성된 클래스 프로세서를 포함하는, 애플리케이션들을 로딩하도록 적응된 컴퓨터 시스템.
  7. 제 1 항 내지 제 5 항 중 어느 한 항의 방법을 실행하기 위한 컴퓨터 프로그램.
KR1020017002430A 1999-06-26 2000-06-22 애플리케이션들을 로딩하기 위한 컴퓨터 시스템 및 방법 KR20010072982A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB9914927.0A GB9914927D0 (en) 1999-06-26 1999-06-26 Computer system and method for loading applications
GB9914927.0 1999-06-26
PCT/EP2000/005769 WO2001001292A2 (en) 1999-06-26 2000-06-22 Computer system and method for loading applications

Publications (1)

Publication Number Publication Date
KR20010072982A true KR20010072982A (ko) 2001-07-31

Family

ID=10856100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017002430A KR20010072982A (ko) 1999-06-26 2000-06-22 애플리케이션들을 로딩하기 위한 컴퓨터 시스템 및 방법

Country Status (9)

Country Link
EP (1) EP1135733A2 (ko)
JP (1) JP2003503799A (ko)
KR (1) KR20010072982A (ko)
CN (1) CN1175349C (ko)
BR (1) BR0006857A (ko)
GB (1) GB9914927D0 (ko)
PL (1) PL346280A1 (ko)
TW (1) TW463127B (ko)
WO (1) WO2001001292A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129351A1 (en) * 2001-03-07 2002-09-12 Nexusedge Technologies Pty. Ltd. Software engine and method for software application loading
TWI805400B (zh) * 2022-06-07 2023-06-11 國立陽明交通大學 奈米微粒分徑用的新穎慣性衝擊器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system

Also Published As

Publication number Publication date
PL346280A1 (en) 2002-01-28
WO2001001292A2 (en) 2001-01-04
GB9914927D0 (en) 1999-08-25
WO2001001292A3 (en) 2001-07-19
BR0006857A (pt) 2001-07-10
CN1175349C (zh) 2004-11-10
CN1335960A (zh) 2002-02-13
EP1135733A2 (en) 2001-09-26
JP2003503799A (ja) 2003-01-28
TW463127B (en) 2001-11-11

Similar Documents

Publication Publication Date Title
US6272674B1 (en) Method and apparatus for loading a Java application program
US6718364B2 (en) Method and apparatus for expedited file downloads in an applet environment
US8689232B2 (en) Object synchronization in shared object space
US9778942B2 (en) Generating a replacement binary for emulation of an application
EP0889420A2 (en) Media manager for access to multiple media types
US20050086237A1 (en) Shared queues in shared object space
US7664882B2 (en) System and method for accessing multimedia content
CA2506032A1 (en) Resource manager for clients in an information distribution system
US20090204593A1 (en) System and method for parallel retrieval of data from a distributed database
CN106371826A (zh) 应用程序跨系统运行的方法和装置
EP1142306A1 (en) A stream device management system for multimedia clients in a broadcast network architecture
WO2007055883A1 (en) Asynchronous just-in-time compilation
KR20010072982A (ko) 애플리케이션들을 로딩하기 위한 컴퓨터 시스템 및 방법
US7263696B1 (en) Dynamic web based jar file finder
CN103970794B (zh) 数据访问方法和数据访问装置
US8015153B2 (en) System for distributed communications
CN113791777B (zh) 图片显示方法及装置、计算机可读存储介质及电子设备
WO2001001238A2 (en) Computer system for mheg applications
MXPA01001963A (en) Computer system and method for loading applications
CN114051161B (zh) 网页的视频播放方法及装置
CN118051275A (zh) 一种应用程序的交互方法及存储介质
CN116578235A (zh) 一种文件预读方法、装置、计算机设备以及存储介质
CN113407519A (zh) 一种数据库的适配装置、装置、计算机设备和存储介质
CN115202904A (zh) 依赖对象共享方法、装置、设备及存储介质
CN115981614A (zh) 项目工程的模块化处理方法、电子设备及计算机存储介质

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid