KR20070052328A - Method and system for providing interactive services in digital television - Google Patents

Method and system for providing interactive services in digital television Download PDF

Info

Publication number
KR20070052328A
KR20070052328A KR1020077007013A KR20077007013A KR20070052328A KR 20070052328 A KR20070052328 A KR 20070052328A KR 1020077007013 A KR1020077007013 A KR 1020077007013A KR 20077007013 A KR20077007013 A KR 20077007013A KR 20070052328 A KR20070052328 A KR 20070052328A
Authority
KR
South Korea
Prior art keywords
logic
service
data
manager
screen
Prior art date
Application number
KR1020077007013A
Other languages
Korean (ko)
Inventor
마우리지오 펠리자
루이기 콰트로치
라우라 콘틴
Original Assignee
텔레콤 이탈리아 소시에떼 퍼 아찌오니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레콤 이탈리아 소시에떼 퍼 아찌오니 filed Critical 텔레콤 이탈리아 소시에떼 퍼 아찌오니
Priority to KR1020077007013A priority Critical patent/KR20070052328A/en
Publication of KR20070052328A publication Critical patent/KR20070052328A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8545Content authoring for generating interactive applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Abstract

본 발명은 스크린에 연결된 디지털 수신장치(예컨대, 셋톱 박스)상에 상기 스크린상에 디스플레이될 수 있는 미디어 컨텐츠를 포함하는 상호작용 서비스를 제공하는 방법 및 시스템에 관한 것이다. 상기 스크린상에 시각화되도록 새로운 미디어 컨텐츠를 생성할 수 있는 동적 서비스 로직을 포함하는 디지털 수신장치에서 실행되는 서비스 애플리케이션에 의해 상호작용 서비스가 제공된다. 상기 동적 서비스 로직은 상기 서비스 애플리케이션 자체에 저장되어 있거나 서버로부터 다운로드되는 데이터를 사용하여 온-더-플라이 동적 정보를 생성할 수 있는 능력을 제공하는 애플리케이션 로직이다. 이들 데이터는 스크립트 시각화 표현을 생성하기 위해 작동되는 "미가공" 정보 컨텐츠를 포함한다. 동적 서비스 로직은 상황 의존형 컨텐츠의 런타임시에, 예컨대 사용자의 요청에 잇따라는 클라이언트측 생성을 담당하는 하나 이상의 비지니스 로직을 구비한다. 상호작용 서비스는 셋톱 박스에서 실행되는 애플리케이션이 상호작용을 제공하는 동적 씬들을 국소적으로 생성할 수 있는 동적 서비스 로직을 포함기 때문에 어떠한 리턴 채널없이 셋톱 박스내에 또한 재생될 수 있다. The present invention relates to a method and system for providing an interactive service comprising media content that can be displayed on the screen on a digital receiver (eg, set-top box) connected to the screen. An interactive service is provided by a service application running on a digital receiver that includes dynamic service logic capable of generating new media content to be visualized on the screen. The dynamic service logic is application logic that provides the ability to generate on-the-fly dynamic information using data stored in the service application itself or downloaded from a server. These data include "raw" information content that is operated to generate script visualization representations. Dynamic service logic includes one or more business logic that is responsible for client-side creation at runtime, such as following a user request. The interaction service can also be played back within the set top box without any return channel because the application running on the set top box includes dynamic service logic that can locally create dynamic scenes that provide interaction.

디지털 수신장치, 셋톱 박스, 상호작용 서비스 Digital Receivers, Set Top Boxes, Interactive Services

Description

디지털 텔레비전에서의 상호작용 서비스 제공 방법 및 시스템{Method And System For Providing Interactive Services In Digital Television}Method and system for providing interactive service in digital television {Method And System For Providing Interactive Services In Digital Television}

본 발명은 상호작용 텔레비젼 컨텐츠를 셋톱 박스(set-top box)와 같은 디지털 수신장치로 인에이블시키고 처리하기 위한 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for enabling and processing interactive television content with a digital receiver such as a set-top box.

디지털 전송 기술의 최근 진보로, 방송사들은 종래 아날로그 방송 비디오보다 훨씬 더 많은 것을 제공할 수 있게 되었다. 디지털 전송은 아날로그 전송보다 상당히 더 큰 대역폭을 필요로 하나, 디지털 신호는 압축될 수 있다. MPEG(Moving Picture Experts Group) 표준과 같은 컴퓨터 기술은 한 이미지와 다음 이미지 사이에 발생하는 변화만을 분리하여 전송하는데 사용된다. 디지털 텔레비전은 디지털 텔레비전 환경에서 상호작용 서비스의 도입을 할 수 있는 데이터 방송을 가능하게 한다. Recent advances in digital transmission technology have allowed broadcasters to provide much more than conventional analog broadcast video. Digital transmissions require significantly greater bandwidth than analog transmissions, but digital signals can be compressed. Computer technologies, such as the Moving Picture Experts Group (MPEG) standard, are used to separate and transmit only the changes that occur between one image and the next. Digital television enables data broadcasting to enable the introduction of interactive services in a digital television environment.

디지털 신호의 전송은 다른 방식으로 발생될 수 있다. 디지털 지상파 텔레비전(DTT) 방송 네트워크에서, 방송신호는 "대기를 통해" 안테나로 전달된다. 지상파, 케이블 및 위성 이외에, IP 시스템도 텔레비전 방송을 가정에 이르게하고 사용자에게 비디오, 오디오 및 데이터 컨텐츠를 수신하는 수단을 제공하는 실행가능한 수단이다. Transmission of the digital signal may occur in other ways. In a digital terrestrial television (DTT) broadcast network, the broadcast signal is delivered "by air" to the antenna. In addition to terrestrial, cable and satellite, IP systems are also viable means of bringing television broadcasting to the home and providing the user with the means to receive video, audio and data content.

오늘날, 대부분의 시청자들은 디지털 신호를 복호화하고 상기 신호를 텔레비전 모니터상에(또는, 이중 스크린 시스템의 경우 PC 모니터상에) 디스플레이하는 셋톱 박스(STB)를 통해 디지털 텔레비전을 수신한다. 진보된 STB는 단지 복호기 이상일 수 있고 원격 제어의 이용을 통해 사용자와 상호작용하고 모뎀 및 통신 네트워크, 예컨대 PSTN등을 사용하여 서비스 제공자와 상호작용할 수 있는 애플리케이션을 실행하도록 프로그램될 수 있다. 실제로, STB는 일반적으로 소프트웨어를 구동하는 컴퓨터를 구비하고, 상기 컴퓨터는 오디오 또는 비디오스트림과 함께 전송되는 신호를 복호화하고 상기 소프트웨어를 실행시킨다. 일방향 시스템용 STB는 TV 스크린상에 정보를 접속하여 상기 정보에 첨가할 수 있다. 양방향 시스템은 리턴 채널(return channel)을 통해 정보를 방송사(또는 서비스 제공자)에 다시 보낸다. 일방향 시스템에서, 상호작용성(interactivity)은 국소적으로 이용가능한 정보에 제한되는(예컨대, 사용자가 STB상에 이용가능한 페이지를 네비게이트할 수 있는) 반면에, 양방향 시스템에서 사용자는 (예컨대 서비스를 요청하거나 정보를 전송하기 위해) 원격 서버와 상호작용할 수 있다.Today, most viewers receive digital television through a set top box (STB) that decodes the digital signal and displays it on a television monitor (or on a PC monitor in the case of a dual screen system). Advanced STBs can be more than just decoders and can be programmed to run applications that can interact with users through the use of remote control and interact with service providers using modems and communication networks, such as PSTNs and the like. In practice, STBs typically have a computer running software that decodes the signal transmitted with the audio or video stream and executes the software. The STB for one-way systems can add information to the information by connecting it to the TV screen. The bidirectional system sends information back to the broadcaster (or service provider) via a return channel. In one-way systems, interactivity is limited to locally available information (e.g., a user can navigate to pages available on the STB), while in a two-way system, a user (eg, Interact with a remote server (to request or send information).

리턴 채널은 클라이언트가 서버와 상호작용하게 하도록 STB에 의해 사용되는 물리적 경로이다. 예컨대, 상호작용 TV 사용자는 리턴 채널을 통해 서비스 센터로 정보(예컨대, 투표, 설문지, 서비스 요청)를 다시 전송할 수 있다. 물리적 경로는 전화선 또는 ADSL 모뎀선, 또는 무선, 예컨대, GPRS 또는 UMTS과 같은 와이어 연결일 수 있다.The return channel is the physical path used by the STB to allow the client to interact with the server. For example, an interactive TV user may send information (eg, voting, questionnaire, service request) back to the service center via the return channel. The physical path may be a telephone line or an ADSL modem line, or a wire connection such as wireless, eg, GPRS or UMTS.

디지털 텔레비전과 관련하여, 상호작용성은 일반적으로 텔레비전 시청자가 프로그램 및 서비스와 상호작용하게 할 수 있는 것을 의미하는 것으로 이해된다. 상호작용성은 때때로 향상된 텔레비전 및 상호작용 서비스의 2가지 타입으로 나누어진다. 향상된 텔레비전은 일반적으로 시청자가 텔레비전을 수동적으로 보는 것보다 많은 것을 할 수 있다는 것을 말한다. 이 시스템은 시청자가 동시에 강화된 텔레비전 프로그램을 보면서 프로그램과 관련된 추가 정보를 다운로드 하게 한다. 강화된 텔레비전에서, 상호작용성은 "저수준(low level)"이며 아날로그 텔레비전 텔레텍스트(teletext) 애플리케이션에서 발생하는 것과 같이 페이지를 통한 브라우징(browsing)과 매우 유사하다. In the context of digital television, interactivity is generally understood to mean that it allows a television viewer to interact with programs and services. Interactivity is sometimes divided into two types of enhanced television and interactive services. Advanced television generally means that viewers can do more than watch television passively. The system allows viewers to watch additional enhanced television programs at the same time and download additional information about the program. In enhanced television, interactivity is "low level" and very similar to browsing through pages as occurs in analog television teletext applications.

상호작용 서비스는 일반적으로 사용자의 메뉴 옵션 또는 컨텐츠 업데이트 누름과 같이 외부 이벤트에 응답하여 정보의 전달을 추정한다. 이러한 정보는 상황 의존적이고 온-더-플라이(on-the-fly) 생성될 수 있다. 그런 후, 상호작용 서비스는 현재 및 다음 프로그램에 대한 공고 또는 전자프로그램 가이드(EPG)와 관련된 정보와 같은 정적 정보에 대한 전송스트림(transport stream)을 탐색할 수 있는 기능들을 초과할 수 있다. 상호작용 서비스의 예는 전자소매업자(electronic retailer)에 의해 제공된 거래 서비스 또는 어떤 공항으로부터 예정된 항공편에 대한 정보의 주문형(on-demand) 배달일 수 있다. 상호작용 서비스는 관련 컨텐츠, 즉, 방송된 TV 컨텐츠에 의존적이거나, 임의의 프로그래밍 스트림과는 별개일 수 있다. 컨텐츠 관련 서비스와 스트림 독립적 서비스 간의 차이는 종종 서비스 제공자가 서비스를 생성 또는 전달하기 위해 누구와, 즉, TV 채널 제공자(방송사) 또는 플랫폼 운영자로서 행동하는 다채널 영상 서비스 제공 사업자(MVPD, Multichannel Video Program Distribution)와 계약하는 가에 놓여있다. 예로써, 실제로, 금융정보 및 주식시세의 배달 주문(delivery on-demand)이 비지니스 채널에 따라 프로그램 관련될 수 있거나 특정 프로그래밍 스트림에 무관할 수 있다.Interaction services generally infer the delivery of information in response to external events, such as a user pressing a menu option or a content update. Such information can be context dependent and generated on-the-fly. The interaction service may then exceed the ability to search the transport stream for static information, such as announcements for current and next programs or information related to an electronic program guide (EPG). Examples of interaction services may be on-demand delivery of information about a scheduled flight from an airport or a trading service provided by an electronic retailer. The interaction service may be dependent on related content, ie broadcast TV content, or may be separate from any programming stream. The difference between content-related services and stream-independent services is that the multi-channel video service providers (MVPDs) often act with whom the service provider creates or delivers the service, that is, as a TV channel provider (broadcaster) or platform operator. Contract with Distribution. By way of example, in practice, delivery on-demand of financial information and stock quotes may be program related or independent of a particular programming stream, depending on the business channel.

이하, 상호작용 서비스는 상호작용성을 포함하는 프로그래밍 확장 및 임의의 프로그래밍 스트림과는 무관한 전용 상호작용 서비스 모두를 포함하는 것을 의미한다. Hereinafter, an interaction service is meant to include both a programming extension that includes interactivity and a dedicated interaction service that is independent of any programming stream.

상호작용 서비스는 TV 컨텐츠를 제공하는 동일한 방송 채널을 통해 또는 별개의 전송라인, 즉, 네트워크 연결을 통해 배달된다. 상호작용 서비스에 접속하는 방법은 일반적으로 적외선 신호를 복호기로 전송하는 리모트 컨트롤 또는 리모트 키보드를 통해서이다. Interaction services are delivered over the same broadcast channel providing TV content or over separate transmission lines, i. E. Network connections. The method of accessing the interactive service is generally through a remote control or a remote keyboard which transmits an infrared signal to the decoder.

이들 대부분의 서비스들은 웹을 통해 이용될 수 있다. 웹 서비스의 형태로 여분의 채널을 수용할 수 있는 진보된 셋톱 박스가 상용으로 구매될 수 있기 시작했다. 인터넷으로의 연결성은 내장 모뎀에 의해 또는 광역 홈네트워크로의 WiFi 또는 이더넷 연결에 의해 주어질 수 있다. Most of these services are available via the web. Advanced set-top boxes that can accommodate extra channels in the form of Web services have begun to be purchased commercially. Connectivity to the Internet can be given by a built-in modem or by a WiFi or Ethernet connection to a wide area home network.

STB는 일반적으로 비디오, 오디오 및 데이터 성분을 포함하는 디지털 방송신호를 수신한다. 데이터 성분은 반복적인 캐루셀(carousel) 타입 방식으로 제공되며, 모듈들은 요청될 때 수신기에 의해 다운로드된다. 모듈들은 일반적으로 Java® 프로그래밍 언어로 작성된 상호작용 애플리케이션을 포함한다. STB에는 자바가상머신(JVM, Java Virtual Machine)이 제공되고 상호작용 애플리케이션을 운영하도록 연결되어 실행되는 자바 클래스 파일을 수신한다. STBs generally receive digital broadcast signals that include video, audio, and data components. The data components are provided in an iterative carousel type manner and modules are downloaded by the receiver when requested. Modules typically contain interactive applications written in the Java programming language. The STB is provided with a Java Virtual Machine (JVM) and receives Java class files that are linked and run to run interactive applications.

STB는 일반적으로 애플리케이션을 띄우기 위해 미들웨어(middleware)를 필요로 한다. 미들웨어는 애플리케이션이 함께 작동하게 돕는 STB에 있는 소프트웨어 및 하드웨이이다. 미들웨어 제공자는 사용자가 프로그래밍과 제품을 선택하게 하고, 인터넷을 연결하게 하며, 트랜잭션을 안전하게 하는 소프트웨어와 인터페이스를 개발한다. 미들웨어의 예는 리버레이트(Liberate), 오픈 티비(Open TV), 마이크로소프트 티비(Microsoft TV) 및 자바 티비(Java TV)이다. STBs generally require middleware to launch their applications. Middleware is the software and hardware in the STB that helps applications work together. Middleware providers develop software and interfaces that allow users to select programming and products, connect to the Internet, and secure transactions. Examples of middleware are Liberate, Open TV, Microsoft TV, and Java TV.

자바는 플랫폼에 무관한 객체지향 프로그래밍 언어이다. 자바는 통상 중앙집중형 서버에서 네트워크상에 있을 수 있는 애플렛(applets)이라고 하는 작은 프로그램을 생성하도록 특별히 설계되었고 필요할 때만 클라이언트 머신으로 전달된다. 자바 프로그램은 일단 작성된 후 JVM을 포함하는 임의의 타입의 플랫폼에 실행될 수 있다. 객체지향언어인 자바로 작성된 소프트웨어는 객체지향 프로그래밍의 이점을 이용할 수 있다. 자바언어에서, 프로그램 데이터는 클래스로 싸여지며, 프로그래머가 생성한 클래스인지 또는 자바 플랫폼 API(Application Programming Interfaces) 라이브러리로부터 사용되는 클래스인지에 여부에 따른다. 클래스는 데이터와 상기 데이터에 작동하는 실행가능 코드(메소드(method)로서 또한 언급됨) 모두를 포함한다. 자바에서, 객체는 그 행동이 메소드들로서 정의되는 클래스의 실행 예이다. 자바로 작성된 프로그램은 먼저 자바 컴파일러를 사용하여 바이트 코드로 컴파일된다. 바이트 코드는 JVM에 의해 해석되고 실행될 수 있는 플랫폼 독립적인 명령어들이다. JVM은 자바 프로그램이 실행되어야만 하는 각 플랫폼에 대해 실행되어야 하는 가상 컴퓨터이다. JVM은 컴파일된 바이트 코드와 내재하는 하드웨어 플랫폼 및 동작 시스템간의 추상층을 제공한다. JVM이 프로그램을 실행하는 경우, 자바 바이트 코드를 취해 해석하거나 상기 코드를 내재하는 하드웨어에 대한 머신 코드 명령어로 변환시키며, 상기 머신 코드 명령어를 실행용 CPU로 전달한다. 이러한 방식으로 작동함으로써, 자바 프로그램이 일단 작성된 후 JVM이 이용될 수 있는 임의의 플랫폼상에 실행될 수 있다.Java is a platform-independent object-oriented programming language. Java is specially designed to create small programs, called applets, which can typically be on a network from a centralized server, and are only delivered to the client machine when needed. Once written, a Java program can run on any type of platform, including the JVM. Software written in Java, an object-oriented language, can take advantage of object-oriented programming. In the Java language, program data is wrapped in classes, depending on whether it is a class created by the programmer or a class used from the Java Platform API (Application Programming Interfaces) library. A class contains both data and executable code (also referred to as methods) that operate on that data. In Java, an object is an example of the execution of a class whose behavior is defined as methods. Programs written in Java are first compiled into bytecode using the Java compiler. Bytecode is platform independent instructions that can be interpreted and executed by the JVM. The JVM is a virtual machine that must be run for each platform on which Java programs must run. The JVM provides an abstraction between compiled byte code and the underlying hardware platform and operating system. When the JVM executes a program, it takes Java byte code and interprets or translates the code into machine code instructions for the underlying hardware, and passes the machine code instructions to the CPU for execution. By operating in this manner, a Java program can be written once and executed on any platform on which the JVM can be used.

상호작용 텔레비전(iTV)용으로 출현한 표준 플랫폼은 디지털 TV 방송의 다양한 태양들을 표준화시킨 업계주도형 컨소시엄(industry-led consortium)인 디지털 비디오 방송(DVB)으로 제작된 오픈 미들웨어 시스템인 멀티미디어 홈 플랫폼(MHP)이다. MHP는 모든 제 3 자들이 자신의 iTV 애플리케이션을 개발하고 동작시키게 하는 API 세트이다. MHP는 일반적으로 예컨대, 썬(Sun)의 자바 TV 네트워크를 기초로 한 자바 런타임 환경에서 정의된다. The emerging standard platform for interactive television (iTV) is the multimedia home platform (MHP), an open middleware system built with digital video broadcasting (DVB), an industry-led consortium that standardizes the various aspects of digital television broadcasting. )to be. MHP is a set of APIs that allow all third parties to develop and run their own iTV applications. MHP is generally defined in, for example, a Java runtime environment based on Sun's Java TV network.

