KR20000076405A - 엑세스 제어 시스템 - Google Patents

엑세스 제어 시스템 Download PDF

Info

Publication number
KR20000076405A
KR20000076405A KR1019997008509A KR19997008509A KR20000076405A KR 20000076405 A KR20000076405 A KR 20000076405A KR 1019997008509 A KR1019997008509 A KR 1019997008509A KR 19997008509 A KR19997008509 A KR 19997008509A KR 20000076405 A KR20000076405 A KR 20000076405A
Authority
KR
South Korea
Prior art keywords
program
component
decoder
identifier
receiver
Prior art date
Application number
KR1019997008509A
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 KR20000076405A publication Critical patent/KR20000076405A/ko

Links

Classifications

    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21815Source of audio or video content, e.g. local disk arrays comprising local storage units
    • 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/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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • 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
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47815Electronic shopping
    • 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/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Computer Security & Cryptography (AREA)
  • Discrete Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 방법 및 엑세스 제어 시스템이 제공된다. 상기 방법은: 상기 시스템의 상기 또는 각각의 부품과 연결되며 각각 디바이스 식별자를 가지는 논리 디바이스를 저장하는 단계; 상기 프로그램에 프로그램 식별자를 할당하는 단계; 및 상기 프로그램과 상기 또는 각각의 논리 디바이스 사이의 공통 인터페이스에 상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하는 신호를 상기 프로그램으로부터 출력하여, 상기 인터페이스를 통하여 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하는 단계를 포함한다.

Description

