KR20020022085A - 응용프로그램 라이프사이클에 따른 응용프로그램 관리방법 및 장치 - Google Patents

응용프로그램 라이프사이클에 따른 응용프로그램 관리방법 및 장치 Download PDF

Info

Publication number
KR20020022085A
KR20020022085A KR1020027000469A KR20027000469A KR20020022085A KR 20020022085 A KR20020022085 A KR 20020022085A KR 1020027000469 A KR1020027000469 A KR 1020027000469A KR 20027000469 A KR20027000469 A KR 20027000469A KR 20020022085 A KR20020022085 A KR 20020022085A
Authority
KR
South Korea
Prior art keywords
application
state
program product
computer program
instructions
Prior art date
Application number
KR1020027000469A
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
Priority claimed from US09/465,980 external-priority patent/US7257812B1/en
Priority claimed from US09/465,994 external-priority patent/US6874145B1/en
Application filed by 썬 마이크로시스템즈, 인코포레이티드 filed Critical 썬 마이크로시스템즈, 인코포레이티드
Publication of KR20020022085A publication Critical patent/KR20020022085A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • 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/4438Window management, e.g. event handling following interaction with the user interface
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • 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/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4858End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/45Picture in picture, e.g. displaying simultaneously another television channel in a region of the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • G09G2340/125Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video

Abstract

응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 방법 및 장치가 공개된다. 응용프로그램 라이프사이클은 응용프로그램으로 하여금 다수의 상태 중 하나에 진입하도록 프로그램 관리자를 구동시키는 명령 세트를 통해 프로그램 관리자에 의해 관리된다. 추가적으로, 프로그램 관리자가 응용프로그램의 상태를 특정 상태로 변경시키는 것을 프로그램 관리자가 요청하였거나 요청함에 따라 응용프로그램이 그 상태를 변경시킬 수 없음을 표시하기 위해 응용프로그램이 프로그램 관리자와 통신할 수 있다.

Description

응용프로그램 라이프사이클에 따른 응용프로그램 관리 방법 및 장치{METHODS AND APPARATUS FOR MANAGING AN APPLICATION ACCORDING TO AN APPLICATION LIFECYCLE}
디지털 텔레비전 혁명은 텔레비전 방송 역사에서 가장 주목할만한 사건 중하나이다. 디지털 텔레비전의 출현으로, 위성, 케이블, 지상 텔레비전 채널을 통해 고속 데이터 전송이 가능하다. 디지털 텔레비전은 사용자에게 더많은 채널을 제공할 뿐 아니라, 대폭 향상된 비디오 및 오디오 품질을 제공한다. 보다 중요한 것은 디지털 텔레비전이 진정한 대화형 텔레비전 시대를 안내한다는 점이다. 예를 들어, 디지털 수신기는 간단한 대화형 퀴즈로부터 인터넷까지, 개선된 다양한 서비스를 사용자에게 제공할 수 있고, 텔레비전과 웹 형태 내용의 혼합을 사용자에게 제공할 수 있다. 디지털 텔레비전 시장이 성장함에 따라, 전자 프로그래밍 가이드(Electronic Programming Guides), 보이스-온-디맨드(Voice-On-Demand), 고품질 방송(Enhanced Broadcasting)처럼 차세대 대화형 텔레비전 서비스를 구축할 수 있는, 신뢰성있고 가격경쟁력 있는 소프트웨어 플랫폼을 개발자들이 찾고 있다.
자바는 포터블 언어로 고안된, 선도적인 상용 객제지향 언어이다. 자바 응용프로그램은 한번에 기록되고 컴파일될 수 있으며, 자바 플랫폼을 지원하는 어떤 호환 장치에서도 가동된다. 가령, 자바는 모든 메이저 웹브라우저와 통합될 수 있다. 따라서, 자바는 어떤 웹-기반 컴퓨터에서도 이 컴퓨터의 웹브라우저를 통해 구동된다. 이와 같이, 자바는 차세대 셋톱 박스와 디지털 텔레비전용 소프트웨어 플랫폼으로 대단한 전망을 제공한다.
객체지향 프로그래밍에서, 코드와 데이터는 객체로 통합된다. 각각의 객체는 그 클래스를 통해 규정되며, 이 클래스는 객체의 성질을 결정한다. 다시 말해서, 객체는 클래스의 개별 사례들이다.
데스크탑 환경에서는, 메모리가 상대적으로 제한받지 않기 때문에 각각의 로딩된 응용프로그램(가령, 클래스와 객체)과 관련된 일부 자원들이 자주 풀려나거나 타이트하게 감시될 필요가 없다. 그러나, 메모리는 구현된 시스템의 환경에서 가치있는 자원이다. 특히 디지털 텔레비전 영역에서 가치있는 자원이다. 더욱이, 대화형 디지털 텔레비전 환경에서, 다중 응용프로그램을 구동하는 것은 흔한 일이다. 디지털 텔레비전 서비스는 오디오, 비디오, 그리고 한 개 이상의 응용프로그램으로 구성될 수 있다. 예를 들어, 텔레비전 시청자가 채널을 변경할 경우, 상기 채널에 의해 제공되는 각각의 관련 서비스나 응용프로그램은 다중 클래스의 로딩을 필요로할 것이다. 그 결과, 제한된 양의 메모리가 소모될 때까지 메모리가 응용프로그램및 그 관련 클래스에 계속 할당될 것이다. 메모리가 고갈되면, 어떤 추가 응용프로그램을 구동하는 것이 불가능하다. 이는 오류 발생시 셋톱박스를 재부팅하는 것이 바람직하지 않기 때문에 특히 중요하다.
자바 플랫폼은 각자 독자적 라이프사이클을 가진 다수의 응용프로그램 모델을 현재 규정하고 있다. 일반적으로, 이 응용프로그램 라이프사이클 모델은 자바 플랫폼 상에서 특정 문제를 처리하도록 설계되어 있다. 예를 들어, 애플릿(Applet)은 웹페이지에서 실행 내용에 대한 지원책을 제공하도록 설계되었다. 그러나, 텔레비전 수신기처럼 제한된 메모리를 가지는 시스템에 대해 특정한 요구사항을 어떤 기존 응용프로그램 라이프사이클 모델도 완전하게 처리하지 못한다. 예를 들어, 애플릿과 관련된 클래스들이 로딩되면, 그 클래스 객체들이 메모리로부터 제거되지 않을 것이다. 더욱이, 애플릿 실행이 중단될 때를 결정하는 것이 불가능하다.
앞서로부터, 텔레비전 수신기에 대해 특정한 요구사항을 처리하도록 응용프로그램 라이프사이클이 설계되면 좋을 것이다. 더욱이, 응용프로그램 라이프사이클에 따라 응용프로그램 실행 및 로딩을 관리하는 메카니즘이 설계된다면 좋을 것이다.
본 발명은 컴퓨터 소프트웨어에 관한 것이다. 특히, 본 발명은 응용프로그램 실행을 관리하기 위한 방법 및 장치에 관한 것이다. 추가적으로, 본 발명은 소프트웨어 응용프로그램용 응용프로그램 라이프사이클(lifecycle) 설계를 구현하기 위한 방법 및 장치에 관한 것이다.
도 1은 발명이 구현될 수 있는 디지털 텔레비전 수신기의 블록도표.
도 2A는 디지털 텔레비전 수신기를 통해 로딩되는 응용프로그램을 관리하도록 프로그램 관리자가 구현되는 발명의 한 실시예에서의 블록도표.
도 2B는 도 2A에 도시되는 프로그램 관리자가 동작할 때 따르는 규칙 세트의 블록도표.
도 3은 도 2A에 도시되는 바와 같이 프로그램 관리자에 의해 수신되는 신호 데이터를 저장하기 위해 사용되는 일례의 데이터 구조의 블록도표.
도 4A는 관련된 응용프로그램의 관리 및 실행 중 프로그램 관리자에 의해 접근되는 내역 목록의 한 예의 블록도표.
도 4B는 내역 목록의 한 예에 드러난 응용프로그램 내역을 저장하는 데 사용되는 데이터 구조의 예를 나타내는 블록도표.
도 5A는 발명의 한 실시예에 따라 디스플레이 관리자에 의해 접근되는 디스플레이 내역 목록의 한 예를 나타내는 블록도표.
도 5B는 디스플레이 내역과 관련된 상태 도표.
도 5C는 프로그램 관리자에 앞선 규칙 세트의 예에 따라 발생되는 디스플레이 상태 세트의 예를 나타내는 블록도표.
도 6은 응용프로그램의 라이프사이클중 응용프로그램이 진입할 수 있는 상태 세트를 나타내는 상태 도표.
도 7은 응용프로그램의 라이프사이클 중 프로그램 관리자에 의해 호출될 수 있는 방법을 식별하는 응용프로그램 인터페이스의 한 예의 블록도표.
도 8은 응용프로그램의 라이프사이클 중 응용프로그램에 의해 호출될 수 있는 방법을 식별하는 응용프로그램 환경 인터페이스의 한 예의 블록도표.
도 9는 응용프로그램의 라이프사이클 중 응용프로그램이나 프로그램 관리자에 의해 호출될 수 있는 방법의 블록도표.
도 10은 발명의 실시예에 따라 응용프로그램 라이프사이클에 따라 응용프로그램을 로딩하고 실행하도록 프로그램 관리자를 구현하는 한가지 방법을 나타내는 과정도표.
도 11은 도 10의 블록(1022)에 도시되는 바와 같이 응용프로그램을 로딩하는 한가지 방법의 블록도표.
도 12는 도 10의 블록(1024)에 도시되는 바와 같이 응용프로그램 라이프사이클에 따라 응용프로그램을 실행하는 한가지 방법을 나타내는 블록도표.
도 13은 도 12의 블록(1206)에 도시되는 바와 같이 응용프로그램의 상태를 로딩에서 중지로 변경하는 한가지 방법을 나타내는 블록도표.
도 14는 도 12의 블록(1208)에 도시되는 바와 같이 응용프로그램의 상태를 중지에서 활성으로 변경하는 한가지 방법을 나타내는 블록도표.
도 15는 발명의 구현에 적절한 전형적인, 범용 컴퓨터 시스템의 블록도표.
본 발명은 한 개 이상의 응용프로그램을 관리할 수 있게 한다. 추가적으로, 응용프로그램 라이프사이클에 따라 한 개 이상 응용프로그램의 실행이 관리될 수 있다. 이는 응용프로그램 상태 변화를 개시하고 감시할 수 있는 프로그램 관리자의 이용을 통해 달성된다. 이 방식으로, 응용프로그램은 여러 다양한 플랫폼에서 일관된 방식으로 실행될 수 있다. 발명의 한 태양에 따라, 프로그램 관리자는 응용프로그램을 로딩하고 그 실행 전반에 응용프로그램에 의한 이용을 위해 응용프로그램에 자원을 할당한다. 응용프로그램이 로딩되면, 프로그램 관리자는 응용프로그램 라이프사이클에 따라 응용프로그램을 실행한다. 이는 프로그램 관리자에게 보이는 응용프로그램 인터페이스를 통해 한 실시예에 따라 달성된다. 이 응용프로그램 인터페이스를 통해, 프로그램 관리자는 응용프로그램에서 여러 다양한 상태 변화를 개시할 수 있다. 한 예로서, 프로그램 관리자는 응용프로그램에게 그 실행 중지를 요청할 수 있고 중지 상태에 진입할 수 있다. 또다른 예로서, 프로그램 관리자는 응용프로그램에게 중지 상태로부터 그 실행의 계속을 요청할 수 있고 활성 상태에 진입할 수 있다.
발명의 또다른 태양에 따라, 응용프로그램은 프로그램 관리자에게 그 상태 및 잠재적 상태 변화에 관한 정보를 교환한다. 한 실시예에 따라, 이는 응용프로그램 환경 인터페이스를 통해 달성된다. 이 응용프로그램 환경 인터페이스를 통해, 응용프로그램은 프로그램 관리자가 응용프로그램의 상태 변화를 야기함을 요청할 수 있다. 예를 들어, 응용프로그램은 프로그램 관리자가 응용프로그램으로 하여금 활성 상태에 진입하도록 요청할 수 있다. 추가적으로, 응용프로그램은 이 응용프로그램 환경 인터페이스를 통해, 응용프로그램이 요청한 대로 서비스를 실행할 수 없고 따라서 중단되었음을 표시할 수 있다. (가령, 프로그램 관리자에 의해 유발되거나 응용프로그램에 의해 실행되어) 응용프로그램 상태가 변경될 경우, 응용프로그램은 프로그램 관리자에 (가령, 응용프로그램에게 보이는 응용프로그램 환경 인터페이스를 통해) 이 상태 변화를 통신할 수 있다.
발명의 또하나의 태양에 따라, 프로그램 관리자는 조건식/무조건적 원칙하에 응용프로그램을 중단시킬 수 있다. 프로그램 관리자가 응용프로그램을 무조건적으로 중단시킬 경우, 응용프로그램은 중단되어야 한다. 그러나, 프로그램 관리자가 조건식 원칙하에 응용프로그램을 중단시킬 때, 프로그램 관리자는 응용프로그램이 그 중단에 동의할 경우에만 프로그램을 중단시킬 수 있다. 이 방식으로, 프로그램 관리자는 중단되는 응용프로그램에 의해 동의받는 방식으로 응용프로그램을 종료시키고 응용프로그램과 관련된 자원을 풀어줄 수 있다.
본 발명은 프로그램 관리자에 의해 응용프로그램 라이프사이클에 따라 응용프로그램을 관리하게 할 수 있다. 이는 플랫폼에 상관없이 예측가능한 방식으로 응용프로그램을 실행하게 할 수 있다. 더욱이, 프로그램 관리자가 각 응용프로그램의 현 상태를 감시하기 때문에, 프로그램 관리자는 그 중단에 따라 즉시 각 응용프로그램과 관련된 메모리를 풀어줄 수 있다. 이는 디지털 텔레비전 수신기처럼 제한된 양의 메모리를 가지는 시스템에서 특히 유용하다.
응용프로그램 라이프사이클에 따라 응용프로그램을 로딩하고 실행시키는 발명이 여기서 설명된다. 응용프로그램이 시작되고, 그 환경을 바탕으로 여러 상태 변화를 일으키며, 종국에는 중단되는 그 단계들의 순서는 응용프로그램 라이프사이클로 알려져 있다. 한 실시예에 따라, 이는 한 개 이상 응용프로그램의 실행을 로딩하고 관리할 수 있는 프로그램 관리자의 이용을 통해 달성된다. 한 실시예에 따라, 응용프로그램 라이프사이클은 두 인터페이스를 이용함으로서 구현된다. 먼저, 응용프로그램 프로그래밍 인터페이스는 응용프로그램 라이프사이클에 따라 응용프로그램의 실행을 프로그램 관리자가 관리하게 한다. 두 번째로, 응용프로그램 환경인터페이스는 응용프로그램으로 하여금 한 상태로부터 또다른 상태로 변화하고자 하는 바램을 프로그램 관리자에게 통신하도록 하게 하며, 또는 그 대안으로, 프로그램 관리자에 의해 요청받은 것처럼 상태 변화를 실행할 수 없음을 표시하게 한다. 가령, 프로그램 관리자가 응용프로그램을 활성 상태로 진입하게 하도록 응용프로그램이 요청할 수 있다. 또다른 예로서, 응용프로그램이 중지 상태에 진입하였음을 응용프로그램이 표시할 수 있다. 따라서, 종국에는 응용프로그램이 자신이 놓인 상태를 가장 잘 알기 때문에, 응용프로그램 환경 인터페이스에 의해 응용프로그램이 그 상태 변경을 프로그램 관리자와 통신할 수 있다.
발명은 디지털 텔레비전과 디지털 텔레비전 수신기의 범주 내에서 설명된다. 도 1은 한 예로 든 디지털 텔레비전 수신기를 나타내는 블록도표이다. 도시되는 바와 같이, 안테나(102)를 통해 한 신호가 수신되고 튜너 모듈(104)에 의해 튜닝되어, MPEG2 전송 스트림(106)을 생성한다. 그후 디-멀티플렉서(108)는 비디오 스트림(112), 오디오 스트림(114), 그리고 한 개 이상의 데이터 스트림(116)을 포함한 암호화 MPEG 스트림(110)을 생성한다. 그후 이 세 스트림은 조건식 접근 서브시스템(118)에 의해 처리된다. 예를 들어, 조건식 접근 서브시스템(118)은 키이 관리 정보(120)뿐 아니라 해역 정보(122)(가령, 해역 알고리즘)도 이용할 수 있다. 조건식 접근 서브시스템(118)은 해역되는 비디오 스트림(124)과 오디오 스트림(125) 그리고 데이터(126)를 포함한 해역 MPEG 스트림(123)을 생성한다. 그후, 디코더(128)는 해역 MPEG 스트림(123)을 처리하고, 해역된 비디오 데이터를 프레임 버퍼(130)로 보내고, 해역된 오디오 데이터를 스피커(132)로 전송한다.
자바 가상 머신은 도 1에 도시되는 경우처럼 디지털 텔레비전 수신기에 의해 수신되는 정보를 처리하기 위해 본 발명을 구현하는 데 사용될 수 있는 한가지 플랫폼이다. 특히, 데이터(126)가 처리될 때, 데이터(126)에 제공된 다운로드 프로그램처럼 정보를 처리하는 것이 바람직할 수 있다
도 2A는 디지털 텔레비전 수신기를 통해 로딩되는 응용프로그램을 관리하도록 프로그램 관리자가 구현되는 발명의 한 실시예의 블록도표이다. 도 2A에 도시되는 바와 같이, 본 발명은 디지털 텔레비전 수신기(200)에서 구현될 수 있다. 방송 데이터 스트림(202)은 신호처리 모니터(204)에 의해 수신된다. 이 신호처리 모니터(204)는 방송 데이터 스트림(204)에 응용프로그램이 존재하는 지를 결정하고, 응용프로그램의 위치처럼 응용프로그램과 관련된 데이터 및 응용프로그램의 존재 여부를 표시하는 신호 데이터(206)를 제공한다. 프로그램 관리자(208)는 이 신호 데이터(206)를 이용하여 응용프로그램을 로딩하고 실행한다. 예를 들어, 프로그램 관리자(208)는 적절한 응용프로그램 라이프사이클에 따라 응용프로그램을 실행할 수 있어서, 특정 조건에 따라 응용프로그램이 적절한 상태로 진입한다. 응용프로그램 라이프사이클 설계의 한가지 구현은 아래에서 보다 상세하게 설명될 것이다. 응용프로그램이 실행됨에 따라, 디스플레이 정보가 디스플레이 관리자(212)로부터 디스플레이 내역(210) 형태로 제공된다. 디스플레이 관리자는 텔레비전 모니터(214)에 디스플레이하기에 적절한 디스플레이 정보를 제공한다.
발명의 한 실시예에 따라, 프로그램 관리자는 규칙 세트(216)에 따라 작동한다. 이 규칙들은 응용프로그램 라이프사이클을 구현하기 위해 여러 방식으로 구체화될 수 있다. 예를 들어, 응용프로그램 라이프사이클은 응용프로그램을 정해진 사건 발생에 따라 로딩 상태, 중지 상태, 활성 상태, 그리고 중단 상태로 진입할 수 있게 한다. 도 2B는 도 2A에 도시되는 프로그램 관리자가 작동할 수 있는 규칙 세트를 제시하는 블록도표이다. 이 규칙 세트(216)는 네가지 규칙을 포함한다. 제 1 규칙(218)은 프로그램 관리자가 한 개 이상의 응용프로그램을 관리하는 것을 명시한다. 그러나, 제 2 규칙(220)은 어떤 주어진 시점에서 단 한 개의 응용프로그램만이 활성일 수 있다(실행될 수 있다)는 것을 명시한다. 더욱이, 제 3 규칙(222)은 어떤 주어진 시점에서 오직 한 개의 응용프로그램만이 디스플레이될 수 있다는 것을 명시한다. 마지막으로, 제 4 규칙(224)은 오직 활성이 응용프로그램만이 디스플레이되는 것을 명시한다. 따라서, 여러 방식으로 프로그램 관리자에 대해 규칙 세트가 설계될 수 있다.
도 3은 도 2A에 도시되는 바와 같이 프로그램 관리자에 의해 수신되는 신호 데이터를 저장하는 데 사용되는 데이터 구조의 예를 나타내는 블록도표이다. 신호 데이터(302)는 방송 데이터 스트림에서 응용프로그램 존재 표시(304)를 포함한다. 응용프로그램이 존재할 경우, 그 파일의 위치(306)가 구체화된다. 추가적으로, 응용프로그램의 오리지네이터를 인증하게 하는 인증 정보(308)나, 특정 동작(가령, 판독/기록)이 구체화된 소스/수신지와 연계하여 실행될 수 있거나 실행될 수 없음을 나타내는 허가(310)같은 정보가 구체화된다.
프로그램 관리자(208)는 수많은 프로그램의 라이프사이클을 동시에 관리할 수 있다. 발명의 한 실시예에 따라, 잠재적으로 실행되는 각각의응용프로그램(400)과 관련된 정보를 관리하기 위해, 프로그램 관리자는 프로그램 내역 목록(402)을 관리한다. 도 4A는 관련 응용프로그램(400)의 관리와 실행 중 프로그램 관리자(208)에 의해 접근되는 응용프로그램 내역 목록(402)의 예를 나타내는 블록도표이다. 도시되는 바와 같이, 응용프로그램 내역 목록(402)은 한 개 이상의 엔트리를 포함한다. 이때 각각의 엔트리는 응용프로그램(400) 중 하나와 관련된 응용프로그램 내역(404)을 식별한다. 특히, 응용프로그램(400-A, 400-B, 400-C, 400-D)는 네 개의 잠재적으로 다른 응용프로그램을 나타내며, 각각 서로 다른 응용프로그램 내역(404-A, 404-B, 404-C, 404-D)을 가진다. 응용프로그램 내역(404)은 응용프로그램 라이프사이클에 따라 응용프로그램을 로딩시키고 실행시키기 위해 응용프로그램과 관련된 정보를 식별한다.
한 실시예에 따라, 응용프로그램과 관련된 정보가 중앙화되고 응용프로그램 내역(404)에 의해 참고된다. 도 4B는 도 4A에 제시된 응용프로그램 내역 목록(402)의 예에서 식별되는 응용프로그램 내역(404)을 저장하는 데 사용되는 데이터 구조의 예를 나타낸다. 응용프로그램 내역(404)에 대한 데이터 구조의 예는 클래스들을 메모리로 로딩하는 데 사용되는 객체로 클래스로더(class loader)를 식별하는 클래스로더 식별자(406)(class loader identifier)를 포함한다. 따라서, 클래스로더 식별자(406)는 식별된 클래스로더를 통해 응용프로그램과 관련된 한 개 이상의 클래스를 프로그램 관리자가 로딩시키고, 클래스로더를 참고-중지(de-referencing)함으로서 이 클래스들을 프로그램 관리자가 언로딩시킨다. 추가적으로, 응용프로그램 내역(404)에 대한 데이터 구조의 예는 도 3에 도시되는 바와 같이 신호데이터(302)를 식별하는 신호 데이터 식별자(408)를 포함한다. 따라서, 프로그램 관리자(208)는 응용프로그램의 위치와 인증 및 허가 데이터를 결정하기 위해 이 신호 데이터 식별자(408)를 사용할 수 있다. 응용프로그램 내역(404)에 대한 데이터 구조의 예는 응용프로그램 디스플레이를 위해 도 2A에 도시되는 디스플레이 관리자(212)에 의해 사용될 정보를 포함한 디스플레이 내역을 식별하는 디스플레이 내역 식별자(410)를 포함한다. 예를 들어, 디스플레이 내역은 크기, 위치, 그리고 시각성 데이터(visibility data)처럼 스크린 상에 응용프로그램을 디스플레이하게 하는 객체에 대한 기준을 포함할 수 있다. 응용프로그램 내역(404)에 대한 데이터 구조의 예는 응용프로그램을 식별하는 응용프로그램 식별자(412)를 또한 포함한다. 추가적으로, 응용프로그램 환경 객체(414)는 응용프로그램이 프로그램 관리자(414)와 통신하게 하도록 식별된다. 한 예로서, 응용프로그램은 또다른 상태로 진입하고자 하는 바램을, 또는 또다른 상태에 진입하여 이 상태 변화를 프로그램 관리자에게 통신하고자 하는 바램을 프로그램 관리자와 통신하고자 할 수 있다. 또다른 예로서, 응용프로그램은 응용프로그램 환경에 관련된 정보를 얻고자 할 수 있다. 응용프로그램 환경 객체(414)는 도 8과 9를 참고하여 보다 상세하게 설명될 것이다. 응용프로그램 내역(404)에 대한 데이터 구조의 예는 현 응용프로그램 상태(416)를 식별하도록 추가로 나타난다. 따라서, 프로그램 관리자(208)는 각 응용프로그램의 응용프로그램 상태 기록을 유지한다.
도 2A를 참고하여 앞서 설명한 바와 같이, 구분된 디스플레이 관리자(212)는 디스플레이 장치에 대한 접근을 관리하도록, 그리고 결국 디스플레이되는 데이터를관리하도록 구현될 수 있다. 이 과정을 촉진시키기 위해, 디스플레이 관리자는 발명의 한 실시예에 따라 디스플레이 내역 목록을 관리 유지한다. 도 5A는 발명의 한 실시예에 따라 디스플레이 관리자에 의해 접근되는 디스플레이 내역 목록(502)의 예를 나타낸다. 도시되는 바와 같이, 디스플레이 목록 내역(502)은 한 개 이상의 응용프로그램(400-A ~ 400-D)과 관련된 한 개 이상의 엔트리를 포함한다. 디스플레이 내역 목록(502) 내 각각의 엔트리는 내역 식별자(504)와 관련되고, 응용프로그램 디스플레이 장치에 관련된 정보를 구체화하는 디스플레이 내역(506)을 식별한다. 다시 말해서, 디스플레이 내역은 디스플레이 장치 자체에 응용프로그램이 필요로하는 정보를 보지하는 객체일 수 있다. 따라서, 디스플레이 관리자(212)가 응용프로그램을 디스플레이하고자 할 때, 상응하는 디스플레이 내역에서 기준이 되는 적절한 "윈도"를 "켤" 수 있다(나머지를 끔으로서).
디스플레이 내역은 디스플레이 내역에 대한 상태 도표에 따라 디스플레이도리 수 있다. 도 5B는 디스플레이 내역과 관련된 상태 도표이다. 도시되는 바와 같이, 디스플레이 내역은 제 1 디스플레이 상태일 때 보이고(508)(visible), 제 2 디스플레이 상태일 때 안보인다(510)(invisible). 한 실시예에 따라, 프로그램 관리자에 앞서 규칙에 의해 적절한 디스플레이 상태가 결정된다.
도 5C는 도 2B를 참고하여 앞서 설명된 바와 같이, 프로그램 관리자에 앞서 규칙 세트의 예에 따라 발생되는 디스플레이 상태 세트의 예를 제시하는 표이다. 표(512)는 모든 가능한 디스플레이 상태(514)와 그 관련 응용프로그램 상태(516)를 도시한다. 프로그램 관리자에 앞선 규칙 세트의 예에 따라, 활성 응용프로그램만이디스플레이된다. 따라서, 응용프로그램이 활성 상태일 때, 디스플레이 상태는 가시적(visible)이다. 반대의 경우에, 응용프로그램이 중지 상태이면 디스플레이 상태는 비-가시적(invisible)이다.
응용프로그램 라이프사이클은 지정 조건 하에서 응용프로그램이 다수의 상태에 진입하게 함으로서 구현된다. 이 상태들과, 이 상태 각각에 응용프로그램이 진입할 때를 결정하는 조건은 프로그램 관리자의 구현과 응용프로그램 라이프사이클에 따라 변할 수 있다. 도 6은 발명의 한 실시예에 따라 응용프로그램의 라이프사이클 중 응용프로그램이 진입할 수 있는 상태 세트를 나타낸다. 프로그램 관리자가 응용프로그램을 로딩하면, 응용프로그램은 로딩된 상태(602)로 진입한다. 응용프로그램이 로딩 상태(602)로 진입하면, 응용프로그램은 프로그램 관리자에 의한 초기화이후 중지 상태(604)에 진입할 수 있다. 프로그램 관리자만이 중지 상태(604)로부터 응용프로그램 상태를 활성 상태로 변경시킬 수 있다. 추가적으로, 프로그램 관리자나 프로그램은 응용프로그램을 종료시킬 수 있고, 로딩된 상태(602), 활성 상태(606), 또는 중지 상태(604)로부터 종료 상태(608)에 진입할 수 있다.
도 6을 참고로 설명한 바와 같이, 응용프로그램의 상태는 실행중인 응용프로그램에 의해, 또는 실행중인 응용프로그램과는 다른 응용프로그램에 의해 변경될 수 있다. 여러 객체지향 언어에서, 구현 세부사항은 외부 과정으로부터 감추어지면서 (가령 인터페이스를 통해) 방법 명칭과 매개변수가 외부 과정에 가시적(visible)이도록 방법과 변수가 모듈로 그룹화될 수 있다. 한 실시예에 따라, 응용프로그램 및 프로그램 관리자에 접근할 수 있는 인터페이스와 그 관련 방법은 차후에 패키지라 불리는 것으로 "묶여진다(packaged)". 각각의 패키지는 외부적으로 가시적인 상기 방법 명칭 및 매개변수를 규정하는 관련 인터페이스를 포함한다. 추가적으로, 각각의 패키지는 패키지의 인터페이스에 규정된 방법의 동체, 따라서 그 구현 세부사항을 포함하는 관련 동체를 가진다. 응용프로그램과 프로그램 관리자는 통신을 위해 두 개의 서로 다른 인터페이스를 이용할 수 있다. 따라서, 프로그램 관리자와 응용프로그램은 두 개의 서로 다른 인터페이스, 즉 응용프로그램 인터페이스와 응용프로그램 환경 인터페이스를 이용함으로서 응용프로그램의 상태를 변경할 수 있다. 추가적으로, 프로그램 관리자와 응용프로그램은 상태 변화나 잠재적 상태 변화에 관한 정보같은 정보를 통신할 수 있다.
도 7은 응용프로그램의 상태 변화를 위해 응용프로그램 라이프사이클 중 프로그램 관리자에 의해 호출될 수 있는 방법을 식별하는 응용프로그램 인터페이스를 나타낸다. 응용프로그램 인터페이스(702)는 프로그램 관리자에 의해 호출될 수 있는 모든 방법과 관련 매개변수를 규정한다. 초기화 방법(704)은 프로그램 관리자로 하여금 응용프로그램을 초기화시키는 데 사용된다. 예를 들어, 초기화 방법(704)은 응용프로그램에 신호를 보내 응용프로그램을 초기화시킬 수 있고, 로딩된 상태로부터 중지 상태에 진입하게 할 수 있다. 한 실시예에 따라, 초기화 방법(704)의 한 매개변수는 응용프로그램 환경 객체(706)이고, 이는 도 8을 참고하여 아래에서 보다 상세하게 설명될 것이다. 응용프로그램 환경 객체(706)는 응용프로그램의 런타임 환경과 관련된 성질에 접근하기 위해 응용프로그램에 의해 또한 사용될 수 있다. 이는 아래에서 상세하게 설명될 것이다. 추가적으로, 응용프로그램 환경객체(706)를 이용함으로서, 응용프로그램은 그 런타임 환경과 관련된 성질을 얻을 수 있다. 예를 들어, 얻을 수 있는 성질은 신호 데이터에 대한 기준과, 서비스가 제시되는 환경에 대한 기준을 포함한다. 이 방식으로, 응용프로그램은 그 실행 준비를 위해 자신을 초기화할 수 있다. 응용프로그램이 실행 이전에 공유 자원을 보유하는 것이 선호되지 않지만, 응용프로그램은 합리적인 시간 내에 실행 준비되어야 한다. 초기화 방법(704)은 한번만 호출되어야 한다. 초기화 방법(704)이 성공적으로 복귀한 후, 응용프로그램은 중지 상태에 놓인다. 초기화 방법(704)이 성공적으로 복귀할 수 없을 경우, 응용프로그램은 중지 상태에 진입할 수 없음을 표시하는 상태변화 예외점을 되돌려보낸다.
응용프로그램이 중지 상태일 때, 응용프로그램은 활성 상태에 진입할 수 있다. 그러나, 프로그램 관리자는 시작 방법(708)을 이용하여 이 상태 변화를 일으킬 수 있다. 시작 방법(708)은 한번 호출되면, 서비스 제공 시작 및 활성 상태 진입을 응용프로그램에 신호한다. 활성 상태에서, 응용프로그램은 공유 자원을 보유할 수 있다. 여러 고장, 오류가 서비스 시작을 막을 수 있다. 예를 들어, 두 종류의 고장사이를 응용프로그램이 구별한다. 일시적 고장(transient failure)의 경우 상태 변화 예외점이 상승한다. 비-일시적 고장(non-transient failure)이 발생할 경우, 또다른 예외점이 상승될 수 있고, 또는 이 방법을 적절히 종료시키기 위해 종료 방법이 호출될 수 있다. 예를 들어, 응용프로그램이 실행할 필요가 있는 자원에 접근할 수 없다고 응용프로그램이 결정할 경우, 이는 일시적, 또는 비일시적 고장으로 구현될 수 있다.
중지 방법(710)은 프로그램 관리자에 의해 호출될 경우, 실행 중단 및 활성 상태로부터 중지 상태로 진입을 응용프로그램에 신호한다. 중지 상태에서, 응용프로그램은 실행을 중지하고 가능한 적은 자원을 이용하려 한다. 따라서, 응용프로그램은 보유하고 있는 모든 공유 자원이나 일부를 풀어줄 수 있다.
로딩 상태, 활성 상태, 또는 중지 상태로부터 응용프로그램을 종료하는 것이 바람직할 수 있다. 이는 종료 방법(712)을 호출함으로서 달성될 수 있다. 종료 방법(712)은 종료 및 종료 상태 진입을 응용프로그램에 신호한다. 종료 상태에서, 응용프로그램은 모든 자원을 풀어주어야 하고, 프리퍼런스(preference)나 상태 정보를 저장하여야 한다.
프로그램 관리자가 응용프로그램을 종료시키고자 할 경우, 여러 단계의 긴급상황을 표시하는 것이 바람직할 수 있다. 한 실시예에 따라, 지정 조건이 만족될 때 응용프로그램 종료가 실행된다. 한 예로서, 지정 조건은 조기 종료에 동의하는 응용프로그램으로부터의 신호가 존재하는 것일 수 있다. 또다른 예로서, 지정 조건은 특정 시간 주기 내에 응용프로그램으로부터 신호 수신이 없는 경우일 수 있다. 이는 종료 방법(712)에 대한 매개변수(714)를 통해 달성될 수 있다. 매개변수(714)는 종료 신호가 제 1 상태에서 조건식이고 제 2 상태에서 무조건식임을 나타낸다. 따라서, 프로그램 관리자가 단지 응용프로그램 종료만을 요청하고자 할 경우, 응용프로그램의 종료 결정에 따라 종료 신호가 조건식임을 명기할 수 있다. 응용프로그램은 실행을 계속하고 따라서 상태 변화 예외점을 상승시킴으로서 종료 상태에 진입하지 않고자 함을 나타낼 수 있다. 프로그램 관리자가 응용프로그램으로부터 상기 요청을 받아들이고자할 경우, 프로그램 관리자는 차후에 다시 종료 방법을 호출할 수 있다. 대안으로, 프로그램 관리자가 가령, 높은(또는 낮은) 우선순위의 또다른 응용프로그램을 종료하고자 시도할 수 있다. 이 방식으로, 프로그램 관리자는 종료를 선택하는 응용프로그램으로부터 응용프로그램이 필요로하던 자원을 얻을 수 있다. 더욱이, 프로그램 관리자는 우선순위처럼, 또는 시행이 개시되는 순서처럼 특정 순서로 응용프로그램을 종료하고자 시도할 수 있다.
프로그램 관리자가 특정 응용프로그램을 종료시킬 필요가 있을 때, 파괴 방법(712)의 매개변수(714)를 통해 파괴 신호가 무조건적임을 명시함으로서 이를 표시할 수 있다. 가령, 응용프로그램에 의해 점유되는 모든 자원을 프로그램 관리자가 필요로할 때 종료 신호가 무조건적이라는 점을 프로그램 관리자가 명시할 수 있다. 따라서, 프로그램 관리자는 종료 신호가 무조건적일 때 응용프로그램을 강제로 종료시킬 수 있고 응용프로그램에 의해 점유되는 자원을 풀어줄 수 있다. 따라서, 응용프로그램이 실행을 계속하고자 함을 나타내는 상태 변화 예외점을 상승시킬 경우에도, 종료신호가 무조건적일 때 프로그램 관리자는 이 예외점을 무시할 수 있다. 앞서 내용이 조건식과 무조건식 응용프로그램 종료를 언급하고 있지만, 다른 동작들도 마찬가지로 조건식/무조건식으로 시행될 수 있다.
앞서 설명한 바와 같이, 응용프로그램이 초기화될 때 응용프로그램 환경 객체가 응용프로그램으로 들어온다. 추가적으로, 응용프로그램 환경 객체는 응용프로그램에 성질 검색을 위한 메카니즘과 내부 상태 변화의 신호 방법을 제공한다. 한 실시예에 따라, 응용프로그램 환경 객체는 로딩되고 실행되는 응용프로그램에 있어가용한 응용프로그램 환경 인터페이스를 포함한다. 특히, 응용프로그램이 초기화되면, 응용프로그램 환경 인터페이스가 응용프로그램에서 가용하다.
도 8은 응용프로그램의 라이프사이클 중 실행중인 응용프로그램에 의해 호출될 수 있는 응용프로그램 환경 인터페이스 식별 방법의 예를 나타낸다. 아래에서 설명되는 바와 같이, 응용프로그램 환경 인터페이스(802)는 응용프로그램이 그 환경에 관한 정보를 발견할 수 있게 하는, 그리고 그 상태 변화와 원하는 상태 변화에 관해 프로그램 관리자와 통신하게 하는, 여러 방법을 제공한다.
앞서 설명한 바와 같이, 응용프로그램은 로딩 상태, 활성 상태, 중지 상태로부터 종료 상태에 진입할 수 있다. 더욱이, 프로그램 관리자나 응용프로그램은 응용프로그램을 종료 상태에 진입시킬 수 있다. 도 7에 도시되는 바와 같이, 프로그램 관리자는 종료 방법을 호출함으로서 응용프로그램을 종료시킬 수 있다. 대안으로, 응용프로그램 환경 인터페이스(802)의 종료 방법(804)은 종료 상태에 들어갔음을 응용프로그램이 신호하게 한다. 프로그램 관리자는 그후 도 7을 참고하여 앞서 기술된 바와 같이, 응용프로그램 인터페이스에 제공되는 종료 방법을 호출하지 않고 응용프로그램 상태를 종료 상태로 갱신한다. 마치 응용프로그램이 프로그램 관리자에 의해 종료되는 것과 동일한 동작을 응용프로그램이 실행한다. 이는 응용프로그램이 종료 상태로 들어가기 전에 실행되는 것이 선호된다.
응용프로그램이 활성 상태일 때, 프로그램 관리자나 응용프로그램은 응용프로그램을 중지 상태에 진입시킬 수 있다. 특히, 프로그램 관리자는 도 7에서 설명한 중지 방법을 이용하여 응용프로그램을 중지시킬 수 있다. 대안으로, 응용프로그램이 활성임을 원하지 않으며 중지 방법(806)을 통해 중지 상태에 진입하였음을 응용프로그램은 신호할 수 있다.
매개변수(810)를 가지는 겟 프라퍼티 방법(get property method)(808)은 응용프로그램 환경 객체로부터 한 개 이상의 성질을 얻기 위한 메카니즘을 응용프로그램에 제공한다. 한 예로 자바 환경의 경우, 자바 환경에서 디스플레이될 수 있도록 사용자 인터페이스 성분(가령, 풀-다운 메뉴, 버튼)을 내장하는 데 "루트 컨테이너(root container)"가 일반적으로 사용된다. 따라서, 겟 프라퍼티 방법(808)은 성분들이 사용될 수 있는 루트 컨테니어를 결정하는 데 이용될 수 있다. 또다른 예로서, 방송 데이터 스트림에 관련된 정보(가령, 방송 데이터 스트림 내 파일 위치)를 얻을 수 있다. 그외 다른 성질로는, 아래의 전송 프로토콜에 대해 특정한 정보 및 서비스 세션 객체에 대한 기준 등이 있다.
프로그램 관리자만이 응용프로그램을 활성 상태에 진입시킴에도 불구하고, 응용프로그램은 활성 상태 진입에 관심있음을 표시하고자 할 수 있다. 이는 한 실시예에서, 재개 요청 방법(resume request method)(812)을 통해 달성된다. 재개 요청 방법(812)을 통해, 한 개 이상의 응용프로그램들이 활성 상태에 진입하고자 하는 바램을 각각 표시할 수 있다. 그러나, 동시에 실행될 수 있는 응용프로그램의 숫자가 프로그램 관리자가 따르는 규칙 세트에 의해 제한될 수 있다. 가령, 도 2B를 참고하여 앞서 설명한 바와 같이, 규칙들은 한번에 오직 한 개의 응용프로그램만이 활성일 수 있음을 명시할 수 있다. 따라서, 재개 요청 방법(812)에 대한 호출은 활성 상태에 진입하고자 하는 응용프로그램을 결정하기 위해 프로그램 관리자에의해 사용될 수 있어서, 프로그램 관리자가 활성 상태로의 이동을 요청하는 한 개 이상의 응용프로그램을 선택할 수 있다.
앞서 설명된 인터페이스를 통해, 응용프로그램 라이프사이클은 프로그램 관리자와 응용프로그램에 의해 제어될 수 있다. 인터페이스가 잘 규정되어 있어도, 도 7과 8을 참고하여 앞서 설명된 방법의 동체들은 관련 인터페이스(와 관련 상태 머신)가 이에 따르는 한 여러 방식으로 구현될 수 있다.
도 9는 응용프로그램의 라이프사이클 중 프로그램 관리자나 응용프로그램에 의해 호출될 수 있는 방법의 예를 나타낸다. 도 9에 도시되는 바와 같이, 프로그램 관리자(902)에 의해, 그리고 프로그램 관리자(902)에 의해 관리되는 각각의 응용프로그램(904)에 의해, 구분된 세트의 방법이 호출될 수 있다. 도 7을 참고하여 앞서 설명된 바와 같이, 제 1 세트의 방법은 초기화 방법(906), 시작 방법(908), 종료 방법(910), 중지 방법(912)을 포함하여 프로그램 관리자(902)에 의해 호출될 수 있다. 마찬가지로 도 8을 참고하여 앞서 설명한 바와 같이, 제 2 세트의 방법은 중지 방법(914), 종료 방법(916), 재개 요청 방법(918), 겟 프라퍼티 방법(920)을 포함하여, 상응하는 응용프로그램(904)에 의해 호출될 수 있다.
도 10은 발명의 한 실시예에 따라 응용프로그램 라이프사이클에 따라 응용프로그램을 로딩하고 실행시키도록 프로그램 관리자를 구현하는 한가지 방법의 블록도표이다. 이 과정은 블록(1002)에서 시작하고, 블록(1004)에서 디지털 텔레비전 수신기가 켜진다. 그후 자바 환경이 블록(1006)에서 시작된다. 프로그램 관리자는 한 개 이상 응용프로그램의 로딩과 실행을 관리하기 위해 블록(1008)에서 구축된다. 프로그램 관리자는 블록(1010)에서 구동된다.
다수의 디지털 텔레비전 서비스가 도 1에 도시되는 경우처럼 디지털 텔레비전 수신기에 의해 수신될 수 있다. 다중 채널(또는 서비스)을 수신함에 추가하여, 이 서비스들은 대화형 텔레비전으로부터 비디오-온-디맨드에 가깝게, 특화된 프로그램까지의 범위를 가질 수 있다. 특히, 텔레비전 채널에 의해 제공되는 서비스는 오디오, 비디오, 응용프로그램을 자주 포함할 것이다. 서비스가 블록(1012)에서 선택되면, 선택된 서비스와 관련된 데이터 스트림이 디지털 텔레비전 수신기를 통해 수신된다(블록 1014). 예를 들어, 사용자가 디즈니 채널을 틀을 경우, 디즈니 서비스가 선택되고 디즈니 서비스와 관련된 데이터 스트림을 수신한다.
블록(1016)에서, 선택된 서비스와 관련된 응용프로그램이 데이터 스트림에 존재하는 지 여부가 결정된다. 예를 들어, 사용자가 디즈니 서비스를 선택할 때, 디즈니 응용프로그램이 데이터 스트림에 수신될 수 있다. 블록(1018)에서 데이터 스트림에 응용프로그램이 존재한다고 결정될 경우, 블록(1022)에 도시되는 바와 같이 프로그램 관리자가 응용프로그램을 로딩하고, 블록(1024)에서 응용프로그램 라이프사이클에 따라 응용프로그램을 실행한다. 로딩 및 실행 과정은 도 11과 12를 각각 참고하여 아래에서 보다 상세하게 설명될 것이다. 이 처리과정은 블록(1026)에서 완료된다. 데이터 스트림에 어떤 응용프로그램도 존재하지 않을 경우, 블록(1014)에서 수신된 데이터 스트림에 존재할 응용프로그램에 관련된 새 신호를 기다리기 위해 처리과정은 블록(1020)으로 복귀한다. 이 과정은 블록(1016)에서 계속된다.
도 11은 도 10의 블록(1022)에 도시되는 바와 같이 응용프로그램을 로딩하는 방법을 나타내는 블록도표이다. 과정은 블록(1102)에서 시작된다. 블록(1104)에서, 도 3에 도시되는 경우와 같은 신호 데이터가 블록(1104)에서 프로그램 관리자에 의해 수신된다. 신호 데이터가 수신될 경우, 프로그램 관리자는 응용프로그램을 위치시키고 로딩시킬 수 있다. 응용프로그램과 관련된 정보를 저장하기 위해, 도 4B에 도시되는 경우처럼 응용프로그램 내역이 블록(1106)에서 생성된다. 응용프로그램 내역은 응용프로그램과 관련된 모든 정보에 대한 기준을 유지하기 위해 사용될 수 있다. 예를 들어, 프로그램 관리자가 블록(1108)에 도시되는 바와 같이 응용프로그램을 위해 클래스로더를 생성할 경우, 클래스로더에 대한 기준이 응용프로그램 범주에서 유지될 수 있다. 응용프로그램과 관련된 클래스들은 블록(1110)에서 클래스로더를 통해 로딩된다. 응용프로그램의 사례가 블록(1112)에서 클래스로부터 생성된다.
응용프로그램이 실증되면, 응용프로그램은 블록(1114)에 도시되는 바와 같이 로딩 상태에 진입한다. 응용프로그램 환경과 관련된 성질을 응용프로그램이 얻게 하고 프로그램 관리자와 통신할 수 있게 하기 위해, 도 8에 도시되는 경우처럼 응용프로그램 환경 인터페이스에 순응하는 응용프로그램 환경 객체가 블록(1116)에서 실증된다. 응용프로그램 환경 객체는 초기화 방법이 블록(118)에서 프로그램 관리자에 의해 호출될 때 응용프로그램에 대해 초기화된다.
응용프로그램을 로딩함에 추가하여, 프로그램 관리자는 응용프로그램 실행을 감시하고 관리할 책임이 있다. 도 12는 도 10의 블록(1024)에 도시되는 바와 같이응용프로그램 라이프사이클에 따라 응용프로그램 실행의 한가지 방법을 나타내는 블록도표이다. 도 7과 8에 도시되는 경우처럼 인터페이스를 이용함으로서, 응용프로그램과 응용프로그램 관리자는 응용프로그램 상태의 변화를 제시하고, 지연시키며, 방지하고, 실행할 수 있다. 다음은 응용프로그램 라이프사이클 전반에서 응용프로그램 상태가 변화하는 방식의 간단하게 설명한다. 과정은 블록(1202)에서 시작한다. 응용프로그램이 로딩 상태에 들어가면, 응용프로그램은 블록(1204)에서, 프로그램 관리자가 응용프로그램 상태를 중지 상태로 변화시킬 것을 기다린다. 예를 들어 앞서 설명한 것처럼, 프로그램 관리자는 응용프로그램 인터페이스에 제공된 초기화 방법을 이용하여 응용프로그램을 초기화시킬 수 있다. 그래서, 블록(1206)에 도시되는 바와 같이 응용프로그램을 중지 상태에 진입시킬 수 있다. 이는 도 13을 참고하여 상세하게 설명될 것이다. 응용프로그램이 중지 상태로 변경되면, 프로그램 관리자는 결국 블록(1208)에서 응용프로그램 상태를 활성으로 변경시킨다. 이는 도 14를 참고하여 차후에 더욱 상세하게 설명될 것이다. 프로그램 관리자만이 응용프로그램을 활성 상태로 진입시킬 수 있다는 점이 중요하다. 활성 상태로부터, 응용프로그램이나 프로그램 관리자는 응용프로그램 환경 인터페이스에서 가용한 중지 방법을 통해, 또는 응용프로그램 인터페이스에서 가용한 중지 방법을 통해 블록(1210)에서 응용프로그램을 중지 상태에 진입시킬 수 있다. 중지되면, 응용프로그램은 응용프로그램 환경 인터페이스에서 가용한 재개 요청 방법을 통해 실행 재개를 요청할 수 있다. 응용프로그램이나 프로그램 관리자는 응용프로그램 환경 인터페이스에서 가용한 종료 방법을 통해, 또는 응용프로그램 인터페이스에서 가용한 파괴 방법을 통해, 블록(1212)에서 응용프로그램을 종료시키거나 종료 상태에 진입시킬 수 있다. 도시되는 바와 같이, 응용프로그램은 로딩 상태, 중지 상태, 활성 상태 중 어느 하나로부터 블록(1212)에서 종료 상태에 진입할 수 있다. 추가적으로, 응용프로그램의 로딩, 시작, 또는 종료같은 활동의 초기화는 텔레비전 수신기에 의해 수신되는 신호에 따라 초기화된다. 이는 예를 들어, 새 채널을 선택하기 위해 텔레비전 원격제어 장치의 버튼을 사용자가 누르거나 새 프로그램이 시작할 때 발생할 수 있다. 응용프로그램이 요청된 대로 그 상태를 변경시키면, 프로그램 관리자는 도 4A와 4B에 도시되는 바와 같이, 관련 응용프로그램 내역 내 응용프로그램의 현 상태를 갱신한다. 도 12를 참고하여 설명되지는 않았지만, 위의 상태 변경은 응용프로그램에 의해 상승되는 어떤 상태 변경 예외사항에 따라 실행된다. 따라서 대부분의 사례에서, 상태 변경 예외사항이 응용프로그램에 의해 상승될 때, 프로그램 관리자는 응용프로그램의 현 상태를 갱신하지 않는다. 대신에, 동일한 상태 변화, 또다른 상태 변화를 차후에 요청하고자 할 수 있고, 또는 또다른 응용프로그램의 상태 변화를 요청하고자 할 수 있다.
종료시에, 응용프로그램에 의해 점유되는 자원이 풀려날 수 있다. 예를 들어, 응용프로그램의 클린-업을 개시하기 위해 프로그램 관리자가 한 신호를 (방송 환경이나 응용프로그램으로부터 수신기를 통해) 수신할 수 있다. 특히, 클래스로더는 블록(1214)에서 응용프로그램과 관련된 클래스를 언로딩시킬 수 있다. 추가적으로, 도 4A와 4B에 도시되는 바와 같이 응용프로그램 내역 목록에 의해 참고되는 응용프로그램 내역이 풀려날 수 있다.
앞서 설명한 바와 같이, 프로그램 관리자는 응용프로그램의 실행을 준비하기 위해 로딩 상태로부터 중지 상태로 응용프로그램의 상태를 변경한다. 도 13은 도 12의 블록(1206)에 도시되는 바와 같이 로딩 상태로부터 중지 상태로 응용프로그램의 상태를 변화시키는 한가지 방법을 나타낸다. 이 과정은 블록(1302)에서 시작된다. 블록(1304)에서, 프로그램 관리자는 응용프로그램 인터페이스에서 초기화 방법을 호출하고, 응용프로그램 환경 객체를 매개변수로 통과시킨다. 그후 응용프로그램은 블록(1306)에서 응용프로그램 초기화를 위해 응용프로그램 환경 객체를 이용한다. 예를 들어, 응용프로그램 환경 객체는 초기화중에 사용할 수 있는 루트 컨테이너같은 성질을 얻을 수 있다. 그후, 응용프로그램은 블록(1308)에 도시되는 바와 같이 중지 상태에 진입한다.
한 실시예에 따라, 프로그램 관리자만이 응용프로그램의 상태를 활성 상태로 변경할 수 있다. 도 14는 도 12의 블록(1208)에 도시되는 바와 같이 중지 상태로부터 활성 상태로 응용프로그램 상태를 변경하는 한가지 방법을 설명한다. 과정은 블록(1402)에서 시작한다. 블록(1404)에서, 응용프로그램은 응용프로그램 시작을 위한 신호를 수신한다. 예를 들어, 새 프로그램이 시작될 때, 또는 사용자가 텔레비젼 원격 조정 장치의 버튼을 누를 때 프로그램 관리자가 이러한 시작 신호를 수신할 수 있다. 일부 서비스의 경우에, 응용프로그램은 튜닝될 때 자동시작할 수 있다. 그후 프로그램 관리자는 블록(1406)에 도시되는 바와 같이 응용프로그램 인터페이스에 제공되는 응용프로그램 시작 방법을 호출할 수 있다. 응용프로그램은 블록(1408)에서 그 서비스를 실행하고 활성 상태에 진입한다.
본 발명은 열 상황에 적용될 수 있다. 한 예를 들자면, 여러 채널에서 모니터(가령, 텔레비전 스크린) 하부에 디스플레이되는 증권시세 표시기(stock ticker)의 경우를 생각할 수 있다. 주식 정보는 방송 서비스나 백 채널로부터 중앙 서버나 브로드캐스터까지의 수신기에 의해 얻을 수 있다(가령, 모뎀, 케이블 등을 통해). 증권시세 표시기 응용프로그램이 초기화 후 중지 상태에 있다고 가정할 경우, 사용자는 증권시세 표시기 응용프로그램의 시작을 프로그램 관리자에게 신호하는 텔레비전 원격 조절 장치 상의 버튼을 누른다. 프로그램 관리자는 증권시세 표시기 응용프로그램에 대한 응용프로그램 시작 방법을 호출한다. 프로그램 관리자는 이때 응용프로그램이 그 서비스를 실행하고 있다고 가정한다. 시작 신호를 수신하면, 증권시세 표시기 응용프로그램은 증권 시세 검색을 위해 백 채널을 여는 새로운 스레드(thread)를 생성한다. 중권시세 표시기 응용프로그램은 이제 활성 상태에 있다.
활성 상태일 때, 증권시세 표시기 응용프로그램은 증권시세를 계속해서 보여준다. 그러나 응용프로그램의 조작을 넘는 상황으로 인해, 증권시세 표시기 응용프로그램이 이 갱신된 주식 시세를 더 이상 검색하지 못할 수 있다. 이 상황에서, 응용프로그램은 가용한 가장 최근의 주식 시세를 계속 디스플레이하기로 결정할 수 있다. 그러나, 일정 시간 후, 응용프로그램이 백채널을 열지 못할 수 있다. 따라서, 응용프로그램은 디스플레이중인 시세가 너무 오래되어 제시할 수 없고 그 서비스를 더 이상 실행할 수 없다고 결정한다. 그후 응용프로그램은 상태 변화를 프로그램 관리자에게 신호하기 위해 응용프로그램 환경 객체에 대해 중지 방법을 호출함으로서 활성 상태로부터 빠져나오는 것을 선택할 수 있다. 더욱이, 응용프로그램은 이때나 차후에, 그 서비스를 실행할 기회가 더 이상 없다고 결정할 수 있고, 따라서 종료해야한다고 결정할 수 있다. 응용프로그램은 일부 클린-업을 실행하여, 응용프로그램이 더 이상 필요로하지 않는 자원을 풀어준다. 그후 응용프로그램은 종료 상태에 들어갔음을 프로그램 관리자에게 신호하기 위해 응용프로그램 환경 객체 상에서 종료되고 종료 방법을 호출한다. 프로그램 관리자는 이 응용프로그램의 상응하는 클린-업을 실행한다.
본 발명은 어떤 적절한 컴퓨터 시스템에서도 구현될 수 있다. 도 15는 본 발명의 구현에 적합한 일반적인 범용 컴퓨터 시스템(1502)을 도시한다. 컴퓨터 시스템은 어떤 적절한 형태도 취할 수 있다. 가령, 컴퓨터 시스템은 디지털 텔레비전 수신기나 셋톱박스와 통합될 수 있다.
컴퓨터 시스템(1530), 특히 CPU(1532)는 가상 머신을 지원하도록 배열될 수 있다. 컴퓨터 시스템(1502)은 주기억장치(1506)(일반적으로 ROM)와 주기억장치(1508)(일반적으로 RAM)를 포함하는 메모리 장치에 연결될 수 있는 프로세서(1504)를 포함한다. 프로세서(1504)는 여러개일 수도 있다. 당 분야에 공지된 바와 같이, ROM은 CPU(1504)에 단방향으로 데이터 및 명령을 전달하는 역할을 하며, RAM은 양방향으로 데이터 및 명령을 전달하는 데 사용된다. 주기억장치(1506, 1508)는 어떤 적절한 컴퓨터 판독 매체도 포함할 수 있다. CPU(1504)는 어떤 수의 프로세서도 포함할 수 있다.
일반적으로 대용량 기억 소자인 보조기억장치(1510)가 CPU(1504)에 양방향으로 연결될 수 있으며, 추가적인 데이터 기억 용량을 제공한다. 대용량기억장치(1510)는 컴퓨터 코드, 데이터, 등등을 포함한 프로그램을 저장하는 데 사용될 수 있는 컴퓨터-판독 매체이다. 일반적으로 대용량 기억장치(1510)는 주기억장치(1506, 1508)보다 느린 하드디스크같은 기억 매체이다.
CPU(1504)는 한 개 이상의 입/출력 장치(1512)에도 연결될 수 있다. 입/출력 장치(1512)의 예로는 비디오 모니터, 트랙 볼, 마우스, 키보드, 마이크로폰, 터치식 디스플레이 장치, 트랜스듀서 카드 판독기, 자기식/종이테이프식 판독기, 테이블릿, 스타일러스, 음성이나 글자체 인식 장치, 또는 그외 다른 공지 입력 장치가 있다. 마지막으로, CPU(1504)는 (1514)로 도시되는 바와 같이 네트워크 연결을 이용하여, 컴퓨터나 통신망, 가령, 인터넷망이나 인트라넷망에 연결될 수 있다. 이러한 네트워크 연결로, 앞서 설명한 방법 단계들을 실행하는 와중에 CPU(1504)가 네트워크로부터 정보를 수신할 수 있고 네트워크에 정보를 출력할 수 있다. CPU(1504)을 이용하여 실행될 명령 순서로 자주 표시되는 이러한 정보는 가령, 반송파로 구현되는 컴퓨터 데이터 신호 형태로, 네트워크로부터 수신될 수 있고 네트워크로 출력될 수 있다.
응용프로그램 라이프사이클에 따라 각 응용프로그램의 실행을 로딩 및 관리하기 위해 프로그램 관리자를 이용함으로서, 응용프로그램의 실행이 표준화되고, 메모리 자원이 효과적으로 보존된다. 응용프로그램 라이프사이클은 부분적으로는, 응용프로그램이 진입할 수 있는 상태를 일관된 방식으로 제어함으로서 구현된다. 한 실시예에 따라, 응용프로그램 라이프사이클 제어를 위한 적절한 방법을 규정하는 인터페이스가 응용프로그램 및 프로그램 관리자에 대해 제공된다. 이 방식으로,응용프로그램과 프로그램 관리자는 상태 변화, 상태 변화 요청, 상태 변화의 지연 또는 취소 요청을 통신할 수 있고, 그외 다른 상태 정보를 요청할 수도 있다. 본 발명을 이용함으로서, 응용프로그램은 서로 다른 시간에 서로 다른 머신 상에서 구동될 수 있고, 따라서 예측가능한 방식으로 동일한 결과를 얻을 수 있다. 더욱이, 본 발명은 자원이 더 이상 필요없다고 결정될 때 응용프로그램과 관련된 메모리를 풀어주게 한다. 디지털 수신기와 셋톱박스 내 제한된 양의 메모리 자원에서, 디지털 텔레비전 환경에서 메모리 자원을 관리하는 능력은 상당한 개선점을 보인다.
발명의 실시예와 적용이 여기에서 설명되고 도시되지만, 발명의 사상과 범위 내에서 여러 수정과 변경이 가능하다. 예를 들어, 본 발명은 디지털 텔레비전 수신기의 범주 내에서 구현되는 것으로 설명하였다. 그러나, 본 발명이 다른 범주에서도 사용될 수 있다. 더욱이, 본 발명이 자바 플랫폼에서 구현되는 것으로 설명되었으나, 여러 다양한 플랫폼에서 구현될 수 있다. 더욱이, 앞서 설명된 과정별 블록들은 설명만을 위한 것이다. 따라서, 본 발명이 대안의 과정 블록과 대안의 데이터 구조를 이용하여 실행될 수 있다. 더욱이, 프로그램 관리자와 응용프로그램이 별개의 인터페이스를 가지는 것으로 설명되었으나, 이 인터페이스들은 모든 응용프로그램뿐 아니라 프로그램 관리자에게 가시적인(visible) 공적 방법을 포함할 수 있다. 따라서, 선호되는 실시예는 설명용으로 이해되어야지 제한적 용도로 간주되어서는 안되며, 발명은 여기서 설명되는 세부사항에 제한되지 아니하며 청구범위의 범위 내에서 수정될 수 있다.

Claims (75)

  1. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하기 위한 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터 판독-명령을 저장하는 컴퓨터-판독 매체를 포함하고,
    상기 컴퓨터-판독 명령은 응용프로그램으로부터 상태 변화 요청을 수신하는 명령을 포함하고, 이때 상기 상태 변화 요청은 제 1 상태로부터 제 2 상태로 응용프로그램 상태 변화를 프로그램 관리자가 시작한다는 응용프로그램으로부터 요청을 표시하며,
    상기 컴퓨터-판독 명령은 명시된 규칙 세트에 따라 제 2 상태가 가능할 때 상태 변경 요청에 따라 응용프로그램의 상태 변경을 개시하는 명령을 또한 포함하는, 이상의 사항을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  2. 제 1 항에 있어서, 제 2 상태는 응용프로그램이 현재 실행중임을 나타내는 활성 상태인 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  3. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 새 서비스가 선택됨을 표시하는 신호를 수신하는 명령,
    - 응용프로그램이 활성 상태에 진입하도록 새 서비스가 선택될 때 응용프로그램의 실행을 개시하는 명령,
    - 응용프로그램이 활성 상태로부터 중지 상태에 진입하도록 응용프로그램의 실행을 중지시키는 명령,
    - 응용프로그램이 실행을 재개하여 중지 상태로부터 활성 상태에 진입하고자 함을 표시하는 재개 요청을 수신하는 명령,
    - 재개 요청을 응용프로그램으로부터 수신할 때 응용프로그램이 중지 상태로부터 활성 상태로 진입하도록 응용프로그램의 실행을 시작하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  4. 응용프로그램 라이프사이클에 따라 다수의 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 다수의 응용프로그램이 활성 상태에 진입하도록 다수의 응용프로그램 중 각각의 응용프로그램의 실행을 개시하는 명령,
    - 다수의 응용프로그램 중 하나가 활성 상태로부터 중지 상태로 진입하도록 다수의 응용프로그램 중 하나의 실행을 중지시키는 명령,
    - 다수의 응용프로그램 중 한 개 이상이 실행 재개를 요청하고 중지 상태로부터 활성 상태로의 진입을 요청함을 표시하는 재개요청을 다수의 응용프로그램 중 한 개 이상으로부터 수신하는 명령,
    - 중지 상태로부터 활성 상태로 이동하기 위해 다수의 응용프로그램 중 한 개 이상 중 한 개를 선택하는 명령,
    - 재개 요청을 응용프로그램으로부터 수신할 때 선택된 응용프로그램이 중지 상태로부터 활성 상태로 진입하도록 선택된 응용프로그램의 실행을 재개하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  5. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 응용프로그램이 그 상태를 제 1 상태에서 제 2 상태로 변경하는 것을 첫번째로 요청하는 명령,
    - 응용프로그램이 제 1 상태로부터 제 2 상태로 그 상태를 변경하였는 지를 결정하는 명령,
    - 응용프로그램이 그 상태를 제 1 상태에서 제 2 상태까지 변경하지 않았다고 결정되고 지정 조건이 만족될 때 응용프로그램이 제 1 상태로부터 제 2 상태로 상태 변경을 두 번째로 요청하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  6. 제 5 항에 있어서, 명시된 시간 주기가 경과되었거나 응용프로그램이 이제 요청된 상태 변화를 이제 실행할 수 있음을 지정 조건이 표시하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  7. 제 5 항에 있어서, 상태 변화 예외사항이 응용프로그램에 의해 상승할 때 응용프로그램이 그 상태를 변경하지 않았다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  8. 제 5 항에 있어서, 요청된 상태 변화를 응용프로그램이 거절할 때 응용프로그램이 그 상태를 변경시키지 않는다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  9. 제 5 항에 있어서, 요청된 상태 변화를 응용프로그램이 실행할 수 없을 때 응용프로그램이 그 상태를 변경시키지 않았다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  10. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 응용프로그램이 그 상태를 제 1 상태로부터 제 2 상태로 변경하고자 요청하는 명령,
    - 응용프로그램이 그 상태를 제 1 상태에서 제 2 상태로 변경하였는 지를 결정하는 명령,
    - 응용프로그램이 그 상태를 제 1 상태에서 제 2 상태로 변경하지 않았다고 결정될 때 제 1 상태에서 제 3 상태로 응용프로그램 상태 변화를 요청하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  11. 제 10 항에 있어서, 제 1 상태는 응용프로그램이 현재 실행중임을 표시하는 활성 상태이고, 제 2 상태는 응용프로그램 실행이 종료되었음을 표시하는 종료 상태이며, 제 3 상태는 응용프로그램이 실행을 재개할 수 있도록 응용프로그램 실행이 중지되었음을 표시하는 중지 상태인 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  12. 제 10 항에 있어서, 상태 변화 예외사항이 응용프로그램에 의해 상승될 때 응용프로그램이 그 상태를 변경시키지 않았다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  13. 제 10 항에 있어서, 응용프로그램이 요청된 상태 변화를 거절할 때 응용프로그램이 그 상태를 변경하지 않았다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  14. 제 10 항에 있어서, 요청된 상태 변화를 응용프로그램이 실행할 수 없을 때 응용프로그램이 그 상태를 변경하지 않았다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  15. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 제 1 응용프로그램이 그 상태를 제 1 상태에서 제 2 상태로 변경하고자 요청하는 명령,
    - 제 1 응용프로그램이 그 상태를 제 1 상태에서 제 2 상태로 변경하였는 지를 결정하는 명령,
    - 제 1 응용프로그램이 제 1 상태로부터 제 2 상태로 그 상태를 변경하지 않았다고 결정될 때 제 2 응용프로그램이 제 1 상태로부터 제 2 상태로 상태 변경을 요청하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  16. 제 15 항에 있어서, 제 1 상태는 활성, 중지, 로딩 상태 중 하나이고, 제 2 상태는 응용프로그램이 종료되었음을 표시하는 종료 상태인 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  17. 제 15 항에 있어서, 상태 변화 예외사항이 제 1 응용프로그램에 의해 상승할 때 제 1 응용프로그램이 상태를 변경시키지 않았다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  18. 제 17 항에 있어서, 제 2 상태는 관련 응용프로그램이 실행 중임을 표시하는 활성 상태이고, 제 1 응용프로그램이 중지 상태나 종료 상태로 들어갈 때 제 1 응용프로그램에 의해 상태 변경 예외사항이 상승하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  19. 제 15 항에 있어서, 요청된 상태 변화를 제 1 응용프로그램이 거절할 때 제 1 응용프로그램이 그 상태를 변화시키지 않았다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  20. 제 15 항에 있어서, 요청된 상태 변화를 제 1 응용프로그램이 실행할 수 없을 때 제 1 응용프로그램이 그 상태를 변화시키지 않았다고 결정되는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  21. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 시스템으로서,
    상기 시스템은 한 개 이상의 규칙과 한 개의 프로그램 관리자를 포함하고,
    상기 프로그램 관리자는 한 개 이상의 관련된 지정 명령에 따라 한 개 이상 응용프로그램 각각을 다수의 상태 중 하나에 진입시키도록 응용프로그램 라이프사이클에 따라 한 개 이상 응용프로그램을 실행할 수 있고, 상기 프로그램 관리자는 한 개 이상 규칙에 따라 실행하도록 지정 명령 중 하나를 선택할 수 있는 것을 특징으로 하는 시스템.
  22. 제 21 항에 있어서,
    상기 시스템은 응용프로그램 관리자에 연결된 신호 모니터를 추가로 포함하고,
    상기 신호 모니터는 데이터 스트림을 수신할 수 있으며, 상기 신호 모니터는 응용프로그램이 데이터 스트림 내에 존재하는 지를 결정하고 응용프로그램과 관련된 정보를 프로그램 관리자에게 통신하는 역할을 하는 것을 특징으로 하는 시스템.
  23. 제 21 항에 있어서, 프로그램 관리자는 각 응용프로그램에 대한 응용프로그램 내역을 저장하고, 상기 응용프로그램 내역은 다수의 상태 중 현 상태를 식별하는 것을 특징으로 하는 시스템.
  24. 제 23 항에 있어서, 다수의 사태 중 현 상태는 프로그램 관리자에 대한 관련 응용프로그램에 의해 식별되는 것을 특징으로 하는 시스템.
  25. 제 23 항에 있어서, 응용프로그램 내역은 응용프로그램과 관련된 한 개 이상 클래스를 로딩할 수 있는 클래스로더를 추가로 식별할 수 있는 것을 특징으로 하는 시스템.
  26. 제 23 항에 있어서, 응용프로그램 내역은 디스플레이될 디스플레이 정보를 포함한 디스플레이 내역을 추가로 식별하는 것을 특징으로 하는 시스템.
  27. 제 23 항에 있어서, 응용프로그램 내역은 관련 응용프로그램을 프로그램 관리자와 통신하게 하는 응용프로그램 환경 객체를 추가로 식별하는 것을 특징으로 하는 시스템.
  28. 제 23 항에 있어서, 관련 응용프로그램이 런타임 환경과 관련된 성질을 검색할 수 있게 하는 응용프로그램 환경 객체를 응용프로그램 객체가 추가로 식별하는 것을 특징으로 하는 시스템.
  29. 제 23 항에 있어서, 관련 응용프로그램이 다수의 상태 중 하나로의 상태 변화를 통신할 수 있게 하는 응용프로그램 환경 객체를 응용프로그램 내역이 추가로 식별하는 것을 특징으로 하는 시스템.
  30. 제 23 항에 있어서, 프로그램 관리자가 중지 상태로부터 활성 상태로 응용프로그램의 현 상태를 변경하도록 관련 응용프로그램이 요청하게 하는 응용프로그램 환경 객체를 응용프로그램 내역이 추가로 식별하는 것을 특징으로 하는 시스템.
  31. 제 21 항에 있어서, 상기 시스템은 프로그램 관리자에 연결되는 디스플레이 관리자를 추가로 포함하고, 상기 디스플레이 관리자는 각 응용프로그램의 디스플레이 내역을 관리하며, 상기 디스플레이 내역은 가시적(visible)일 때 제 1 상태이고 비-가시적(invisible)일 때 제 2 상태인 것을 특징으로 하는 시스템.
  32. 제 31 항에 있어서, 디스플레이 내역은 관련 응용프로그램이 활성 상태일 때 제 1 상태이고 관련 응용프로그램이 중지 상태일 때 제 2 상태인 것을 특징으로 하는 시스템.
  33. 제 31 항에 있어서, 디스플레이 내역의 상태가 프로그램 관리자에 앞서 한 개 이상의 규칙에 따라 결정되는 것을 특징으로 하는 시스템.
  34. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 디지털 텔레비전 수신기로서,
    상기 디지털 텔레비전 수신기는 프로세서와 메모리를 포함하고, 상기 메모리는 컴퓨터-판독 명령을 저장하며, 상기 컴퓨터-판독 명령은,
    - 응용프로그램이 데이터 스트림 내에 있는 지를 데이터 스트림으로부터 결정하는 명령,
    - 응용프로그램이 데이터 스트림 내에 있다고 결정될 때 응용프로그램을 로딩하는 명령,
    - 다수의 상태를 포함하여 응용프로그램 라이프사이클에 따라 응용프로그램을 실행하는 명령을 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  35. 제 34 항에 있어서,
    응용프로그램을 실행하는 명령들은 제 1 인터페이스와 제 2 인터페이스를 포함하고, 제 1 인터페이스는 프로그램 관리자에 대해 가시적(visible)이고 제 2 인터페이스는 응용프로그램에 대해 가시적(visible)이며,
    제 1 인터페이스는 다수의 상태 중 하나로부터 다수의 상태 중 다른 하나로 응용프로그램의 상태 변경을 프로그램 관리자로 하여금 가능하게 하고,
    제 2 인터페이스는 다수의 상태 중 제 1 세트로부터 다수의 상태 중 제 2 세트로 응용프로그램의 상태 변화를 응용프로그램이 프로그램 관리자와 통신하게 하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  36. 제 35 항에 있어서, 다수의 상태 중 제 2 세트는 응용프로그램이 중지되었음을 표시하는 중지 상태와, 응용프로그램이 종료되었음을 나타내는 종료 상태를 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  37. 제 34 항에 있어서,
    응용프로그램 실행 명령은 프로그램 관리자에게 가시적(visible)인 제 1 인터페이스와 응용프로그램에 가시적(visible)인 제 2 인터페이스를 포함하고,
    상기 제 1 인터페이스는 다수의 상태 중 하나로부터 다수의 상태 중 다른 하나로 응용프로그램의 상태 변경을 프로그램 관리자에 의해 가능하게 하며,
    상기 제 2 인터페이스는 프로그램 관리자가 응용프로그램의 상태를 다수의 상태 중 제 1 상태로 변경하고자 응용프로그램이 요청하게 하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  38. 제 37 항에 있어서, 다수의 상태 중 제 2 상태로부터 다수의 상태 중 제 1 상태로 응용프로그램의 상태를 변경시키는 명령을 추가로 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  39. 제 38 항에 있어서, 제 1 상태는 활성 상태이고 제 2 상태는 중지 상태인 것을 특징으로 하는 디지털 텔레비전 수신기.
  40. 제 34 항에 있어서,
    응용프로그램 실행 명령은 프로그램 관리자에게 가시적(visible)인 제 1 인터페이스와 응용프로그램에 가시적(visible)인 제 2 인터페이스를 포함하고,
    상기 제 1 인터페이스는 다수의 상태 중 하나로부터 다수의 상태 중 다른 하나로 응용프로그램의 상태 변경을 프로그램 관리자에 의해 가능하게 하며,
    상기 제 2 인터페이스는 프로그램 관리자가 요청한 대로 응용프로그램이 그 상태를 변경시킬 수 없음을 응용프로그램으로 하여금 프로그램 관리자에게 통신하도록 하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  41. 제 40 항에 있어서, 프로그램 관리자가 요청하였으나 응용프로그램이 그 상태를 변화시킬 수 없음을 나타내는 상태 변화 예외사항을 응용프로그램으로 하여금 상승시키는 명령을 추가로 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  42. 제 40 항에 있어서, 프로그램 관리자가 요청하였으나 응용프로그램이 그 상태를 변경시키길 원하지 않음을 표시하는 상태 변경 예외사항을 응용프로그램으로 하여금 상승시키는 명령을 추가로 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  43. 제 36 항에 있어서, 응용프로그램이 종료되었을 때 응용프로그램과 관련된 메모리를 풀어주는 명령을 추가로 포함하는 것을 특징으로 하는 디지털 텔레비전수신기.
  44. 제 34 항에 있어서, 상기 텔레비전 수신기는,
    - 응용프로그램과 관련된 한 개 이상 클래스를 로딩하는 클래스로더를 응용프로그램과 관련하여 생성하는 명령,
    - 응용프로그램과 관련된 클래스를 로딩하기 위해 클래스로더를 사용하는 명령,
    - 클래스로더에 의해 로딩된 클래스를 이용하여 응용프로그램을 실증하는 명령을 추가로 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  45. 제 44 항에 있어서, 응용프로그램이 종료될 때 응용프로그램과 관련된 클래스들을 언로딩시키는 명령을 추가로 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  46. 제 45 항에 있어서, 클래스를 언로딩시키는 명령은 클래스로더를 참고-중지시키는 명령을 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  47. 디지털 텔레비전 수신기 환경에서 응용프로그램 실행을 관리하는 프로그램관리자용 상태 머신으로서,
    상기 상태 머신은 로딩 상태, 중지 상태, 활성 상태, 종료 상태를 포함하며,
    상기 로딩 상태는 응용프로그램이 로딩된 상태이고,
    상기 중지 상태는 응용프로그램이 중지된 상태이며, 이때 응용프로그램은 상기 로딩 상태로부터 상기 중지 상태로 전환하도록 초기화되며,
    상기 활성 상태는 응용프로그램이 실행 중인 상태이고, 이때 응용프로그램은 상기 중지 상태로부터 상기 활성 상태로 전환을 시작하며,
    상기 종료 상태는 응용프로그램이 종료된 상태이며, 이때 응용프로그램은 상기 활성 상태나 상기 중지 상태로부터 상기 종료 상태로의 전환을 위해 종료된 것을 특징으로 하는 상태 머신.
  48. 제 47 항에 있어서, 상기 로딩 상태에 있을 때 응용프로그램이 종료되어야 할 경우 상기 로딩 상태로부터 상기 종료 상태로 응용프로그램이 전환할 수 있는 것을 특징으로 하는 상태 머신.
  49. 제 48 항에 있어서, 프로그램 관리자나 응용프로그램이 상기 종료 상태로의 전환을 개시할 수 있는 것을 특징으로 하는 상태 머신.
  50. 제 47 항에 있어서, 응용프로그램이 중지되어야할 때 상기 활성 상태로부터 상기 중지 상태로 응용프로그램이 전환할 수 있는 것을 특징으로 하는 상태 머신.
  51. 제 50 항에 있어서, 프로그램 관리자나 응용프로그램이 상기 활성 상태로부터 상기 중지 상태로 전환을 개시할 수 있는 것을 특징으로 하는 상태 머신.
  52. 제 47 항에 있어서, 프로그램 관리자만이 응용프로그램을 시작함으로서 상기 중지 상태로부터 상기 활성 상태로 전환을 개시하는 것을 특징으로 하는 상태 머신.
  53. 제 47 항에 있어서, 상기 상태 머신의 상태들은 함께 응용프로그램 라이프사이클을 형성하는 것을 특징으로 하는 상태 머신.
  54. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 응용프로그램이 로딩 상태에 진입하도록 응용프로그램을 로딩하는 명령,
    - 응용프로그램이 로딩 상태에 있을 때 응용프로그램이 중지 상태에 들어가도록 응용프로그램을 초기화하는 명령,
    - 응용프로그램이 중지 상태에 있을 때 응용프로그램이 활성 상태에 들어가도록 응용프로그램 실행을 개시하는 명령,
    - 응용프로그램이 로딩 상태, 중지 상태, 또는 활성 상태에 있을 때 응용프로그램이 종료 상태에 진입하도록 응용프로그램 실행을 종료시키는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  55. 제 54 항에 있어서,
    - 응용프로그램이 활성 상태에 있을 때 응용프로그램이 중지 상태에 진입하도록 응용프로그램을 중지시키는 명령을 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  56. 제 54 항에 있어서, 응용프로그램이 중지 상태일 때 응용프로그램 실행을 개시하는 명령이 응용프로그램에 의해 호출될 수 없는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  57. 제 54 항에 있어서, 응용프로그램이 중지 상태에 있을 때 응용프로그램 실행을 개시하는 명령이 응용프로그램에 대해 외부적인 과정에 의해서만 호출될 수 있는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  58. 제 55 항에 있어서, 응용프로그램이 활성 상태일 때 응용프로그램 실행을 중지시키는 명령이 응용프로그램이나 응용프로그램에 대해 외부적인 과정에 의해 호출될 수 있는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  59. 제 54 항에 있어서, 응용프로그램을 종료시키는 명령이 응용프로그램이나 응용프로그램에 대해 외부적인 과정에 의해 실행될 수 있는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  60. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 응용프로그램이 중지 상태에 진입하도록 응용프로그램을 초기화시키는 명령,
    - 응용프로그램이 활성 상태에 진입하도록 응용프로그램 실행을 개시하는 명령,
    - 응용프로그램이 중지 상태에 진입하도록 응용프로그램 실행을 중지시키는 명령,
    - 응용프로그램이 종료 상태에 들어가도록 응용프로그램을 종료시키는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  61. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 응용프로그램이 활성 상태에 진입하도록 응용프로그램 실행을 개시하는 명령,
    - 응용프로그램이 중지 상태에 진입하도록 응용프로그램 실행을 중지시키는 명령,
    - 지정 조건이 만족될 때 응용프로그램이 종료 상태에 들어가도록, 조건에 따라 응용프로그램을 종료시키는 명령,
    - 지정 조건이 만족되지 않을 때 응용프로그램이 종료 사태에 들어가도록, 무조건적으로 응용프로그램 실행을 종료시키는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  62. 제 61 항에 있어서, 상기 지정 조건이 응용프로그램으로부터 수신한 신호인 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  63. 제 61 항에 있어서, 상기 지정 조건이 응용프로그램으로부터 수신된 신호의 결여인 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  64. 제 61 항에 있어서,
    - 지정 조건이 만족되지 않을 때 응용프로그램에 의해 상승되는 상태 변화 예외사항을 무시하는 명령을 추가로 포함하고, 이때 상태변화 예외사항은 응용프로그램이 종료되기를 원하지 않음을 표시하는 것을 특징으로 하는 컴퓨터 프로그램프로덕트.
  65. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 응용프로그램이 활성 상태에 진입하도록 응용프로그램 실행을 개시하는 명령,
    - 응용프로그램이 중지 상태에 진입하도록 응용프로그램 실행을 중지시키는 명령,
    - 응용프로그램이 종료 상태에 들어가도록 응용프로그램을 종료시키는 명령,
    - 응용프로그램 실행을 개시하는 명령, 응용프로그램 실행을 중지시키는 명령, 그리고 응용프로그램을 종료시키는 명령의 실행을 개시하기 위해 응용프로그램과는 다른 과정을 가능하게 하는 명령 세트를 포함한 인터페이스를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  66. 제 65 항에 있어서, 상기 인터페이스는 응용프로그램 종료를 위한 명령을 호출하기 위한 스텁(stub)을 포함하고, 상기 스텁은 매개변수가 제 1 상태일 때 응용프로그램 종료가 무조건적이고 매개변수가 제 2 상태일 때 응용프로그램 종료가 조건적임을 표시하는 매개변수를 수용할 수 있는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  67. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터 판독 명령은,
    - 응용프로그램의 종료를 결정하였고 로딩 상태, 중지 상태, 또는 활성 상태 중 하나로부터 종료 상태에 진입하였음을 통신하기 위한 명령, 그리고
    - 응용프로그램 실행 중지를 결정하였고 활성 상태로부터 중지 상태에 진입하였음을 통신하기 위한 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  68. 제 67 항에 있어서,
    - 응용프로그램이 실행을 재개하여 중지 상태로부터 활성 상태에 진입하고자 함을 통신하기 위한 명령을 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  69. 제 67 항에 있어서,
    - 응용프로그램의 런타임 환경과 연관된 정보를 획득하는 명령을 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  70. 제 67 항에 있어서,
    - 응용프로그램 종료 결정을 통신하기 위한 명령과, 응용프로그램 실행 중지 결정을 통신하기 위한 명령의 실행을 응용프로그램으로 하여금 개시하게 하는 명령 세트를 포함한 인터페이스를 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  71. 제 68 항에 있어서,
    - 응용프로그램 종료 결정을 통신하기 위한 명령, 응용프로그램이 실행 중지결정을 통신하기 위한 명령, 그리고 응용프로그램이 실행 재개를 원하고 중지 상태로부터 활성 상태로 진입하고자 함을 통신하기 위한 명령의 실행을 응용프로그램으로 하여금 개시하게 하는 명령 세트를 포함한 인터페이스를 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  72. 응용프로그램 라이프사이클에 따라 응용프로그램 실행을 관리하는 컴퓨터 프로그램 프로덕트로서,
    상기 컴퓨터 프로그램 프로덕트는 컴퓨터-판독 명령을 저장하는 컴퓨터-판독 매체를 포함하고, 상기 컴퓨터-판독 명령은,
    - 응용프로그램이 활성 상태에 진입하도록 응용프로그램 실행을 개시하는 명령,
    - 응용프로그램이 중지 상태에 진입하도록 응용프로그램 실행을 중지시키는 명령,
    - 응용프로그램 실행 재개를 원하고 중지 상태로부터 활성 상태로 진입하고자 함을 통신하기 위한 명령을 포함하고,
    이때 응용프로그램 실행 개시를 위한 상기 명령은 응용프로그램에 의해 호출될 수 없는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  73. 제 72 항에 있어서,
    - 응용프로그램의 실행 중지 결정과 활성 상태로부터 중지 상태 진입을 통신하기 위한 명령을 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  74. 제 72 항에 있어서,
    - 응용프로그램이 종료 상태에 들어가도록 응용프로그램을 종료시키는 명령을 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
  75. 제 74 항에 있어서,
    - 응용프로그램의 종료 결정과 종료 상태 진입을 통신하기 위한 명령을 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 프로덕트.
KR1020027000469A 1999-07-13 2000-07-13 응용프로그램 라이프사이클에 따른 응용프로그램 관리방법 및 장치 KR20020022085A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US14342899P 1999-07-13 1999-07-13
US60/143,428 1999-07-13
US09/465,980 1999-12-16
US09/465,980 US7257812B1 (en) 1999-12-16 1999-12-16 Methods and apparatus for managing an application
US09/465,994 1999-12-16
US09/465,994 US6874145B1 (en) 1999-07-13 1999-12-16 Methods and apparatus for implementing an application lifecycle design for applications
PCT/US2000/019167 WO2001004743A2 (en) 1999-07-13 2000-07-13 Methods and apparatus for managing an application according to an application lifecycle

Publications (1)

Publication Number Publication Date
KR20020022085A true KR20020022085A (ko) 2002-03-23

Family

ID=27385924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027000469A KR20020022085A (ko) 1999-07-13 2000-07-13 응용프로그램 라이프사이클에 따른 응용프로그램 관리방법 및 장치

Country Status (9)

Country Link
EP (1) EP1194840B1 (ko)
JP (1) JP2003504753A (ko)
KR (1) KR20020022085A (ko)
CN (1) CN1227588C (ko)
AT (1) ATE289091T1 (ko)
AU (1) AU781357B2 (ko)
CA (1) CA2373036A1 (ko)
DE (1) DE60018067T2 (ko)
WO (1) WO2001004743A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877775B2 (en) 2004-12-01 2011-01-25 Vodafone K.K. Coordination method and mobile terminal
KR101519414B1 (ko) * 2014-04-28 2015-05-12 한국인터넷진흥원 가상머신 라이프사이클 분석 시스템 및 방법
CN106506815A (zh) * 2016-10-19 2017-03-15 北京奇虎科技有限公司 一种应用的启用方法及相关设备

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2821940B1 (fr) * 2001-03-12 2006-09-29 Centre Nat Etd Spatiales Procede et systeme de gestion du temps dans un systeme temps reel
EP1320032A1 (de) 2001-12-12 2003-06-18 Siemens Aktiengesellschaft Verfahren zum Ändern des Betriebszustandes eines Anwendungsprogramms
JP2005005909A (ja) * 2003-06-10 2005-01-06 Sony Ericsson Mobilecommunications Japan Inc 競合管理プログラム,競合管理プログラムが記憶された記憶媒体,競合管理方法及び電子機器
GB0315492D0 (en) * 2003-07-02 2003-08-06 Symbian Ltd A method of enabling a multitasking wireless information device to conserve battery power
US6947048B2 (en) 2003-07-21 2005-09-20 Sony Corporation Method for sharing a graphics display as a resource in an embedded system
JP4243571B2 (ja) 2003-08-05 2009-03-25 パナソニック株式会社 放送受信装置
CN1867999B (zh) * 2003-10-10 2012-03-21 松下电器产业株式会社 记录方法、再现装置、再现方法
EP1890231A3 (en) * 2003-10-10 2008-08-06 Koninklijke Philips Electronics N.V. Playback of audio-video content and an associated java application from an optical disc
TW200518070A (en) 2003-10-10 2005-06-01 Matsushita Electric Ind Co Ltd Recording medium, reproduction device, program, and reproduction method
US8218951B2 (en) 2003-10-30 2012-07-10 Samsung Electronics Co., Ltd. Storage medium storing program management information, and reproducing method and apparatus
EP2270796A3 (en) 2003-11-10 2015-03-18 Panasonic Corporation Recording medium, playback apparatus, program, playback method, system integrated circuit
CN101656093B (zh) * 2003-11-10 2013-02-27 松下电器产业株式会社 播放装置及播放方法
US7870352B2 (en) 2003-11-13 2011-01-11 Stalker Altan J State-based memory unloading
FR2863074B1 (fr) * 2003-11-28 2006-02-24 Trusted Logic Procede permettant l'interrupton sure d'applications dans un systeme informatique distribue comportant un moteur d'execution logiciel.
JP3917164B2 (ja) * 2003-12-08 2007-05-23 松下電器産業株式会社 分波器および合波器
AU2005232103C1 (en) 2004-04-06 2010-10-28 Panasonic Corporation Program execution device
EP1596291A1 (en) * 2004-05-10 2005-11-16 Deutsche Thomson-Brandt Gmbh Method and apparatus for automatically selecting a software application
EP2270803B1 (en) 2004-07-22 2018-06-20 Panasonic Intellectual Property Management Co., Ltd. Playback apparatus for performing application-synchronized playback
KR100694123B1 (ko) * 2004-07-30 2007-03-12 삼성전자주식회사 동영상 데이터와 어플리케이션 프로그램이 기록된 저장매체 및 그 재생 장치 및 방법
KR101051703B1 (ko) 2004-08-09 2011-07-25 삼성전자주식회사 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템
US20060225107A1 (en) * 2005-04-01 2006-10-05 Microsoft Corporation System for running applications in a resource-constrained set-top box environment
DE102005062419B4 (de) 2005-12-27 2008-01-17 Vega Grieshaber Kg Schaltkreis-Anordnung für ein Feldgerät
KR100736095B1 (ko) 2006-02-24 2007-07-06 삼성전자주식회사 실시간 동영상 스트림의 화면 크기를 제어하는 장치 및방법
CN101403981B (zh) * 2008-11-07 2011-03-16 中兴通讯股份有限公司 手机应用程序运行状态的管理方法和系统
EP2247032A1 (en) * 2009-04-27 2010-11-03 Alcatel Lucent Remotely managing an application on a device by a management server
US8832686B2 (en) * 2010-10-29 2014-09-09 Microsoft Corporation Inherited product activation for virtual machines
TW201241640A (en) * 2011-02-14 2012-10-16 Microsoft Corp Dormant background applications on mobile devices
CN106897077B (zh) * 2013-12-02 2020-11-10 海信视像科技股份有限公司 应用程序控制方法
US9734000B2 (en) * 2015-06-18 2017-08-15 Microsoft Technology Licensing, Llc Seamless transitions between applications and devices
CN110417598B (zh) * 2019-07-30 2022-05-20 普信恒业科技发展(北京)有限公司 网关组件的管理方法及组件管理器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
FR2679351B1 (fr) * 1991-07-15 1995-01-27 Bull Sa Systeme d'exploitation pour dispositif universel de couplage d'un bus d'ordinateur a une liaison specifique d'un reseau.
EP0908821A1 (en) * 1997-10-07 1999-04-14 CANAL+ Société Anonyme Digital code interpreter

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877775B2 (en) 2004-12-01 2011-01-25 Vodafone K.K. Coordination method and mobile terminal
KR101519414B1 (ko) * 2014-04-28 2015-05-12 한국인터넷진흥원 가상머신 라이프사이클 분석 시스템 및 방법
CN106506815A (zh) * 2016-10-19 2017-03-15 北京奇虎科技有限公司 一种应用的启用方法及相关设备

Also Published As

Publication number Publication date
AU6097300A (en) 2001-01-30
EP1194840A2 (en) 2002-04-10
DE60018067T2 (de) 2005-07-28
ATE289091T1 (de) 2005-02-15
EP1194840B1 (en) 2005-02-09
CA2373036A1 (en) 2001-01-18
WO2001004743A3 (en) 2001-12-27
WO2001004743A2 (en) 2001-01-18
JP2003504753A (ja) 2003-02-04
CN1360695A (zh) 2002-07-24
DE60018067D1 (de) 2005-03-17
CN1227588C (zh) 2005-11-16
AU781357B2 (en) 2005-05-19

Similar Documents

Publication Publication Date Title
KR20020022085A (ko) 응용프로그램 라이프사이클에 따른 응용프로그램 관리방법 및 장치
US6874145B1 (en) Methods and apparatus for implementing an application lifecycle design for applications
EP1194838B1 (en) Methods and apparatus for implementing individual class loaders
CA2518645C (en) Method and apparatus enabling multiple application sharing of classes
US10114661B2 (en) System and method for fast starting an application
US20060225107A1 (en) System for running applications in a resource-constrained set-top box environment
US20040103167A1 (en) Convergence events notification system
US20020073218A1 (en) Stream device management system for multimedia clients in a broadcast network architecture
US7870352B2 (en) State-based memory unloading
US20150326897A1 (en) Event booking mechanism
US7257812B1 (en) Methods and apparatus for managing an application
CN112584210A (zh) 显示设备、视频录制方法及录制文件展示方法
Jaeger Set-top box software architectures for digital video broadcast and interactive services
WO2022033153A1 (zh) 一种显示方法及显示设备
CN114915818A (zh) 一种媒资推送方法及智能终端
KR20010103720A (ko) 운영 시스템 커넬 동작을 위한 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E902 Notification of reason for refusal
B701 Decision to grant
NORF Unpaid initial registration fee