DVB-MHP 애플리케이션은 DVB-Java 또는 DVB-HTML 애플리케이션 중 어느 하나로 카테고리화될 수 있다. DVB-Java(또는 DVB-J) 애플리케이션을 일반적으로 Xlet 애플리케이션이라 한다. Xlet 애플리케이션은 모두 STB에 실행되고 상기 STB에 또는 객체 및 데이터 캐루셀 또는 네트워크로부터 다운로드될 수 있다. Xlet 애플리케이션은 시스템 소프트웨어의 일부이고 STB내에 있는 애플리케이션 매니저에 의해 제어된다. 애플리케이션 매니저는 애플리케이션 생명주기(life cycle) 관리를 담당한다.DVB-MHP applications can be categorized as either DVB-Java or DVB-HTML applications. DVB-Java (or DVB-J) applications are commonly referred to as Xlet applications. Xlet applications all run on the STB and can be downloaded to the STB or from objects and data carousels or networks. The Xlet application is part of the system software and is controlled by the application manager in the STB. The application manager is responsible for managing the application life cycle.

Proceedings of the IEEE International Conference on Multimedia and Expo 2001, 도쿄(일본), 2001, 8,22-25, pp.685-688에 발간된 "Digital Television Application Manager" 논문에서 씨. 펭(C. Peng) 및 피. 부오리마(P. Vuorimaa)는 DVB-MHP 표준에서 접속 멀티미디어 서비스용 플랫폼에서 애플리케이션 매니저의 디자인을 제시하고 있다. DVB-J 애플리케이션은 실제로 함께 동작하고 상태 변경을 제어할 수 있도록 상기 애플리케이션 매니저에 대한 단일 인스턴스(instance)로서 신호발생되어야 할 필요가 있는 자바 클래스 세트이다. 상기 논문에서, 다운로드될 수 있는 애플리케이션의 모든 정보가 MPEG-2 전송 스트림에서 다른 기본적인 스트림과 함께 멀티플렉스되고 전송되는 애플리케이션 정보 테이블(AIT)에 저장되어 있다. 애플리케이션 매니저는 애플리케이션의 위치 및 신호정보를 식별하기 위해 이 정보를 필요로 한다. 이를 위해, 자바 클래스 로더(loader) 및 JVM의 클래스 기술이 다른 소스들로부터 애플리케이션 클래스를 로드하고 이름 충돌을 해결하기 위해 사용되었다.In the paper "Digital Television Application Manager" published in Proceedings of the IEEE International Conference on Multimedia and Expo 2001, Tokyo (Japan), 2001, 8,22-25, pp.685-688. C. Peng and P. P. Vuorimaa presents the design of an application manager in a platform for access multimedia services in the DVB-MHP standard. DVB-J applications are a set of Java classes that need to be signaled as a single instance to the application manager so that they actually work together and control state changes. In this paper, all the information of an application that can be downloaded is stored in an application information table (AIT) which is multiplexed and transmitted along with other elementary streams in the MPEG-2 transport stream. The application manager needs this information to identify the location and signaling information of the application. For this purpose, Java class loaders and JVM's class descriptions were used to load application classes from other sources and resolve name conflicts.

일반적으로, 네비게이터 또는 전자 프로그래밍 가이드(EPG)는 서비스를 선택하기 위해 사용자에게 그래픽 인터페이스를 나타내는데 사용된다. 서비스가 선택된 후, Xlet이 DVB 단말기로에 다운로드되고, 상기 단말기는 Xlet이 제공하는 기능을 선택하도록 사용자용 그래픽 인터페이스를 나타낸다. www.ist-overdrive.org/ HyWiN2003/proceedings/2.41.Hywin-PaperServices 2003-11-16.pdf 2004년 7월 5일, 인터넷에서 다운로드된 "Providing Fast Prototypes of Services and Automated Generation of Service Applications for Converged Broadcast and Cellular Networks" 논문에서 제이. 코스매스 등(J. Cosmas et al.)은 서비스 사용자 인터페이스를 사용자에게 나타내는 그래픽 사용자 인터페이스 바로 아래에 동작하는 일반 적인 그래픽 프리젠테이션 엔진(graphic presentation engine)을 제공하는 사용자 인터페이스를 개시하고 있다. 프리젠테이션 엔진은 메타데이터(metadata)를 해석함으로써 동작되고, 그래픽 사용자 인터페이스를 통해 사용자의 상호작용을 캡쳐하며, 상기 메타데이터에 의해 기술된 대응하는 명령어를 실행한다.In general, a navigator or electronic programming guide (EPG) is used to present a graphical interface to a user for selecting a service. After the service is selected, the Xlet is downloaded to the DVB terminal, which presents a graphical interface for the user to select the functions provided by the Xlet. www.ist-overdrive.org/ HyWiN2003 / proceedings / 2.41.Hywin-PaperServices 2003-11-16.pdf "Providing Fast Prototypes of Services and Automated Generation of Service Applications for Converged Broadcast," downloaded from the Internet on July 5, 2004. and in Cellular Networks "paper. J. Cosmas et al. Discloses a user interface that provides a generic graphic presentation engine that operates directly below a graphical user interface that presents a service user interface to a user. The presentation engine is operated by interpreting metadata, captures the user's interactions through a graphical user interface, and executes the corresponding instructions described by the metadata.

WO 03/104980은 데이터 전송시 검출가능한 지연을 초래하는 방송사에 의해 사용되는 비교적 낮은 데이터 속도의 문제를 인정한다. 본 특허출원은 부모 자바 클래스 파일을 포함하고 상기 부모 자바 클래스 파일내에 열거된 자식 자바 클래스 파일을 식별하는 모듈을 로딩하는 단계를 포함하는 JVM 동작방법을 기술하고 있다. 부모 자바 클래스 파일은 자식 자바 클래스 파일의 프리로딩(preloading)과 동시에 실행된다.WO 03/104980 recognizes the problem of relatively low data rates used by broadcasters which lead to detectable delays in data transmission. This patent application describes a JVM operating method comprising loading a module comprising a parent Java class file and identifying a child Java class file enumerated in the parent Java class file. The parent Java class file runs concurrently with the preloading of the child Java class file.

US 2004/0031052는 애플리케이션 서버와 TV 네비게이터가 실행되는 가입자 STB 사이의 통신을 제공하는 CATV 시스템을 개시하고 있다. TV 네비게이터는 모든 컨텐츠와 애플리케이션들이 작성된 미들웨어 환경이다. 애플리케이션들이 미들웨어의 상단에 있다. 컨텐츠와 애플리케이션들은 전체가 업계 표준 HTML 및 자바로 작성되어 있다. 종래 텔레비전 컨텐츠는 HTML 및 자바(Java)로의 TV 특정 확장(TV-specific extension)을 사용하여 웹 컨텐츠와 통합된다. US 2004/0031052 discloses a CATV system that provides communication between an application server and a subscriber STB running a TV navigator. TV Navigator is a middleware environment in which all content and applications are written. The applications are on top of the middleware. Content and applications are entirely written in industry standard HTML and Java. Conventional television content is integrated with web content using TV-specific extensions to HTML and Java.

강화된 텔레비전 컨텐츠는 일반적으로 HTML, 자바스크립트, 자바 및 다른 웹 기술의 조합을 사용하여 나타내진다. WO 02/17639는 플랫폼 의존형 강화 파일을 만들기 위해 텍스트 기반의 스크립트 강화 파일을 문장분석하는 시스템 및 방법을 개시하고 있다. 스크립트 파일은 XML(eXtensible Mark-up Language) 포맷일 수 있고 문장분석기는 XSL(eXtensible Stylesheet Language) 번역기일 수 있다. 문장분석기는 다른 애플리케이션들로부터 HTML 및 자바스크립트를 들여올 수 있다.Enhanced television content is typically represented using a combination of HTML, JavaScript, Java, and other web technologies. WO 02/17639 discloses a system and method for parsing text based script enhancement files to make platform dependent enhancement files. The script file may be in eXtensible Mark-up Language (XML) format and the parser may be an eXtensible Stylesheet Language (XSL) translator. The parser can import HTML and JavaScript from other applications.

인터넷 환경에서, 웹 사이트의 상호작용성은 일반적으로 질의답변 또는 배팅 시스템(betting system)에 사용되는 동적 웹 페이지의 생성에 의해 최근 강화되었다. 시스템은 소프트웨어 플랫폼상에 실행되는 자바 웹 서버를 사용하여 설정될 수 있다. 서버는 자바 서브렛(Java Servlets)을 사용하여 고객들로부터의 요청을 처리하고, 데이터베이스 서버를 연결시켜 웹 브라우저로부터 동적 컨텐츠를 생성한다.In the Internet environment, the interactivity of a web site has recently been enhanced by the creation of dynamic web pages that are generally used in question-answering or betting systems. The system can be configured using a Java web server running on a software platform. The server uses Java Servlets to process requests from customers and connects to a database server to generate dynamic content from a web browser.

씨. 펭(C. Peng) 및 피. 부오리마(P. Vuorimaa)는 그들의 논문 "Interactive Digital Teletext Service" published in Proceedings of the 6th World Multiconference on Systematics, Cybernetics and Informatics, 2002년, 7월 14-18에서 디지털 텔레비전 기반시설에 의해 제공되는 리턴 채널을 사용하여 양방향 통신을 디지털 텔레텍스 서비스에 추가할 수 있는 자바-XML 기반의 방안을 기술하고 있다. 상기 접근은 클라이언트/서버 모델을 기초로 하고 XML 기반의 메세징 메카니즘과 자바 서브렛(Java Servlet) 기술을 이용한다.Seed. C. Peng and P. P. Vuorimaa returned in their article "Interactive Digital Teletext Service" published in Proceedings of the 6th World Multiconference on Systematics, Cybernetics and Informatics, July 14-18, 2002, It describes a Java-XML-based way to add two-way communication to digital teletex services using channels. The approach is based on a client / server model and uses XML-based messaging mechanisms and Java Servlet technology.

동적 페이지의 생성을 위해 자바 서브렛을 사용한 기술은 서비스 로직이 서버측에 있는 한편 프리젠테이션은 클라이언트 측에 나타나는 클라이언트 서버 구조를 기초로 하는 것을 본 출원인은 주목하였다. 상기 기술은 STB가 리턴 채널을 사용하지 않는 경우, 사용자와의 상호작용에 의해 업데이트 될 수 있는 동적 컨텐츠를 STB에 제공할 수 없다는 것을 관찰했다.Applicants note that the technique using Java servlets for generation of dynamic pages is based on a client server structure where the service logic is on the server side while the presentation is on the client side. The technique has observed that if the STB does not use a return channel, it cannot provide the STB with dynamic content that can be updated by interaction with the user.

iTV 애플리케이션의 배치를 위한 큰 문제는 상용으로 구매가능한 대부분의 STB들은 iTV 애플리케이션을 저장하고 처리하는 온보드 메모리(onboard memory)의 양이 제한된다는 것이다.The big problem for deploying iTV applications is that most commercially available STBs have a limited amount of onboard memory to store and process iTV applications.

본 출원인은 수신된 상호작용 컨텐츠가 XML로 재표현되는 경우 상호작용성이 경량의 STB에 이점적으로 유지될 수 있음을 관찰하였다.Applicants have observed that interactivity can be advantageously maintained in a lightweight STB when the received interactive content is re-expressed in XML.

XML은 전자문서 표준화용 범용 마크업 언어(SGML, Standard Generalized Markup Language)의 주제이다. SGML은 마크업 전자 텍스트의 기술을 위한 국제표준이고 메타언어(metalanguage)(언어를 공식적으로 기술하는 수단)이다. SGML은 어떤 마크업이 허용되는지, 어떤 마크업이 필요한지, 그리고 어떻게 마크업이 텍스트와 구별되는 지를 명시한다. "마크업(markup)"은 일반적으로 특별한 의미를 갖는 특정 단어들인 "태크(tags)"를 사용한다. 태그는 프로그래머가 문서가 검증되어야 하는 규칙 세트를 공식화하게 한다. XML에서, 태그는 문서에서 요소들을 식별하고 이들 요소들에 대한 속성들을 포함한다. 태그들은 다중 자원들간의 연결을 위한 메카니즘을 제공하며 데이터 설명 또는 데이터 관계를 나타낸다.  XML is the subject of the Standard Generalized Markup Language (SGML). SGML is an international standard for the description of markup electronic text and is a metalanguage (a means of officially describing the language). SGML specifies what markup is allowed, what markup is required, and how markup is distinguished from text. "Markup" generally uses "tags", which are certain words that have a special meaning. The tag allows the programmer to formulate a set of rules that a document must be validated against. In XML, a tag identifies elements in a document and includes attributes for those elements. Tags provide a mechanism for linking multiple resources and represent data descriptions or data relationships.

본 발명은 디지털 수신장치상에 상호작용 서비스를 제공하는 방법 및 시스템에 관한 것으로, 상기 상호작용 서비스는 스크린상에 디스플레이될 수 있는 미디어 컨텐츠를 포함한다. 미디어 컨텐츠는 시청자의 스크린상에 시각화되는 씬(scene)들을 나타내는 서술 파일들에 의해 기술된다. 서술 파일은 씬이 스크린상에 어떻게 구성되는 지에 대한, 바람직하게는, 마크업 언어 컨텐츠 포맷의 정보를 포함한다. 씬은 적어도 그래픽 요소들을 구비한다. 추가로, 씬들은 배경(정지 이미지)과 비디오 컨텐츠를 구비할 수 있다. 비디오 컨텐츠는 애니메이션, 이미지 또는 동영상을 구비할 수 있고, 오디오 신호들과 조합될 수 있으나 반드시 그럴할 필요는 업다. 디지털 수신장치는 하드웨어와 소프트웨어를 포함하는 장치로서, 상기 장치는 상호작용 서비스를 수신하고 재생한다. 상호작용 서비스는 스크린, 예컨대 TV 스크린 및 PC 모니터상에 시각화된다. 바람직하기로, 상기 디지털 수신장치는 시청자의 스크린에 디스플레이되는 디지털 TV 신호를 또한 수신한다. 바람직하기로, 상기 디지털 수신장치는 시청자의 텔레비전에 동작가능하게 연결된 디지털 셋톱 박스(STB)이다.The present invention relates to a method and system for providing an interactive service on a digital receiver, wherein the interactive service includes media content that can be displayed on a screen. Media content is described by description files representing scenes that are visualized on the viewer's screen. The description file contains information, preferably in markup language content format, of how the scene is organized on the screen. The scene has at least graphical elements. In addition, the scenes may have a background (still image) and video content. Video content may have animation, images or video and may be combined with audio signals, but this is not necessary. A digital receiver is a device comprising hardware and software, which receives and plays an interaction service. Interactive services are visualized on screens such as TV screens and PC monitors. Preferably, the digital receiver also receives a digital TV signal displayed on the viewer's screen. Preferably, the digital receiver is a digital set top box (STB) operably connected to a viewer's television.

실제로, 상호작용 서비스는 디지털 수신장치에서 실행되는 소프트웨어 애플리케이션에 해당한다. 소프트웨어 애플리케이션은 클라이언트의 호출에 잇따라, 즉, 예컨대 사용자의 요청에 따라, 상기 디지털 수신장치에서 띄어질 수 있다. 애플리케이션은 인터넷 또는 방송 채널과 같은 원격 네트워크에 있을 수 있는 서버로부터 다운로드될 수 있다. 풀타입(pull-type) 서비스의 경우에서와 같이 사용자의 요청에 의해 호출되는 것 이외에, 애플리케이션은 푸쉬 모드(push mode)에서 띄어질 수 있다. 즉, 예컨대 새로운 컨텐츠가 이용될 수 있다는 사실로 인해, 서버가 정보를 전송하는 경우, 클라이언트가 자동적으로 애플리케이션을 띄운다. 대안으로, 애플리케이션은 이미 클라이언트에 있을 수 있고, 사용자에 의해 자동 시작되거나 작동될 수 있다. 본 발명은 수신장치 및 내재하는 애플리케이션에서 다운로드 및/또는 띄어질 수 있다.In practice, the interaction service corresponds to a software application running on a digital receiver. A software application may be launched at the digital receiver following a client's call, ie at the user's request. The application may be downloaded from a server that may be on a remote network such as the Internet or a broadcast channel. In addition to being invoked at the user's request, as in the case of a pull-type service, the application can be launched in push mode. That is, for example, due to the fact that new content is available, the client automatically launches the application when the server transmits the information. Alternatively, the application can already be on the client and can be started or run automatically by the user. The invention can be downloaded and / or floated in the receiving device and in the underlying application.

이하, 상호작용 서비스를 제공할 수 있는 소프트웨어 애플리케이션을 서비스 애플리케이션이라 한다.Hereinafter, a software application that can provide an interactive service is called a service application.

본 출원인은 상호작용 서비스를 제공하는 서비스 애플리케이션이 동적 서비스 로직을 포함하는 경우, 미디어 컨텐츠가 클라이언트 측에서 동적으로 발생될 수 있는 것을 알았다. 동적 서비스 로직은 서비스 애플리케이션 자체에 저장되거나 서버로부터 다운로드될 수 있는 데이터를 사용하여 동적 정보를 온-더-플라이로 발생할 능력을 제공하는 애플리케이션 로직이다. 동적 서비스 로직은 상황 의존형 컨텐츠의 런타임에서, 예컨대, 사용자의 요청에 잇따라 클라이언트측 생성을 담당하는 하나 이상의 비지니스 로직을 구비한다. 이 상황에서, 비지니스 로직은, 예컨대, 데이터를 변환하거나 편성하거나 상기 데이터를 다른 정보와 조합하기 위해 (몇몇) 사용자 데이터상에 논리연산을 수행하는 소프트웨어 기능공정의 구성요소이다. 비지니스 로직은 로직 매니저라고 하는 소프트웨어 구성요소에 의해 "띄어진다", 즉, 인스턴스화(instantiate)된다. 또한 상기 로직 매니저는 비지니스 로직에 의해 정의된 논리연산이 수행될 수 있는 사용자 데이터에 대한 접속을 비지니스 로직에 제공한다. 사용자 데이터상에 논리연산은 스크린상에 시각화되는 온-더-플라이 "새" 미디어 컨텐츠를 생성한다. 사용자 데이터는 스크립트 시각 표현을 생성하기 위해 처리되는 "미가공" 정보 컨텐츠를 포함한다.Applicant has found that if a service application providing an interactive service includes dynamic service logic, media content can be generated dynamically on the client side. Dynamic service logic is application logic that provides the ability to generate dynamic information on-the-fly using data that can be stored in the service application itself or downloaded from a server. Dynamic service logic includes one or more business logic that is responsible for client-side creation at runtime, such as in response to a user's request. In this situation, business logic is a component of a software functional process that, for example, performs a logical operation on (some) user data to transform or organize the data or combine the data with other information. Business logic is "turned off", i.e. instantiated, by a software component called a logic manager. The logic manager also provides the business logic with access to user data on which logical operations defined by the business logic can be performed. Logical operations on user data create on-the-fly "new" media content that is visualized on the screen. User data includes "raw" information content that is processed to generate script visual representations.

바람직하기로, 동적 서비스 로직은 자바 클래스 세트로서 정의된다. 자바 클래스는 클라이언트 플랫폼의 런타임 환경에서 인스턴스화될 수 있다. Preferably, the dynamic service logic is defined as a set of Java classes. Java classes can be instantiated in the runtime environment of the client platform.

디지털 수신장치는 서비스 로직을 실행할 수 있는 가상머신을 포함한다. 바람직하기로, 로직 매니저는 한 애플리케이션 이상에 공통인 클라이언트 플랫폼의 일부인 반면에 비지니스 로직은 서비스 로직의 애플리케이션 특정 구성요소이다. 비지니스 로직(들) 및 로직 매니저 모두는 서비스 애플리케이션에 구비된 동적 서비스 로직에 포함된다. The digital receiver includes a virtual machine capable of executing service logic. Preferably, the logic manager is part of a client platform that is common to more than one application, while business logic is an application specific component of the service logic. Both business logic (s) and logic managers are included in the dynamic service logic included in the service application.

상세한 설명으로 클라이언트/STB의 예를 사용하는 한편, 본 발명은 개인휴대정보단말기(PDA), 이동전화, 휴대용 개인용 컴퓨터 또는 텔레비전과 같은 동영상 디스플레이 장치로 전자신호를 송수신할 수 있는 임의의 다른 타입의 전자장치를 포함하는 모든 클라이언트 장치에 적용된다. 소프트웨어 애플리케이션이 이동전화상에 실행되는 경우, 디스플레이 장치는 상기 전화의 내장 디스플레이이거나 상기 이동전화가 연결될 수 있는 DVD 도킹 스테이션(docked station)일 수 있다.While using the example of a client / STB in the description, the present invention is directed to any other type of electronic signal capable of transmitting and receiving electronic signals to a video display device such as a personal digital assistant (PDA), mobile phone, portable personal computer or television. Applies to all client devices, including electronic devices. When the software application is run on a mobile phone, the display device may be the built-in display of the phone or a DVD docked station to which the mobile phone can be connected.

본 발명의 이점 중 하나는 STB에서 실행되는 애플리케이션이 상호작용성을 제공하는 동적 씬들을 국소적으로 생성할 수 있는 서비스 로직을 포함할 때 상호작용 서비스가 리턴 채널없이 STB에서 또한 재생될 수 있다는 것이다.One of the advantages of the present invention is that an interactive service can also be played in the STB without a return channel when the application running on the STB includes service logic that can locally create dynamic scenes that provide interactivity. .

본 발명에 따른 서비스 애플리케이션은 미가공 애플리케이션 데이터와 실행가능한 코드부를 구비한다. 실행가능한 코드부는 스크린상에 미디어 컨텐츠를 디스플레이 하는 제 1 실행가능 코드와 동적 서비스 로직에 포함된 제 2 실행가능 코드를 포함하고, 상기 제 2 실행가능 코드는 새로운 미디어 컨텐츠를 생성할 수 있다.The service application according to the invention comprises raw application data and executable code portion. The executable code portion includes first executable code for displaying media content on a screen and second executable code included in dynamic service logic, the second executable code generating new media content.

바람직하기로, 새로운 미디어 컨텐츠를 생성하도록 처리될 수 있는 미가공 정보 데이터는 멀티미디어 파일(예컨대, 동영상, 이미지 및 음악)을 포함하지 않는 데이터의 일부분, 즉, 사용자 데이터에 대해 적어도 HTML, WML 및 XML과 같은 마크업 언어를 사용하여 포맷된다. 보다 상세하게는, 상기 포맷 XML 표준을 사용하여 기술된다.Preferably, the raw information data that can be processed to create new media content is a portion of data that does not include multimedia files (eg, video, images, and music), i.e. at least HTML, WML, and XML for user data. Formatted using the same markup language. More specifically, it is described using the above format XML standard.

도 1은 본 발명의 실시예에 따라 스크린상에 디스플레이되는 미디어 컨텐츠를 수신하기 위한 디지털 수신장치에 제공되는 서비스 애플리케이션을 개략적으로 도시한 것이다.1 schematically illustrates a service application provided in a digital receiver for receiving media content displayed on a screen according to an embodiment of the present invention.

도 2는 클라이언트가 서비스 센터, 즉, 적어도 하나의 서버를 구비하고 특히 복수의 서버들의 분산형 시스템일 수 있는 소프트웨어 시스템의 백엔드에 직접 연결되는 본 발명의 제 2 실시예를 도시한 것이다. Figure 2 shows a second embodiment of the invention in which the client is directly connected to a service center, i. E. A back end of a software system which has at least one server and can in particular be a distributed system of a plurality of servers.

서비스 애플리케이션은 일반적으로 일련의 씬(scenes)을 포함한다. 씬은 스크린상에 미디어 컨텐츠의 "시각적" 구성이다. 다르게 말하면, 씬은 스크린 시청자에 의해 전달된 미디어 컨텐츠의 시각적 (그리고 소리의 경우 오디오가 미디어 컨텐츠에 포함됨) 인지이다. 씬은 상호작용 서비스가 적어도 부분적으로 방송된 프로그램과 중첩되는 경우에 디지털 TV 신호를 또한 포함할 수 있다. 미디어 컨텐츠는 배경(정지 사진), 비디오(동영상 또는 활동사진), 및 텍스트와 그래픽을 포함하는 그래픽 요소들을 포함할 수 있다. 그래픽 요소들은 요소, 선택되었을 때의 특성들, 또는 일반적으로 요소에 대한 동작의 선택을 가능하게 하는 기능들을 정의하는 그래픽 구성요소들로 표현된다.Service applications typically include a series of scenes. A scene is a "visual" composition of media content on a screen. In other words, the scene is visual perception of the media content delivered by the screen viewer (and in the case of sound audio is included in the media content). The scene may also include a digital TV signal when the interactive service overlaps with at least a partially broadcast program. Media content may include background elements (still photos), video (movies or active photos), and graphical elements including text and graphics. Graphical elements are represented by graphical elements that define an element, characteristics when selected, or functions that generally allow selection of an action on the element.

씬은 텍스트, 오디오, 비디오, 음악 파일과 같은 요소들의 집합으로서 표현될 수 있고, 각각 또는 이들 중 임의의 조합은 정지 및/또는 동작 이미지, 문자 및 음향 모두를 야기한다. 씬들은 정적일 수 있다. 즉, 씬들의 컨텐츠는 애플리케이션이 생성될 때 전체적으로 정의된다. 또는 씬들은 동적일 수 있다. 즉 씬들의 컨텐츠(의 일부)는 애플리케이션이 생성될 때 정의되지 않고 상황 의존적이다. 예컨대, 사용자의 요청 또는 데이터 업데이트에 따라 생성된다. 다르게 말하면, 동적 씬은 예컨대 STB의 런타임 환경에서 온-더-플라이로 생성되고 전달된다.The scene may be represented as a collection of elements such as text, audio, video, music files, each or any combination of which results in both still and / or motion images, text and sound. Scenes can be static. That is, the contents of the scenes are defined as a whole when the application is created. Or the scenes can be dynamic. That is, the contents of the scene (part of) are not defined when the application is created and are situation dependent. For example, it is generated according to a user's request or data update. In other words, the dynamic scene is created and delivered on-the-fly, for example in the runtime environment of the STB.

정적 씬들은 웹 브라우징과 하이퍼미디어 링킹(hypermedia linking)(즉, 하이퍼링킹(hyperlinking))과 유사한 기능을 갖는 네비게이션(navigation)동안 탐색될 수 있다. 씬을 통한 네비게이션과 관련되고 새로운 컨텐츠의 발생이 없는 씬 내부에 있는 기능들을 또한 로컬 상호작용성이라 하나, 이는 "저수준(low level)"의 상호작용성을 의미한다. Static scenes can be navigated during navigation with functionality similar to web browsing and hypermedia linking (ie, hyperlinking). Functions within the scene that are related to navigation through the scene and without the occurrence of new content are also referred to as local interactivity, which means "low level" interactivity.

서비스 애플리케이션은 주로 디지털 TV 신호와 동시에 전송되기 때문에, 그래픽 구성요소들은 반드시 필요한 것은 아니나 부분적으로 또는 완전히 디스플레이되는 TV 이미지 모두를 중첩할 수 있다. 예컨대, TV 신호는 씬에 포함된 윈도우내에 크기 변경되어 재생될 수 있다. 씬에 포함된 요소들의 예들로는 TV 스크린상에 스크롤될 수 있는 텍스트, 테스트가 삽입될 수 있는 필드, 상호 배제 옵션들의 선택가능한 메뉴, 및 URL(Uniform Resource Locator)이 포워드 링크로서 웹 페이지에 연결되는 그래픽 요소이다.Since the service application is primarily transmitted simultaneously with the digital TV signal, the graphical components may overlap all of the partially or completely displayed TV images, although this is not necessary. For example, the TV signal may be resized and reproduced in a window included in the scene. Examples of elements included in a scene include scrollable text on a TV screen, a field into which a test can be inserted, a selectable menu of mutual exclusion options, and a Uniform Resource Locator (URL) that links to a web page as a forward link. Graphic element.

소프트웨어 애플리케이션이 웹 애플리케이션인 특별한 경우, 씬들은 웹 페이지, 예컨대, 인터넷으로부터 전송된 HTML 또는 XHTML 데이터이다.In a special case where the software application is a web application, the scenes are HTML pages or HTML or XHTML data sent from the Internet.

소프트웨어 애플리케이션은 바람직하게는 자바로 실행되나 이는 반드시 그러 하지는 않다. 전반적인 시스템은 객체지향 프로그래밍 언어를 사용을 기초로 하여 개발된 소프트웨어임을 인식해야 한다. 적어도 멀티미디어 컨텐츠를 포함하지 않는 데이터인 애플리케이션 데이터는 바람직하게는 XML과 같은 마크업 언어를 사용하여 기술된다. Software applications preferably run in Java, but this is not necessarily the case. It should be recognized that the overall system is software developed on the basis of using an object-oriented programming language. Application data, which is at least data that does not contain multimedia content, is preferably described using a markup language such as XML.

도 1은 본 발명의 실시예에 따라 스크린상에 디스플레이되는 미디어 컨텐츠를 수신하기 위한 디지털 수신장치에 제공되는 서비스 애플리케이션(10)을 개략적으로 도시한 것이다. 예를 들면, 애플리케이션은 방송채널로부터 또는 방송 네트워크로부터 다운로드될 수 있다. 본 실시예에서, 서비스 애플리케이션(10)은 예컨대 TV-SCART 케이블에 의해 상호작용 서비스를 디스플레이하는 TV 스크린(3)에 연결되어 있는 STB에 띄워진다. 디지털 아날로그 변환기(도 1에 미도시됨)는 아날로그 TV 디스플레이 시스템의 경우 디지털 신호를 아날로그 신호로 변환하기 위해 STB의 컴퓨터 하드웨어와 TV 스크린 사이에 상호연결될 수 있다. 애플리케이션(10)은 애플리케이션 실행가능부(1), 미가공 애플리케이션 데이터(2) 및 서술 파일(description file)(18)을 포함하고, 상기 애플리케이션의 미가공 애플리케이션 데이터(2) 및 서술 파일(18)은 실행가능한 코드를 포함하지 않는 데이터를 포함한다. 상기 미가공 애플리케이션 데이터(2)는 특정 애플리케이션에 한정될 수 있다. 실행가능한 애플리케이션부(1)는 하기에서 '플랫폼' 또는 '클라이언트 플랫폼'이라고 하는 미들웨어 소프트웨어층을 구비하며, 실행가능한 프로그램, 즉, 문장분석기(Parser)(8), 애플리케이션 컨트롤러(16), 로직 매니저(14), 스크린 매니저(11) 및 그래픽 구성요소(9)와 멀티미디어(MM) 구성요소(15)를 포함하는 소프트웨어 모 듈들을 갖는다. 실행가능한 애플리케이션부(1)는 또한 비지니스 로직(Business Logic) 소프트웨어 모듈(12)이라고 하는 애플리케이션 특정 모듈을 포함한다. 플랫폼과 애플리케이션 특정 로직 유닛들 사이의 차이는 소프트웨어 개발자의 측에서 볼 때 선호되는 수단으로서만 이해되어야 하며, 제한적인 것으로 간주되지 않아야 한다.1 schematically illustrates a service application 10 provided in a digital receiving apparatus for receiving media content displayed on a screen according to an embodiment of the present invention. For example, the application may be downloaded from a broadcast channel or from a broadcast network. In this embodiment, the service application 10 is floated on the STB which is connected to the TV screen 3 displaying the interactive service, for example by a TV-SCART cable. A digital-to-analog converter (not shown in FIG. 1) may be interconnected between the STB's computer hardware and the TV screen to convert digital signals to analog signals in the case of analog TV display systems. The application 10 includes an application executable portion 1, raw application data 2 and a description file 18, the raw application data 2 and description file 18 of the application being executed. Contains data that does not contain possible code. The raw application data 2 may be limited to a particular application. The executable application unit 1 has a middleware software layer referred to below as a "platform" or "client platform", and is executable program, that is, a parser 8, an application controller 16, and a logic manager. 14, software modules including screen manager 11 and graphics component 9 and multimedia (MM) component 15. The executable application portion 1 also includes an application specific module called a business logic software module 12. Differences between platform and application specific logic units should only be understood as preferred means from the software developer's point of view and should not be regarded as limiting.

애플리케이션 실행가능부(1)는 제 1 및 제 2 실행가능 코드를 포함하며, 상기 제 1 실행가능 코드는 스크린 매니저(11)와 그래픽 구성요소(9)(및 바람직하게는 MM 구성요소(15))에 포함되고, 로직 매니저(14)와 비즈니스 로직(12)은 제 2 실행가능 코드를 포함한다. 바람직하게는, 애플리케이션 실행가능부는 문장분석기(8)와 애플리케이션 컨트롤러(16)를 포함한다.The application executable portion 1 comprises first and second executable code, which is the screen manager 11 and the graphics component 9 (and preferably the MM component 15). ), Logic manager 14 and business logic 12 include second executable code. Preferably, the application executable portion comprises a parser 8 and an application controller 16.

일부 애플리케이션은 하나 이상의 내부 데이터베이스를 형성할 필요가 있으며, 상기 데이터베이스에서 텍스트나 멀티미디어 중 하나인 미가공 데이터들이 애플리케이션의 실행가능부의 소프트웨어 모듈에 의해 읽어지고 이해될 수 있는 포맷에 저장되거나 상기 소프트웨어 모듈들에 의해 사용되는 적절한 방식으로 데이터를 편성할 수 있다. 도 1에 도시된 실시예에서, 애플리케이션(10)은 데이터베이스(DB)(13)를 포함한다. DB(13)가 애플리케이션(10)의 실행가능부(1)에서 도 1에 그림으로 도시되어 있으나, 실행가능 코드들을 포함하지 않은 것으로 이해되어야 한다.Some applications need to form one or more internal databases, in which raw data, either text or multimedia, are stored in a format that can be read and understood by the software module of the application's executable portion or stored in the software modules. The data can be organized in the appropriate manner used by the. In the embodiment shown in FIG. 1, the application 10 includes a database (DB) 13. Although the DB 13 is shown graphically in FIG. 1 in the executable portion 1 of the application 10, it should be understood that it does not contain executable code.

본 발명의 실시예에서, 플랫폼은 특정 애플리케이션에 고유하지 않을 수 있는 실행가능한 소프트웨어의 일부를 포함한다. 플랫폼은 예컨대 다른 상호작용 서 비스, 즉, STB에서 실행될 수 있는 다른 애플리케이션들을 생성하도록 애플리케이션 개발자에 의해 사용될 수 있다. 서비스 애플리케이션의 플랫폼은 MHP와 같이 일반적으로 STB에 있는 미들웨어층의 레벨보다 더 높은 레벨인 애플리케이션 레벨에 위치한 미들웨어층인 것으로 이해되어야 한다. 플랫폼은 STB내에 영구히 있을 수 있으나, 이는 STB내에 영구 저장능력이 충분히 큰 것을 의미한다. 제한된 하드웨어 자원을 갖는 STB의 경우, 플랫폼(및 실제로 서비스 애플리케이션)은 런타임(runtime)으로, 예컨대, STB의 휘발성 캐쉬 메모리에서 실행된다.In an embodiment of the invention, the platform includes a portion of executable software that may not be unique to a particular application. The platform can be used by the application developer, for example, to create other interactive services, ie other applications that can run on the STB. It should be understood that the platform of the service application is the middleware layer located at the application level, which is generally higher than the level of the middleware layer in the STB, such as the MHP. The platform may be permanently in the STB, but this means that the permanent storage capacity in the STB is large enough. In the case of an STB with limited hardware resources, the platform (and indeed the service application) runs at runtime, for example in volatile cache memory of the STB.

하기의 설명에서 명백해지는 바와 같이, 비지니스 로직(12)과 로직 매니저(14)는 상황 의존형 미디어 컨텐츠의 클라이언트 측에서 생성을 가능하게 하는 서비스 애플리케이션의 동적 서비스 로직에 포함되어 있다. As will be apparent from the description below, business logic 12 and logic manager 14 are included in the dynamic service logic of a service application that enables client-side generation of context-dependent media content.

실행가능한 코드는 실행가능한 프로그램(또는 실행가능한 프로그램의 일부)이며, 종종 일련의 명령어를 포함하는 파일로서 처리된다. 실행가능한 코드를 또한 메소드(methods)이라 한다. 바람직한 실시예에서, 애플리케이션의 실행가능한 코드(메소드)는 프로세서에 의해 이해되는 컴파일된 파일들(즉, 객체 코드)인 바이트 코드(byte code) 또는 p 코드와 같은 중간코드이다. 소프트웨어 애플리케이션(10)의 코드를 실행할 수 있도록 하기 위해, STB에 가상 머신이 제공되고, 상기 가상 머신은 코드를 실행하고 컴퓨터 플랫폼, 즉 애플리케이션 프로그램들이 실행될 수 있는 기본적인 컴퓨터 시스템과 최종 사용자가 소프트웨어를 동작시킬 수 있는 최종 사용자 간의 환경을 생성할 수 있는 소프트웨어의 일부이다. 특히, 가상 머신은 일반적인 중간코드를 하드웨어상에 이용가능한 코드로 번역하는 호스트 하드웨어 (예컨대, STB내에 있는 컴퓨터 하드웨어)상에 네이티브 코드(native code)로 작성된 프로그램이다. 바람직하기로, 가상머신 시스템은 자바 실행가능 애플리케이션들을 실행하는 자바가상머신(JVM)이다. 특히, JVM은 자바 클래스를 읽고 클래스 파일의 실행가능부를 실행한다.Executable code is an executable program (or part of an executable program) and is often treated as a file containing a series of instructions. Executable code is also called methods. In a preferred embodiment, the executable code (method) of the application is intermediate code, such as byte code or p code, which are compiled files (ie, object code) understood by the processor. In order to be able to execute the code of the software application 10, a virtual machine is provided in the STB, which executes the code and operates the software by a computer platform, that is, a basic computer system on which application programs can be executed, and the end user. It's the piece of software that can create an environment between end users that can make In particular, a virtual machine is a program written in native code on host hardware (eg, computer hardware in an STB) that translates general intermediate code into code available on hardware. Preferably, the virtual machine system is a Java virtual machine (JVM) that runs Java executable applications. In particular, the JVM reads Java classes and executes the executable part of the class file.

도 1에 도시된 실시예의 STB는 리턴 채널이 없다. 미가공 에플리케이션 데이터(2)는 사용자 데이터(7)와 멀티미디어 컨텐츠(17)를 포함하는 반면에, 서술 파일(18)은 구성 파일(4), 페이지(5)라고 하는 정적 씬들의 정의를 위한 서술 파일, 템플릿(6)이라고 하는 동적 씬들의 설명을 위한 템플릿 파일을 포함한다. 사용자 데이터(7)는 특정 목적지에 대한 주문형 스케쥴(on-demand schedule)을 제공하는 상호작용 서비스에 대한 애플리케이션에서 완전한 기차 시간표와 같이 최종 사용자에 전달되는 텍스트 정보를 나타낸다. 사용자 테이터는 텍스트를 시각화되게 생성하도록 정밀하게 구성되는 "미가공" 텍스트 정보 컨텐츠를 포함한다. 텍스트는 물론 심볼, 불렛(bullets) 또는 일반적으로 스크립트 시각표현에 포함되는 다른 필드를 포함할 수 있다.The STB of the embodiment shown in FIG. 1 has no return channel. The raw application data 2 includes user data 7 and multimedia content 17, while the description file 18 is a description file for the definition of static scenes called configuration files 4, pages 5. , A template file for describing dynamic scenes called a template 6. User data 7 represents textual information delivered to an end user, such as a complete train timetable, in an application for an interactive service that provides an on-demand schedule for a particular destination. User data includes "raw" text information content that is precisely configured to produce text visually. Text can of course include symbols, bullets, or other fields that are typically included in script visuals.

구성요소 멀티미디어 컨텐츠(17)는 씬의 형성을 위해 가능하게는 다른 그래픽 요소들과 함께 정밀하게 구성되지 않은 멀티미디어 파일들을 포함한다. 멀티미디어 파일들의 예는 배경사진, 아이콘, 애니메이션, 음향 또는 음악 피스(musical piece)이다. 멀티미디어 파일은 JPEG, GIF, PNG 및 MP3와 같이 다른 포맷들로 있을 수 있다.Component multimedia content 17 includes multimedia files that are not precisely organized with other graphical elements, possibly for the formation of a scene. Examples of multimedia files are background photos, icons, animations, sounds or musical pieces. Multimedia files may be in other formats such as JPEG, GIF, PNG, and MP3.

서술 파일(18)은 스크린상에 시각화되는 씬들을 나타낸다. 하기에서 더 명백 해지는 바와 같이, 상호작용 서비스의 경우, 기술 파일, 즉, 템플릿 파일(6)들 중 일부는 몇몇 특정 애플리케이션 데이터를 기초로 한 새로운 미디어 컨텐츠의 생성을 가능하게 하는 프로그램(즉, 실행가능한 코드)로의 연결(들)을 포함한다. 다르게 말하면, 템플릿 파일들은 전체 씬의 설명을 포함하지 않는데, 이는 씬의 일부, 예컨대, 정보 컨텐츠가 여전히 생성될 수 있기 때문이다.The description file 18 shows the scenes visualized on the screen. As will become more apparent below, in the case of an interactive service, a description file, i.e., some of the template files 6, is a program (i.e., executable) that allows the creation of new media content based on some specific application data. Possible code). In other words, the template files do not contain a description of the entire scene, because part of the scene, for example information content, may still be generated.

구성 파일(4)은 애플리케이션의 시작 단계에서 사용되고, 예컨대, 배경, 로고, 메뉴 옵션을 위한 꼬리말(footer)의 배치 또는 TV 스크린상에 꼬리말의 위치 및 크기를 정의하기 위해 애플리케이션의 모든 씬들에 공통인 그래픽 구성요소(9)와 멀티미디어(MM) 구성요소(15)의 초기화에 대한 정보를 포함한다.The configuration file 4 is used at the start of the application and is common to all scenes of the application, e.g. to define the placement of footers for backgrounds, logos, menu options or the location and size of the footers on the TV screen. It contains information about the initialization of the graphics component 9 and the multimedia (MM) component 15.

페이지(5)는 정적 씬(예컨대, 정보성 웹 페이지)을 기술하는데 사용되는 서술 파일 세트를 포함하며, 상기 컨텐츠는 예컨대 개발 단계에서 서비스 개발자에 의해 애플리케이션이 생성될 때 확립된다. 서술 파일들은 런타임에서 변경되지 않는다. 서술 파일들은 씬이 TV 스크린상에서 어떻게 나타나고 로컬 상호작용성, 예컨대, 브라우징이 어떻게 처리되어야 하는 지에 대한 완전한 설명을 포함한다. 서술 파일은 그래픽 구성요소(9)에서 메소드를 호출한다. 그래픽 구성요소는 예컨대 컨텐츠와 그들의 관계에 대한 포맷과 위치를 정의한다(예컨대, 컨텐츠는 포커스가 어디에 있는지에 따르고, 컨텐츠는 또 다른 컨텐츠가 디스플레이되기 위해 완료된 후에 나타난다). 특히, 서술 파일이 XML 포맷인 경우, 서술 파일은 XML 태그를 포함하고, 각 태그는 특정 그래픽 구성요소를 가리킨다; 상기 태그와 관련된 속성은 상기 그래픽 구성요소의 메소드(들)에 해당한다. 메소드는 스크린 매니저(11)에 의 해 호출된다. 자바에서, 그래픽 구성요소는 클래스로 나타내지고 XML 태그의 속성들은 그래픽 구성요소에서 클래스의 클래스명을 포함한다. 태그 속성은 클래스와 관련된 메소드에 해당하고, 스크린 매니저는 런타임 객체를 생성함으로써 상기 클래스를 인스턴스화한다. 이들 XML 태그를 "서술형" XML 태그라 할 수 있는데, 왜냐하면 이들 태그는, 하기에 상세히 설명되는 바와 같이, 진보된 상호작용 특성을 실행하는데 사용되는 템플릿에 포함된 "인보크(invoke)" 태그(또는 "사용자 데이터" 태그)와 혼동되지 않도록 어떻게 컨텐츠가 씬에 나타내져야 하는 지를 설명하는데 사용되기 때문이다. 정적 씬의 경우, 서술형 태그만이 사용되고 지원된 "상호작용성"만이 예컨대 씬들내에 그리고 씬들을 통해 네비게이션을 인에이블하는 하이퍼링크이다.Page 5 includes a set of description files used to describe a static scene (eg, an informational web page), the content being established when the application is created, for example, by the service developer in the development phase. Description files are not changed at runtime. The description files contain a complete description of how the scene appears on the TV screen and how local interactivity, such as browsing, should be handled. The description file calls a method on the graphical component 9. Graphical components define, for example, the format and position for the content and their relationship (eg, the content depends on where the focus is, and the content appears after another content is complete for display). In particular, when the description file is in XML format, the description file contains XML tags, each tag pointing to a particular graphical component; Attributes associated with the tag correspond to the method (s) of the graphical component. The method is called by the screen manager 11. In Java, a graphical component is represented by a class and the attributes of the XML tag contain the class name of the class in the graphical component. The tag attribute corresponds to the method associated with the class, and the screen manager instantiates the class by creating a runtime object. These XML tags can be referred to as "descriptive" XML tags, because these tags are included in the "invoke" tag (which is included in the template used to implement advanced interaction features, as detailed below). Or "user data" tags) to explain how content should appear in the scene. For static scenes, only descriptive tags are used and the only supported "interactivity" is a hyperlink that enables navigation, for example, within and through the scenes.

모듈(6) 템플릿은 동적 컨텐츠, 즉, 상황 의존형인 '온-더-플라이'로 생성된 컨텐츠의 경우에 사용된다. 구성요소 템플릿은 적어도 하나의 템플릿 파일을 포함하고, 일반적으로 템플릿 파일의 집합을 포함한다. 템플릿 파일은 서술 파일과 유사하게 생각될 구 있으나, 아래에 더 상세히 설명되는 바와 같이, 동적 정보를 형성하는 동적 서비스 애플리케이션 로직의 로직 요소들로의 링크(들)을 포함함으로써 동적 정보의 생성을 지원한다. 특히, 동적 씬의 경우, 상기 씬에 대한 템플릿 파일은 마크업 언어, 바람직하게는 XML로 기술되며 동적 서비스 로직에 메소드를 호출하는 동작에 대한 로직 링크인 "인보크(invoke)" 태크를 포함한다. 동적 서비스 로직은 애플리케이션(10)의 실행가능부(1)에 포함되고 로직 매니저(14)와 비즈니스 로직 구성요소(12)를 포함한다. 특히, 인보크 태그는 비지니스 로직 유닛(12) 에서 특정 (즉, 태그내에 특정된) 비지니스 로직내에 포함되는 프로그램의 실행을 로직 매니저(14)에 요청한다. 다르게 말하면, 인보크 태그는 소정의 사용자 데이터에 대해 특정 논리연산을 수행하는 비지니스 로직의 인스턴스 생성을 요청한다. 비지니스 로직은 클라이언트 플랫폼의 다른 부분들과 비지니스 로직 사이에 로직 인터페이스의 일종으로서 동작하는 로직 매니저에 의해 인스턴스화된다. 로직 매니저는 비지니스 로직의 실행 요청 플로우를 제어하고 실행으로 인한 출력 파일을 수신하며, 이에 따라 출력 파일의 플로우를 제어한다. 로직 매니저는 비지니스 로직에서 프로그램들내 메소드들을 호출함으로써 비지니스 로직을 인스턴스화하고, 논리연산이 수행될 필요가 있는 데이터를 제공하며, 상기 논리연산의 결과, 즉, 비지니스 로직의 출력을 수집한다. 특히, 인스터화되는 경우, 비지니스 로직은, 예컨대, DB(13) 또는 DB의 특정부로의 데이터 포인터(즉, 작용 링크)에 의해 상기 컨텐츠에 접속을 제공하는 로직 매니저에 의해 컨텐츠를 수신한다.The module 6 template is used in the case of dynamic content, i.e., content generated with 'on-the-fly' context dependent. The component template includes at least one template file and generally includes a set of template files. The template file may be thought of as a description file, but supports the generation of dynamic information by including link (s) to the logic elements of the dynamic service application logic that form the dynamic information, as described in more detail below. do. In particular, for dynamic scenes, the template file for the scene is described in a markup language, preferably XML, and includes an "invoke" tag, which is a logical link to the operation of invoking a method in the dynamic service logic. . Dynamic service logic is included in the executable portion 1 of the application 10 and includes a logic manager 14 and a business logic component 12. In particular, the invoke tag requests the logic manager 14 to execute a program included in the specific (ie, specified in the tag) business logic in the business logic unit 12. In other words, an Invoke tag requests the creation of an instance of business logic that performs a particular logical operation on certain user data. Business logic is instantiated by a logic manager that acts as a kind of logic interface between other parts of the client platform and the business logic. The logic manager controls the execution request flow of the business logic and receives the output file resulting from the execution, thereby controlling the flow of the output file. The logic manager instantiates the business logic by calling methods in the programs in the business logic, provides the data for which the logic operation needs to be performed, and collects the results of the logic operation, ie the output of the business logic. In particular, when instantiated, the business logic receives the content by a logic manager that provides access to the content, for example, by a DB 13 or a data pointer (i.e., an action link) to a particular portion of the DB.

바람직하기로, 비지니스 로직이 플랫폼 외부에 있는 반면에 로직 매니저는 상기 플랫폼에 포함된다. 이는 왜내하면 비지니스 로직이 특정 서비스 애플리케이션에 고유한 비지니스 로직을 포함할 수 있어 플랫폼이 하나 이상의 애플리케이션에 공통인 프로그램을 포함할 수 있기 때문이다.Preferably, business logic is outside the platform while a logic manager is included in the platform. This is because business logic can contain business logic that is specific to a particular service application, so that the platform can contain programs that are common to one or more applications.

바람직하기로, 애플리케이션 데이터는 서술 파일(18) 및 사용자 데이터(7)(즉, 이미지 또는 음향 제외)의 일반적인 컨텐츠 포맷으로서 XML을 사용한다. 이는 이종의 소스들로부터 컨텐츠를 통합하는 이점을 갖는다. 또한, 메세지 지향식 접근은 메세지의 크기가 비교적 작기 때문에, 예컨대 상호작용 TV(예컨대, DVB- HTML)에 대한 HTML 파일들의 크기보다 더 작기 때문에, GPRS, 인터넷 또는 방송채널를 통한 정보의 전송에 적합하다. 따라서, 구성 파일(4), 페이지(5), 템플릿(6) 및 사용자 데이터(7)는 바람직하게는 XML 포맷이다. 멀티미디어 컨텐츠(17)는 예컨대, 사진, 음악, 비디오 클립을 포함하는 멀티미디어 파일을 포함하고, 이는 MPEG, JPEG, MP2 등과 같이 다른 포맷들로 표현될 수 있다.Preferably, the application data uses XML as the general content format of the description file 18 and the user data 7 (ie no image or sound). This has the advantage of integrating content from disparate sources. In addition, the message-oriented approach is suitable for the transmission of information over GPRS, the Internet, or broadcast channels, since the size of the message is relatively small, for example smaller than the size of HTML files for interactive TV (eg DVB-HTML). . Thus, the configuration file 4, page 5, template 6 and user data 7 are preferably in XML format. The multimedia content 17 includes, for example, a multimedia file including photos, music, video clips, which may be represented in other formats such as MPEG, JPEG, MP2, and the like.

문장분석기(8)는 일반적 용어로 소정의 형식문법, 즉, 형식언어(formal language)의 설명에 대해 입력 파일의 문법구조를 분석하는 컴퓨터 프로그램 또는 프로그램의 구성요소이며, 이 공정은 문장분석(parsing)으로 알려져 있다. 마크업 언어기반, 예컨대, XML 기반의 구조에서, 문장분석기는 프로그램으로서, 예컨대, 마크업 언어로 파일을 읽을 수 있는, 자바 소프트웨어의 일부이다. 그런 후, 문장분석기는 입력 문서를 (예컨대, XML 태그 및 태그의 일부내에) 빌딩 블록으로 분해한다. 즉, 입력 문서를 문장분석하여 다른 프로그램들에 의해 처리될 수 있게 된다. 특히, 문장분석기(8)는 구성파일(4), 페이지(5), 템플릿(6) 및 사용자 데이터(7)를 형성하는 XML 파일을 읽고 상기 파일들을 애플리케이션 컨트롤러(16)에 "옮긴다".The sentence parser 8 is a computer program or a component of a program that analyzes the grammatical structure of an input file with respect to a description of a predetermined formal grammar, that is, a formal language in general terms, and the process is parsing. Is known as In markup language-based, e.g., XML-based structures, the parser is part of Java software that can read files in a program, for example, in a markup language. The parser then breaks up the input document into building blocks (eg, within XML tags and parts of the tags). In other words, the input document can be parsed and processed by other programs. In particular, the parser 8 reads the XML files that form the configuration file 4, the page 5, the template 6, and the user data 7 and “moves” the files to the application controller 16.

애플리케이션 컨트롤러(16)는 수행되는 동작이 각각 정적 정보 또는 동적 정보의 상세화(elaboration)인지에 따라 명령어, 예컨대, XML 태그를 스크린 매니저(11)나 또는 로직 매니저(14) 중 하나에 전송하는 컴퓨터 프로그램(또는 컴퓨터 프로그램의 일부)이다. 애플리케이션 컨트롤러는 미가공 애플리케이션 데이터와 서술 파일들로부터 발생한 (문장분석된) 정보에 대한 일종의 로지컬 코디네이 터(logical coordinator)로서 기능을 한다. 더욱이, 애플리케이션 컨트롤러는 사용자 상호작용에 의해 트리거된 이벤트에 해당하는 스크린 매니저로부터의 요청을 수신한다.The application controller 16 may transmit a command, for example, an XML tag, to the screen manager 11 or the logic manager 14, depending on whether the operation being performed is static information or elaboration of dynamic information, respectively. (Or part of a computer program). The application controller acts as a kind of logical coordinator for (parsed) information from raw application data and description files. Moreover, the application controller receives a request from the screen manager corresponding to the event triggered by the user interaction.

각각의 논리적 기능들을 분리하기 위해 2개의 식별되는 소프트웨어 모듈들로서 도 1에 도시되어 있으나, 문장분석기와 애플리케이션 컨트롤러는 단일 실행 프로그램일 수 있다. 예컨대, 동일한 자바 클래스의 다른 메소드일 수 있다. Although shown in FIG. 1 as two identified software modules to separate respective logical functions, the parser and application controller may be a single executable program. For example, it may be another method of the same Java class.

스크린 매니저(11)는 그래픽 구성요소(9)의 구성 및 관리와 관련한 애플리케이션 컨트롤러(16)로부터 입력을 수신한다. 이들 입력은 서술 파일(18)에 포함된다. 특히, 그래픽 구성요소, 속성(예컨대, 크기, 위치, 색깔, 및 텍스트 포맷팅) 및 반응(예컨대 포커스(focus)를 갖는 경우 색깔의 변화)에 대한 정보를 수신한다. 다르게 말하면, 스크린 매니저(11)는 그래픽 구성요소(9)를 관리하고 이미지 렌더링(rendering) 및 TV 스크린상에 포커스 관리를 맡고 있다. 더욱이, 스크린 매니저는 사용자의 동작을 애플리케이션 컨트롤러로의 요청으로 변환시킨다.The screen manager 11 receives input from the application controller 16 relating to the configuration and management of the graphical component 9. These inputs are included in the description file 18. In particular, it receives information about graphical components, attributes (e.g., size, position, color, and text formatting) and response (e.g., change in color when having focus). In other words, the screen manager 11 manages the graphics component 9 and is responsible for image rendering and focus management on the TV screen. Moreover, the screen manager translates the user's actions into a request to the application controller.

그래픽 구성요소(9)는 하나 이상의 서비스 애플리케이션(예컨대, 콤보 박스, 스크롤링 리스트)에 공통이거나 특정 애플리케이션(예컨대, 로고, 배경 및 가상 키보드)에 고유할 수 있는 그래픽 라이브러리를 나타낸다. 그래픽 구성요소의 예로는 콤보 박스(combo box) 또는 라디오 버튼(radio button)이다. 자바에서, 그래픽 구성요소는 저수준 드로잉 및 상호작용 루틴에 추상층을 제공하는 종종 위젯(widget)또는 컨트롤(control)이라고 하는 그래픽 사용자 인터페이스(GUI)에 편성된다. 따라서, GUI는 TV 스크린상에 그래픽/위젯을 이끌어내고 리모트 컨트롤에 의해 사용 자로부터 정보를 입력하게 하는 기능을 포함한다. 보다 일반적으로, GUI 및 일반적으로 그래픽 구성요소들은 사용자와 애플리케이션의 내부 작업 사이를 중재하는 씬들의 요소들에 의해 표현된 소프트웨어 툴들이다. 그래픽 구성요소들은 리모트 컨트롤과 같은 사용자 인터페이스를 통해 적어도 부분적으로 사용자에게 선택될 수 있다. 이 경우, 사용자 상호작용(예컨대, 메뉴의 순환과 포커스된 요소들을 하이라이트하는 방법)과 관련된 동작을 각 그래픽 구성요소에 대해 정의할 수 있다.The graphic component 9 represents a graphic library that may be common to one or more service applications (eg combo boxes, scrolling lists) or may be unique to particular applications (eg logos, backgrounds and virtual keyboards). Examples of graphical components are combo boxes or radio buttons. In Java, graphical components are organized in graphical user interfaces (GUIs), often called widgets or controls, that provide an abstraction layer for low-level drawing and interaction routines. Thus, the GUI includes the ability to draw graphics / widgets on the TV screen and to enter information from the user by the remote control. More generally, GUI and generally graphical components are software tools represented by elements of the scenes that mediate between the user and the internal work of the application. The graphical components may be selected at least in part by the user via a user interface such as a remote control. In this case, an action related to user interaction (eg, how to highlight a cycle of a menu and the focused elements) can be defined for each graphical element.

로직 매니저(14)는 비지니스 로직을 처리하는 프로그램이다. 도 1의 도면에서, 비지니스 로직은 소프트웨어 모듈 비지니스 로직(12)내에 포함된다. 비지니스 로직은 사용자 동작을 기초로 한 동적 컨텐츠의 생성(예컨대, 요청된 데이터의 추출, 새로운 정보, 데이터 순서화 등을 생성하기 위한 데이터의 조합)과 같은 진보된 상호작용 특성을 실행하는데 사용된다. 로직 매니저의 활동의 일부는 특정 비지니스 로직과 그 메소드의 실행에 연관된 객체의 인스턴스 생성을 요청하는 로직 링크(예컨대, 태그)를 로직 매니저로 전달하는 애플리케이션 컨트롤러(16)에 의해 제어된다. 자바 실행에서, 비지니스 로직은 로직 매니저에 의해 인스턴스화되고 또한 자바 클래스에 의해 표현되는 하나 이상의 자바 클래스(일반적으로 하나)이다. 비지니스 로직과 메소드(들)이 실행되게 하는 클래스 모두는 인보크 태크의 속성으로서 특정된다. 비지니스 로직과 관련된 클래스는 로직 매니저에 의해 특정되는(제공되는) 사용자 데이터(7)로부터 취해지는 몇몇 특정 컨텐츠에 대해 인스턴스화된다. 바람직하기로, 서비스 애플리케이션은 자바로 실행되고 실행가능한 서비스 애플리케이션의 소프트웨어 모듈들은 자바 클래스의 세트로서 정의된다. 자바에서, 로직 매니저의 활동은 클래스명이 주어진 객체를 인스턴스화시키고 메소드명이 주어진 정적 및 인스턴트 메소드를 호출하며 하나 이상의 API를 실행하는 클래스를 런타임으로 생성하는 리플렉션(Reflection)이라고 하는 자바 기술을 기초로 한다. 클래스명은 비지니스 로직에 포함되는 이름들이다. 템플릿내 인보트 태그에 따라, 애플리케이션 컨트롤러는 로직 매니저가 비지니스 로직의 클래스에 해당하는 하나 이상의 객체를 인스턴스화하고 그 메소드들을 호출하게 요청한다.The logic manager 14 is a program that processes business logic. In the diagram of FIG. 1, business logic is contained within software module business logic 12. Business logic is used to implement advanced interactive features such as the generation of dynamic content based on user actions (eg, a combination of data to generate requested data, new information, data ordering, etc.). Part of the logic manager's activity is controlled by the application controller 16, which passes a logic link (e.g., a tag) to the logic manager that requests instantiation of the object associated with the execution of the particular business logic and its methods. In Java execution, business logic is one or more Java classes (typically one) that are instantiated by a logic manager and also represented by a Java class. Both the business logic and the class that causes the method (s) to execute are specified as attributes of the invoke tag. The class associated with the business logic is instantiated for some specific content taken from the user data 7 specified (provided) by the logic manager. Preferably, the service application runs in Java and the software modules of the executable service application are defined as a set of Java classes. In Java, the logic manager's activities are based on a Java technology called reflection, which instantiates an object given a class name, calls static and instant methods given a method name, and creates a runtime class that executes one or more APIs. Class names are names that are included in business logic. According to the invop tag in the template, the application controller requests the logic manager to instantiate one or more objects corresponding to the class of business logic and call its methods.

비지니스 로직(12)에 해당하는 객체는 로직 매니저에 의해 특정되는 데이터 소스로 인스턴스화된다. 데이터는 서비스 애플리케이션이 코드를 작성하여 문장분석기(8) 및 애플리케이션 컨트롤러(16)에 의해 코드와 인터페이스하게 하는 경우, 예컨대, 룩업 테이블, 예를 들면 XML 룩업 테이블, 또는 데이터베이스(도 1에서 DB(13))로부터 취해진다. 따라서, 외부 데이터 소스는 사용자 데이터(7)(또는 사용자 데이터의 일부) 또는 사용자 데이터로부터 추출된 데이터를 포함하는 룩업 테이블 또는 데이터베이스 중 하나이며, 상기 추출된 데이터는 필요하다면 적절한 데이터 구조로 문장분석된다.The object corresponding to business logic 12 is instantiated with the data source specified by the logic manager. The data may be generated when the service application writes code to interface with the code by the parser 8 and the application controller 16, for example, a lookup table, for example an XML lookup table, or a database (DB 13 in FIG. 1). Taken from)). Thus, the external data source is either a user data 7 (or a portion of the user data) or a lookup table or database containing data extracted from the user data, which is then parsed into an appropriate data structure if necessary. .

특히, 데이터베이스(DB)(13)는 비지니스 로직에 의해 처리될 수 있는 적절한 구조로 사용자 데이터(7)를 저장하기 위해 로직 매니저(14)에 의해 생성된다. 다르게 말하면, 로직 매니저의 메소드는 문장분석기(8)로부터 문장분석된 사용자 데이터를 취하고 상기 데이터를 비지니스 로직에 의해 읽어질 수 있는 포맷 및 구조로 편성한다. 자바에서, 로직 매니저에서의 메소드는 문장분석된 사용자 데이터를 편성하여 종종 링크된 리스트들의 어레이로서 편성되는 해쉬테이블(hashtable)과 같 은 자바 구조를 구성한다. In particular, a database (DB) 13 is created by the logic manager 14 to store the user data 7 in a suitable structure that can be processed by the business logic. In other words, the logic manager's methods take the parsed user data from the parser 8 and organize the data into a format and structure that can be read by business logic. In Java, methods in the logic manager organize the parsed user data to form a Java structure, such as a hashtable, often organized as an array of linked lists.

바람직한 실시예에서, 비지니스 로직의 인스턴스 생성과 함께 사용되는 사용자 데이터(의 일부)는 구성(4) 또는 템플릿(6) 중 하나에 포함될 수 있는 "사용자-데이터" 태그에 의해 정의된다. 사용자 데이터 태그를 읽을 때, 애플리케이션 컨트롤러는 태그를 로직 매니저로 전달한다. 로직 매니저내에 메소드는 사용자 데이터 태그의 속성들에 정의된 데이터(의 일부)를 취하여 DB(13)내에 데이터 포인터에 의해 기술되는 데이터 구조를 생성한다. 이 데이터 포인터는 비지니스 로직의 인스턴스 생성이 요청되는 경우 인보크 태그에 의해 호출되는 비지니스 로직으로 로직 매니저에 의해 제공되어 진다.In a preferred embodiment, the user data (part of) used with instantiation of business logic is defined by a "user-data" tag that can be included in either configuration 4 or template 6. When reading user data tags, the application controller passes the tags to the logic manager. The method in the logic manager takes the data (part of) defined in the attributes of the user data tag and creates a data structure described by the data pointer in the DB 13. This data pointer is provided by the logic manager to the business logic that is called by the Invoke tag when an instance of the business logic is requested.

애플리케이션이 STB에서 띄어지는 경우, 문장분석기(8)는 사용되는 공통 파일에 대한 정보, 예컨대 스타일시트(stylesheet) 및 폴링 데이터(polling data)를 제공하는 구성 파일(4)을 읽고, 시각화되는 제 1 씬으로의 링크를 포함한다. 제 1 씬이 정적인 경우, 링크는 페이지(5)에 있는 서술 파일이 된다. 제 1 씬이 동적인 경우, 링크는 템플릿(6)내 템플릿 파일이 된다. 바람직하기로, 구성, 페이지, 템플릿 및 사용자 데이터는 XML 파일이다. 따라서, 바람직하기로, 구성은 스크린상에 표현되는 제 1 씬을 식별하는데 사용되는 태그를 포함하는 XML 파일이다. 이 태그는 인덱스 페이지를 식별하기 위해 웹 애플리케이션에 사용되는 태그와 유사하다. 제 1 씬은 서술 파일(정적) 또는 템플릿 파일(동적) 중 어느 하나 일 수 있는 XML 파일에 의해 기술된다. 그런 후, 문장분석기는 서술 또는 템플릿 파일을 분석하기 시작하고 상기 파일의 문장분석된 정보를 애플리케이션 컨트롤러로 전달한다. 제 1 씬이 정적인지 또는 동적인지 여부에 따라, 애플리케이션 컨트롤러는 다른 로직 절차에 잇달아 상기 애플리케이션 데이터를 처리한다.When the application is launched in the STB, the parser 8 reads and visualizes a configuration file 4 that provides information about common files used, such as stylesheets and polling data. Contains a link to the scene. If the first scene is static, the link is a description file on page 5. If the first scene is dynamic, the link is a template file in template 6. Preferably, the configuration, page, template and user data are XML files. Thus, preferably, the configuration is an XML file containing tags used to identify the first scene represented on the screen. This tag is similar to the tag used in web applications to identify index pages. The first scene is described by an XML file, which can be either a description file (static) or a template file (dynamic). The parser then begins analyzing the description or template file and passes the parsed information of the file to the application controller. Depending on whether the first scene is static or dynamic, the application controller processes the application data following other logic procedures.

제 1 씬이 정적인 경우, 어떠한 외부(즉, 플랫폼에 대해 외부) 메소드들, 즉, 비지니스 로직들도 리콜(recall)되지 않는데, 왜냐하면, 어떠한 인보크 태그도 애플리케이션 컨트롤러에 의해 읽어들여지지 않기 때문이다. 애플리케이션 컨트롤러는 페이지(5)내 서술 파일로부터 문장분석된 데이터를 스크린 매니저로 전달하고, 상기 스크린 매니저는 상기 데이터를 이용하여 씬을 형성하고 관리한다. 문장분석된 데이터는 1)어떤 요소가 메뉴, 콤보 박스 및 크기 조정된 TV 신호를 디스플레이 하는 윈도우와 같은 씬내에 포함되어야 지; 2)크기, 위치 및 그래픽 특성(예컨대, 색깔, 폰트 타입, 크기 등)과 같은 디스플레이 요소들의 속성 및 3) 예컨대 사용자의 상호작용에 대한 결과로서 외부 입력에 있달아 요소가 시각적으로 어떻게 행동하는 지에 대한 정보를 포함하나 이에 국한되지 않는다. 요소의 행동은 상기 요소가 어떻게 씬에 포커스될 수 있는지, 다른 요소들에 의해 관찰될 수 있는지, 즉, 다른 객체들이 객체 상태를 "알" 수 있고 관찰된 객체의 상태(이 기능은 예컨대 DVB-자바로 정의된다)에 따라 그 상태를 변경할 수 있는지 여부를 포함할 수 있다. 문장분석된 데이터는 또한 요소들에 포함된 정적 텍스트(예컨대, 메뉴에 있는 항목) 또는 멀티미디어 컨텐츠 모듈(17)에 포함되는 멀티미디어 컨텐츠로의 URL을 포함할 수 있다. 마지막으로, 이들 데이터는 씬내에 네비게이션 경로와 같은 씬, 새로운 씬 또는 씬의 변경을 초래하는 이벤트로의 URL을 조정하는데 적합한 정보를 포함할 수 있으며, 상기 이벤트는 예컨대 키 또는 경과시간의 사용자 누 름(pressing)이다. 애플리케이션 컨트롤러는 평이한 텍스트를 통해 "서술 태그", 씬의 "요소들", 즉, 그래픽 구성요소들의 수단, 위치 및 특성을 인식한다. 그래픽 구성요소들의 수단은 씬상에 시각적 편성을 포함하는 씬의 구조를 포함하고, 상기 수단의 특성은 요소들의 반응, 즉, 요소가 어떻게 사용자의 상호작용을 따르는지를 포함한다. 씬의 수단의 반응 예는 색깔과 폰트 및 메뉴 옵션의 선택에 따른 윈도우의 팝업의 변화이다. XML에서, 반응은 서술(또는 템플릿) 파일에 포함된 서술 태그의 속성에 의해 식별된다. 정보가 그래픽 구성요소를 스크린 매니저로 전달된다.If the first scene is static, no external (i.e. external to platform) methods, i.e. business logic, are not recalled because no invoke tag is read by the application controller. . The application controller delivers the parsed data from the description file in page 5 to the screen manager, which uses the data to form and manage the scene. The parsed data includes 1) what elements should be included in the scene, such as menus, combo boxes, and windows displaying scaled TV signals; 2) the properties of display elements such as size, position and graphic characteristics (e.g. color, font type, size, etc.) and 3) how the element behaves visually in external input as a result of eg user interaction. Includes, but is not limited to. The behavior of an element is how the element can be focused in the scene, can be observed by other elements, that is, other objects can "know" the state of the object and the state of the observed object (this function is for example DVB- As defined in Java). The parsed data may also include static text (eg, items in a menu) contained in the elements or URLs to the multimedia content included in the multimedia content module 17. Finally, these data may contain information suitable for adjusting the URL to a scene in the scene, such as a navigation path, a new scene or an event that results in a change of the scene, such as a user press of a key or elapsed time. (pressing). The application controller recognizes, via plain text, the "description tag", the "elements" of the scene, ie the means, position and characteristics of the graphical components. The means of the graphical components include the structure of the scene, including the visual organization on the scene, and the characteristics of the means include the response of the elements, ie how the elements follow the user's interaction. An example of a scene's means of response is the change in the popup of the window according to the choice of color, font, and menu options. In XML, a response is identified by the attributes of a description tag contained in a description (or template) file. The information is passed to the screen manager on the graphical component.

씬의 컨텐츠에 대해, 멀티미디어 컨텐츠는 멀티미디어 파일들(예컨대, MPEG-1, JPEG, GIF, PNG, MP3)을 포함하는 17로부터 취해지는 반면에, 사용자 데이터 컨텐츠는 DB(13)로부터 취해진다. 씬을 형성하기 위해, 스크린 매니저(11)는 그래픽 및 (MM) 성분(9 및 15)에 메소드를 각각 호출한다. MHP 표준에서, 그래픽 구성요소들은 HAVI(Home-Audio-Video Interoperability) 또는 자바 AWT(Abstract Window Toolkit) API와 같은 그래픽 라이브러리들로부터 취해진다. MM 구성요소들(15)은 프로그램들, 예컨대, MP3 파일로부터 음악 피스의 재생과 같은 MM 파일의 실행을 가능하게 하는 자바 클래스를 포함한다. 따라서, MM 구성요소의 예로는 음악 플레이어이거나 비디오 플레이어이며 일반적으로 멀티미디어 플레이어이다.For the content of the scene, the multimedia content is taken from 17, which includes multimedia files (e.g., MPEG-1, JPEG, GIF, PNG, MP3), while the user data content is taken from the DB 13. To form the scene, the screen manager 11 calls methods on the graphics and (MM) components 9 and 15, respectively. In the MHP standard, graphics components are taken from graphics libraries such as Home-Audio-Video Interoperability (HAVI) or Java Abstract Window Toolkit (AWT) APIs. The MM components 15 include a Java class that enables the execution of MM files, such as programs, for example, playback of a piece of music from an MP3 file. Thus, examples of MM components are music players or video players and are generally multimedia players.

동적 컨텐츠, 예컨대, 사용자에 의해 눌러지는 소프트 키와 같은 몇몇 이벤트의 발생에 따른 항목 리스트를 포함하는 씬의 경우를 고려해 보자. 이 경우, 씬은 템플릿(6)에서 템플릿 파일에 의해 기술된다. 구조 및 이러한 파일의 컨텐츠 타입은 페이지(5)에 있는 서술 파일과 유사하나, 적어도 인보크 태그, 즉, 플랫폼 밖 에 있는 프로그램의 실행을 요청하는 태그를 포함한다. 애플리케이션 컨트롤러(16)는 템플릿 파일을 분석하는 한편 인보크 태그를 찾는 경우, 프로그램에 대한 정보를 로직 매니저(14)에 수행되게 전해진다. 인보크 태그는 이 실시예에서 플랫폼 외부에 있는 비지니스 로직(12)에서 하나 이상의 비지니스 로직이 발생된 이벤트에 대한 온-더-플라이 미디어 컨텐츠를 생성하기 위해 인보크되어야 한다. 다르게 말하면, 디스플레이되는 컨텐츠는 외부 이벤트에 따라 하나 이상의 비지니스 로직에 의해 런타임으로 생성되어야 필요가 있다.Consider the case of a scene that contains a list of items following the occurrence of some event, such as dynamic content, for example a soft key pressed by the user. In this case, the scene is described by a template file in template 6. The structure and content types of these files are similar to the description files on page 5, but include at least an Invoke tag, i.e., a tag that requests execution of a program outside of the platform. When the application controller 16 analyzes the template file and finds the invoke tag, information about the program is transmitted to the logic manager 14. Invoke tags must be invoked in this embodiment to generate on-the-fly media content for events in which one or more business logic has occurred in business logic 12 external to the platform. In other words, the displayed content needs to be generated at runtime by one or more business logic in response to external events.

문장분석 과정은 인보크 태그가 문장분석기(8)에 의해 마주칠 때까지 정적 씬들에 대해 기술되는 과정과 유사하다. 애플리케이션 컨트롤러(16)는 인보크 태그를 검출하고 관련된 메소드들을 인식한다. 자바 수단에서, 애플리케이션 컨트롤러는 인보크 태그와 연관된 클래스 및 메소드가 비지니스 로직(12)의 클래스에 적합한 것을 인식한다. 이 클래스(또는 일반적으로 실행가능한 코드)는 동적 컨텐츠를 생성하는데 사용되는 비지니스 로직의 수단이다. 애플리케이션 컨트롤러가 리콜된 클래스를 인식한 경우, (인보크 태그에 요청을 전달함으로써) 로직 매니저(14)가 상기 리콜된 비지니스 로직(12)을 실행함으로써 상기 클래스를 인스턴스화하게 "요청한다". 로직 매니저는 상기 리콜된 비지니스 로직에서 특정 메소드를 트리거한다.The sentence analysis process is similar to the process described for static scenes until the Invoke tag is encountered by the parser 8. The application controller 16 detects the invoke tag and recognizes related methods. In Java means, the application controller recognizes that the classes and methods associated with the invoke tag are appropriate for the class of business logic 12. This class (or generally executable code) is the means of business logic used to generate dynamic content. When the application controller recognizes the recalled class, the logic manager 14 "requests" to instantiate the class by executing the recalled business logic 12 (by passing a request to an invoke tag). The logic manager triggers a specific method on the recalled business logic.

상기 리콜된 비지니스 로직은 실시예 DB(13)에서 외부 데이터 소스를 갖는 로직 매니저에 의해 인스턴스화된다. 템플릿 파일은 인보크 태그 전에 애플리케이션 컨트롤러에 의해 검출되는 "사용자-데이터" 태그를 포함한다. 상기 사용자-데이 터 태그는 로직 매니저가 사용자 데이터(7)로부터 데이터를 추출하여 데이터 구조, 예컨대, 사용자 데이터(의 일부)로 데이터 포인터에 의해 기술되는 데이터베이스(DB)(13)를 생성하게 트리거한다.The recalled business logic is instantiated by a logic manager with an external data source in embodiment DB 13. The template file contains a "user-data" tag that is detected by the application controller before the invoke tag. The user-data tag triggers the logic manager to extract data from the user data 7 and create a database (DB) 13 described by the data pointer as a data structure, for example part of the user data. .

인보크 태그에 의해 요청된 비지니스 로직을 인스턴스화하는 경우 로직 매니저는 상기 비지니스 로직에 DB(13)로의 데이터 포인터를 제공한다.When instantiating business logic requested by an invoke tag, the logic manager provides the business logic with a data pointer to DB 13.

템플릿 파일에 포함되는 대신에, 사용자-데이터 태그는 구성 파일(4)에 들어있을 수 있다. 이 경우, 모든 필요한 데이터는 서비스 애플리케이션의 실행가능부에 "다운로드"된다. 즉, 서비스 애플리케이션이 띄워지는 경우 DB(13)에 적절한 포맷으로 변환된다. 그러나, 사용자-데이터 태그가 템플릿 XML 파일내에 있고 인보크 태그전에 검출될 수 있는 실시예가 바람직한데, 이는 리콜된 비지니스 로직과 연관된 데이터만이 나타나는 가벼운 DB의 생성을 가능하게 하기 때문이다. 바람직한 실시예에서, 매번 새 비지니스 로직이 실행되어야 할 필요가 있을 때마다 비지니스 로직만이 그때 실행되기 때문에, 상기 새 비지니스 로직에 연관된 데이터가 이전에 실행된 비지니스 로직의 데이터상에 중첩될 수 있다.Instead of being included in the template file, the user-data tag may be contained in the configuration file 4. In this case, all necessary data is "downloaded" into the executable portion of the service application. That is, when the service application is launched, it is converted into a format suitable for the DB 13. However, embodiments where the user-data tag is in the template XML file and can be detected before the invoke tag are preferred because it allows the creation of a lightweight DB where only data associated with the recalled business logic is present. In a preferred embodiment, since only business logic is then executed each time new business logic needs to be executed, the data associated with the new business logic can be superimposed on the data of previously executed business logic.

입력 데이터상의 논리연산의 결과, 비지니스 로직은 디스플레이되는 데이터(19)를 포함하는 XML 파일을 생성한다.As a result of the logical operation on the input data, the business logic generates an XML file containing the data 19 to be displayed.

XML 파일(19)은 로직 매니저(14)로 복귀되고, 차례로 상기 로직 매니저는 상기 파일을 문장분석기(8)로 보낸다. 문장분석기는 XML 파일(19)을 해석하고 그런 후 상기 문장분석된 파일을 애플리케이션 컨트롤러로 보내며, 상기 애플리케이션 컨트롤러는 (즉, 바로 온-더-플라이로 생성된) 이 "동적 정보"를 씬의 구성을 위해 스크린 매니저(11)로 보낸다. 스크린 매니저는 이 정보를 템플릿에 의해 특정된 씬내의 위치에, 예컨대, 메뉴내 특정 위치에 삽입하고, 그래픽 구성요소의 적절한 메소드를 인스턴스화함으로써 동적 컨텐츠를 포함하는 그래픽 객체를 생성한다. The XML file 19 is returned to the logic manager 14, which in turn sends the file to the parser 8. The parser parses the XML file 19 and then sends the parsed file to the application controller, which generates this dynamic information (ie, generated directly on-the-fly) in the scene. To the screen manager (11). The screen manager inserts this information at a location in the scene specified by the template, for example at a specific location in the menu, and creates a graphical object containing dynamic content by instantiating the appropriate method of the graphical component.

예컨대, 동적 정보는 외부 이벤트의 결과로서 생성되어야 할 필요가 있는 항목의 새로운 리스트, 예컨대, 기차 시간표의 적용을 위한 특정 목적지에 연결된 기차역 리스트일 수 있다. 애플리케이션 컨트롤러는 씬을 형성하기 위해 템플릿에 포함된 정보를 스크린 매니저로 전송한다. 애플리케이션 컨트롤러가 요청된 리스트에 연결된 인보크 태그를 읽는 경우, 항목 리스트가 템플릿 파일에 이용될 수 없으나 비지니스 로직에 의해 생성되어야만하는 것을 인식한다. 따라서, 애플리케이션 컨트롤러는 템플릿에 특정된 클래스의 메소드(들)을 호출함으로써 동적 컨텐츠를 생성하기 위한 요청을 로직 매니저로 전송한다. 예컨대, 메소드에 의해 유도된 동작은 "DB(13)로부터 취해진 데이터로부터 리스트를 생성하다"일 수 있다.(이 예에서, 데이터는 DB(13)에 이미 있는 것으로 가정된다). 리플렉션을 사용함으로써, 로직 매니저는 클래스를 인스턴스화하고 관련된 메소드(들)를 호출한다. 메소드에 의해 유도된 동작의 다른 예는 사용자에 의해 특정된 어떤 기준에 따라 DB(13)로부터 데이터의 필터링, 사용자에 의해 지정된 바와 같이 DB(13)로부터 취해진 몇몇 데이터의 병합 및 데이터의 프리젠테이션의 순서화와 구조화이다. 비지니스 로직은 새로운 리스트에 포함되는 항목들과 함께 XML 파일(19)을 로직 매니저로 되돌려 보낸다. 로직 매니저는 상기 파일(19)을 문장분석기로 보낸다. 문장분석된 파일에 포함된 이들 항목들은 스크린 매니저, 문장분석기 및 애플리케이션 컨트롤러에 제공된 다. 스크린 매니저는 템플릿에 의해 지시된 바와 같이 리스트 및 씬들의 리스트에 있는 항목들을 삽입한다.For example, the dynamic information may be a new list of items that need to be generated as a result of an external event, such as a train station list connected to a particular destination for the application of train timetables. The application controller sends the information contained in the template to the screen manager to form the scene. When the application controller reads the Invoke tag associated with the requested list, it recognizes that the item list cannot be used in the template file but must be generated by the business logic. Thus, the application controller sends a request to the logic manager to generate the dynamic content by calling the method (s) of the class specific to the template. For example, the action induced by the method may be "generate a list from data taken from DB 13". (In this example, data is assumed to already exist in DB 13). By using reflection, the logic manager instantiates the class and invokes the associated method (s). Another example of the action induced by a method is the filtering of data from DB 13 according to some criteria specified by the user, the merging of some data taken from DB 13 as specified by the user, and the presentation of the data. Ordering and structured. The business logic sends an XML file 19 back to the logic manager with the items included in the new list. The logic manager sends the file 19 to the parser. These items contained in the parsed file are provided to the screen manager, parser and application controller. The screen manager inserts the items in the list and the list of scenes as indicated by the template.

마지막으로, 상술한 방식으로 동적으로 형성된 씬이 TV 스크린(3)상에 나타나질 수 있다. 스크린 매니저 및 TV 스크린상의 렌더링에 의해 실행되는 씬 형성의 로직 처리는 정적 씬에 대해 앞서 기술된 공정과 동일할 수 있다.Finally, a scene dynamically formed in the manner described above can be shown on the TV screen 3. The logic processing of the scene formation executed by the screen manager and the rendering on the TV screen may be the same as the process described above for the static scene.