엑세스 제어 시스템{ACESS CONTROL SYSTEM}
주된 용도가 방송용 텔레비젼 신호기들(broadcast television signals), 그 중에서도 전적으로는 아니지만 특히 위성 텔레비젼 시스템들을 위한 용도로 의도되었던 디지틀 전송 시스템들(digital transmission systems)의 출현은 이러한 디지틀 전송 시스템들이 다른 목적을 위하여 이용될 수 있는 가능성도 제시하였다. 이러한 다른 목적들 중 하나가 최종 사용자(end user)와의 쌍방 통신(interactivity)을 제공하는 것이다.
이것을 실행하는 하나의 방법으로서, 텔레비젼 신호의 수신 수단으로서 이용되는 수신기/디코더 상에 어플리케이션(application)을 실행하는 방법이 있다. 어플리케이션을 위한 코드(code)는 수신기/디코더 내에 영구적으로 저장될 수 있다. 그러나, 이러한 방법에는 다소 제한이 따른다. 바람직하게는, 수신기/디코더는 요구되는 어플리케이션을 위한 코드를 다운로드(download) 받을 수 있어야 한다. 이러한 방식으로, 더욱 다양한 방법이 제공될 수 있으며, 어플리케이션들은 사용자측의 어떠한 작동이 없이도 요구되는 대로 업데이트 될(updated) 수 있다.
수신기/디코더에 의한 실행을 위한 어플리케이션들은 다양한 방송 장비(broadcast suppliers)에 의해 발진된다. 전형적으로, 수신기/디코더는 외부 유니트들에 연결되는 직렬 인터페이스(serial interface) 또는 병렬 인터페이스(parallel interface)와 같은 많은 인터페이스들을 가진다. 이러한 인터페이스들의 디바이스 드라이버들(device drivers)은 수신기/디코더의 제조자에 의해 공급된다. 수신기/디코더의 다중 제조 소스들(sources)과 전술한 어플리케이션의 다중 소스들에 있어서는, 하나의 어플리케이션이 매 수신기/디코더 마다 동일한 방식으로 작동해야(behave) 하는 것은 매우 중요하며, 각각의 수신기/디코더는 모든 어플리케이션을 동일하고 정확한 방법으로 실행시켜야 한다.
본 발명은 엑세스 제어 시스템에 관한 것으로, 특히 프로그램에 의하여 컴퓨터 시스템(computer system)의 적어도 하나의 부품에 엑세스(access)를 제공하기 위한 방법에 관한 것이며, 더욱 상세하게는 방송용 디지틀 신호기들(broadcast digital signals)의 수신기/디코더(receiver/decoder)에 사용되는 컴퓨터 시스템에 관한 것이다.
이하에서는, 본 발명의 특성에 대해 첨부된 도면을 참조하여 예를 들어 설명될 것이며, 첨부된 도면에서는,
도 1 은 본 발명의 바람직한 실시예에 따른 디지틀(digital) 텔레비젼 시스템의 전체 구조를 보여주기 위한 도면이며,
도 2 는 디지틀 시스템의 쌍방향 통신 시스템(interactive system)의 전체 구조를 보여주기 위한 도면이며,
도 3 은 쌍방향(interactive) 수신기/디코더의 메모리(memory) 내로 다운로드되는(downloaded) 모듈(module) 내의 파일들(files)의 배열을 나타낸 도면이며,
도 5 는 수신기/디코더의 인터페이스들(interfaces)의 개략적인 선도이며,
도 6 은 수신기/디코더 내의 소프트웨어(software)의 구조를 나타내는 도면이며, 그리고
도 7 은 디바이스 매니저, 다수의 클라이언트들(clients) 및 다수의 디바이스들 사이의 연결의 하나의 예를 나타내는 도면이다.
따라서, 본 발명의 첫 번째 태양에 따르면,
프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 방법에 있어서,
상기 시스템의 상기 또는 각각의 부품과 연결되며 각각 디바이스 식별자(device identifier)를 가지는 논리 디바이스(logical device)를 저장하는(store) 단계;
상기 프로그램에 프로그램 식별자(program identifier)를 할당하는(assigning) 단계; 그리고
상기 프로그램과 상기 또는 각각의 논리 디바이스 사이의 공통 인터페이스(common interface)에 상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하는 신호를 상기 프로그램으로부터 출력(outputting)하여, 상기 인터페이스를 통하여 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하는(create) 단계를 포함하는 것을 특징으로 하는 프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 방법이 제공된다.
상기 방법에 의하여, 수신기/디코더의 "하드웨어(hardware)"와 컴퓨터 시스템의 여러 가지 프로그램들 사이에, 하드웨어와 프로그램들의 소스들에 무관하게 공통 인터페이스가 제공된다.
상기 신호는, 디바이스와 연결된 부품의 상태의 변화를 나타내는 하나의 개별적 논리 디바이스로부터의 메시지 출력(message output)의 프로그램에 의한 커맨드 구현 수신(command enabling receipt)을 추가로 포함한다.
따라서, 예를 들어 컴퓨터 시스템의 스마트카드(smartcard) 판독기(reader) 내로의 스마트카드의 삽입 또는 컴퓨터 시스템의 직렬 인터페이스에 의한 메시지의 수신과 같이, 부품들 중의 하나에서 발생하는 "예기치 못한 사건(unexpected event)"에 대해 하나의 프로그램이 경고될 수 있다.
이 메시지는 상기 프로그램으로의 후속 전송을 위하여 상기 컴퓨터 시스템의 큐우 수단(queue means)에 임시로 저장될 수 있다. 다시 말해, 상기 프로그램은 상기 메시지를 즉시 공급받을 필요가 없음을 논리 디바이스에 대해 통지할 수 있다.
바람직하게는, 상기 큐우 수단은 다수의 큐우 들(queues)을 포함하며, 상기 큐우 각각은 상기 큐우 수단으로부터 상기 프로그램으로 메시지가 전송되는 순서(order)를 지시하는 하나의 개별적 우선 순위 레벨(priority level)을 포함하며, 상기 신호는 상기 메시지가 임시적으로 저장되는 상기 큐우의 상기 우선 순위 레벨을 추가로 포함한다.
따라서, 상기 프로그램은, 상기 큐우 수단에 의해 상기 메시지가 처리되는 방편으로서의 우선 순위 레벨을 지시함으로써, 상기 큐우 수단에 의해 상기 메시지가 처리되어야 할 "긴급성(urgency)"을 지정한다.
본 발명의 두 번째 태양에 따르면,
전술한 방법을 사용하는 컴퓨터 시스템의 적어도 하나의 부품에 다수의 프로그램에 의하여 엑세스를 제공하기 위한 방법으로서, 각각의 프로그램이 상기 인터페이스를 통하여 상기 또는 각각의 부품을 엑세스하는(accessing) 방법이 제공된다.
따라서, 본 발명은, 하나의 논리 디바이스와 하나 이상의 프로그램들 사이의 통신을 위한, 그리고 하나의 프로그램과 하나 이상의 논리 디바이스들 사이의 통신을 위한 단일의 공통 인터페이스를 제공한다.
본 발명의 세 번째 태양에 따르면,
컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터(data)를 전송하는 방법에 있어서,
전술한 방법을 사용하여 상기 프로그램에 의하여 상기 부품에 엑세스를 제공하는 단계; 및
상기 프로그램 식별자, 공통 인터페이스로의 논리 디바이스의 디바이스 식별자, 부품에 연결된 상기 논리 디바이스에 의한 상기 부품의 커맨드 지시 작동(command instructing operation), 상기 디바이스에 의한 상기 부품으로의 입력 데이터 용 어드레스(address) 및 상기 논리 디바이스로의 상기 부품에 의한 데이터 출력(data output) 용 어드레스를 포함하는 신호를 상기 프로그램으로부터 상기 공통 인터페이스로 후속적으로 출력하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하기 위한 방법이 제공된다.
본 발명의 네 번째 태양에 따르면,
컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하는 방법에 있어서,
전술한 방법을 사용하여 상기 프로그램에 의하여 상기 부품에 엑세스를 제공하는 단계; 및
상기 프로그램 식별자, 공통 인터페이스로의 논리 디바이스의 디바이스 식별자, 부품에 연결된 상기 논리 디바이스에 의한 상기 부품의 커맨드 지시 작동, 상기 디바이스와 연결된 상기 부품의 상태의 변화를 나타내는 각각의 논리 디바이스로부터의 메시지 출력(message output)을 상기 프로그램으로 전송되기 전에 임시로 저장하기 위한 상기 큐우의 상기 우선 순위 레벨, 상기 디바이스에 의한 상기 부품으로의 입력 데이터 용 어드레스 및 상기 논리 디바이스로의 상기 부품에 의한 출력 데이터 용 어드레스를 포함하는 신호를 상기 프로그램으로부터 상기 공통 인터페이스로 후속적으로 출력하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하기 위한 방법이 제공된다.
따라서, 일단 상기 프로그램과 상기 부품 사이에 엑세스가 제공된 후에는, 그로써 형성된 통신 루트(route)는 상기 프로그램으로부터 부품으로 및 그 역으로 데이터를 전송하기 위한 루트를 제공하기 위해 이용될 수 있다.
상기 프로그램 및/또는 상기 또는 각각의 논리 디바이스는 하나의 부품을 통하여 상기 컴퓨터 시스템에 입력될 수 있다. 이것은 컴퓨터 시스템에서 논리 디바이스와 프로그램의 편리한 다운로딩(downloading)과 업데이팅(up-dating)을 가능하게 한다.
바람직하게는, 상기 또는 각각의 부품은, MPEG 플로우 튜너(MPEG flow tuner), 직렬 인터페이스, 병렬 인터페이스, 모뎀 및 스마트카드 판독기 중의 적어도 하나를 포함한다.
본 발명의 다섯 번째 태양에 따르면, 본 발명은,
프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 장치로서, 상기 또는 각각의 부품에 연결되는 논리 디바이스가 상기 시스템에 저장되고, 상기 또는 각각의 논리 디바이스는 각각의 디바이스 식별자를 가지는 장치로서,
상기 프로그램에 프로그램 식별자를 할당하기 위한 수단; 및
상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하며 상기 프로그램으로부터 출력되는 신호에 따라 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하기 위한 수단을 포함하는 것을 특징으로 하는 프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 장치를 제공한다.
상기 장치는 상기 디바이스와 연결된 상기 부품의 상태의 변화를 나타내는 각각의 논리 디바이스로부터의 메시지 출력의 상기 프로그램에 의하여 수신(receipt)를 가능하게 하기 위한 수단을 추가로 포함할 수 있다.
바람직하게는, 상기 컴퓨터 시스템은 상기 프로그램으로의 후속 전송을 위하여 상기 디바이스에 의한 메시지 출력을 임시로 저장하기 위한 큐우 수단을 추가로 포함한다. 상기 큐우 수단은, 상기 큐우 수단으로부터 상기 프로그램으로 메시지들이 전송되는 순서를 지시하는 하나의 개별적인 우선 순위 레벨을 각각 가지는 다수의 큐우 들을 포함할 수 있다.
상기 컴퓨터 시스템은 상기 디바이스에 의한 상기 부품으로의 입력 데이터와 상기 부품에 의한 상기 논리 디바이스로의 출력 데이터를 상기 공통 인터페이스에로 저장하기 위한 수단을 추가로 포함한다.
바람직하게는, 상기 또는 각각의 논리 부품은 하나의 디바이스 드라이버를 통하여 각각의 관련된 부품에 연결된다.
본 발명의 여섯 번째 태양에 따르면,
봄 발명은 전술한 바와 같은 장치를 포함하는 방송 시그널들을 수신하기 위한 수신기/디코더를 제공한다.
바람직하게는, 상기 수신기/디코더는 압축된 MPEG 형(MPEG-type) 신호를 수신하기 위한 수단, 수신된 신호를 복호화하여(decoding) 텔레비젼 신호를 제공하기 위한 제공하기 위한 수단 및 상기 텔레비젼 신호를 텔레비젼에 공급하기 위한 수단을 추가로 포함한다.
도 1 에는 디지틀 텔레비젼 시스템(1000)의 전체 개략도가 도시되었다. 본 발명은 압축된 디지틀 신호들을 전송하기 위해 공지의 MPEG-2 압축 시스템을 이용하는 거의 종래의 디지틀 텔레비젼 시스템(2000)을 포함한다. 더욱 상세히 설명하면, 방송 센터(broadcast center)의 MPEG-2 압축기(2002)는 디지틀 신호 스트림(digital signal stream), 전형적으로는 비디오 신호들의 스트림(stream)을 수신한다. 압축기(2002)는 링키지(linkage; 2006)에 의하여 멀티플렉서(multiplexer) 및 스크램블러(scrambler; 2004)에 연결된다. 멀티플렉서(2004)는 다수의 추가 입력 신호들을 수신하고, 하나 이상의 트랜스포트 스트림들(transport streams)을 어셈블(assemble)하며, 그리고 압축된 디지틀 신호들을 링키지(2010)를 통해 방송 센터의 송신기(transmitter; 2008)에 전송한다. 링키지(2010)는 당연히 텔레컴 링크들(telecom links)을 포함한 다양한 형태를 가진다. 송신기(2008)는 전자 신호들(電磁 信號; electromagnetic signals)을 업링크(uplink; 2012)를 통하여 위성 트랜스폰더(satellite transponder; 2014)를 향하여 전송한다. 위성 트랜스폰더(2014)에서는, 그 신호들이 전자적으로 처리된 후, 최종 사용자가 소유하거나 임차하는 전통적인 디쉬(dish; 접시형상의 위성 안테나)의 형태인 지상의 수신자(2018)에게 가상의 다운링크(notional downlink; 2016)를 통하여 방송된다. 수신자(2018)에 의해 수신되는 신호들은 최종 사용자가 소유하거나 임차하며 최종 사용자의 텔레비젼 세트(television set; 2022)에 연결된 종합 수신기/디코더(integrated receiver/decoder; 2020)에 전송된다. 수신기/디코더(2020)는 압축된 MPEG-2 신호를 텔레비젼 세트(2022) 용의 텔레비젼 신호로 복호화한다(decodes).
컨디셔널 엑세스 시스템(conditional access system; 3000)은 멀티플렉서(2004) 및 수신기/디코더(2020)에 연결되며, 부분적으로는 방송 센터에 그리고 부분적으로는 디코더에 배치된다. 이로 인해, 최종 사용자는 하나 이상의 방송 공급자들로부터의 디지틀 텔레비젼 방송들에 엑세스할 수 있게 된다. 스마트카드는, 방송 공급자에 의해 판매되는 하나 또는 수 개의 텔레비젼 프로그램들과 같은 상업적 매물들(commercial offers)에 관련된 메시지들을 해독할 수 있는 기능을 하는 것으로서, 수신기/디코더(2020) 내로 삽입될 수 있다. 디코더(2020)와 스마트카드를 사용함으로써, 최종 사용자는 가입 방식(subscription mode) 또는 유료 시청 방식(pay-per-view mode)으로 상업적 매물들을 구입할 수 있다.
쌍방향 시스템(interactive system; 4000) 역시 멀티플렉서(2004) 및 수신기/디코더(2020)에 연결되고 또한 부분적으로는 방송 센터에 그리고 부분적으로는 디코더에 배치되며, 변복조된 백 채널(modemmed back channel; 4002)을 통하여 최종 사용자로 하여금 여러 가지 어플리케이션들에 의해 쌍방향 작동할 수 있게 한다.
도 2 는 본 발명의 디지틀 텔레비젼 시스템(1000)의 쌍방향 텔레비젼 시스템(4000)의 전체 구조를 나타낸다.
예를 들어, 쌍방향 시스템(4000)은 최종 사용자가 그의 텔레비젼 세트를 통하여 화면상의 목록으로 부터 물건을 사고, 지역 뉴스와 필요한 날씨 지도를 문의하고, 게임을 하는 등의 활동을 할 수 있게 한다.
쌍방향 시스템(4000)은 전체적으로 네개의 주 구성요소를 포함한다:
방송 공급자로 하여금 어플리케이션을 창작하고, 디버깅하고(debug), 시험할 수 있도록 하기 위한 방송 센터(또는 기타의 장소)에서의 오소링(authoring) 기구(4004);
최종 사용자에게 방송될 수 있도록 MPEG-2 전송 스트림(전형적으로는 그것의 사적 구간) 내로 삽입되도록, 방송 공급자로 하여금 어플리케이션들 및 데이타를 준비하고, 점검하고(authenticate), 포맷할(format) 수 있게 하는 오소링(authoring) 기구(4004)에 연결된, 방송 센터에서의 어플리케이션 및 데이타 서버(server;4006);
최종 사용자로 하여금 어플리케이션들을 수신하고, 점검하고, 디컴프레스하고(decompress), 그리고 실행을 위해 수신기/디코더(2020)의 작업 메모리(working memory; 2024) 내로 로딩할 수 있도록, 최종 사용자가 소유 또는 임차하는 수신기/디코더(2020) 내에 장착된 실행 가능한 코드이며 하드 웨어 및 작동 시스템과는 독립적인 실행 시간 엔진(run time engine; RTE; 4008)을 구비하는 버츄얼 머신(virtual machine); 및
최종 사용자의 요구에 따라, 서버(4006)를 지시하는 신호들로 하여금 데이타 및 어플리케이션들을 MPEG-2 전송 스트림 내로 삽입할 수 있게 하는, 수신기/디코더(2020)과 어플리케이션 및 데이타 서버(4006) 사이의 모뎀드 백 채널(4002).
쌍방향 텔레비젼 시스템은, 수신기/디코더의 기능과 그안에 내장된 여러가지 디바이스들을 제어하는 "어플리케이션들"을 이용하여 작동한다. 어플리케이션들은 엔진(4008) 내에서 "리소스 파일들(resource files)"로서 표현된다. "모듈"은 리소스 파일들 및 데이타의 조합(set)이다. 하나의 어플리케이션을 만들기 위해 몇개의 모듈들이 요구될 수 있다. 리시버/디코더의 "메모리 볼륨(memory volume)"은 모듈들의 저장 공간이다. 모듈들을 다운로드하기 위하여 "인터페이스(interface)"가 사용된다. 모듈들은 MPEG-2 전송 스트림으로 부터 수신기/디코더(2020) 내로 다운로드된다.
상기 문단에서 언급된 요소들에 대하여 이하에서 더욱 상세히 설명한다.
본 명세서에서, 어플리케이션은, 바람직하게는 수신기/디코더(2020)의 고 레벨 기능들을 제어하기 위한 하나의 컴퓨터 코드이다. 예를 들어, 최종 사용자가 원격 조정기(remote controller)의 촛점을 텔레비젼 세트(2022)의 스크린 상에 보이는 목표 버튼(button object) 상에 위치시키고 작동 키이(validation key)를 눌렀을 때, 그 버튼과 관련된 지시 시퀀스(instruction sequence)를 실행한다.
쌍방향 어플리케이션은 메뉴들을 제안하고, 최종 사용자의 요구에 따른 명령을 실행하며, 어플리케이션의 목적에 관련된 데이타를 제공한다. 어플리케이션들은 레지던트 어플리케이션들(resident applications)이거나, 즉 수신기/디코더(2020)의 ROM {또는 플래쉬(FLASH) 또는 다른 비휘발성 메모리(non-volatile memory)}에 저장되거나, 또는 수신기/디코더(2020)의 RAM 또는 플래쉬 메모리 내로 방송 및 다운로드될 수 있다.
어플리케이션들의 몇가지 예를 들면 다음과 같다:
* 초기 어플리케이션(Initiating Application). 수신기/디코더(2020)는, 수신기/디코더(2020)으로 하여금 MPEG-2 환경에서 즉시 가동될 수 있게 하는 모듈들의 가변성 집합(이 용어는 이하에서 좀 더 상세히 설명됨)인 잔류 초기 어플리케이션(resident initiating application)을 구비한다. 이 어플리케이션은, 필요한 경우 방송 공급자에 의해 수정될 수 있는 핵심 특성을 제공한다. 또한, 잔류 어플리케이션과 다운로드된 어플리케이션들 사이에 인터페이스를 제공한다.
* 스타트업 어플리케이션(Startup Application). 스타트업 어플리케이션은, 다운로드 또는 잔류, 어느 쪽이든 임의의 어플리케이션이 수신기/디코더(2020)에서 실행될 수 있게 한다. 이 어플리케이션은, 어플리케이션을 시작시키기 위해 서비스의 도착시에 실행되는 부트스트랩(bootstrap)으로서 기능한다. 스타트업은 RAM 내로 다운로드되며, 따라서 쉽게 업데이트 된다. 또한, 프리로딩(preloading) 이후 또는 다운로딩 이후에 즉시 각각의 채널에서 이용가능한 쌍방향 어플리케이션들이 선택되어 실행될 수 있도록 구성될 수 있다. 프리로딩의 경우에는, 어플리케이션은 메모리(2024) 내로 로딩되고, 필요한 경우 스타트업에 의해 구동된다.
* 프로그램 가이드(Program Guide). 프로그램 가이드는 프로그래밍에 대한 완전한 정보를 주는 쌍방향 어플리케이션이다. 프로그램 가이드는, 예를 들어 디지틀 텔레비젼 부케(digital television bouquet)의 각각의 채널에 제공되는 일주일의 텔레비젼 프로그램들에 관한 정보를 줄 수 있다. 원격 조정기(2026)의 키이를 누름으로써, 최종 사용자는 텔레비젼 세트(2022)의 스크린 상에 나타나는 이벤트(event)에 겹쳐지는 애드-온 스크린(add-on screen)을 액세스할 수 있다. 이 애드-온 스크린은 디지틀 텔레비젼 부케의 각각의 채널의 현재 또는 다음의 이벤트에 정보를 주는 브라우저(browser)이다. 원격 조정기(2026)의 다른 키이를 누름으로써, 최종 사용자는 일주일 동안의 이벤트에 관한 정보의 리스트(list)를 디스플레이(display)하는 어플리케이션에 액세스한다. 최종 사용자는 간단하고 익숙해진 표준에 의해 이벤트들을 검색하고 분류할 수 있다. 최종 사용자는 또한 선택된 채널을 직접 액세스할 수도 있다.
* 유료 시청 어플리케이션(Pay Per View Application). 유료 시청 어플리케이션은 컨디셔널 액세스 시스템(conditional access system; 3000)과 연결된 디지틀 텔레비젼 부케의 각각의 유료 시청(PPV) 채널 상에 이용될 수 있는 쌍방향 서비스이다. 최종 사용자는 TV 가이드(guide) 또는 채널 브라우저를 이용하여 어플리케이션에 액세스할 수 있다. 더구나, 이 어플리케이션은 유료 시청 이벤트가 유료 시청 채널에 의해 감지되자 말자 자동적으로 시작한다. 그리고 나서, 최종 사용자는 그의 딸 스마트카드(daughter smartcard; 3020)를 통해 또는 통신 서버(communication server; 3022)를 통해 (모뎀, 전화, DTMF 코드, MINITEL 등등을 이용하여) 현재의 이벤트를 구입할 수 있다. 이 어플리케이션은 수신기/디코더(2020)의 ROM 내에 잔류하거나 또는 디코더(2020)의 RAM 내로 다운로드될 수 있다.
* PC 다운로드 어플리케이션(PC download application). 요청에 의하여, 최종 사용자는 PC 다운로드 어플리케이션을 사용하는 컴퓨터 소프트웨어를 다운로드 받을 수 있다.
* 매거진 브라우저 어플리케이션(Magazine Browser application). 매거진 브라우저 어플리케이션은 온-스크린(on-screen) 버튼들을 통하여 최종 사용자 내비개이션(navigation)을 가진 이미지들의 순환 비디오 방송(cyclic video broadcast)을 구비한다.
* 퀴즈 어플리케이션(Quiz application). 퀴즈 어플리케이션은 바람직하게는 방송 퀴즈 프로그램과 동기화된다. 예를 들어, 다중 선택 질의가 텔레비젼(2022)의 스크린 상에 디스플레이되고, 최종 사용자는 원격 조정기(2026)를 이용하여 대답을 선택할 수 있다. 퀴즈 어플리케이션은 사용자에게 대답이 정확한지 아닌지를 보고할 수 있으며, 사용자의 스코어(score)의 계산을 유지할 수 있다.
* 텔레쇼핑 어플리케이션(Teleshopping application). 텔레쇼핑 어플리케이션의 일예로서, 판매용 상품의 제공이 수신기/디코더(2020)에 전송되어 텔레비젼(2022) 상에 디스플레이된다. 원격 조정기를 이용하여, 사용자는 구입할 특별한 품목을 선택할 수 있다. 품목의 주문은 모뎀드 백 채널(4002)을 통하여 어플리케이션 및 데이타 서버(4006)로 보내지거나, 또는 가능하게는 수신기/디코더(2020)의 카드 판독기(4036)의 하나에 삽입된 신용 카드에 대한 계좌에 대한 요금 청구의 명령과 함께, 수신기/디코더에 전화 번호가 다운로드된 별도의 판매 시스템으로 보내질 수 있다.
* 텔레뱅킹 어플리케이션(Telebanking application). 텔레뱅킹 어플리케이션의 일예로서, 사용자는 수신기/디코더(2020)의 카드 판독기(4036)의 하나에 은행 카드를 삽입한다. 수신기/디코더(2020)는, 은행 카드에 또는 수신기/디코더에 저장된 전화 번호를 사용하여 사용자의 은행에 전화를 걸고, 그 다음에 상기 어플리케이션은 원격 조정기(2026)를 이용하여 선택될 수 있는 다수의 설비들(facilities)을 제공하는 데, 예를 들어 전화선을 통해 계좌 청구서(statement of account)를 다운로드 받거나, 계좌 간에 자금을 전송하거나, 수표책(cheque book)을 요청하는 등의 행위를 가능하게 한다.
* 인터넷 브라우저 어플리케이션(Internet Browser application). 인터넷 브라우저 어플리케이션의 일예로서, 특별한 URL 을 가진 웹 페이지를 나타내라는 요청과 같은, 사용자로부터의 지시들은 원격 조정기(2026)을 사용하여 입력되며, 이들은 모뎀드 백 채널(4002)에 의해 어플리케이션 및 데이타 서버(4006)로 보내진다. 그러면, 적절한 웹 페이지가 방송 센터로부터의 전송속에 포함되며, 업링크(uplink; 2012), 트랜스폰더(transponder; 2014) 및 다운링크(downlink; 2016)를 통해 수신기/디코더(2020)에 수신된 후, 텔레비젼(2022)에 디스플레이된다.
어플리케이션들은 수신기/디코더(2020) 내의 메모리 위치들에 저장되며, 리소스 파일들(resource files)로서 표현된다. 리소스 파일들은, 그래픽 목적 묘사 유니트 파일들(graphic object description files), 변수 블럭 유니트 파일들(variables block files), 지시 시퀀스 파일들(instruction sequence files), 어플리케이션 파일들 및 데이타 파일들을 포함한다.
그래픽 목적 묘사 유니트 파일들은 스크린, 어플리케이션의 인간-기계 인터페이스를 묘사한다. 변수 블럭 유니트 파일들은 어플리케이션에 의해 처리되는 데이타 구조들을 묘사한다. 지시 시퀀스 파일들은 어플리케이션들의 처리 작업들을 묘사한다. 어플리케이션 파일들은 어플리케이션들의 유입 포인트들을 제공한다.
이상과 같이 구성된 어플리케이션들은, 아이콘 라이브러리 파일들(icon library files), 이미지 파일들, 캐릭터 폰트(character font) 파일들, 컬러 테이블(color table) 파일들 및 ASCⅡ 텍스트 파일들과 같은 데이타 파일들을 이용할 수 있다. 쌍방향 어플리케이션은 또한, 입력 및/또는 출력에 실효화(effecting)함으로써 온-라인(on-line) 데이타를 얻을 수 있다.
엔진(4008)은, 주어진 시간에 필요한 리소스 파일들을 그 메모리 내로 단지 로딩하기만 한다. 이러한 리소스 파일들은 그래픽 목적 묘사 유니트 파일들, 지시 시퀀스 파일들 및 어플리케이션 파일들로 부터 판독되며; 변수 블럭 유니트 파일들은 모듈들을 로딩하기 위한 과정으로의 요청에 후속적으로 메모리 내에 저장되어, 모듈들을 언로딩하기 위한 과정으로의 특별한 요청이 있을 때 까지 거기에 잠겨진 채 저장된다.
도 3 을 참조하면, 텔레-쇼핑(tele-shopping) 모듈과 같은 모듈(4010)은 다음을 포함하는 리소스 파일들 및 데이타의 세트이다:
단독의 어플리케이션 파일(4012);
결정되지 않은 수의 그래픽 목적 묘사 유니트 파일들(4014);
결정되지 않은 수의 변수 블럭 유니트 파일들(4016);
결정되지 않은 수의 지시 시퀀스 파일들(4018); 및
아이콘라이브러리 파일들, 이미지 파일들, 캐릭터 폰트 파일들, 컬러 테이블 파일들 및 ASCⅡ 텍스트 파일들과 같은 적절한 데이타 파일들(4020).
MPEG 데이타 스트림에서, 각각의 모듈은 일군의 MPEG 테이블들을 포함한다.
각각의 MPEG 테이블은 많은 섹션(section)들로 포맷될 수 있다. MPEG 데이타 스트림에서, 각각의 섹션은 4 킬로바이트(kbytes) 까지의 "크기"를 가진다. 예를 들어, 직렬 및 병열 포트를 통한 데이타 전송을 위해, 모듈들은 테이블들 및 섹션들로 유사하게 분할되며, 섹션의 크기는 전송 매체에 따라 변한다.
모듈들은, MPEG 데이타 스트림에서, 예를 들어 비디오 데이타 스트림들, 오디오 데이타 스트림들 및 텔리텍스트(teletext) 데이타 스트림들과 같은 개개의 형태의 데이타 스트림 내에서 전형적으로 188 바이트의 데이타 패킷(packet)의 형태로 전송된다. 각각의 패킷을 13 비트의 패킷 인식기(PID)가 선행하는 데, MPEG 데이타 스트림 내에서 전송되는 매 패킷에 대해 하나의 PID 가 선행한다. 하나의 프로그램 맵 테이블(programme map table; PMT)은 서로 다른 데이타 스트림들의 리스트를 포함하며, 각각의 PID 에 따라 각각의 데이타 스트림의 내용을 정의한다. 하나의 PID 는 디바이스에 대해 데이타 스트림 내에 어플리케이션이 존재함을 경고할 수 있으며, PID 는 PMT 테이블을 이용하여 인식된다.
코드의 작은 일부의 다운로딩의 개념과 함께 모듈들(4010)의 개념은 어플리케이션의 용이한 변화(evolution)를 가능하게 한다. 이들은, 최종 사용자에 의해 요구될 때에만 수신기/디코더(2020)의 영구 FLASH 메모리 내로 다운로드될 수 있다.
메모리 볼륨(memory volume)은 모듈들(4010)을 위한 저장 공간이다. 이러한 저장 공간들은 수신기/디코더(2020)의 메모리(2024) 내에 배치된다. 도 4 를 참조하면, 메모리(2024)는 전형적으로 RAM 볼륨(4022), FLASH 볼륨(4024) 및 ROM 볼륨(4026)로 나누어 진다. 메모리는, 예를 들어 MPEG 비트스트림(bitstream)으로 부터 다운로드되는 모듈들을 저장하기 위한 MPEG 볼륨 및 직렬 인터페이스를 통해 수신되는 모듈들을 저장하기 위한 직렬 볼륨과 같은, 수신기/디코더(2020) 내로 모듈들이 다운로드되는 통로가 되는 여러가지 인터페이스들에 연결된 메모리 볼륨들로 더 분할될 수 있다.
그 다음에, RAM 볼륨(4022)은 펌웨어에 할당된 구역, 엔진(4008)의 작업 공간 및 완충기로 분할된다. FLASH 및 비 휘발성 메모리는, 어플리케이션에 의해 또는 디바이스 매니저를 통해 엔진 그자체에 의해 액세스될 수 있다.
각각의 볼륨은 모듈들(4010)의 리스트를 포함하며, 각각의 모듈(4010)은 파일들(4012, 4014, 4016, 4018, 4020)의 리스트를 포함한다. 두개의 파일이 동일한 이름을 가지면서 다른 모듈들에 배치되는 것도 가능하다. 예를 들어, 어플리케이션의 하나의 버젼(version)이 전형적으로 ROM 볼륨(4026)에 저장되고, 그후의 버젼들은 FLASH 볼륨(4024) 내로 다운로드될 수 있어서, ROM 볼륨 내에 저장된 버젼이 FLASH 볼륨(4024) 내에 저장된 버젼에 의해 대체될 수 있다. 파일들의 내용은 LZW 포맷으로 압축될 수 있으며, 다만 파일들의 압축 해제에 소정의 시간이 소요되는 경우에는 파일들은 압축 해제된 포맷으로 수신될 수 있다.
수신기/디코더(2020)의 물리적 인터페이스들은 데이타를 다운로드하는 데 사용된다. 도 5 를 참조하면, 수신기/디코더(2020)는, 예를 들어, MPEG 플로우 튜너(4028), 직렬 인터페이스(4030), 병렬 인터페이스(4032), 모뎀(4034) 및 두개의 카드 판독기(4036)과 같은 여섯개의 다운로딩 매체를 포함한다.
수신기/디코더(2020)의 다중 제조 소스들 및 어플리케이션들의 다중 소스들에 있어서, 하나의 어플리케이션이 매 수신기/디코더 마다에서 동일한 방식으로 거동해야 하며, 각각의 수신기/디코더가 모든 어플리케이션을 정확하고 동일한 방법으로 실행하여야 한다는 것은 대단히 중요하다. 도 6 을 참조하면, 수신기/디코더(2020)은, 공통 어플리케이션 프로그래밍 인터페이스(4054) 및 마이크로프로세서의 제어하에 실행되는 실행 시간 엔진(4008)을 구비한다. 이들은 모든 수신기/디코더(2020)이 어플리케이션의 관점에서 동일할 수 있도록 매 수신기/디코더(2020) 마다에 설치된다.
도 6 은 어플리케이션들(4056)을 실행시키기 위한 수신기/디코더(2020)의 구조를 보여 준다. 버츄얼 머신(4007)은, 예를 들어 MPEG 데이타 스트림으로부터 수신기/디코더(2020)에 다운로드되는 어플리케이션들(4056″) 또는 버츄얼 머신에 직접 연결된 어플리케이션들(4056′)을 포함하는 어플리케이션들(4056)을 실행한다. 실행 시간 엔진(4008)은 또한 그래픽과 텍스트를 디스플레이하고, 서비스용 디바이스를 호출하며, "이벤트들"을 수신하고, 그리고 특정의 컴퓨테이션(computation)을 위해 라이브러리(4058)의 기능을 이용한다.
도 6 을 참조하면, 하나의 어플리케이션에 대해 디코더(2020)의 기능이 디바이스(4060)으로 "나타나 있다". 따라서, 어떠한 어플리케이션에 의해서도 보여질 수 없는 수신기/디코더(2020)의 기능들이 있을 수 있다.
버츄얼 머신(4007)과 통신하는 프리젠테이션(presentation) 기능은 최종 사용자에게 텍스트와 그래픽의 프리젠테이션과, 버츄얼 머신(4007)에 대한 최종 사용자의 액션의 프리젠테이션을 제공한다(administer). 텍스트와 그래픽은 텔레비젼 세트(2022)의 디스플레이 상에 겹쳐지며, 최종 사용자는 키보드를 이용하여 어플리케이션과 상호 통신할 수 있다. "키보드"라는 용어는 원격 조정기(2026)를 포함한다.
실행 시간 엔진(4008)은 수신기/디코더(2020)의 버츄얼 머신(4007) 내에 장착된 실행가능한 코드이며, 어플리케이션들을 해석하고 실행시키기 위한 버츄얼 머신을 구비한다. 엔진(4008)은, MS-DOS 와 같은 단일 태스크 작동 시스템(single task operating system)을 포함하는 어떠한 작동 시스템에 대해서도 변환될 수 있다.
엔진(4008)은, 여러가지 작동을 수행하기 위해 키이 프레스와 같은 여러가지 이벤트들을 필요로하는 프로세스 시퀀스 유니트를 포함하며, 서로 다른 하드웨어 인터페이스들로 부터 이벤트 큐우들을 관리하기 위한 그 자체의 스케듈러(scheduler)를 포함한다. 이 엔진은 또한, 그래픽 및 텍스트의 디스플레이를 취급한다.
엔진(4008)은 디코더 메모리(2024) 내로 어플리케이션들(4056″)을 로딩 또는 다운로딩하기 위한 코드 판독기를 포함한다. 유일하게 필요한 코드는, 적절한 사용을 보장하기 위하여, FLASH 메모리 볼륨(4024) 또는 RAM 볼륨(4022) 내로 로딩된다. 다운로드된 데이타는, 임의의 미지의 어플리케이션의 실행 또는 어플리케이션(4056)의 임의의 변형을 방지할 수 있도록, 점검 기구(authentication mechanism)에 의해 증명될 수 있다.
엔진(4008)은 디컴프레서(decompressor)를 추가로 포함한다. 어플리케이션 코드(중간 코드의 형태)가, 공간 절약을 위하여 그리고 내장 수신기/디코더 모드를 통한 또는 MPEG-2 전송 스트림으로부터의 신속한 다운로딩을 위하여, 압축될 때, 코드는 그것을 RAM 으로 로딩하기 전에 압축 해제 하여야 한다.
버츄얼 머신(4007)은 또한, 어플리케이션 코드를 해석하기 위한 중간 코드 인터프리터(intermediate code interpreter)와 에러 체커(error checker)를 포함하는 데, 중간 코드 인터프리터는 여러가지 변수값들을 업데이트하기 위하여 프로세스 시퀀스 유니트(process sequencer unit)를 사용한다.
도 6 을 참조하면, 하나의 어플리케이션에 대해 디코더(2020)의 기능이 디바이스(4060)으로 "표시된다". 따라서, 어떠한 어플리케이션에 의해서도 나타낼 수 없는 수신기/디코더(2020)의 기능들이 있을 수 있다.
디바이스(4060)는 하드웨어(4066)의 물리적 인터페이스(4064) 또는 부품(4062) 에 대응하는 논리 디바이스 유니트를 포함한다. 상기 디바이스들은 "저 레벨 디바이스"(4068)로서 나타난다. 상기 디바이스(4068)의 출력은, 그 디바이스에 의한 논리 신호 출력을 예를 들어 하드웨어 인터페이스(4064)를 구동하기 위해 요구되는 신호들로 변환시키기 위한 적어도 하나의 디바이스 드라이버(4070)에 연결될 수 있다. 선택적으로, 디바이스(4068)는 그자체가 수신기/디코더(2020)의 부품 또는 인터페이스를 구동할 수 있는 데, 즉, 디바이스의 출력은 하드웨어(4066)에 직접 연결될 수 있다.
저 레벨 디바이스(4068)의 예들이 이하에서 설명된다.
하나의 LCARD 디바이스는 하나의 프로그램으로 하여금 하나의 스마트카드 판독기(4036) 내에 포함된 스마트카드와 통신할 수 있게 하며, 하나의 RCARD 디바이스는 하나의 프로그램으로 하여금 다른 스마트카드 판독기(4036) 내에 포함된 스마트카드와 통신할 수 있게 한다. 예를 들어, 이러한 디바이스들은 하나의 프로그램으로 하여금 카드의 상태를 판독하여, 그 카드의 히스토리를 판독하고 카드에 입력 메시지를 보낼 수 있게 한다. 디바이스들은 또한, 프로그램에 의해 요구되지 않는 경우의 카드의 리셋(reset) 및 판독기로 부터 카드의 제거, 그리고 판독기 내로의 카드 삽입등을 프로그램에 고지한다. LCARD 및 RCARD 디바이스들은 카드를 실행시키기 위해 사용되는 프로토콜(protocol)에 대해 특정적(specific)이다. 전형적으로는, ISO7816 프로토콜이 사용된다.
SCTV 디바이스는 프로그램으로 하여금 텔레비젼 세트(2022)로의 스카아트 출구(scart outlet)의 구성 및 증명을 할 수 있게 한다. 예를 들어, 이 디바이스는 프로그램으로 하여금 스카아트 출구의 사운드 특성에 대한 정보를 요청할 수 있게 하며, 사운드에 대해 "MUTE"를 실행할 수 있게 하며, 그리고 RGB 레벨을 동적으로 프로그램할 수 있게 한다.
TUNER 디바이스는 프로그램이 튜너(4028)를 사용할 수 있도록 한다. 예를 들어, 디바이스는 프로그램으로 하여금 튜너의 현재 주파수 또는 최소 주파수로부터 스캔(scan; 주사)을 실행할 수 있게 하며, 튜너 변수를 읽고 튜너를 프로그램할 수 있게 한다.
SERIAL 디바이스는 프로그램이 직렬 링크(link)를 통해 장비와 교신할 수 있게 하고, 그리고 PARALLEL 디바이스는 프로그램이 병렬 링크를 통해 장비와 교신할 수 있게 한다. 예를 들어, 이러한 디바이스들은 프로그램으로 하여금 각각의 링크를 통하여 메시지를 송신할 수 있게 하고, 그 링크를 통하여 메시지의 수신을 프로그램에 대해 고지한다.
MODEM 디바이스는 수신기 디코더가 내부 반-이중 모뎀 서포팅(internal half-duplex modem supporting) V23 을 통하여 데이타 서비스와 교신할 수 있게 한다. MODEM 디바이스는 번호의 다이얼링(dialing), 즉 데이타 서버로의 메시지의 송신 및 모뎀의 연결 해제, 그리고 메시지의 신호 수신, 즉 에러 및 손실의 감지 또는 캐리어의 감지를 요청한다.
원격 위치에서 실행되는 원격 디바이스들은, 포트 및 프로토콜이 정의되어야 한다는 점을 제외하고는, 로컬 디바이스들 중의 어느 것이라도 될 수 있다.
"저 레벨 디바이스들"에 더하여, 수신기/디코더(2020)는 또한, 수신기/디코더(2020)의 작동을 제어하는 "고 레벨 디바이스들"(4072)을 구비할 수 있다.
고 레벨 디바이스들(4072)의 예들에 대해 이하에서 설명한다.
MLOAD 디바이스는 어플리케이션으로 하여금, MPEG 섹션, 하드웨어 및 소프트웨어 필터링 표준(filtering criteria)에 대응하는 MPEG 비트스트림으로부터의 일군의 MPEG 섹션들 또는 완전한 MPEG 테이블을 로딩하는 것을 가능하게 한다. 예를 들어, 디바이스는 프로그램으로 하여금, 하나의 어플리케이션에 의하여 매번 마다 요구되는 일군의 섹션들만을 다운로드하는 것을 가능하게 한다.
FLOAD 디바이스는 직력 및/또는 병렬 포트들을 통하여 자동적으로 파일 다운로딩을 행한다. 상기 디바이스는, 하나의 프로그램에 의해 요구되는 대로 직렬 및/또는 병렬 포트들을 통하여 파일들의 다운로딩의 시작과 종료 모두를 신호발진한다. 디바이스는, 다운로드될 파일의 PID 및 파일의 해독 PID ECM 을 포함하는 인덱스 테이블(index table) 용의 프로그램에 요청을 보낼 수 있다. 상기 프로그램은 인덱스 테이블을 로딩하고 그것을 디바이스로 보내며, 후속하여 프로그램으로 파일의 다운로딩을 요청한다. 프로그램은 인덱스 테이블로부터 파일을 위한 PID 및 PID ECM 을 인출하며, 디멀티플렉싱(demultiplexing)을 요청하여 파일이 그 전체에 걸쳐 다운로드될 수 있도록 한다. 언제든지, "fdload_offline" 이라는 호출(call)이, 직렬 및/또는 병렬 포트들을 정지시킬 수 있도록 FLOAD 디바이스를 지시하기 위한 프로그램에 의해 요청될 수 있다.
디바이스들(4060)은 고유의 식별자 "device_id" 에 의해 식별된다, 예를 들어, "LCARD_DEVICE_ID" 는 LCARD 디바이스를 식별하며, "RCARD_DEVICE_ID" 는 RCARD 디바이스를 식별한다.
새로운 디바이스(4060)가 생성되었을 때, 방송 센터로부터 적절한 어플리케이션(4056")을 다운로딩함으로써 기존의 수신기/디코더들 내에 장착될 수 있다.
이러한 다운로딩은 어플리케이션(4056)에 의해 수신기/디코더(2020)에서 수행되며, 어플리케이션(4056)은 하드웨어 및 소프트웨어 버전들을 체크하여, 정확한 경우, 새로운 디바이스(4060)을 표현하는 소프트웨어 모듈을 로딩하고 라이브러리(4058)에게 새로운 디바이스 코드를 펌웨어 내에 (FLASH 메모리 내의) 장착하라고 요구한다. 이것은 소프트웨어의 나머지 부분에 영향을 주지 않으면서도 수신기/디코드(2020) 내에 새로운 기능들의 유연하면서도 확실한 설치를 제공할 수 있다.
디바이스 매니저(4074)는 수신기/디코더(4056)의 특정 기능들에 관련된 디바이스들(4060)과 어플리케이션(4056) 사이의 공통 인터페이스이다. 이러한 공통 인터페이스를 채택함으로써, 실행 시간 엔진(4008)의 "라이브러리"에 저장되고 디바이스들(4060)에의 액세스를 허용하는 절차들(procedures), 그리고 그 디바이스들에 관련된 "이벤트들"은 한정된 수의 절차들을 이용하여 표준화될 수 있다. 디바이스 매니저(4074)는 디바이스들(4060)로의 액세스를 제어하고, 예기치않은 이벤트의 수신을 통고하며, 그리고 공유 메모리를 관리한다.
디바이스(4074)로의, 디바이스(4060) 자체로의 또는 메모리 메니지먼트(memory management)로의 액세스를 제공하는 18 개의 절차들이 있다.
Device_Open_Channel ○ 매니저에게 채널을 개방함
Device_Close_Channel ○ 매니저에게 채널을 폐쇄함
Device_Open_Device ○ 디바이스에게 채널을 개방함
Device_Close_Device ○ 디바이스에게 채널을 폐쇄함
Device_Event ○ 예기치 않은 이벤트 매니지먼트
Device_Call ○ 디바이스로의 동시성(synchronous) 액세스
Device_Io ○ 디바이스로의 이시성(asynchronous) 액세스
Device_Info ○ 디바이스에 대한 정보
Set_Buffer_outline ○ 버퍼용 메모리 구획(partitioning)을 정의
Get_Buffer_outline ○ 현재의 버퍼 구획 영역을 판독
Pool_Info ○ 현재의 버퍼 구획 영역에 대한 정보 제공
Device_Alloc_Buffer ○ 메모리를 할당함
Device_Free_Buffer ○ 메모리를 해방함(frees)
Device_Lock_Buffer ○ 메모리를 폐쇄함
Device_Info_Free_Buffer ○ 자유(free) 버퍼들의 수를 제공함
Device_Info_Alloc_Buffer ○ 할당된 버퍼들을 리스트화함(lists)
Get_Buffer_Size ○ 할당된 버퍼의 크기를 제공함
도 7 을 참조하면, 임의의 디바이스(4060)의 서비스들을 이용하기 전에, 어플리케이션 스크립트(script)와 같은 프로그램이, 디바이스 매니저(4074) 또는 디바이스(4060)에 대한 논리-엑세스-방식(logical-access-way)을 의미하는, "클라이언트(client; 4076)"로서 선언되어야 한다. 이 매니저는 클라이언트(4076)에게, 디바이스로의 모든 액세스들에서 참조기호로서 이용될 수 있는 클라이언트 번호를 부여한다.
디바이스(4060)는 몇 개의 클라이언트들(4076)을 가질 수 있는 데, 각각의 디바이스(4060)에 대한 클라이언트들(4076)의 수는 디바이스(4060)의 형태에 따라 특화되어 있다.
클라이언트(4076)는 Device_Open_Channel ○ 절차와 함께 디바이스 매니저(4068)에 유입된다(introduced). 이러한 절차에 대해, 디바이스 매니저는 클라이언트(4076)에게 클라이언트 번호를 부여한다. 디바이스 매니저(4074)는 "client_id"와 "error_code"를 출력하는 데, "client_id" 는 할당된 클라이언트 번호(절대로 두 개의 클라이언트가 동일 번호를 가질 수 없음)를 가지는 변수의 어드레스를 포함하며, "error_code"는, 절차가 성공적으로 완료되었음을 지시하는 에러_코드 "0" 와, 디바이스 매니저에 의해 취급될 수 있는 최대의 클라이언트 수, 전형적으로는 256, 에 도달하였음을 지시하는 에러_코드 "e_client_max" 를 포함한다.
할당된 제 1 클라이언트 번호는 0 이며, 255 의 값 까지 "Device_Open_Channel" 절차를 이용하여 매번의 호출에 대해 1 씩 증가한다. 이것은 클라이언트들의 리스트로부터의 임의의 클라이언트의 제거와는 독립적으로 발생한다. 클라이언트 번호 255 가 할당되고 후속적으로 "Device_Open_Channel" 호출이 발생하였을 때, 에러_코드 "e_client_max" 는 클라이언트들의 리스트가 "충만(full)" 상태임을 지시하도록 출력되거나, 또는 그 클라이언트에게 이용가능한 최소의 클라이언트 번호, 즉 이전 단계에서 클라이언트들의 리스트로부터 제거된 클라이언트의 클라이언트 번호가 할당된다.
클라이언트(4076)를 디바이스(4060)에 통고하기(declare) 위하여, 클라이언트는 Device_Open_Device ○(4080) 절차를 이용하여, 그것의 client_id 와 device_id 를 전송한다. 디바이스 매니저는, 절차가 성공적으로 완료되었을 때는 에러 메시지 "0" 를, 클라이언트가 존재하지 않는 경우에는 "e_client_inconnu" 를, 디바이스가 존재하지 않는 경우에는 "e_periph_inconnu" 를, 또는 디바이스가 이미 디바이스에게 고지되었을 때는 e_client_max 또는 "e_deja_vu" 를 출력한다.
클라이언트(4076)는, Device_Close_Device ○절차과 함께 디바이스(4060)의 리스트로부터 제거될 수 있다. client_id 및 device_id 는 디바이스 매니저에 입력되고, 그리고 나서 절차가 성공적으로 완료되었을 때는 에러_코드 "0" 를, 클라이언트가 디바이스 매니저에게 알려져 있지 않은 경우에는 에러_코드 "w_client_inconnu" 를, 또는 디바이스가 디바이스 매니저에게 알려져 있지 않은 경우에는 에러_코드 "w_periph_inconnu" 를 출력한다.
클라이언트(4076)는, Device_Close_Channel ○절차과 함께 디바이스 매니저(4060)의 클라이언트 리스트로부터 제거될 수 있다. client_id 는 디바이스 매니저에 입력되고, 그리고 나서 절차가 성공적으로 완료되었을 때는 에러_코드 "0" 를, 클라이언트가 디바이스 매니저에게 알려져 있지 않은 경우에는 에러_코드 "w_client_inconnu" 를 출력한다. 이러한 절차는 디바이스 매니저(4074)의 리스트로부터 그리고 그가 클라이언트인 각각의 디바이스(4060)의 리스트로부터 클라이언트를 삭제한다, 즉, 어플리케이션에 의해 이미 그렇게 되지 않았다면, Device_Close_Channel ○ 절차는 그 클라이언트가 클라이언트인 각각의 디바이스에 대해 Device_Call_Device ○절차를 호출한다. 따라서 이러한 절차를 이용하여 해방된 클라이언트 번호가, Device_Open_Channel ○절차를 이용하여 새로운 클라이언트에게 할당될 수 있다.
절차 "Device_Info ○" 는 클라이언트에게 디바이스(4060)에 관한 정보를 제공한다. client_id 및 device_id 는 디바이스 매니저(4074)에 입력되며, 디바이스 매니저는 전형적으로는 디바이스의 버젼인 디바이스에 관한 정보, 즉 디바이스에 대한 클라이언트들의 최대수 및 그 디바이스를 이용하는 클라이언트들의 실질적인 숫자를, 절차가 완료되었음을 지시하는 또는 클라이언트나 디바이스가 디바이스 매니저(4074)에게 알려져 있지 않다고 지시하는 에러_코드들과 함께, 그 클라이언트에게 되돌려 준다.
절차 "Device_Event" 는, 특정의 환경 또는 예기치 않은 무엇인가가 발생하였음을 의미하는 "예기치 않은 이벤트들"을 관리하는 수단이다. "Device_Event" 절차는 클라이언트로 하여금 그 자신이 디바이스로부터의 예기치 않은 이벤트의 수신자임을 통고할 수 있게 한다.
"이벤트들"로 칭해지는 어플리케이션들을 위한 메시지들은 엔진(4008)의 다섯개의 규우들 중의 하나에 입력된다. 이 큐우들 각각은 0 에서 4 까지의 우선 순위 레벨( 0 = 최소 우선 순위, 4 = 최대 우선 순위)에 대응한다.
하나의 어플리케이션에 전송되는 큐우들로 부터 메시지를 인출할 때, 엔진(4008)은 하나의 이벤트를 포함하는 최고의 우선 순위를 가지는 큐우를 검색한다. 그 이벤트는 큐우로 부터 제거되어 의도되는 프로세스 시퀀서 유니트를 구동시키기 위해 사용된다.
키보드에 의해 프리젠테이션 기능에 입력되거나 또는 인터페이스를 통해 수신되는 모든 "외부" 이벤트들은 엔진(4008)에 의해 처리되기 전에 이벤트 인터페이스를 통과한다. 그러나, 전형적으로는 내부 디바이스들에 의해 생성되는 어떠한 내부 이벤트들도 이벤트 인터페이스를 통과하지 않으며, 다만 엔진(4008)에 직접 유입된다.
각각의 절차를 위하여, 최종 호출 변수(last calling parameter)는, 디바이스 매니저에 의해 커맨드(command)가 어떻게 처리되었는 지를 지시하는 디바이스 매니저에 의해 설정될 변수의 어드레스이다.
클라이언트에 대한 예기치 않은 이벤트의 제공(issue)의 이유는 디바이스(4060)에 따라 다르다. 예를 들어, LCARD DEVICE 디바이스에 대해, 예기치 않은 이유는 다음을 포함한다:
카드 판독기로부터 카드의 제거;
카드 판독기 내로의 카드의 삽입; 또는
클라이언트에 의한 카드의 리셋.
상기 인자들의 각각은 각각의 고유 이벤트 코드(각각 "ev_lcard_extract", "ev_lcard_insert" 및 "ev_lcard_reset")에 의해 식별된다.
예기치 않은 이벤트들을 수신하기 위하여, 클라이언트는 각각의 이벤트의 수신자로서 그자신에게 절차 "device_event" 를 사용하여 수신하기를 희망함을 통고하여야 한다. 다음의 변수들은 디바이스 매니저에게 입력된다;
client_id;
device_id;
예기치 않은 이벤트에 대해 송신을 가능하게 하는 "get_event" 로 호칭되는 커맨드;
이벤트 코드; 및
0 및 4 사이의 이벤트 우선 순위.
몇개의 디바이스들은, 동일한 또는 서로 다른 우선 순위를 가지고, 동일한 예기치 않은 이벤트의 수신을 통고할 수 있다. 이 경우, 이벤트는 특정의 순서로(클라이언트 번호 및 우선 순위에 의해) 각각의 클라이언트에 보내진다.
예를 들어, 클라이언트 2 는 그 자신이 우선 순위 2 를 가진 LCARD 디바이스로 부터 ev_card_extract 의 수신자임을 통고하며, 클라이언트 1 은 우선 순위 4, 최종적으로 클라이언트 4는 우선 순위 3 을 가진것으로 통고한다. 만일 카드가 판독기로부터 제거되는 경우, 이벤트들의 다음의 시퀀스가 발생한다:
클라이언트 1 에 어드레스된 이벤트 ev_card_extract 가 우선 순위 4 에 대응하는 실행 시간 엔진(4008)의 큐우에 배치된다;
클라이언트 4 에 어드레스된 동일한 이벤트가 우선 순위 3 에 대응하는 실행 시간 엔진(4008)의 큐우에 배치된다;
클라이언트 2 에 어드레스된 동일한 이벤트가 우선 순위 2 에 대응하는 실행 시간 엔진(4008)의 큐우에 배치된다; 그리고
클라이언트 3 에 어드레스된 동일한 이벤트가 우선 순위 2 에 대응하는 실행 시간 엔진(4008)의 큐우에 배치된다;
어떤 디바이스들에 대하여는, 예기치 않은 이벤트 속에 버퍼가 포함될 수 있다. 이 경우, 디바이스는 이 버퍼를 디바이스 매니저(4068)를 통하여 할당한다.
어플리케이션 프로그래밍 언어에서, 하나의 절차는 이벤트들과 관련된 변수들에 대한 엑세스를 가능하게 한다:
event_code;
client_id;
evt_param1 (전형적으로는 4 바이트의 크기를 가짐); 그리고
evt_param2 (전형적으로는 2 바이트의 길이를 가짐).
evt_param 변수들의 정확한 의미는 이벤트의 게시(posting)의 이유 및 디바이스에 따라 다르다. 버퍼와 예기치 않은 이벤트와의 연상(association)은 디바이스에 따라 다르다. 연상이 존재하는 경우에는, evt_param1 은 연상된 버퍼의 데이타 존 어드레스(data zone address)에 대응한다. 버퍼가 없는 경우에는, 이벤트가 여전히 제공될 것이지만, 변수 evt_param1 은 "0" 에 설정된다.
디바이스가 예기치 않은 이벤트와의 연상을 위해 버퍼를 가지는 경우, 디바이스의 리스트 또는 디바이스 매니저의 리스트로부터 클라이언트의 제거는, 절차 device_lock_buffer 를 사용하여 어플리케이션에 의하여 버퍼가 "폐쇄된" 경우를 제외하고는, 버퍼의 디얼로케이션(deallocation)을 초래한다.
evt_param2 는 절차가 성공적으로 완료되었으며 결과가 디바이스에 의해 구해졌음을 지시한다.
클라이언트는, 커맨드 "get_event" 대신에 "ret_event" 를 사용하여 임의의 예기치 않은 이벤트의 수신을 중단시킬 수 있다.
디바이스 매니저(4074)는, "동시성 엑세스" 및 "이시성 엑세스"라는 두개의 다른 모드로 디바이스들(4060)에 대한 클라이언트들(4076)에 의한 엑세스를 제공한다.
"Device_Call" 절차를 사용하는 동시성 엑세스는, 디바이스로부터의 응답(response)을 실행 시간 엔진(4008)의 큐우 내로의 배치(the placing)를 포함하지 않으며 또한 하나의 디바이스에 특정적인 기능을 액세스하는 수단이다; 상기 응답은 즉시 이용 가능하다. 전형적으로는, 이 절차는 수신기/디코더(2020)의 하드웨어 인터페이스들의 구성에서 이용된다.
이러한 절차를 이용하여, 클라이언트는 다음 변수들을 디바이스 매니저를 통하여 디바이스에 입력할 수 있다:
client_id;
device_id;
디바이스에 의해 수행될 작동의 형태를 포함하는 "call_cmde". 예를 들어, 직렬 링크를 통해 프로그램이 장비와 교신할 수 있게 하는 SERIAL 디바이스에 대하여, "serial_setup" 커맨드는 다음의 직렬 링크 구성을 설립한다:
입력 데이타의 메모리 위치의 어드레스를 포함하는 "em_adr"; 및
디바이스가 출력 데이타를 기록하여야 하는 메모리 위치의 어드레스를 포함하는 "rec_adr".
클라이언트에 의해 요구되는 작동의 완료시에, 실행의 보고를 포함하는 "call_report" 를 출력한다. call_report 는 전형적으로, 클라이언트에게 제공될 수 있는 소정의 수의 리포트들 중의 하나를 포함한다. 다음에, 디바이스 매니저(4074)는 클라이언트(4076)에게 에러_코드를 제공하는 데, 이 에러_코드는 전형적으로 다음중의 하나를 포함한다:
e_client_inconnu;
e_periph_inconnu;
클라이언트에게 커맨드가 미지의 것임을 알리는 "e_cmde_inconnu";
그 디바이스에 특정적인 에러인 "e_report_periph"; 및
절차가 성공적으로 완료되었음을 지시하는 "0".
디바이스는 단지, 에러_코드 "0" 가 수신될 때 변수 "rec_adr" 에 의해 식별되는 메모리 위치의 어드레스에 출력 데이타를 기록한다.
Device_call 은 디바이스에 의해 실행이 완료될 때 까지 모든 다른 어플리케이션들을 제지한다.
"Device_Io" 절차를 사용하는 이시성 엑세스는, 응답의 대기를 포함하며 하나의 디바이스에 특정적인 기능을 액세스하는 수단이다. 예를 들어, SERIAL 디바이스에 대하여, "serial_send" 커맨드는 직렬 링크를 통하여 메시지를 보낸다. 모든 데이타의 성공적인 전송(어떠한 pre-set "time-out" 변수에도 도달하기 전의)에 이어서, 디바이스는 프로그램에 리포트를 보낸다. 이 리포트가 이용 가능할 때, 이벤트는 엔진(4008)의 큐우 내로 입력되어 그것의 도착을 신호한다.
이 과정을 이용하여, 클라이언트는 다음의 변수들을 디바이스 매니저를 통하여 디바이스에 입력한다:
client_id;
device_id;
디바이스에 의해 수행될 작동의 형태를 포함하는 "io_cmde";
작동의 말단에 대응된(associated) 이벤트 코드;
이벤트에 대응된 이벤트 우선 순위;
em_adr; 및
rec_adr.
클라이언트에 의해 요청되는 작동이 완료되자 마자, 디바이스는 실행의 리포트를 포함하는 "io_report" 를 출력한다.
io_report 는 전형적으로, 클라이언트에게 제공될 수 있는 두개의 리포트들 중의 하나를 포함하는 데, 이 두개의 리포트는, 요청된 정보가 아직 클라이언트에 의한 이용이 불가능함을 나타내는 "e_not_done" 과 요청된 정보가 이용가능함을 나타내는 "0" 를 포함하며, 또한 이 두개의 리포트는 이벤트와 연관된다.
리포트 "0" 를 받자마자, 디바이스 매니저는 클라이언트(4076)에게 에러_코드를 제공하는 데, 에러_코드는 다음중 하나를 포함한다:
e_client_inconnu;
e_periph_inconnu;
e_cmde_inconnu;
이벤트 코드가 미지의 것임을 알리는 "e_cmde_inconnue";
우선 순위가 미지임을 알리는 "e_priorite_inconnue";
e_report_periph; 및
0.
이상에서 본 발명은 순전히 실시예들을 통하여만 설명되었으며, 본 발명의 영역 내에서 그 세부 사항의 변형이 가능함을 이해될 수 있을 것이다.
발명의 상세한 설명, 특허 청구 범위 및 도면에서 기술된 각각의 특성은 독립적으로 또는 임의의 적절한 조합을 통하여 구비될 수 있다.
전술한 바람직한 실시예들에서, 본 발명의 소정의 특징들은 컴퓨터 소프트웨어를 이용하여 구현되었다. 그러나, 상기 특징들의 어떤것도 하드웨어를 이용하여 구현될 수 있음은 당업자에게는 명백함은 물론이다. 또한, 하드웨어, 컴퓨터 소프트웨어 등등에 의해 수행되는 기능들은 전기 신호 기타의 신호들을 이용하여 수행될 수 있음이, 즉시 이해될 수 있을 것이다.
참고문헌은 같은 출원일을 갖는 동시계류중인 출원이고 그 출원의 명칭은 신호 발생 및 방송(Signal Generation and Broadcasting)(대리인 문서번호 PC/ASB/19707), 암호화된 방송 신호의 수신기와 사용하는 스마트카드 및 수신기(Smartcard for use with a Receiver of Encrypted Broadcast Signal and Receiver)(대리인 문서번호 PC/ASB/19708), 방송 및 수신 시스템 및 그것을 위한 조건부 액세스 시스템(Broadcast and Reception System and Conditional Access System therefor)(대리인 문서번호 PC/ASB/19710), 송신기로부터 수신기/디코더를 경유해서 컴퓨터로의 컴퓨터 파일의 다운로딩(Downloading a Computer File from a Transmitter via a Receiver/Decoder to Computer)(대리인 문서번호 PC/ASB19711), 텔레비젼 프로그램 및 다른 데이터의 송신 및 수신(Transmission and Reception of Televsion Programmes and Other Data)(대리인 문서번호 PC/ASB/19712), 다운로딩 데이터(Downloading Data)(대리인 문서번호 PC/ASB/19713), 컴퓨터 메모리 구조(Computer Memory Organisation)(대리인 문서번호 PC/ASB/19714), 텔레비젼 또는 라디오 제어 시스템 개발(Television or Radio Control System Development)(대리인 문서번호 PC/ASB/19715), 송신된 데이터 스트림으로부터 인출하는 데이터 섹션(Extracting Data Sections from a Transmitted Data Stream)(대리인 문서번호 PC/ASB/19716), 액세스 제어시스템(Access Control System)(대리인 문서번호 PC/ASB/19717), 데이터 처리시스템(Data Processing System)(대리인 문서 번호 PC/ASB/19718), 방송 및 수신 시스템 및 수신기/디코더 및 그것을 위한 원격 제어기(대리인 문서 번호 PC/ASB/19720)이다. 상기 서류의 개시는 참고로 본원에서 결부된다. 출원들의 리스트는 본 발명을 포함한다.

Claims (19)

  1. 프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하기 위한 방법에 있어서,
    상기 시스템의 상기 또는 각각의 부품과 연결되며 각각 디바이스 식별자를 가지는 논리 디바이스를 저장하는 단계;
    상기 프로그램에 프로그램 식별자를 할당하는 단계; 및
    상기 프로그램과 상기 또는 각각의 논리 디바이스 사이의 공통 인터페이스에 상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하는 신호를 상기 프로그램으로부터 출력하여, 상기 인터페이스를 통하여 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 신호는, 디바이스와 연관된 부품의 상태의 변화를 나타내는 하나의 개별적 논리 디바이스로부터의 메시지 출력의 프로그램에 의한 커맨드 이내이블링 수신을 추가로 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 상기 메시지는 상기 컴퓨터 시스템의 큐우 수단에 임시로 저장되었다가 상기 프로그램으로 후속 전송되는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서, 상기 큐우 수단은 다수의 큐우 들을 포함하며, 상기 큐우 각각은 상기 큐우 수단으로부터 상기 프로그램으로 메시지가 전송되는 순서를 지시하는 하나의 개별적 우선 순위 레벨을 포함하며, 상기 신호는 상기 메시지가 임시적으로 저장되는 상기 큐우의 상기 우선 순위 레벨을 추가로 포함하는 것을 특징으로 하는 방법.
  5. 선행 청구항들 중 어느 하나의 청구항에 있어서, 상기 방법은 다수의 프로그램에 의해 제공되며, 각각의 프로그램은 상기 인터페이스를 통해 상기 또는 각각의 부품을 엑세스하는 것을 특징으로 하는 방법.
  6. 컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하는 방법에 있어서,
    제 1 항에 따른 방법을 사용하여 상기 프로그램에 의하여 상기 부품에 엑세스를 제공하는 단계; 및
    상기 프로그램 식별자, 공통 인터페이스로의 논리 디바이스의 디바이스 식별자, 부품에 연결된 상기 논리 디바이스에 의한 상기 부품의 커맨드 지시 작동, 상기 디바이스에 의한 상기 부품으로의 입력 데이터 용 어드레스 및 상기 논리 디바이스로의 상기 부품에 의한 데이터 출력 용 어드레스를 포함하는 신호를 상기 프로그램으로부터 상기 공통 인터페이스로 후속적으로 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 컴퓨터 시스템의 하나의 부품과 하나의 프로그램 사이에서 데이터를 전송하는 방법에 있어서,
    제 4 항에 따른 방법을 사용하여 상기 프로그램에 의하여 상기 부품에 엑세스를 제공하는 단계; 및
    상기 프로그램 식별자, 공통 인터페이스로의 논리 디바이스의 디바이스 식별자, 부품에 연결된 상기 논리 디바이스에 의한 상기 부품의 커맨드 지시 작동, 상기 디바이스와 연결된 상기 부품의 상태의 변화를 나타내는 각각의 논리 디바이스로부터의 메시지 출력을 상기 프로그램으로 전송되기 전에 임시로 저장하기 위한 상기 큐우의 상기 우선 순위 레벨, 상기 디바이스에 의한 상기 부품으로의 입력 데이터 용 어드레스 및 상기 논리 디바이스로의 상기 부품에 의한 출력 데이터 용 어드레스를 포함하는 신호를 상기 프로그램으로부터 상기 공통 인터페이스로 후속적으로 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 선행 청구항들 중 어느 하나의 청구항에 있어서, 상기 프로그램 및/또는 상기 또는 각각의 논리 디바이스는 하나의 부품을 통하여 상기 컴퓨터 시스템에 입력되는 것을 특징으로 하는 방법.
  9. 선행 청구항들 중 어느 하나의 청구항에 있어서, 상기 또는 각각의 부품은, MPEG 플로우 튜너, 직렬 인터페이스, 병렬 인터페이스, 모뎀 및 스마트카드 판독기 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  10. 컴퓨터 시스템의 적어도 하나의 부품에 프로그램에 의해 엑세스를 제공하는 방법 또는 이하에서 기술되는 컴퓨터 시스템의 부품과 프로그램 사이에서 데이터를 전송하는 방법.
  11. 프로그램에 의해 컴퓨터 시스템의 적어도 하나의 부품에 엑세스를 제공하며, 상기 또는 각각의 부품에 관련된 논리 디바이스가 상기 시스템에 저장되고, 상기 또는 각각의 논리 디바이스는 각각의 디바이스 식별자를 가지는 장치에 있어서,
    상기 프로그램에 프로그램 식별자를 할당하기 위한 수단; 및
    상기 또는 각각의 논리 디바이스의 상기 디바이스 식별자 및 상기 프로그램 식별자를 포함하며 상기 프로그램으로부터 출력되는 신호에 따라 상기 또는 각각의 논리 디바이스와 상기 프로그램 사이에 통신 채널을 형성하기 위한 수단을 포함하는 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서, 상기 장치는 상기 디바이스와 연결된 상기 부품의 상태의 변화를 나타내는 각각의 논리 디바이스로부터의 메시지 출력의 상기 프로그램에 의하여 수신을 가능하게 하기 위한 수단을 추가로 포함하는 것을 특징으로 하는 장치.
  13. 제 12 항에 있어서, 상기 컴퓨터 시스템은 상기 프로그램으로의 후속 전송을 위하여 상기 디바이스에 의한 메시지 출력을 임시로 저장하기 위한 큐우 수단을 추가로 포함하는 것을 특징으로 하는 장치.
  14. 제 13 항에 있어서, 상기 큐우 수단은 다수의 큐우 들을 포함하며, 상기 다수의 큐우 각각은 상기 큐우 수단으로부터 상기 프로그램으로 메시지들이 전송되는 순서를 지시하는 하나의 개별적인 우선 순위 레벨을 가지는 것을 특징으로 하는 장치.
  15. 제 11 항 내지 제 14 항 중의 어느 하나의 청구항에 있어서, 상기 컴퓨터 시스템은 상기 디바이스에 의한 상기 부품으로의 입력 데이터와 상기 부품에 의한 상기 논리 디바이스로의 출력 데이터를 상기 공통 인터페이스에로 저장하기 위한 수단을 추가로 포함하는 것을 특징으로 하는 장치.
  16. 제 11 항 내지 제 15 항 중의 어느 하나의 청구항에 있어서, 상기 또는 각각의 논리 부품은 하나의 디바이스 드라이버를 통하여 각각의 관련된 부품에 연결되는 것을 특징으로 하는 장치.
  17. 제 11 항 내지 제 16 항 중의 어느 하나의 청구항에 따른 장치를 구비하는 방송 신호 수신용 수신기/디코더.
  18. 제 17 항에 있어서, 상기 수신기/디코더는 압축된 MPEG 형 신호를 수신하기 위한 수단, 수신된 신호를 복호화하여 텔레비젼 신호를 제공하기 위한 수단 및 상기 텔레비젼 신호를 텔레비젼에 공급하기 위한 수단을 추가로 포함하는 것을 특징으로 하는 방송 신호 수신용 수신기/디코더.
  19. 첨부 도면을 참조하여 명세서에서 설명된 상기 장치 및 수신기/디코더.
KR1019997008509A 1997-03-21 1997-04-25 엑세스 제어 시스템 KR20000076405A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP97400650.4 1997-03-21
EP97400650 1997-03-21

Publications (1)

Publication Number Publication Date
KR20000076405A true KR20000076405A (ko) 2000-12-26

Family

ID=48262303

Family Applications (6)

Application Number Title Priority Date Filing Date
KR1019997008515A KR20000076411A (ko) 1997-03-21 1997-04-25 컴퓨터 메모리 구조
KR1019997008509A KR20000076405A (ko) 1997-03-21 1997-04-25 엑세스 제어 시스템
KR1019997008507A KR20000076403A (ko) 1997-03-21 1997-04-25 텔레비젼 또는 라디오 제어 시스템 전개
KR1019997008510A KR20000076406A (ko) 1997-03-21 1997-04-25 데이터 처리 시스템
KR1019997008504A KR20000076401A (ko) 1997-03-21 1997-04-25 수신기/디코더를 통하여 송신기로부터 컴퓨터로 컴퓨터 파일의 다운로딩
KR1019997008503A KR20000076400A (ko) 1997-03-21 1997-04-25 방송 및 수신 시스템, 및 그를 위한 조건부 액세스 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1019997008515A KR20000076411A (ko) 1997-03-21 1997-04-25 컴퓨터 메모리 구조

Family Applications After (4)

Application Number Title Priority Date Filing Date
KR1019997008507A KR20000076403A (ko) 1997-03-21 1997-04-25 텔레비젼 또는 라디오 제어 시스템 전개
KR1019997008510A KR20000076406A (ko) 1997-03-21 1997-04-25 데이터 처리 시스템
KR1019997008504A KR20000076401A (ko) 1997-03-21 1997-04-25 수신기/디코더를 통하여 송신기로부터 컴퓨터로 컴퓨터 파일의 다운로딩
KR1019997008503A KR20000076400A (ko) 1997-03-21 1997-04-25 방송 및 수신 시스템, 및 그를 위한 조건부 액세스 시스템

Country Status (3)

Country Link
KR (6) KR20000076411A (ko)
HK (1) HK1044659A1 (ko)
RU (1) RU2001111520A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5068398B2 (ja) 2000-08-17 2012-11-07 Necディスプレイソリューションズ株式会社 受信機及びコンテンツの配信方法
KR100726614B1 (ko) * 2006-02-01 2007-06-11 에스케이 텔레콤주식회사 브-엠 기반의 기업용 애플리케이션 개발지원 시스템 및방법

Also Published As

Publication number Publication date
KR20000076400A (ko) 2000-12-26
KR20000076406A (ko) 2000-12-26
KR20000076411A (ko) 2000-12-26
HK1044659A1 (zh) 2002-10-25
KR20000076403A (ko) 2000-12-26
RU2001111520A (ru) 2003-06-10
KR20000076401A (ko) 2000-12-26

Similar Documents

Publication Publication Date Title
US7039245B1 (en) Processing of digital picture data in a decoder
JP2009077451A (ja) 伝送データ・ストリームからデータ・セクションを抽出する方法
AU740740B2 (en) Data processing system
NO332871B1 (no) Fremgangsmate ved nedlasting av eksekverbart brukerprogram i en dekoder, og tilsvarende dekoder og smartkort
EP1194847A2 (en) Running and testing applications
JP2001518256A5 (ko)
AU742956B2 (en) Television or radio control system development
AU742213B2 (en) Access control system
JP4303884B2 (ja) モデム制御
KR20000076405A (ko) 엑세스 제어 시스템
EP1067806A1 (en) Apparatus for and method of testing applications
MXPA99008545A (es) Sistema de control de acceso
EP1067455A1 (en) Running and testing applications
CZ331799A3 (cs) Systém řízení přístupu
MXPA99008546A (es) Extraccion de secciones de datos desde una corriente de datos transmitida
MXPA00000776A (en) Ieee set top box device driver
MXPA00007900A (en) Processing of digital picture data in a decoder

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee