KR20020061543A - 어플리케이션 데이터를 다운로드하기 위한 방법 및 장치 - Google Patents

어플리케이션 데이터를 다운로드하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20020061543A
KR20020061543A KR1020020003095A KR20020003095A KR20020061543A KR 20020061543 A KR20020061543 A KR 20020061543A KR 1020020003095 A KR1020020003095 A KR 1020020003095A KR 20020003095 A KR20020003095 A KR 20020003095A KR 20020061543 A KR20020061543 A KR 20020061543A
Authority
KR
South Korea
Prior art keywords
objects
loader
download
preloader
target object
Prior art date
Application number
KR1020020003095A
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 KR20020061543A publication Critical patent/KR20020061543A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4433Implementing client middleware, e.g. Multimedia Home Platform [MHP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • H04N21/4349Demultiplexing of additional data and video streams by extracting from data carousels, e.g. extraction of software modules from a DVB carousel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4351Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reassembling additional data, e.g. rebuilding an executable program from recovered modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6433Digital Storage Media - Command and Control Protocol [DSM-CC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 타겟 오브젝트의 다운로드를 요청하고, 타겟 오브젝트를 다운로드하여 타겟 오브젝트를 처리하고, 필요하면, 타겟 오브젝트가 의존하는 또다른 오브젝트의 다운로드를 요청함으로써 분산 어플리케이션 환경(distributed application environment)으로부터 어플리케이션 데이터를 다운로드하는 방법 및 장치에 관한 것이다. 타겟 오브젝트 처리와 동시에, 타겟 오브젝트는 타겟 오브젝트가 의존하는 모든 오브젝트들을 판정하도록 분석하고, 오브젝트들이 다운로드되고 저장되어 또다른 오브젝트의 다운로드를 요청하는 단계에 응답하여 또다른 오브젝트가 검색될 수 있다.

Description

어플리케이션 데이터를 다운로드하기 위한 방법 및 장치{Method and device for downloading application data}
본 발명은 어플리케이션 데이터를 다운로드하기 위한 방법 및 장치에 관한것이며, 특히, 분산 어플리케이션 환경으로부터, 예컨대, DSM-CC 오브젝트 캐루젤(Object Carousel)로부터 전송 스트림에 실시된 자바 클래스들을 다운로드하기 위한 방법 및 장치 에 관한 것이다.
다양한 분산 어플리케이션 환경들은 장치들이 하나의 단위로 어플리케이션을 다운로드하지 않고 부분적으로, 예컨대, 개별적인 부분들 또는 패킷들로 어플리케이션을 다운로드하도록 어플리케이션 데이터가 분산된 상태로 제공되는 것으로 공지된다.
DSM-CC 오브젝트 캐루젤들과 같은 높은-대기시간 파일 시스템들(high-lat ency file systems)로부터 어플리케이션 데이터를 로딩하는 것이 공지된다. 특히, 자바 클래스들과 같은 다양한 파일들은 DSM-CC 오브젝트 캐루젤의 일부와 같은 BIOP로 재포맷되어, DSM-CC 데이터 캐루젤용 모듈들로 조합되어 그 후에 DVB 또는 MPEG 부분들로서 전송될 수 있다.
각 사용자들은 전송 스트림으로부터 적절한 부분들을 다운로드하여 원하는 오브젝트 또는 파일을 재구성한다.
전형적으로, 파일들은 상호 관련된다. 그러므로, 대화식 텔레비전 서비스들은 특정한 다운로드된 오브젝트에 따라 디스플레이를 위한 하나의 페이지를 제공할 수 있다. 그러나, 그 페이지 내의 부분에 따라, 텔레비전 장치는 또다른 오브젝트의 데이터에 따라 또다른 페이지를 디스플레이하도록 원할 수 있다.
분산 어플리케이션 환경에서, 특정 오브젝트를 구성하는 데이터가 즉시 사용가능하지 않기 때문에, 예컨대, 캐루젤(carousel)에 의해 제공되기 때문에, 예컨대, 다음 페이지가 디스플레이되도록 다음 오브젝트가 다운로드되어 처리되기 전에 시간이 걸릴 수 있다.
이러한 문제점은 오브젝트들이 이러한 방법으로 다운로드되는 임의의 유사한 시스템에 존재한다.
그러므로, 본 발명은 그러한 시스템들에서 발생하는 지연들을 극복하는 것을 제공한다.
도 1은 본 발명을 구현하는 장치를 도시하는 개략도.
도 2는 오브젝트들의 시나리오를 도시하는 도면.
도 3은 도 2의 시나리오의 동기 프리로딩(asynchronous preloading)을 도시하는 도면.
도 4는 프리로딩을 위한 흐름도.
도 5는 DSM-CC 콜백 기능을 도시하는 흐름도.
도 6a는 상호 종속의 예를 도시하는 도면.
도 6b는 도 6a의 오브젝트들을 다운로드하기 위한 시간들을 도시하는 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
2 : 오브젝트 로더4 : 전송 스트림
6 : 제어기8 : 프리로더
본 발명에 따라, 분산 어플리케이션 환경으로부터 어플리케이션 데이터를 다운로드하는 방법을 제공하며, 상기 방법은:
타겟 오브젝트의 다운로드를 요청하는 단계,
상기 타겟 오브젝트를 다운로드하는 단계,
상기 타겟 오브젝트를 처리하는 단계, 및
필요하면, 상기 타겟 오브젝트가 의존하는 또다른 오브젝트의 다운로드를 요청하는 단계를 포함하고,
상기 방법은;
상기 타겟 오브젝트 처리와 동시에, 상기 타겟 오브젝트가 의존하는 모든 상기 오브젝트들을 판정하도록 상기 타겟 오브젝트를 오브젝트 분석하고, 상기 오브젝트들을 다운로드하는 단계, 및
상기 또다른 오브젝트의 다운로드를 요청하는 단계에 응답하여 상기 또다른오브젝트가 검색될 수 있도록 상기 오브젝트들을 저장하는 단계를 더 포함한다.
본 발명에 따라, 오브젝트들을 다운로드하기 위한 오브젝트 로더와, 타겟 오브젝트를 처리하기 위해 상기 오브젝트 로더로 하여금 상기 타겟 오브젝트를 다운로드하도록 요청하고, 필요하면, 상기 타겟 오브젝트가 의존하는 또다른 오브젝트를 상기 오브젝트 로더로 하여금 다운로드하도록 요청하는 제어기를 포함하는 장치를 갖는 분산 어플리케이션 환경으로부터 어플리케이션 데이터를 다운로드하는 방법이 제공되며, 상기 방법은:
상기 타겟 오브젝트가 의존하는 모든 상기 오브젝트들을 판정하도록 상기 타겟 오브젝트를 오브젝트 분석하는 단계,
상기 오브젝트들을 다운로드하는 단계, 및
상기 오브젝트 로더가 상기 또다른 오브젝트를 다운로드하라는 요청에 대응하여 상기 또다른 오브젝트를 검색할 수 있도록 상기 오브젝트들을 저장하는 단계를 포함한다.
본 발명에 따라, 분산 어플리케이션 환경으로부터 어플리케이션 데이터를 다운로드하는 장치가 제공되고,
오브젝트들을 다운로드하는 오브젝트 로더, 및
오브젝트 로더로 하여금 타겟 오브젝트를 다운로드하도록 요청하고 상기 타겟 오브젝트를 처리하고, 필요하면, 상기 오브젝트 로더로 하여금 상기 타겟 오브젝트가 의존하는 또다른 오브젝트를 다운로드하도록 요청하는 제어기를 포함하고,
상기 장치는;
상기 타겟 오브젝트가 의존하는 모든 오브젝트들을 판정하도록 상기 타겟 오브젝트를 오브젝트 분석하고, 상기 오브젝트를 다운로드하여 저장하는, 상기 오브젝트 로더와 동시에 동작가능한 프리로더를 더 포함하며, 상기 오브젝트 로더가 상기 또다른 오브젝트를 다운로드하도록 요청될 때 상기 프리로더로부터 상기 또다른 오브젝트를 검색할 수 있도록 하는 다운로드 장치를 더 포함한다.
이러한 방법으로, 타겟 오브젝트가 먼저 다운로드될 때, 프리로더는 타겟 오브젝트가 의존하는 모든 오브젝트들을 즉시 판정한다. 이와 같이, 타겟 오브젝트가 처리되는 동안, 프리로더는 타겟 오브젝트에 의해 요청된 다른 오브젝트들을 이미 다운로드하고 있을 수도 있다. 이때까지, 타겟 오브젝트는 오브젝트가 프리로더에 의해 다운로드될 수 있거나 적어도, 다운로드가 이미 진행 중에 있는, 다른 오브젝트들 중 한 오브젝트에 대한 기준을 요청한다. 이러한 방법으로, 상술한 지연들은 제거되지 않는다면 감소할 것이다.
다수의 부분 필터들은, 각각의 요청된 오브젝트에 관한 부분들을 수신된 전송 스트림 부분들로부터 각각 필터링하도록 제공되는 것이 바람직하다.
이와같이 부분 필터들은 오브젝트 로더 및 프리로더의 제어하에 상이한 오브젝트들을 동시에 다운로드한다. 부분 필터들은 MPEG 부분 필터들일 수 있다.
DVB-MHP 환경에서, 텔레비전 수신기들은 수신기의 멀티플렉서 하드웨어 내의 다수의 MPEG-2 부분 필터들을 종종 포함할 수 있다. DSM-CC에 다수의 이러한 것들을 사용함으로써, 이와 같이 병렬로 오브젝트들을 다운로드하는 것이 가능하다.
이와 같이, 프리로더는 상이한 각 부분 필터들로부터 동시에 상이한 오브젝트들을 다운로드하도록 배열될 수 있다.
수신기 메모리는 프리로더가 다운로드된 오브젝트들을 저장하도록 제공되는 것이 바람직하다.
수신기 메모리는 예컨대, 프리로더의 일부로서, 전용 메모리일 수도 있다. 그러나, 프리로더는 소프트웨어 내에 제공될 수도 있다. 이와 같이, 수신기 메모리는 사실상, 장치의 다양한 부분들에 공통의 메인 메모리의 어드레스된 영역일 수도 있다.
이와 같이, 프리로더에 의해 다운로드된 오브젝트들은 수신기 메모리 내에 저장되고, 그들중 하나를 다운로드하도록 요청될 때 오브젝트 로더에 즉시 사용가능하게 된다.
파일이 장착되는 각 어플리케이션에 유지되는 것이 바람직하다. 이러한 것은 타겟 오브젝트에 대응할 수도 있다. 파일은 다운로드하는데 긴 기간을 필요로하고 타겟 오브젝트가 의존하는 모든 오브젝트들의 리스트를 포함한다.
이러한 방법으로, 어플리케이션 또는 타겟 오브젝트가 요청될 때, 프리로더는 먼저 파일내에 기입된 모든 오브젝트들을 다운로드할 수 있다. 오브젝트 분석은 단지 더욱 신속하게 다운로드될 수 있는 오브젝트들을 판정하는데 필요하다.
오브젝트들이 각 모듈들 내에 함께 제공되는 곳에서, 수신기 메모리는 전체 모듈들을 저장하는데 사용된다.
이와 같이, 어플리케이션의 인보케이션(invocation) 동안, 오브젝트들이 이전에 다운로드되고 저장된 모듈을로부터 사용가능하다면, 다운로드 시간들은 크게감소될 것이다. 그러므로, 파일의 리스트는 새롭게 다운로드되어야 하는 그러한 오브젝트들을 나타내는 경향이 있다.
오브젝트들은 자바 클래스들을 포함할 수 있다. 이러한 것은 본 발명이 DVB-MHP 환경에 적응될 때 특히 적용가능하다. 이와 같이, 장치는 MHP 컴플라이언트(compliant)일 수 있고, 텔레비전 장치, 예컨대, 집적 텔레비전 또는 셋톱 박스일 수도 있다.
오브젝트들이 자바 클래스들인 곳에서, 오브젝트 로더는 연속한 자바 클래스 로더일 수 있다.
이러한 방법으로, 로더는 연속하여 제어기에 의해 요청된 자바 클래스들을 다운로드한다.
프리로더는 그것이 의존하는 다른 클래스들을 판정하도록 로딩된 클래스 파일의 클래스 분석을 행하는 것이 바람직하다.
프리로더는 타겟 오브젝트가 의존하는 오브젝트들 각각을 부가적으로 오브젝트 분석할 수 있는 것으로 평가된다. 이러한 방법으로, 프리로더는 이전에 다운로드된 오브젝트들이 의존하는 다른 오브젝트들을 판정하고, 다른 오브젝트들을 다운로드하고 저장하여 그들이 지연없이 연속적으로 검색될 수 있다.
오브젝트 로더는 장치의 다른 기능들과 관련하여 소프트웨어로 실시될 수 있다.
이러한 경우, 프리로더는 본 발명에 따라 기능하게 하는 장치에 로딩될 수 있는 부가적인 일부의 소프트웨어로서 제공되는 것이 바람직하다. 특히, 오브젝트로더는 프리로더 동작의 특정 정보없이도 이전의 연속한 방법으로 계속 동작할 수 있다. 이와 같이, 본 발명에 따라 연속하여 오브젝트들을 다운로드하고, 다운로더는 오브젝트들의 다운로드를 적어도 초기화하거나 이전에 다운로드하여 오브젝트 로더가 그들을 개별적으로 다운로드해야 한다면 보다 신속하게 그것들을 수신한다.
본 발명은 첨부한 도면들을 참조하여, 단지 예를 통해 주어진 다음의 설명들로부터 더욱 명확하게 이해될 것이다.
바람직한 실시예는 자바 클래스들의 다운로드 및 DVB-MHP 환경을 참조하여 기술될 것이다. 그러나, 본 발명이 임의의 분산 어플리케이션 환경, 특히 대형 파일-액세스 대기시간들을 갖는 환경 및 다운로드될 임의의 형태의 오브젝트에 적용가능한 것으로 평가된다.
도 1은 본 발명을 실시하는 장치를 개략적으로 도시한다. 특히, 오브젝트 로더(2)는 전송 스트림(4)으로부터 오브젝트들을 다운로드한다. 이러한 것은 제어기(6)의 제어하에 이루어질 수 있다. 그러나, 실제로, 오브젝트 로더와 제어기(6) 간의 명확한 차이가 없을 수도 있다. 또한, 후술될 이유들 때문에, 오브젝트 로더(2)는 저레벨 로더(12)를 통해 오브젝트들을 다운로드할 수 있다.
오브젝트는 그러한 오브젝트의 특성에 따라 다운로드된 후에 처리된다. 이와 같이, 본 실시예의 환경에 있어서, 오브젝트는 특정 상호작용 텔레비전 페이지를 디스플레이하기 위해 필요한 데이터를 포함할 수 있다. 통상적으로, 임의의 오브젝트는 특정 작용 또는 동작을 실행하도록 의도된다. 이러한 것은 메시지를 디스플레이하는 것과 같은 고레벨 동작(high-level activity)이거나 명칭들의 내부 데이터베이스를 유지하는 것과 같은 저레벨 동작일 수도 있다.
전송 스트림(4)은 로딩될 다양한 자바 클래스들을 실행할 수 있다. 그러나, 클래스가 일단 로딩되면, 그것이 의존하는 클래스들은 또한 반드시 로딩되어야 한다. 어플리케이션이 DCM-CC 캐루젤을 통해 전송되는 DVB-MHP 환경과 같은, 대형 파일 액세스 대기시간들을 갖는 분산 어플리케이션에서, 이러한 로딩은 완료하는데 상당한 시간이 걸릴 수 있다.
본 실시예에서, 도 1을 참조하여, 오브젝트 로더(2)는 자바 클래스들을 로딩하기 위한 가상 머신 클래스 로더를 포함한다. 도시된 바와 같이, 프리로더(preloader; 8)가 또한 제공되고, 이러한 것은 또한 저레벨 로더(12)를 통해 동작할 수 있다. 그것은 VM 클래스 로더에 개별적이며 개별 소프트웨어 구성성분일 수도 있다. 그것은 먼저 클래스 로더(2)에 의해 요청되는 클래스 파일을 로드하고, 그후에 다른 클래스들이 필요한 것으로 발견하도록 클래스 파일 상의 클래스 분석(class parsing)을 실행한다. 클래스 파일은 특정 형태의 오브젝트들을 예시할 필요가 있는 정보를 포함한다. 이와 같이, 클래스들을 예시하기 위해 클래스 파일은 또한 다른 클래스들이 시스템으로 로딩될 필요가 있는 정보를 포함한다.
이러한 방법으로, 프리로더(8)는 클래스들의 리스트가 다운로드된 채로 유지할 수 있다. 클래스들은 전체 장치의 일부로서 개별적으로 또는 프리로더(8)로 전체적으로 형성된 수신기 메모리 또는 오브젝트 캐쉬 내에 저장될 수 있다. 이러한 방법으로, 자바 클래스 로더(2)에 의해 파일이 요청될 때, 파일이 수신기 메모리 또는 오브젝트 캐쉬 내에서 이미 사용가능하거나 방송 스트림(4)으로부터 다운로드되는 위상에 있는 가능성이 있다. 이러한 것은 전형적으로 클래스 로딩을 더욱 빠르게 할 것이다.
프리로더(8)에 의해 유지된 리스트는 또한 정렬될 수 있다. 특히, 오브젝트들 또는 클래스들이 이전의 경우에 다운로드되었던 곳에서, 프리로더(8)는 얼마나 오래 다운로드가 이루어졌는지에 대한 기록들을 유지할 수 있다. 이러한 방법으로, 프리로더는 현재 현저한 요청된 클래스들의 리스트를 정렬하여 더욱 긴 다운로드 횟수들을 갖는 클래스들이 먼저 요청될 수 있다.
MHP 및 디지털 TV 수신기들의 경우, 다수의 수신기들이 다중 병렬 오브젝트 다운로드들을 적절하게 처리할 수 있는 것이 주목되어야 한다. 실제로, 도 1에 도시된 장치는 다수의 부분 필터들(10)이 제공된다. 이러한 배열로, 부분 필터들의 수는 얼마나 많은 오브젝트들이 병렬로 다운로드될 수 있는지에 대해 물리적인 제한만 한다. 실제로, MHP 환경의 실시예에서, 부분 필터들은 수신기의 디멀티플렉서 하드웨어 내의 MPEG-2 부분 필터들을 포함한다. 단지 물리적인 제한은 DSM-CC에 사용될 수 있는 이러한 부분 필터들(10)의 수일 수 있다.
프리로더(8)는 클래스 로더(2)에 의해 요청되는, DSM-CC 필터들과 같은 오브젝트들의 병렬 비동기 로딩을 사용함으로써 연속한 자바 클래스 로더(2)의 동작을 가속화할 수 있다. 특히, 프리로더(8)는 클래스 분석에 의해 식별되는 클래스들의 비동기 로딩을 실행하여 클래스들이 각 부분 필터들(10)을 통해 병렬로 다운로드된다.
이러한 것은 다수의 부분 필터들의 제공을 이용하는 메카니즘을 제공한다.클래스 로더(2)가 장래에 로드되도록 기대되는 임의의 클래스들을 사전-인출하지 않는 의미로 임의의 여분의 정보없이 연속한 클래스 로더로 실행되었다면, 이러한 것은 특히 중요하다. 클래스 로더(2)는 임의의 수정들이 있다면 거의 필요하지 않으며, 프리로더(8)는 그 동작이 가속화되게 한다.
이와 같이, 통상적인 과정에서, 오브젝트 또는 클래스 로더(2)는 저 레벨 로더(12)를 통해 부분 필터(10)가 요청된 오브젝트 또는 클래스를 다운로드하도록 요청한다. 저레벨 로더(12)는 오브젝트 로더에 응답하여 부분 필터들(10)을 관리하여 제어한다. 요청된 클래스 또는 오브젝트가 다운로드 되는 동안, 또한 저레벨 로더와 통신하는 프리로더(8)는 오브젝트 또는 클래스를 분석한다. 예컨대, 그것은 모든 종속 클래스들을 결정하도록 클래스 파일을 분석한다.
프리로더(8)에 의해 결정되는 종속 클래스들에 기초하여, 프리로더(8)는 다수의 클래스들을 요청하고 저레벨 로더(12)는 다수의 부분 필터들(10)을 제어하여, 그러한 것들이 전송 스트림(4)로부터 요청된 오브젝트들 또는 클래스들을 필터링하여 데이터 버스(14)를 통해 이러한 것들을 제공한다.
또다른 오브젝트 또는 클래스를 참조하여 오브젝트 또는 클래스가 요청되는 것을 결정할 때, 오브젝트 로더(2)는 요청된 오브젝트 또는 클래스를 다운로드하도록 시도하고 저레벨 로더(12)에 대한 요청을 저장한다. 이와 같이, 오브젝트가 프리로더(8)에 의해 이미 다운로드되었던 곳에서, 저레벨 로더(12)가 동작하여 프리로더(8)에 의해 오브젝트 데이터가 수신기 메모리로부터 오브젝트 로더(2)에 제공된다. 이러한 방법으로, 오브젝트 로더(2)는 프리로더(8)없이 수행되는 것처럼 동작하지만, 더욱 빨리 오브젝트들을 수신한다. 요청된 오브젝트가 완전히 다운로드되지 않은 경우에, 오브젝트 로더(2)는 도달하는 대로 부분 필터(10)로부터 나머지 데이터 및 프리로더(8)로부터의 데이터 일부를 수신할 것이다.
요청된 클래스들 또는 오브젝트들이 도달하는 대로, 그러한 것들은 차례로 분석되고, 그러한 것들에 의해 요청된 오브젝트들 또는 클래스들이 요청되는 것이 바람직하다. 이와 같이, 오브젝트 또는 클래스 로더(2)에 의해 로딩이 행해지고, 병렬로 실행된 순환, 비동기 클래스 로딩이 있다.
도 2는 클래스(B) 및 클래스(C)에 차례로 의존하는 주요 어플리케이션 클래스 또는 타겟 클래스(A)가 있는 시나리오를 도시한다. 클래스(C) 그 자체는 클래스들(D, E)을 필요로 한다.
DSM-CC와 같은 특정 분산 환경들에서, 오브젝트들은 모듈들 내에 함께 그룹화되는 것으로 평가된다. 이와 같이, 도시된 바와 같이, 클래스(A)는 하나의 모듈 내에 있고, 클래스들(B, C)은 또다른 모듈 내에 있고, 클래스들(D, E)은 제 3 모듈 내에 있다.
모듈의 오브젝트들 중 한 오브젝트의 데이터를 다운로드하기 위해, 통상적으로 전체 모듈의 데이터를 다운로드할 필요가 있다. 그러므로, 바람직한 실시예에서, 오브젝트 로더(2) 또는 프리로더(8)가 오브젝트를 다운로드할 때마다, 그것들은 전체 모듈을 저장한다. 서비스 제공자들은 통상적으로 동일한 모듈 내에 관련 오브젝트들을 배열한다. 그러므로, 전체 모듈을 저장하면, 관련 오브젝트들이 이미 다운로드되어 더욱 빠른 액세스 시간을 허용할 가능성이 있다.
도 3은 다양한 오브젝트들 또는 클래스들의 다운로드 시 수행되는 단계들을 도시한다.
"자바 DSM-CC(Java DSM-CC)"층은 로컬 파일 시스템이 액세스되는 방법과 매우 유사한 방법으로 DSM-CC 오브젝트들에 액세스를 제공하는 고레벨 API 이다. "원시 DSM-CC 스택(Native DSM-CC stack)"은 실제 다운로드를 실행하는 저레벨 소프트웨어 구성성분이다. 이러한 층은 DSM-CC 오브젝트 캐루젤들(DSM-CC Object Carousels), 즉, 다중 오브젝트들의 병렬 비동기 로딩의 특징에 대해 특히 기능성을 제공한다.
클래스 로더(2)는 파일(A)이 예컨대, 제어기(6)로부터의 명령들 하에 로딩될 필요가 있는 지를 발견한다. 이러한 것에 응답하여, 프리로더 쓰레드(preloader thread)가 생성된다. 이러한 것은 프리로더(8)의 개략적인 표현에 대응한다. 클래스 로더(2)는 로딩될 초기 파일이 파일(A)이고, 그 후에 파일(A)은 프리로더 쓰레드(8) 및 클래스 로더(2) 양자 모두에 의해 요청되는 것을 지시한다.
파일(A)이 도달될 때, 프리로더(8)에 의해 분석되고, 파일들(B, C)은 부분 필터들(10)에 의해 로딩되도록 즉시 요청된다.
파일(A)이 로딩되고, 예컨대, 제어기(6)를 수반하는 통상의 방법으로 처리된다. 이러한 결과로서, 참조가 파일(B)에 대해 이루어질 필요가 있는 것으로 확립된다. 그러므로, 클래스 로더(2)는 로딩될 파일(B)을 요청한다.
파일(B)이 도달할 때, 프리로더(8)에 의해 분석되지만, 새로운 종속들(new dependencies)이 발견되지 않는다.
파일(B)은 이전의 요청에 응답하여 클래스 로더(2)에 복귀된다. 파일들(A, B)의 사용을 계속하는 동안, 새로운 종속들이 파일(B)에 대해 발견되지 않는다. 그러나, 참조가 파일(C)에 요청되는지를 결정한다. 그러므로, 클래스 로더(2)는 파일(C)를 요청한다.
파일(C)이 도달할 때, 프리로더(8)에 의해 분석된다. 프리로더(8)는 파일(C)이 파일들(D, E)에 의존하는 지를 결정하므로, 부분 필터들(10)을 사용하여 이러한 파일들의 다운로드를 요청한다.
파일(C)은 클래스 로더(2)에 복귀한다. 후속한 처리도안, 파일(D)이 요청되는 지가 결정되므로, 클래스 로더(2)가 파일(D)를 요청한다.
파일(D)이 도달 할 때, 프리로더(8)는 새로운 종속들을 결정하지 않고 파일(D)이 클래스 로더(2)에 복귀된다. 다시 한번, 처리동안, 파일(C)이 부가적으로 파일(E)에 의존하는 것을 결정하므로, 파일(E)이 요청된다.
파일(E)이 도달할 때, 프리로더는 새로운 종속들을 발견하지 못하므로, 완료될때까지 쓰레드를 실행하게 한다.
파일(E)이 클래스 로더(2)에 복귀되고 로딩이 완료된다.
어플리케이션 데이터의 비동기 프리로딩은 초기 어플리케이션 클래스들의 다운로드를 빠르게하기 위해 어플리케이션 부트 시간(application boot time)에서 사용될 수 있다. 그러나, 또한 조만간 다른 지점들에서 사용될 수 있다. 예컨대, 프리로더(2)가 이미 로딩되지 않은 클래스를 로딩하려는 것을 결정될 때마다, 이러한 것은 그 기능적인 상태 변화시키는 것을 포함할 수 있기 때문에, 프리로더(8)가 사용될 수 있다. 예컨대, 새로운 어플리케이션은 "일기 예보" 모드로 들어갈 수 있고, 이러한 모드에 특정한 클래스들을 로드할 필요가 있다. 이와 같이, 프리로더(8)는 수신기 성능 및 어플리케이션 응답성을 개선하기 위해 어플리케이션의 전체 수명 동안 사용될 수 있다. 실제로, 방송이 어플리케이션 부트 시간동안 빠른 초기 클래스 로딩을 위한 그들의 어플리케이션들을 최적화하기 때문에, 그것이 행한 처리 및 프리로더(8)는 어플리케이션 부트 처리동안 보다 나중에 천이 스테이지들과에서 더욱 가변할 수 있다.
도 4는 상술한 처리를 흐름도로 도시한다.
단계 100에서, 초기 클래스 파일을 위한 요청이 이루어진다. 예컨대, 이러한 것은 제어기(6)로부터 나올 수 있다.
단계 102는 현저히 요청된 파일들의 리스트에 요청된 파일의 이름이 부가되는 바람직한 특징들을 나타낸다. 상술한 바와 같이, 이러한 리스트는 이전에 확립된 다운로드 시간들에 따라 정렬될 수 있다. 요청 카운트(request count)는 또한 유지된다. 이러한 카운트는 현저한 요청된 파일들의 수를 나타낸다. 이와 같이, 이러한 스테이지에서, 요청된 카운트가 증가된다. 요청 카운트는 원시 DSM-CC 스택에 대해 발행된 발행되었지만 아직 완성되지 않은 요청들의 수의 트랙을 유지한다.
단계 104에서, 처리는 요청된 파일들 중 한 파일의 다운로드를 기다린다. 이러한 관점에서, 파일들이 요청되는 상이한 순서로 도달할 수 있는 것이 평가된다. 이러한 것은 파일들이 상이한 시간에서 사용가능하고 다운로드동안 상이한 시간들을 필요로 하기 때문이다.
소정의 시간 후에, 요청 파일이 다운로드되지 않는다면, 타임 아웃 상태(time out state)가 되고 그 처리는 단계 106으로 이동한다. 이러한 단계에서, 요청 카운트가 0과 같은지의 여부를 판정한다. 요청 카운트가 0인 경우, 더 이상의 도달하는 오브젝트 메시지들을 없다는 것이 확립되어 쓰레드가 종료될 수 있다.
요청 카운트(request count)가 0이면, 처리가 완료할 수 있고, 단계 108에서 프리로더 쓰레드(preloader thread)가 종료될 수 있다. 그러나, 요청 카운트가 0과 같지 않으면, 처리는 단계 104로 복귀한다.
오브젝트 메시지가 단계 110에 도달하면, 로드된 클래스는 임의의 다른 클래스들에 의존하는 지를 결정한다. 그러한 의존도들의 의존도 리스트 및 그들의 클래스 명칭들이 확립된다. 임의의 클래스 명칭들이 의존도 리스트 내에 존재하는지, 또한 처리가 순환할 때 의존도 리스트상에 클래스 명칭들이 더 이상 존재 하지 않는지의 여부를 판정한다.
이와 같이, 시나리오 내에 2개의 리스트들이 있다. 한 리스트는 프리로더에 의해 유지된다. 이러한 리스트는 현저한 부하 요청들을 포함한다. 다른 리스트, 즉 의존도 리스트는 클래스 파일 자체로 발견되는 리스트이다- 이러한 것은 클래스 파일이 의존하는 모든 파일들에 관한 리스트이다.
클래스 명칭들(class names)이 없거나 더 이상의 클래스 명칭들이 없다면, 그 처리는 단계 112로 진행하고, 요청 카운트가 요청된 파일들 중 하나가 도달하는 것을 나타내도록 감소된다. 바꾸어 말하면, 오브젝트 메세지가 도달하고 임의의 다른 의존도에 대해 체크되었다면, 현저한 클래스들의 카운트는 하나씩 감소될 수 있다,
오브젝트 캐루젤로부터 방금 로드된 파일이 닫힌다. 파일을 닫는 것은 메모리로부터 파일이 삭제되게 한다.
새롭게 도달된 오브젝트 메시지들을 위한 의존도 리스트가 하나 이상의 클래스 명칭들을 포함하면, 단계 114에서, 처리는 임포트된 클래스 명칭들(imported class names), 즉, 로딩된 클래스가 의존하는 클래스들 중 하나를 선택한다.
단계 116에서, 클래스 명칭이 프리로더에 의해 유지된 리스트에 이미 있는지를 판정한다.
그 명칭이 리스트에 이미 있다면, 처리는 단계 110으로 복귀한다. 그러나, 그렇지 않다면, 파일이 요청되고, 명칭이 리스트에 부가되어 요청 카운트가 단계 118에서 증가된다.
그러므로, 처리는 프리로더에 의해 이미 다운로드되지 않은 임의의 다른 클래스에 의존하는 지를 판정하도록 각 다운로드된 클래스를 체크한다. 필요하다면, 부가 클래스들이 다운로드될 클래스들의 리스트에 이와 같이 부가된다.
도 5는 프리로딩 쓰레드가 대기하는 "오브젝트 메시지들"의 시작을 도시한다. 오브젝트 메시지는 로딩된 클래스 파일을 구현한다. 메시지는 프리로더 쓰레드가 메시지를 판독하는 메시지 큐(message queue)에 전송된다.
도 5의 흐름도는 로딩이 완료될 때, DSM-CC 스택에 의해 야기되는 콜백(callback)을 도시한다. 이러한 흐름도는 프리로더의 쓰레드 상이 아닌, DSM-CC 스택의 쓰레드 상에서 실행되는 것으로 실현되는 것이 중요하다. 기준 카운트는현저한 부하 요청들의 수의 트랙을 유지하는데 사용된다; 이러한 것은 상술한 기준 카운트와 동일하다. 오브젝트 관리는 저레벨 DSM-CC 스택을 다른 처리를 위한 실시의 또다른 쓰레드에 대해 로딩된 오브젝트를 비동기로 전송하도록 제공한다. 이러한 것은 실제 처리가 DSM-CC 스택의 쓰레드 내에 발생하지 않기 때문이다 - 이러한 쓰레드는 도달 DSM-CC 부분들을 처리하는데 사용가능해야 한다. 로딩시 에러 또는 메시지 전송시 에러가 있다면, 콜백은 기준 카운트를 단순히 감소시켜 복귀할 것이다. 콜백 기능 그 자체는 값이 없는 것으로 복귀한다.
상술한 처리의 예는 하기에 주어진다.
다음의 예는 클래스 로딩 능률을 어떻게 증가시키는지를 도시한다. 이러한 예에서, B, C, D, E, F에 의존하는 클래스(A)의 로딩을 상상한다. 클래스(B, E)는 모듈(1)(M1)에 실행된다. 클래스들(C, F)은 모듈(2)(M2)에서 실행되고 클래스(D)는 모듈(3)(M3)에서 실행된다. 수신기는 DVB-MHP에 의해 규정되었던 바와 같이 투명한 캐싱(transparent caching)을 실시한다. 이것은 시스템 메모리 내에서 이미 사용가능한 모듈로 복귀할 수 있기 전에, 스트림으로부터 DII(DownloadInfoIndication)에 대한 모듈의 버전을 검증해야 하는 것을 의미한다.
다음의 가정이 이루어진다:
DII 메시지를 대기하는 데 걸리는 평균 시간은 tDII이고;
클래스를 분석하는데 걸리는 시간은 tp이고;
M1, M2, M3에 대한 다운로드 시간은 대략 동일한 값, tX(즉, 모듈들은 동일한 크기이다)이고;
tp와 tDII와 모듈 다운로드 시간과의 관계는 0.5tX〈 tp+ tDII〈 tX이고;
클래스(A)의 분석은 시간(t)에서 시작하고, 그 시간은 모듈들이 캐루젤에 나타난 후에 어딘가에 있고;
수신기는 병렬로 3개의 모듈들을 다운로드하는데 사용가능한 충분한 부분 필터들을 가지고;
총 캐루젤 사이클 시간은 T이다.
이러한 모든 가정이 이루어지고, 연속한 클래스 로딩만이 사용하여 모든 클래스들을 로드하는데 걸리는 시간은 다음과 같이 계산될 수 있다:
클래스(A)를 분석하고 클래스(B)를 로드하는 시간 : tp+ T - t + t1 ;
클래스(B)를 분석하고 클래스(E)를 로드하는 시간 : tp+ tDII;
클래스(E)를 분석하고, 클래스(C)를 로드하는 시간 : tp+ T(로딩 요청은 t2 중간 어느곳에서든지 발생하기 때문에) ;
클래스(C)를 분석하고 클래스(F)를 로드하는 시간 : tp+ tDII;
클래스(F)를 분석하고 클래스(D)를 로드하는 시간 : tp+ T(요청이 d3 내부 어느곳에서든지 발생하기 때문에).
이러한 것은 3T - t + 5tp+ 2tDII+ t1의 결과적인 총 로딩 시간을 산출한다. 본 명세서에서 기술된 프리로딩 메카니즘이 사용되면, 대신에 최대 총 로딩 시간은 T - t + t1 + t2 + t3 + 5tp+ 2tDII이 될 것이다.
그 후에, 획득된 시간은 2T - t2 - t3가 될 것이다.
다음의 숫자를 가정한다:
T = 20초
tX = 1초(즉, 500kb/s에서 스트림된 64kB를 위한 대략의 로딩 시간);
획득된 시간은 38이 된다.
본 예에서 주목해야할 가장 중요한 것은 연속한 클래스 로더가 필요한 모든 클래스들을 로딩하는데 걸리는 시간이 N*T의 순서로 쉽게 이루어질 수 있다는 것이며, 여기에서, T는 캐루젤 사이클 시간이고, N은 로딩될 필요가 있는 총 모듈들의 수이다. 본 명세서에서 제안된 프리로더 메카니즘이 사용되면, 대신에 총 로딩 시간은 T*f(클래스 트리)의 순서로 될 것이며, 여기에서 f(클래스 트리)는 그 값이 어떻게 캐루젤이 병렬 프리로딩의 관점으로부터 구성되는지를 나타내는 함수이다.(그 값은 1 과 N 사이에서 변화한다). 프리로더 메카니즘은 다중 다운로드들이 병렬로 실행될 수 있다는 사실의 장점을 가질 때, 빠른 클래스 로딩을 달성하기 위해 기초 캐루젤 의존도가 감소된다.
상술한 처리에 관해, 종종 어플리케이션이 2개의 인보케이션들(invocations) 간에 수정되지 않는 것으로 평가된다. 이와 같이, 어플리케이션이 완전히 시작할 준비가 되는 순간과 어플리케이션의 초기 인보케이션 사이에, 동일한 클래스들이 요청될 것이다. 유사하게, 어플리케이션의 후속한 인보케이션들에 대해, 동일한 클래스들이 요청될 것이다.
어플리케이션이 개시될 때, 그 동작은 사용자에 의해 통상적으로 규정된다. 그러므로, 어플리케이션의 수명동안 로딩되어야 하는 클래스들은 하나의 실행으로부터 다른 실행까지 식별될 필요는 없다.
어플리케이션에 의해 요청된 다양한 오브젝트들 또는 클래스들에 대한 로딩 시간들의 균등한 분배가 없는 것으로 평가된다.
상술한 바와 같이, 전체 모듈들은 통상적으로 메모리내에 저장된다. 그러므로, 클래스 또는 오브젝트가 새로운 모듈의 일부인 곳, 즉, 전에 로딩되지 않았던 모듈 및 메모리 내에서가 아닌 곳에서, 다운로드는 메모리 내에 저장된 "이미 봤던(already-seen)" 모듈로부터 유사한 클래스 또는 오브젝트에 대해서 보다 훨씬 시간이 많이 걸릴 것이다.
가장 단순한 형태에 있어서, 상술한 프리로더 동작은 모듈의 멤버쉽(membership)에 대해 어느것도 알지 못하므로, 오브젝트 또는 클래스가 이미 다운로드되었던 모듈로부터 사용가능한지의 여부를 알지 못한다. 프리로더는 단지 클래스 또는 오브젝트 로더에 의해 요청되는 순서대로 클래스들 또는 오브젝트들을 다운로드한다.
이와 같이, 상술한 바와 같이, 클래스 또는 오브젝트가 로딩되는데 매우 오랜 시간을 필요로 하는 곳에서 제안되며, 이러한 클래스의 로딩은 더욱 일찍 개시된다. 이러한 관점에서, 어플리케이션이 로딩될때마다, 이전에 로딩되기 위해 오랜 기간을 필요로 하는 클래스들 또는 오브젝트들의 모든 명칭들의 정렬 리스트를 포함하는 파일이 생성된다. 바꾸어 말하면, 어플리케이션의 이전 인보케이션 동안,수신된 전송 스트림으로부터 다운로드되어야하고, 메모리 내에 이전에 저장된 모듈들로부터 사용가능하지 않은 모든 클래스들 또는 오브젝트들의 리스트를 저장한다.
캐루젤이 재구성되면, 파일은 어플리케이션이 장착되는 다음 회에 갱신될 것이다.
어플리케이션 장착 이전에 로딩된 클래스들의 명칭들만이 파일 내에 저장된다.
이와 같이, 로딩될 어플리케이션에 대해 요청이 이루어질 때, 이러한 어플리케이션이 이전에 로딩되었는지를 알기 위해 먼저 체크가 이루어진다. 이러한 관점에서, 대응하는 파일이 존재하는지를 알기 위해 체크가 이루어질 수 있다. 만일 존재한다면, 분석되어 클래스들 또는 오브젝트들이 즉시 로딩된다. 실제로, 파일에 기입된 클래스들 또는 오브젝트들의 로딩은 어플리케이션의 제 1 클래스의 로딩이 실제로 개시되기 전에 개시될 수 있다.
이러한 방법으로, 어플리케이션의 클래스 로딩 프로파일을 설명하는 작은 파일들을 유지함으로써, 어플리케이션의 더욱 빠른 다운로드를 제공하는 것이 가능하다.
본 발명은 어플리케이션의 클래스 로딩 프로파일을 설명하는 작은 파일들을 유지함으로써, 어플리케이션의 더욱 빠른 다운로드를 제공하는 효과가 있다.

Claims (17)

  1. 분산 어플리케이션 환경으로부터 어플리케이션 데이터를 다운로드하는 장치에 있어서,
    오브젝트들을 다운로드하는 오브젝트 로더,
    오브젝트 로더로 하여금 타겟 오브젝트를 다운로드하도록 요청하고, 상기 타겟 오브젝트를 처리하고, 필요하면, 상기 오브젝트 로더로 하여금 상기 타겟 오브젝트가 의존하는 또다른 오브젝트를 다운로드하도록 요청하는 제어기를 포함하고,
    상기 장치는;
    상기 타겟 오브젝트가 의존하는 모든 오브젝트들을 판정하도록 상기 타겟 오브젝트를 오브젝트 분석하고, 상기 오브젝트를 다운로드하여 저장하는, 상기 오브젝트 로더와 동시에 동작가능한 프리로더를 더 포함하며, 상기 오브젝트 로더가 상기 또다른 오브젝트를 다운로드하도록 요청될 때 상기 프리로더로부터 상기 또다른 오브젝트를 검색할 수 있도록 하는, 다운로드 장치.
  2. 제 1항에 있어서,
    수신된 전송 스트림으로부터 각각의 요청된 오브젝트에 관한 부분들을 각각 필터링하는, 다수의 부분 필터들을 더 포함하는, 다운로드 장치.
  3. 제 2항에 있어서,
    상기 부분 필터들은 MPEG 부분 필터들인, 다운로드 장치.
  4. 제 2항 또는 제 3항에 있어서,
    상기 프리로더는 상이한 각 부분 필터들로부터 동시에 상이한 오브젝트들을 다운로드하도록 배열되는, 다운로드 장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 프리로더는 다수의 상기 오브젝트들을 동시에 다운로드하도록 배열되는, 다운로드 장치.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    상기 프리로더는 상기 오브젝트들이 의존하는 또다른 오브젝트들을 판정하도록, 상기 오브젝트들 각각을 부가적으로 오브젝트 분석하고, 상기 또다른 오브젝트들을 다운로드하여 상기 또다른 오브젝트들을 저장하는, 다운로드 장치.
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서,
    상기 프리로더가 다운로드된 오브젝트들을 저장하는 수신기 메모리를 더 포함하는, 다운로드 장치.
  8. 제 1항 내지 제 7항 중 어느 한 항에 있어서,
    상기 오브젝트들은 자바 클래스들을 포함하는, 다운로드 장치.
  9. 제 8항에 있어서,
    상기 오브젝트 로더는 순차적 자바 클래스 로더인, 다운로드 장치.
  10. 제 8항 또는 제 9항에 있어서,
    상기 프리로더는 로딩된 클래스 파일의 클래스 분석을 행하는, 다운로드 장치.
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서,
    각각의 이전에 다운로드된 타겟 오브젝트에 대한 파일을 저장하는 메모리로서, 상기 파일은 다운로드에 가장 많은 시간을 요하는 상기 타겟 오브젝트가 의존하는 상기 오브젝트들의 리스트를 포함하는 메모리를 더 포함하고,
    상기 프리로더는 상기 파일 내에 식별된 상기 오브젝트들을 먼저 다운로드하는, 다운로드 장치.
  12. 제 1항 내지 제 11항 중 어느 한 항에 있어서,
    상기 오브젝트들이 모듈들의 일부로서 함께 제공되는 곳에서, 상기 오브젝트로더 또는 프리로더가 오브젝트를 다운로드할 때 상기 오브젝트에 대한 전체 모듈은 메모리 내에 저장되는, 다운로드 장치.
  13. 제 1항 내지 제 12항 중 어느 한 항에 있어서,
    상기 장치는 MHP 인, 다운로드 장치.
  14. 제 1항 내지 제 13항 중 어느 한 항에 있어서,
    상기 장치는 텔레비전 장치인, 다운로드 장치.
  15. 분산 어플리케이션 환경으로부터 어플리케이션 데이터를 다운로드하는 방법에 있어서,
    타겟 오브젝트의 다운로드를 요청하는 단계,
    상기 타겟 오브젝트를 다운로드하는 단계,
    상기 타겟 오브젝트를 처리하는 단계, 및
    필요하면, 상기 타겟 오브젝트가 의존하는 또다른 오브젝트의 다운로드를 요청하는 단계를 포함하고,
    상기 방법은;
    상기 타겟 오브젝트 처리와 동시에, 상기 타겟 오브젝트가 의존하는 모든 상기 오브젝트들을 판정하도록 상기 타겟 오브젝트를 오브젝트 분석하고, 상기 오브젝트들을 다운로드하는 단계, 및
    상기 또다른 오브젝트의 다운로드를 요청하는 단계에 응답하여 상기 또다른 오브젝트가 검색될 수 있도록 상기 오브젝트들을 저장하는 단계를 더 포함하는, 다운로드 방법.
  16. 오브젝트들을 다운로드하기 위한 오브젝트 로더와, 타겟 오브젝트를 처리하기 위해 상기 오브젝트 로더로 하여금 상기 타겟 오브젝트를 다운로드하도록 요청하고, 필요하면, 상기 타겟 오브젝트가 의존하는 또다른 오브젝트를 상기 오브젝트 로더로 하여금 다운로드하도록 요청하는 제어기를 포함하는 장치를 갖는 분산 어플리케이션 환경으로부터 어플리케이션 데이터를 다운로드하는 방법에 있어서,
    상기 타겟 오브젝트가 의존하는 모든 상기 오브젝트들을 판정하도록 상기 타겟 오브젝트를 오브젝트 분석하는 단계,
    상기 오브젝트들을 다운로드하는 단계, 및
    상기 오브젝트 로더가 상기 또다른 오브젝트를 다운로드하라는 요청에 대응하여 상기 또다른 오브젝트를 검색할 수 있도록 상기 오브젝트들을 저장하는 단계를 포함하는, 다운로드 방법.
  17. 컴퓨터 상에 로딩되어 실행될 때, 제 1항 내지 제 16항 중 어느 한 항에 따라 컴퓨터를 동작하게 하는 코드 구성성분이 기록되는 컴퓨터 판독가능 저장 매체.
KR1020020003095A 2001-01-18 2002-01-18 어플리케이션 데이터를 다운로드하기 위한 방법 및 장치 KR20020061543A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01300429A EP1227666A1 (en) 2001-01-18 2001-01-18 Method and device for downloading application data
EP01300429.6 2001-01-18

Publications (1)

Publication Number Publication Date
KR20020061543A true KR20020061543A (ko) 2002-07-24

Family

ID=8181650

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020003095A KR20020061543A (ko) 2001-01-18 2002-01-18 어플리케이션 데이터를 다운로드하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US20020124244A1 (ko)
EP (1) EP1227666A1 (ko)
JP (1) JP2002304301A (ko)
KR (1) KR20020061543A (ko)
CN (1) CN1190728C (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7110995B2 (en) * 2002-02-27 2006-09-19 International Business Machines Corporation Apparatus and method for generating graphic presentation of estimated time of completion of a server request
US20030177484A1 (en) * 2002-03-15 2003-09-18 Bosschaert Allaert J. D. Firewall class loader
GB0313720D0 (en) * 2003-06-13 2003-07-16 Electra Guide Ltd England An improved television system
US7318229B1 (en) * 2003-07-29 2008-01-08 Sun Microsystems, Inc. Method, system, and program for dispatching a method call
US7500235B2 (en) * 2003-09-05 2009-03-03 Aol Time Warner Interactive Video Group, Inc. Technique for updating a resident application and associated parameters in a user terminal through a communications network
US20080209453A1 (en) * 2004-09-30 2008-08-28 Koninklijke Philips Electronics, N.V. System and Method for Reducing the Start-up Time of Mhp Applications
JP2006331307A (ja) * 2005-05-30 2006-12-07 Hitachi Kokusai Electric Inc 分散システム
KR100720558B1 (ko) 2005-08-30 2007-05-22 엘지전자 주식회사 데이터 방송의 저장 및 실행 기능을 구비한 영상기기 및 그제어방법
US8291431B2 (en) * 2006-08-29 2012-10-16 Qualcomm Incorporated Dependent instruction thread scheduling
US8079025B2 (en) * 2007-06-08 2011-12-13 Apple Inc. Asynchronous load of source dependencies
US8132152B2 (en) * 2007-06-08 2012-03-06 Apple Inc. Extending a scripting language to provide an object hierarchy
US8069438B2 (en) * 2007-06-08 2011-11-29 Apple Inc. Class declaration in a non-class-based programming environment
KR101490688B1 (ko) * 2008-03-03 2015-02-06 삼성전자주식회사 컨텐츠 저장 및 처리 장치 및 그 장치에서 미디어 전송프로토콜에 의하여 컨텐츠에 관한 오브젝트 메타 정보를전송하는 방법
KR101523380B1 (ko) * 2008-10-29 2015-05-27 주식회사 알티캐스트 인터랙티브 서비스 제공 방법
EP2288113B1 (en) * 2009-08-21 2014-09-24 Samsung Electronics Co., Ltd. Apparatuses for downloading applications via application lists
US8788615B1 (en) * 2009-10-02 2014-07-22 Adobe Systems Incorporated Systems and methods for creating and using electronic content that requires a shared library

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2743245B1 (fr) * 1995-12-29 1998-01-23 Thomson Multimedia Sa Dispositif de demultiplexage
US5826031A (en) * 1996-06-10 1998-10-20 Sun Microsystems, Inc. Method and system for prioritized downloading of embedded web objects
US6260078B1 (en) * 1996-07-03 2001-07-10 Sun Microsystems, Inc. Using a distributed object system to find and download java-based applications
DE19652629A1 (de) * 1996-12-18 1998-06-25 Philips Patentverwaltung System zum Austausch von Software
EP0919034A1 (en) * 1997-06-13 1999-06-02 Koninklijke Philips Electronics N.V. Cyclic transmission of a plurality of mutually related objects
US6092120A (en) * 1998-06-26 2000-07-18 Sun Microsystems, Inc. Method and apparatus for timely delivery of a byte code and serialized objects stream
US6604235B1 (en) * 1999-01-06 2003-08-05 Icebox, Llc Operating system upgrading
GB2349548A (en) * 1999-04-27 2000-11-01 Roke Manor Research Downloading software to mobile telecommunication users

Also Published As

Publication number Publication date
EP1227666A1 (en) 2002-07-31
JP2002304301A (ja) 2002-10-18
CN1190728C (zh) 2005-02-23
US20020124244A1 (en) 2002-09-05
CN1369779A (zh) 2002-09-18

Similar Documents

Publication Publication Date Title
US7676554B1 (en) Network acceleration device having persistent in-memory cache
KR20020061543A (ko) 어플리케이션 데이터를 다운로드하기 위한 방법 및 장치
US8078574B1 (en) Network acceleration device cache supporting multiple historical versions of content
KR100888355B1 (ko) 다운로드된 오브젝트들을 애플리케이션에 제공하기 위한방법 및 장치
US7979509B1 (en) Clustered network acceleration devices having shared cache
KR101188472B1 (ko) 데이터 즉시 청킹을 사용하여 파일 입출력을 스케줄 하는 방법
US7051315B2 (en) Network streaming of multi-application program code
EP0753811B1 (en) Data processing method and device
US8233893B2 (en) Mobile handset update package generator that employs nodes technique
US20050273486A1 (en) Virtual distributed file system
EP1378822A1 (en) Data processing system and data processing method, information processing device and information processing method, and storage medium
WO2000039947A2 (en) A broadcast data access system for multimedia clients in a broadcast network architecture
CN104866339A (zh) Fota数据的分布式持久化管理方法、系统和装置
US7213245B2 (en) Software on demand system
WO2007019218A2 (en) Preloading resources from data carousel of broadcast file system
CN117331576A (zh) 应用预下载方法、装置、计算机、存储介质
CN113934435A (zh) 一种函数冷启动方法及装置
KR20070063571A (ko) Mhp 애플리케이션들의 시동 시간을 감소시키기 위한시스템 및 방법
CN113110849A (zh) 按需加载资源
CN112256381A (zh) 语言资源处理方法、装置、计算机设备和存储介质
Park et al. Real-time carousel caching and monitoring in data broadcasting
FR3028070A1 (fr) Procede et dispositif d'architecture configurable a gros grains pour executer en integralite un code applicatif
CN104620563B (zh) 一种用于减少计算设备的网络使用的方法和系统
US11755534B2 (en) Data caching method and node based on hyper-converged infrastructure
KR100758514B1 (ko) 캐로셀 정보를 배열하는 정보 서버 및 방법

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