애플리케이션 컨트롤러가 인보크 태그를 읽을 경우 씬 형성을 "스탠 바이(stand by)"로 두고 상기 인보크 태그와 관련된 정보를 로직 매니저로 전송하는 것이 주목되어야 한다. 본 발명의 바람직한 실시예에 따르면, 런타임으로 인스턴화되는 자바 클래스들이 애플리케이션의 동적 서비스 로직, 즉, 로직 매니저 및 비지니스 로직을 실행한다. XML 인보크 태그들을 런타임 객체로의 인스턴스화, 즉, 리콜된 자바 클래스들의 실행은 상기 자바 클래스들의 메소드들이 호출되는 경우에만 객체들이 생성되는 것을 의미한다.It should be noted that when the application controller reads the invoke tag, it puts the scene formation "stand by" and sends information related to the invoke tag to the logic manager. According to a preferred embodiment of the present invention, Java classes instantiated at runtime execute the dynamic service logic of the application, namely logic manager and business logic. Instantiating XML invoke tags into a runtime object, ie, executing the recalled Java classes, means that the objects are created only when the methods of the Java classes are called.

바람직하기로, 서비스 애플리케이션에 필요한 그래픽 및/또는 MM 구성요소들만이 9 및/또는 15에 나타나는 반면에, 다른 그래픽 또는 MM 구성요소들은 필요한 경우에만 그리고 필요할 때만 런타임으로 다운로드될 수 있다.Preferably, only the graphics and / or MM components required for the service application appear in 9 and / or 15, while other graphics or MM components may be downloaded at runtime only when needed and only when needed.

제 1 페이지는 하이퍼링크와 유사한 기능을 가지며 또 다른 페이지에 지시될 수 있다. 대안으로, 또 다른 씬이 사용자의 요청 결과로 생성될 필요가 있다. 예컨대, 그래픽 구성요소 수단용의 하나 이상의 서술 태그들이 씬내에 포함된다. 스크린상에 그래픽 옵션의 사용자 선택에 잇달아, 상기 선택과 연관된 서술 태그의 속성은 페이지(5)내 서술 파일 또는 템플릿(6)내 템플릿 파일로의 URL이다. 템플릿 또는 서술 파일이 STB의 런타임시에 저장될 수 있다. 제 2 씬의 형성은 제 1 씬의 형성에 대해 동일한 로직 통로를 따르며, 정적 씬과 동적 씬 간에 동일한 식별을 갖는다. 따라서, 도 1에 대해 상기에서 상세히 기술된 설명은 씬, 즉, 제 1 씬의 형성에 대해 이루어져 있으나, 로직 공정은 (일반적으로, 애플리케이션의 초기화가 이미 수행되는 경우 구성(4)을 취하지 않고도) 본 발명의 실시예내의 서비스 애플리케이션을 형성하는 임의의 씬들의 형성에 대해 유지된다.The first page has a similar function to a hyperlink and can be directed to another page. Alternatively, another scene needs to be created as a result of the user's request. For example, one or more descriptive tags for graphical component means are included in the scene. Following the user selection of the graphical option on the screen, the attribute of the description tag associated with the selection is a URL to a description file in page 5 or a template file in template 6. The template or description file can be stored at runtime of the STB. The formation of the second scene follows the same logic path for the formation of the first scene and has the same identification between the static and dynamic scenes. Thus, while the description described above in detail with respect to FIG. 1 is directed to the formation of a scene, ie a first scene, the logic process (generally, without taking configuration 4 if the initialization of the application has already been performed). This is maintained for the formation of any scenes that form a service application within an embodiment of the invention.

도 2는 클라이언트가 서비스 센터, 즉, 적어도 하나의 서버를 구비하고 특히 복수의 서버들의 분산형 시스템일 수 있는 소프트웨어 시스템의 백엔드에 직접 연결되는 본 발명의 제 2 실시예를 도시한 것이다. 도 1에 도시된 요소들에 해당하는 서비스 애플리케이션(20)의 요소들에 동일한 참조번호가 주어지며, 상세한 설명은 생략한다. 이 실시예에서, STB에는 원격 통신 네트워크(24)를 클라이언트 호스팅 상작용 서비스 애플리케이션(20)과 연결하는 리턴 채널이 제공된다. 원격 네트워크(24)는 예컨대 IP, GPRS 또는 UMTS 네트워크일 수 있다. 리턴 채널은 유선 또는 무선 물리적 경로일 수 있다.Figure 2 shows a second embodiment of the invention in which the client is directly connected to a service center, i. E. A back end of a software system which has at least one server and can in particular be a distributed system of a plurality of servers. The same reference numerals are given to the elements of the service application 20 corresponding to the elements shown in FIG. 1, and a detailed description thereof will be omitted. In this embodiment, the STB is provided with a return channel that connects the telecommunications network 24 with the client hosted interaction service application 20. Remote network 24 may be, for example, an IP, GPRS or UMTS network. The return channel may be a wired or wireless physical path.

리턴 채널은 표준 클라이언트 서버 구조 또는 웹 서비스를 기초로 한 상호작용 서비스를 실행하는데 사용될 수 있다. 웹 서비스는 애플리케이션들 사이에 데이터를 교환하는데 사용되는 프로토콜 및 표준의 집합이다. 다양한 프로그래밍 언어로 작성되고 다양한 플랫폼상에 실행되는 소프트웨어 애플리케이션은 웹 서비스를 사용하여 통신 네트워크, 일반적으로 월드 와이드 웹(World Wide Web)을 통해 데이터를 교환하게 할 수 있다. 웹 서비스는 서비스 지향 구조적 접근을 반영하고 일반 적으로 단순 객체 접근 프로토콜(SOAP,Simple Object Access Protocol)과 같은 개방형 표준 XML 프로토콜을 사용하여 통신 네트워크를 통해 서로 통신하는 느슨하게 결합된 소프트웨어 구성요소이다. 서비스 제공자는 예컨대 XML 기반의 언어인 WSDL(Web Service Description Language)를 사용하여 제공된 특정 서비스의 구조를 기술할 수 있다. The return channel can be used to execute interaction services based on standard client server architecture or web services. Web services are a set of protocols and standards used to exchange data between applications. Software applications written in various programming languages and running on various platforms can use web services to exchange data over a communications network, typically the World Wide Web. Web services are loosely coupled software components that reflect a service-oriented architectural approach and typically communicate with each other over a communications network using open standard XML protocols such as the Simple Object Access Protocol (SOAP). A service provider can describe the structure of a particular service provided using, for example, Web Service Description Language (WSDL), an XML-based language.

도 2의 도면에서, 클라이언트/서버 시스템을 프론트엔드(front-end) 및 백엔드(back-end)로 분리한 발췌가 이용된다. 프론트엔드는 사용자로부터의 입력을 수집 및 처리하고 상기 입력을 적절한 포맷, 즉, HTTP, SOAP와 같은 서버(들)에 의해 지원되는 프로토콜로의 변환을 담당하는 서비스 센터의 일부이다. 백엔드(23)은 프론트엔드로부터 입력을 처리할 수 있는 서비스 센터의 일부이고 상기 출력을 프론트엔드에 제공한다. 클라이언트와 백엔드 사이의 인터페이스로서 프론트엔드의 기능을 알 수 있다. 프론트엔드는 일반적으로 본 발명에 따르면 서비스 측상에 호스트되는 반면에, 프론트엔드는 사용자의 예컨대 STB에서 실행되는 전제부에 위치되고, 동적 서비스 로직에 포함된다. 동적 서비스 로직으로 상술한 바와 같이, 상기 로직이 소프트웨어 구성요소 입력(26) 및 출력(27)을 포함하는 로직 매니저 및 비지니스 로직 구성요소(22)내 비지니스 로직에 도 2에 도시된 온-더-플라이 동적 정보를 생성하는 능력을 제공하는 것을 의미한다. In the diagram of FIG. 2, an excerpt of separating the client / server system into front-end and back-end is used. The frontend is part of a service center that is responsible for collecting and processing input from the user and converting the input into the appropriate format, i.e., protocols supported by server (s) such as HTTP, SOAP. The back end 23 is part of a service center capable of processing input from the front end and provides the output to the front end. You can see the functionality of the front end as an interface between the client and the back end. The front end is generally hosted on the service side according to the present invention, while the front end is located in the premise that runs on the user's eg STB and is included in the dynamic service logic. As described above with dynamic service logic, the logic is shown in FIG. Means providing the ability to generate fly dynamic information.

서비스 애플리케이션(20)은 STB로 실행된다. 예컨대, 백엔드(23)에서 STB로 다운로드된다. 템플릿(6) 및 페이지(5)는 STB의 런타임에서 나타나거나 리턴 채널을 통해 다운로드될 수 있다. 도 2의 실시예에서, 비지니스 로직(22)은 로직 매니 저(14)에 의해 클라이언트 플랫폼에 꽂아지는 입력 로직(26)과 출력 로직(27)을 구비한다. 애플리케이션(20)의 클라이언트 플랫폼은 로직 매니저(14) 이외에, 문장분석기(8), 애플리케이션 컨트롤러(16), 스크린 매니저(11), 및 리턴 채널(RC) 매니저(25)를 구비한다. RC 매니저(25)는 원격 네트워크와의 물리적 연결의 셋업 및 클리어 다운(clear down)을 맡고 있다. 예컨대, 리턴 채널이 PSTN에 연결된 전화선인 경우, RC 매니저는 전화번호의 다이얼링과 콜(call)이 오픈되거나 클로즈될 때 로직 매니저에 알리는 것을 담당한다. 클라이언트 플랫폼은 그래픽 및 MM 구성요소(9 및 15)를 각각 구비한다.The service application 20 runs with the STB. For example, it is downloaded to the STB at the back end 23. The template 6 and page 5 may appear at runtime of the STB or be downloaded via a return channel. In the embodiment of FIG. 2, business logic 22 has input logic 26 and output logic 27 that are plugged into the client platform by logic manager 14. The client platform of the application 20 includes, in addition to the logic manager 14, a parser 8, an application controller 16, a screen manager 11, and a return channel (RC) manager 25. The RC manager 25 is responsible for setting up and clearing down the physical connection with the remote network. For example, if the return channel is a telephone line connected to the PSTN, the RC manager is responsible for dialing the telephone number and notifying the logic manager when a call is opened or closed. The client platform has graphics and MM components 9 and 15, respectively.

서비스 애플리케이션은 특정 메세지를 서버에 보냄으로써 백엔드(23)(즉, 서버)에 서비스를 요청한다. 씬의 생성 및 관리는 제 1 실시예에 기술된 것과 유사하다. 제 1 실시예와의 주요 차이점 중 하나는 비지니스 로직에 연관된 데이터가 제 1 실시예에서와 같이 사용자 데이터(7) 또는 백엔드(23) 중 어느 하나로부터 "국소적으로" 취해질 수 있다는 것이다.The service application requests a service from the back end 23 (ie, server) by sending a specific message to the server. Creation and management of the scene is similar to that described in the first embodiment. One of the main differences from the first embodiment is that data associated with the business logic can be taken "locally" from either the user data 7 or the back end 23 as in the first embodiment.

이 실시예에서, 템플릿 파일은 2개의 비지니스 로직, 즉, 사용자 데이터를 서버에 요청하는 입력 로직(26)과 상기 서버로부터 응답 메세지를 건네주는 출력 로직(27)을 특정하는 인보크 태그를 구비한다. 이전 실시예와 유사하게, 인보크는 몇몇 특정한 사용자 데이터상에 비지니스로직을 인스턴스화하기 위해 로직 매니저를 요청한다. 본 실시예에 따른 로직 매니저는 입력 데이터를 포함하는 메세지를 준비하는 입력(26)에 비지니스 로직을 인스턴스화하고, 상기 메세지는 백엔드(23), 예컨대 HTTP 및 SOAP에 의해 사용되는 프로토콜에 따른 포맷으로 된다. 예컨대, 입 력 데이터가 STB의 원격 제어 또는 가상 키보드상에 이용될 수 있는 예컨대 멀티탭 기능을 사용하여 사용자가 전자신청양식에 채워넣게 삽입될 수 있다. 입력에서 비지니스 로직에 의한 메제지의 준비는 또한 사용자 데이터(7)에서 취해진 다른 사용자 데이터와 입력 데이터를 연관시키는 것과 같이 입력 데이터상에 논리연산을 포함할 수 있다.In this embodiment, the template file has two business logic: an invoke tag specifying input logic 26 for requesting user data to the server and output logic 27 for passing a response message from the server. . Similar to the previous embodiment, Invoke requires a logic manager to instantiate business logic on some specific user data. The logic manager according to the present embodiment instantiates the business logic at an input 26 that prepares a message containing input data, which message is formatted according to the protocol used by the backend 23, e.g. HTTP and SOAP. . For example, input data can be inserted for the user to fill in the electronic application form using eg a multi-tap function, which can be used on the STB's remote control or virtual keyboard. Preparation of the message by the business logic at the input may also include a logical operation on the input data, such as associating the input data with other user data taken in the user data 7.

입력(26)에서 비지니스 로직은 로직 매니저가 메세지를 백엔드(23)로 보내도록 요청한다. 그런 후, 로직 매니저는 RC 매니저(25)를 사용하여 상기 메세지를 전송한다. 다르게 말하면, 로직 매니저는 백엔드(23)로 향한 연결을 오픈하도록 RC 매니저를 요청한다. 연결이 온인 경우, 로직 매니저는 사용자로부터의 입력 데이터를 포함하는 입력(26)에 의해 수신된 메세지를 백엔드로 전송한다. At input 26 the business logic requests the logic manager to send a message to the back end 23. The logic manager then uses RC manager 25 to send the message. In other words, the logic manager requests the RC manager to open a connection to the backend 23. If the connection is on, the logic manager sends a message received by the input 26 including input data from the user to the back end.

서버는 입력 데이터를 포함하는 메세지를 정밀히 구성하여 RC 매니저에 의해 관리되는 리턴 채널을 통해 응답으로서 응답 메세지를 다시 로직 매니저로 보낸다. 로직 매니저가 응답 메세지를 수신하면, 응답 메세지를 클라이언트 플랫폼에 의해 읽을 수 있는 포맷, 예컨대, XML 포맷으로 변환시키는 출력(27)에 비지니즈 로직을 인스턴스화시킨다. 출력 로직(27)의 출력은 로직 매니저가 문장분석기(8)로 보내는 XML 데이터 세트(29)이다. 문장분석기는 XML 데이터(29)를 해석한 후 애플리케이션 컨트롤러로 보내며, 상기 애플리케이션 컨트롤러는 (서버에 의해 생성되고 적절한 포맷으로 출력에 의해 변환되는) 이 "동적 정보"를 씬의 구성을 위해 스크린 매니저(11)로 보낸다. 스크린 매니저는 템플릿에 의해 특정된 위치에 이 정보를 삽입하고, 그래픽 구성요소의 적절한 클래스, 예컨대, 그래픽 라이브러리에 있는 API를 인스턴스화함으로써 동적 컨텐츠를 포함하는 그래픽 객체를 생성한다.The server precisely constructs a message containing the input data and sends a reply message back to the logic manager as a response over the return channel managed by the RC manager. When the logic manager receives the response message, it instantiates the business logic in an output 27 that converts the response message into a format readable by the client platform, such as XML format. The output of the output logic 27 is an XML data set 29 that the logic manager sends to the parser 8. The parser parses the XML data 29 and sends it to the application controller, which sends this "dynamic information" (generated by the server and transformed by the output to the appropriate format) to the screen manager for the construction of the scene. 11) to send. The screen manager inserts this information at the location specified by the template and creates a graphic object containing the dynamic content by instantiating an appropriate class of graphics component, such as an API in the graphics library.

도 2에 도시된 구조는 웹 서비스의 서비스 로직의 사용을 가능하게 하고, 클라이언트측 애플리케이션과 백엔드 사이의 통신이 더 효율적이게 하는 이점이 있는데, 이는 입력 데이터(및/또는 다른 사용자 데이터)의 번역 및 처리가 "국소적으로", 즉, STB의 런타임시에 이루어지기 때문이다.The structure shown in FIG. 2 has the advantage of enabling the use of the service logic of the web service and making the communication between the client side application and the back end more efficient, which translates into input data (and / or other user data) and This is because the processing is done "locally", that is, at runtime of the STB.

본 발명의 상세한 설명에 포함됨.Included in the Detailed Description of the Invention.

Claims (38)

스크린(3)에 동작가능하게 연결되고, 상기 스크린상에 디스플레이될 수 있는 텔레비전 신호를 수신하도록 구성되며, 제 1 실행가능한 코드를 실행함으로써 상기 스크린상에 시각화되는 일련의 씬(scenes)을 나타내는 서술 파일(18)에 의해 기술되는 미디어 컨텐츠를 포함하는 상호작용 서비스를 제공하기 위한 서비스 애플리케이션(10)을 구비하고,A description operatively connected to screen 3, configured to receive a television signal that can be displayed on the screen, and representing a series of scenes that are visualized on the screen by executing first executable code. A service application 10 for providing an interactive service that includes media content described by file 18, 상기 서비스 애플리케이션은 사용자 데이터(7)를 구비하고, 디지털 수신장치에서 실행되어서, 상기 스크린상에 시각화되도록 새로운 미디어 컨텐츠를 생성하며, 상기 사용자 데이터(7)에 대한 논리연산을 수행할 수 있는 제 2 실행가능한 코드를 포함하는 동적 서비스 로직(12,14)을 포함하는 것을 특징으로 하는 디지털 수신장치.The service application is provided with a user data (7), is executed in the digital receiving device, the second media that can generate new media content to be visualized on the screen, and perform a logical operation on the user data (7) And digital service logic (12,14) comprising executable code. 제 1 항에 있어서,The method of claim 1, 상기 동적 서비스 로직은 상기 사용자 데이터(7)상에 상기 제 2 실행가능한 코드를 실행할 수 있는 적어도 하나의 제 1 소프트웨어 구성요소인 비지니스 로직(12)과, 상기 제 2 실행가능한 코드를 인스턴스화할 수 있고 상기 사용자 데이터로의 접속을 상기 비지니스 로직에 제공할 수 있는 제 2 소프트웨어 구성요소인 로직 매니저(14)를 구비하는 디지털 수신장치.The dynamic service logic may instantiate the second executable code with business logic 12, which is at least one first software component capable of executing the second executable code on the user data 7 And a logic manager (14) which is a second software component capable of providing said business logic with a connection to said user data. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 서비스 애플리케이션은 상기 장치의 소프트웨어 환경의 런타임으로 실행되는 디지털 수신장치.And the service application is executed at runtime of the software environment of the device. 제 1 항에 있어서,The method of claim 1, 상기 장치는 시청자의 텔레비전에 동작가능하게 연결된 디지털 셋톱박스인 디지털 수신장치.And the device is a digital set-top box operatively connected to the viewer's television. 제 1 항에 있어서,The method of claim 1, 상기 제 1 및 제 2 실행가능한 코드를 처리하는 경향이 있는 가상 머신을 더 포함하는 디지털 수신장치.And a virtual machine that tends to process the first and second executable code. 제 2 항에 있어서,The method of claim 2, 상기 서비스 애플리케이션(10)은 상기 서술 파일(18)과 사용자 데이터(7)를 문장분석할 수 있는 제 1 소프트웨어 구성요소인 문장분석기(8)를 더 구비하는 디지털 수신장치.The service application (10) further comprises a sentence analyzer (8) which is a first software component capable of parsing the description file (18) and user data (7). 제 2 항에 있어서,The method of claim 2, 상기 서술 파일(18)은 마크업 언어(markup language) 컨텐츠 포맷(content format)을 사용하는 디지털 수신장치.The description file (18) uses a markup language content format. 제 7 항에 있어서,The method of claim 7, wherein 상기 마크업 언어는 XML 언어인 디지털 수신장치.The markup language is an XML language digital receiving device. 제 6 항에 있어서,The method of claim 6, 상기 서술 파일(18)은 마크업 언어 컨텐츠 포맷을 사용하고 상기 문장분석기(8)는 상기 서술 파일들을 나타내는 상기 마크업 파일들을 제 1 및 제 2 실행가능한 코드를 따르는 문서들로 변환시키고 상기 마크업 파일들로부터의 상기 태그 및 속성들에 의해 상기 서술 파일(18)을 문장분석할 수 있는 디지털 수신장치.The description file 18 uses a markup language content format and the parser 8 converts the markup files representing the description files into documents following first and second executable code and the markup. A digital receiver capable of parsing the description file (18) by the tag and attributes from files. 제 2 항 내지 제 9 항 중 어느 한 항에 있어서,The method according to any one of claims 2 to 9, 상기 로직 매니저(14)와 상기 비지니스 로직(12)은 자바 클래스로서 실행되는 디지털 수신장치.The logic manager (14) and the business logic (12) are executed as a Java class. 제 10 항에 있어서,The method of claim 10, 상기 로직 매니저는 자바 리플렉션 기술(Java reflection technology)을 사용하여 비지니스 로직을 정의하는 자바 클래스(Java class)를 인스턴스화하는 디지털 수신장치.The logic manager is a digital receiver that instantiates a Java class that defines business logic using Java reflection technology. 제 10 항 또는 제 11 항에 있어서,The method of claim 10 or 11, 자바가상머신(Java Virtual Machine, JVM)을 더 포함하는 디지털 수신장치.Digital receiver further comprising a Java Virtual Machine (JVM). 제 2 항에 있어서,The method of claim 2, 상기 사용자 데이터(7)는 컨텐츠 포맷으로서 마크업 언어를 사용하는 디지털 수신장치.The user data (7) uses a markup language as a content format. 제 16 항에 있어서,The method of claim 16, 상기 마크업 언어는 XML 언어인 디지털 수신장치.The markup language is an XML language digital receiving device. 제 7 항 또는 제 8 항에 있어서,The method according to claim 7 or 8, 상기 서술 파일(18)은 적어도 템플릿 파일(template file)(6)을 구비하고, 상기 템플릿 파일은 사용자 데이터(7)를 획득하고 데이터 포인터에 의해 기술되는 데이터 구조(13)를 생성하기 위해 로직 매니저를 요청할 수 있는 제 1 태그인 사용자 데이터 태그를 포함하는 디지털 수신장치.The description file 18 has at least a template file 6, which is a logic manager for obtaining user data 7 and for generating a data structure 13 described by a data pointer. Digital receiving device comprising a user data tag that is a first tag that can request. 제 15 항에 있어서,The method of claim 15, 상기 데이터 구조(13)는 자바 데이터 구조이고 상기 비지니스 로직은 상기 제 2 실행가능한 코드와 데이터를 포함하는 자바 클래스이며, 상기 자바 클래스의 데이터는 상기 자바 데이터 구조를 구비하는 디지털 수신장치.The data structure (13) is a Java data structure and the business logic is a Java class containing the second executable code and data, the data of the Java class comprising the Java data structure. 제 15 항 또는 제 16 항에 있어서,The method according to claim 15 or 16, 상기 템플릿 파일은 상기 데이터 구조(13)상에 상기 제 2 실행가능한 코드의 인스턴스 생성을 상기 로직 매니저에게 요청하는 경향이 있는 제 2 태그인 인보크 태그(invoke tag)를 더 포함하는 디지털 수신장치.The template file further comprises an invoke tag, which is a second tag that tends to ask the logic manager to instantiate the second executable code on the data structure (13). 제 1 항에 있어서,The method of claim 1, 상기 장치에 동작가능하게 연결되고 사용자로부터 입력 정보를 수신하는 경향이 있는 피드백 장치를 더 구비하는 디지털 수신장치.And a feedback device operatively coupled to the device and prone to receive input information from a user. 제 18 항에 있어서,The method of claim 18, 상기 서비스 애플리케이션(10)은 상기 제 1 실행가능한 코드를 포함하는 제 2 소프트웨어 구성요소인 그래픽 구성요소(9)을 더 구비하고, 상기 그래픽 구성요소는 상기 스크린상에 미디어 컨텐츠를 디스플레이하고 상기 피드백 장치를 사용함으로써 사용자로부터 정보를 입력할 수 있는 디지털 수신장치.The service application 10 further comprises a graphics component 9 which is a second software component containing the first executable code, the graphics component displaying media content on the screen and providing the feedback device. A digital receiver capable of inputting information from a user by using a. 제 19 항에 있어서,The method of claim 19, 상기 서비스 애플리케이션은 상기 제 1 실행가능한 코드를 포함하고, 상기 씬들의 표현을 위해 서술 파일(18)에 포함된 명령어를 수신하는 경향이 있으며, 상기 그래픽 구성요소(9)을 사용하여 상기 씬들을 형성하기 위해 이들 명령어들을 이용하는 경향이 있는 제 3 소프트웨어 구성요소인 스크린 매니저(11)를 더 구비하는 디지털 수신장치.The service application includes the first executable code and tends to receive the instructions contained in the description file 18 for the representation of the scenes, using the graphical component 9 to form the scenes. Further comprising a screen manager (11), which is a third software component that tends to use these instructions to do so. 제 20 항에 있어서,The method of claim 20, 상기 그래픽 구성요소(9)와 스크린 매니저(11)는 자바 클래스로서 실행되는 디지털 수신장치.The graphical component (9) and the screen manager (11) are implemented as Java classes. 제 1 항에 있어서,The method of claim 1, 상기 서비스 애플리케이션은 멀티미디어 컨텐츠(17)를 더 구비하는 디지털 수신장치.The service application further comprises a multimedia content (17). 제 22 항에 있어서,The method of claim 22, 상기 제 1 실행가능한 코드는 상기 멀티미디어 컨텐츠를 재생하고 디스플레이하기 위한 멀티미디어 구성요소(15)을 구비하는 디지털 수신장치.The first executable code comprises a multimedia component (15) for playing and displaying the multimedia content. 제 2 항에 있어서,The method of claim 2, 상기 장치를 원격 통신 네트워크(24)에 연결시키기 위한 원격 채널을 더 구비하는 디지털 수신장치.And a remote channel for connecting the device to a telecommunications network (24). 제 24 항에 있어서,The method of claim 24, 상기 서비스 애플리케이션은 상기 원격 통신 네트워크와의 연결을 관리하기 위한 리턴 채널 매니저(25)를 더 구비하고, 상기 리턴 채널 매니저는 상기 연결의 상태에 대해 로직 매니저에 통보하도록 상기 로직 매니저(4)에 논리적으로 연결되는 디지털 수신장치.The service application further comprises a return channel manager 25 for managing the connection with the telecommunications network, the return channel manager logically presenting to the logic manager 4 to inform the logic manager about the status of the connection. Digital receiver connected to the. 스크린상에 시각화되는 일련의 씬들을 나타내는 서술 파일(18)에 의해 기술되는 미디어 컨텐츠를 포함하는 상호작용 서비스를 상기 스크린(3)에 동작가능하게 연결된 적어도 하나의 디지털 수신장치에 제공하는 방법으로서,A method of providing an interactive service comprising at least one media content described by a description file 18 representing a series of scenes visualized on a screen to at least one digital receiving device operatively connected to the screen 3, the method comprising: a) 상기 스크린상에 상기 씬들을 시각화하기 위한 제 1 실행가능한 코드와 제 2 실행가능한 코드를 포함하는 동적 서비스 로직(12,14)을 구비하는 서비스 애플리케이션(10)을 상기 디지털 수신장치에 실행하는 단계와,a) executing a service application (10) on the digital receiving device having dynamic service logic (12, 14) comprising first executable code and second executable code for visualizing the scenes on the screen; Steps, b) 상기 서비스 애플리케이션에 사용자 데이터(7)를 제공하는 단계와,b) providing user data 7 to the service application; c) 상기 제 2 실행가능한 코드 접속을 사용자 데이터에 제공하는 단계와,c) providing said second executable code connection to user data; d) 상기 스크린상에 시각화되도록 새로운 미디어 컨텐츠를 생성하는 상기 사용자 데이터(7)상에 논리연산을 수행할 수 있도록 상기 사용자 데이터에 상기 제 2 실행가능한 코드를 인스턴스화시키는 단계를 포함하는 디지털 수신장치 제공방법.d) instantiating the second executable code in the user data to perform a logical operation on the user data 7 which creates new media content to be visualized on the screen. Way. 제 26 항에 있어서,The method of claim 26, 상기 사용자 데이터(7)는 컨텐츠 포맷으로서 마크업 언어를 사용하는 디지털 수신장치 제공방법.And the user data (7) uses a markup language as the content format. 제 26 항에 있어서,The method of claim 26, 상기 서술 파일(18)은 컨텐츠 포맷으로서 마크업 언어를 사용하는 디지털 수신장치 제공방법.And the description file (18) uses a markup language as a content format. 제 27 항 또는 제 28 항에 있어서,The method of claim 27 or 28, 상기 마크업 언어는 XML 언어인 디지털 수신장치 제공방법.And the markup language is an XML language. 제 26 항 내지 제 29 항 중 어느 한 항에 있어서,The method according to any one of claims 26 to 29, 상기 c)단계 전에 상기 사용자 데이터(7)를 문장분석하는 단계를 더 포함하는 디지털 수신장치 제공방법.And parsing the user data (7) prior to step c). 제 26 항 내지 제 30 항 중 어느 한 항에 있어서,The method according to any one of claims 26 to 30, 상기 c)단계는 상기 사용자 데이터(7)를 획득하는 단계와 데이터 포인터에 의해 기술되는 데이터 구조(13)를 생성하는 단계를 포함하는 디지털 수신장치 제공방법.The step c) comprises acquiring the user data (7) and generating a data structure (13) described by a data pointer. 제 28 항 또는 제 29 항에 있어서,The method of claim 28 or 29, 상기 c)단계 전에 상기 서술 파일(18)을 문장분석하는 단계를 더 포함하고,상기 문장분석은 상기 제 1 및 제 2 실행가능한 코드에 따라 상기 서술을 문서로 변환시키는 단계와 상기 서술 파일로부터 태그와 속성을 추출하는 단계를 포함하는 디지털 수신장치 제공방법.Parsing the description file 18 prior to step c), wherein parsing comprises converting the description into a document according to the first and second executable code and tagging from the description file. And extracting an attribute from the digital receiver. 제 32 항에 있어서,The method of claim 32, 상기 d)단계는 적어도 하나의 서술 파일(6)에 포함된 제 1 태그인 인보크 태그에 특정된 하나 이상의 속성들에 의해 요청되는 디지털 수신장치 제공방법.The step d) is requested by one or more attributes specified in the Invoke Tag, the first tag included in the at least one description file (6). 제 26 항 내지 제 33 항에 있어서,34. The method of claim 26, wherein 상기 동적 서비스 로직(12,14)은 상기 제 2 실행가능한 코드를 포함하는 자바 클래스들로서 실행되는 디지털 수신장치 제공방법.And wherein said dynamic service logic (12,14) is executed as Java classes containing said second executable code. 제 34 항에 있어서,The method of claim 34, wherein 상기 d)단계는 자바 리플렉션 기술을 사용하여 수행되는 디지털 수신장치 제공방법.The step d) is performed using a Java reflection technology. 제 26 항 내지 제 35 항 중 어느 한 항에 있어서,The method according to any one of claims 26 to 35, 상기 제 1 실행가능한 코드는 자바를 따르는 디지털 수신장치 제공방법.And said first executable code is Java compliant. 제 25 항에 있어서,The method of claim 25, 상기 디지털 수신장치로 디지털 TV 신호를 전달하는 단계를 더 포함하는 디지털 수신장치 제공방법.And transmitting a digital TV signal to the digital receiver. 제 35 항에 있어서,36. The method of claim 35 wherein 상기 적어도 디지털 수신기는 시청자의 텔레비전에 동작가능하게 연결된 디지털 셋톱 박스인 디지털 수신장치 제공방법.Said at least digital receiver being a digital set-top box operatively connected to a television of a viewer.
KR1020077007013A 2007-03-28 2004-08-30 Method and system for providing interactive services in digital television KR20070052328A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020077007013A KR20070052328A (en) 2007-03-28 2004-08-30 Method and system for providing interactive services in digital television

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020077007013A KR20070052328A (en) 2007-03-28 2004-08-30 Method and system for providing interactive services in digital television

Publications (1)

Publication Number Publication Date
KR20070052328A true KR20070052328A (en) 2007-05-21

Family

ID=38275024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077007013A KR20070052328A (en) 2007-03-28 2004-08-30 Method and system for providing interactive services in digital television

Country Status (1)

Country Link
KR (1) KR20070052328A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445576A (en) * 2020-11-30 2021-03-05 中国人寿保险股份有限公司 Equipment calling method for shielding service difference and related equipment
CN113688031A (en) * 2021-07-15 2021-11-23 上海浦东发展银行股份有限公司 Testing positioning method based on byte code enhancement technology

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445576A (en) * 2020-11-30 2021-03-05 中国人寿保险股份有限公司 Equipment calling method for shielding service difference and related equipment
CN112445576B (en) * 2020-11-30 2024-04-16 中国人寿保险股份有限公司 Equipment calling method for shielding service difference and related equipment
CN113688031A (en) * 2021-07-15 2021-11-23 上海浦东发展银行股份有限公司 Testing positioning method based on byte code enhancement technology
CN113688031B (en) * 2021-07-15 2024-03-26 上海浦东发展银行股份有限公司 Test positioning method based on byte code enhancement technology

Similar Documents

Publication Publication Date Title
US20080010664A1 (en) Method and System for Providing Interactive Services in Digital Television
US11422779B2 (en) Application support for network devices
US7664813B2 (en) Dynamic data presentation
US8510779B2 (en) Self-contained mini-applications system and method for digital television
US7089283B2 (en) Method and apparatus for sending an event in a digital broadcasting system
US7761601B2 (en) Strategies for transforming markup content to code-bearing content for consumption by a receiving device
KR20020044181A (en) Data entry in a gui
JP2004533736A (en) Method and apparatus for reformatting content for display on interactive television
US9354901B2 (en) Method and computer system for introducing client devices into a client-server network
US7512955B2 (en) Method and system for accessing and implementing declarative applications used within digital multi-media broadcast
KR100870200B1 (en) Digital broadcast receiving apparutus using integrated middleware
KR20070052328A (en) Method and system for providing interactive services in digital television
Barreto et al. Providing multimodal and multi-user interactions for digital tv applications
Vrba et al. Framework for digital TV applications
WO2011000749A1 (en) Multimodal interaction on digital television applications
CN111479144A (en) Display device and application interaction method
Cho et al. Design of an integrated web browser for digital TVs
Tsekleves et al. Semi-automated creation of converged iTV services: From macromedia director simulations to services ready for broadcast
Rodriguez-Alsina et al. Analysis of the TV interactive content convergence and cross-platform adaptation
Shrimpton et al. Towards the convergence of interactive television and WWW
EP1263218A2 (en) Method for browsing a predetermined data structure

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application