`
`US007055169B2
`
`c12) United States Patent
`
`Delpuch et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,055,169 B2
`May 30, 2006
`
`(54) SUPPORTING COMMON INTERACTIVE
`TELEVISION FUNCTIONALITY THROUGH
`PRESENTATION ENGINE SYNTAX
`
`(75)
`
`Inventors: Alain Delpuch, Les Essarts le Roi
`(FR); James Whitledge, Naperville, IL
`(US); Jean-Rene Menand, Los Altos,
`CA (US); Emmanuel Barbier, Paris
`(FR); Kevin Hausman, Naperville, IL
`(US); Debra Hensgen, Redwood City,
`CA (US); Dongmin Su, Santa Clara,
`CA (US)
`
`(73) Assignee: OpenTV, Inc., San Francisco, CA (US)
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 1 54(b) by 160 days.
`(21) Appl. No.: 10/419,621
`Apr. 21, 2003
`(22) Filed:
`(Under 37 CFR 1 .47)
`
`(65)
`
`Prior Publication Data
`
`US 2004/01 39480 Al
`
`Jul. 1 5, 2004
`
`Related U.S. Application Data
`
`(60)
`
`Provisional application No. 60/373,883, filed on Apr.
`19, 2002.
`
`(51 )
`
`(52)
`
`(58)
`
`Int. Cl.
`
`H04N 71173
`(2006.01)
`H04N 7116
`(2006.01)
`U.S. Cl. ........................ 725/100; 725/91; 725/138;
`725/139
`Field of Classification Search .................. 725/91,
`725/1 00, 1 09, 112, 1 35, 1 39; 709/217, 223,
`709/225, 226, 231; 710/48, 266
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,790,198 A
`6,184,878 Bl
`
`8/ 1998 Roop et al.
`212001 Alonso et al.
`
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`0 839 599 A2
`
`4/1998
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`"CSS3 Module: The Box Model"; W3C Working Draft, Jul.
`26, 2001; This version: http://www.w3.org/TR/2001/WD
`css3-box-20010726; Latest version: http://www.w3.org/TR/
`css3-box; Editor: Bert Bos; Copyright© 2001 W3C® (MIT,
`INRIA, Keio); pp. 1 -1 04.
`Primary Examiner-Kieu-Oanh Bui
`(74) Attorney, Agent, or Firm-Meyertons Hood Kivlin
`Kowert & Goetze!, P.C.; Rory D. Rankin
`(57)
`
`ABSTRACT
`
`A method and mechanism for enabling the creation and/or
`control of interactive television content using declarative
`like directives such as HTML, scripting languages, or other
`languages. A a centrally located proxy server is configured
`to receive, transcode and convey transcoded web based
`content to client devices. Upon detecting directives which
`indicate particular resources required for a presentation are
`prerequisites, the proxy server conveys signals to a client
`device that these particular resources are prerequisites. In
`response to receiving the conveyed signals, the client device
`may take actions to prefetch these resources. The client
`device is further configured to prohibit initiation of the
`presentation until the prerequisite resources are acquired.
`
`23 Claims, 5 Drawing Sheets
`
`Proxy receives
`
`presentation
`directives
`
`fil!2.
`
`Convey
`corresponding
`indication
`
`to client,__ __ <.
`>QI!
`
`Convey
`presentation
`directives
`to client
`fil
`
`Apple 1101 - Page 1
`
`
`
`US 7,055,169 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`2002/0194219 Al* 12/2002 Bradley et al. ............. 707/506
`
`6,188,401 Bl
`6,345,307 Bl
`6,415,303 Bl
`6,539,359 Bl
`200210010798 Al *
`2002/0088011 Al *
`
`212001 Peyer
`212002 Booth
`
`712002 Meier et al.
`3/2003 Ladd et al.
`1/2002 Ben-Shaul et al. . ........ 709/247
`712002 Lamkin et al .
`
`............. 725/142
`
`FOREIGN PATENT DOCUMENTS
`
`GB
`
`2 332 803
`
`WO 02/17639 A2
`WO
`* cited by examiner
`
`6/1999
`212002
`
`Apple 1101 - Page 2
`
`
`
`e
`00
`�
`
`•
`
`•
`
`� � � =
`
`�
`
`Transmitter
`22
`
`I
`
`Source
`�
`
`�
`
`00
`
`1
`
`Broadcast Station
`�
`
`I
`j
`
`'Lt..
`
`i I
`i I �
`
`�---------J
`
`I !
`I !
`
`I
`
`I I I I I I I I I I I I I
`
`L---
`
`I I
`I I I I I
`:
`� ___ [ _______________ _.
`I
`FIG. 1
`
`34
`
`Source
`19
`
`I
`
`I
`
`I
`.)UC
`I Receiver 1
`
`I
`I -
`
`138
`
`� �
`N 0 0 O'I
`
`(.H
`"'o
`
`1J1 =-('D
`('D .....
`....
`
`0 ..... Ul
`
`d
`rJl
`"'--...l = tit
`"'tit
`"'"" 0--, \C
`= N
`
`Apple 1101 - Page 3
`
`
`
`External Source
`.Ll.
`
`Back Channel
`26
`
`16
`
`Ir
`Return Data
`Processor
`210
`
`AudioNideo Signals
`240
`
`•
`
`I
`
`r--------- --------�
`I
`I
`I
`I
`I
`I
`Content Processing :
`1
`Database 1
`I
`mechanism i---1t--1� - -.
`:
`230
`200
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`:
`1
`:
`I
`I
`I
`I
`I
`I
`I
`21
`-
`L------------------1
`
`Server
`250
`
`FIG. 2
`
`I ... Communications
`Multiplexor I
`
`220
`
`•
`
`I
`
`To Network
`
`Operator
`17
`
`Metadata Injector
`260
`
`e
`00
`�
`
`•
`
`•
`
`� � � =
`
`�
`
`� �
`N 0 0 O'I
`
`(.H
`"'o
`
`1J1 =-('D
`('D .....
`N
`0 ..... Ul
`
`d
`rJl
`"'--...l = tit
`"'tit
`"'"" 0--, \C
`= N
`
`Apple 1101 - Page 4
`
`
`
`Front End
`1026
`
`.,..
`
`1
`
`I
`
`., 1 Return Channel '"""..____,
`4
`�
`1------- - - ------�
`: OS &/or middleware 1
`: '--
`:
`From
`1044
`Broadcast
`I
`I
`...
`I
`Station
`I
`I
`I
`1 ,.......
`Engine :
`Message
`1
`:
`Processing
`'
`1036 �
`I
`I
`I
`I :
`: I
`I
`Apps
`: 1Q!2.
`I
`I
`I
`I
`I
`Memory 1
`:
`I
`:
`1090
`I
`L---------------
`
`1-;;;r
`
`I
`
`Transport Stage
`1028
`"
`
`•
`Control Unit
`1030
`
`..
`
`110 Interface
`1040
`j
`
`I
`
`To Display
`
`Co
`
`AV
`Stage
`1034
`
`"
`
`CA
`Module(s)
`1032
`
`.. ,
`
`1012
`
`FIG. 3
`
`•
`Userl/O
`
`�
`
`Storage
`Device
`1018
`
`�
`
`\...._
`
`e
`00
`�
`
`•
`
`•
`
`� � � =
`
`�
`
`�
`� �
`(.H 0 "'
`N 0 0 O'I
`
`1J1 =-('D ('D ......
`(.H
`0 ..... Ul
`
`d
`rJl
`"'--...l = tit
`"'tit
`"'"" 0--, \C
`= N
`
`Apple 1101 - Page 5
`
`
`
`U.S. Patent
`
`May 30, 2006
`
`Sheet 4 of 5
`
`US 7,055,169 B2
`
`-c: Q) 0)
`<( ..... Q) (/) =>
`
`t
`
`..... Q)
`O>
`ct!
`c:
`ct!
`E
`"'O
`ct!
`0
`c:
`:J:
`0
`0
`
`a..
`I-
`I-
`I
`
`-
`�
`
`a..
`�
`a..
`-
`. () I-
`
`-
`�
`
`-
`.
`
`..c:
`() -
`�
`0
`-(/)
`Q)
`O>
`ct!
`a.
`-0
`--� -
`
`I
`'
`
`a.. �
`I
`
`a.. �
`I
`
`.... Q)
`i::
`Q)
`CJ)
`c
`O>
`
`·;:: 0
`
`. c:>
`u..
`
`.... Q)
`O>
`ct!
`c
`ct!
`
`E �1
`
`Q) v
`(/)
`:J
`e
`ct!
`()
`
`a..
`I-
`I-
`I
`
`..
`
`a.. �
`a..
`-
`. () I-
`
`-
`
`-
`.
`
`"--
`
`><
`0
`..c
`o_
`0
`
`I-I -Q)
`
`CJ)
`a
`
`(/)
`Q)
`(/)
`:J
`0
`
`..... ct! 0
`>-ct!
`:J:
`I Q)
`c
`0
`
`••
`
`\
`
`N
`0
`-.::t"
`"--
`
`"'O
`c
`w
`"'O
`
`ct! Q) I
`
`Apple 1101 - Page 6
`
`
`
`U.S. Patent
`
`May 30, 2006
`
`Sheet 5 of 5
`
`US 7,055,169 B2
`
`Proxy receives
`presentation
`directives
`502
`
`Convey
`presentation
`directives
`to client
`516
`
`Convey
`corresponding
`indication to client ------<
`506
`
`Pref etch
`Resources
`510
`
`Proxy conveys
`presentation
`directives to client
`512
`
`Presentation
`>--------.i is permitted
`518
`
`FIG. 5
`
`Apple 1101 - Page 7
`
`
`
`US 7,055,169 B2
`
`1
`SUPPORTING COMMON INTERACTIVE
`TELEVISION FUNCTIONALITY THROUGH
`PRESENTATION ENGINE SYNTAX
`
`Priority of provisional application No. 60/373,883, filed
`on Apr. 19, 2002 is claimed under 35 U.S.C. §§ 119(a)-(e)
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The invention relates generally to interactive television
`systems and more particularly to a system and method for
`creating and controlling interactive television content.
`2. Description of Related Art
`Interactive television systems provide a means to deliver
`interactive content as well as ordinary television audio and
`video to a large number of subscribers. Programs broadcast
`by these systems may incorporate television audio and
`video, still images, text, interactive graphics and applica
`tions, and many other components. They may also provide 20
`a number of services, such as commerce via the television,
`electronic program guides (EPGs), video-on-demand, and
`other interactive applications to viewers. The interactive
`content of the interactive television signal may therefore
`include application code, data associated with the audio and 25
`video, control signals, raw data and many other types of
`information. This information can be combined into a single
`signal or several signals for transmission to a receiver
`connected to the viewer's television or the provider can
`include only a subset of the information.
`The interactive functionality of the television is generally
`controlled by an integrated receiver/decoder (IRD) or simi-
`lar mechanism, frequently incorporated into a set-top box,
`connected to the television. The IRD receives the signal
`provided by a broadcast service provider or system operator 35
`and separates the interactive portion from the audio-video
`portion. The IRD uses the interactive information to, for
`example, execute an application while the audio-video infor
`mation is transmitted to the television. The IRD may com
`bine the audio-video information with interactive graphics 40
`or audio generated by the interactive application prior to
`transmitting the information to the television.
`Interactive content such as application code or informa
`tion relating to television programs may be broadcast in a
`cyclical or repeating format. The pieces of information 45
`which are broadcast in this manner form what may be
`referred to as a "carousel." A carousel may include multiple
`modules of data, including a directory module which indi
`cates the particular modules which correspond to a given
`application. Frequently, a single carousel is transported as a 50
`contiguous data stream. However, it is also possible to
`multiplex two or more carousels in a single data stream. As
`an alternative to using a carousel format, some systems may
`utilize a return path to request and/or receive interactive
`content.
`Broadcast systems may transmit information in a carousel
`format in order to allow receivers in the system to selectively
`obtain particular pieces of information in the carousel with
`out requiring a return path from the receivers to the server.
`If a particular receiver needs a particular piece of informa- 60
`tion, it can simply wait until the next time that piece of
`information is broadcast, and then extract the information
`from the broadcast data stream. By employing carousels to
`broadcast information, the system may eliminate the need to
`connect each of the receivers with a server and further 65
`eliminate the need for the server to process individual
`requests for information.
`
`2
`The pieces of information, or data objects, in a carousel
`may be intended to be combined in a single object data
`stream to form a program. This program may also contain
`streaming data such as audio or video. For example, an
`interactive television game show may combine television
`audio and video with interactive content such as application
`code which allows users to answer questions. Another
`example would be a news program which combines audio
`and video with application code that inserts current stock
`10 prices in a banner at the bottom of the screen. Typically, each
`program is associated with a corresponding channel and,
`when a channel containing a particular program is selected
`by the interactive television receiver, the data which is being
`broadcast on that charmel is downloaded and the program is
`15 started.
`As television receivers become more sophisticated, and
`include the ability to access a wider range of data and
`resources, efforts have been made to develop mechanisms to
`handle these additional resources. For example, the DVB
`MHP 1.1 specification and DAVIC 1 .4.1 Part 9 specification
`define a URL scheme to access broadcast services. Since
`DAVIC broadcast networks carry Service Information (SI)
`that contains globally unique parameters for locating the
`services in a broadcast network, their URL scheme is able to
`address services in a physical network independent marmer.
`Unfortunately, such schemes may not work on ATSC
`networks or other networks that define different or even
`proprietary signaling formats. Therefore, a new more flex
`ible scheme is desired.
`
`30
`
`SUMMARY OF THE INVENTION
`
`A method and mechanism are described which enable
`content authors to use directives, such as HTML, scripting
`languages, or other languages, with television extensions to
`create and/or control interactive television content. The
`method and mechanism may be utilized with digitally
`recorded programs as well as with live broadcasts.
`In one embodiment, a device in an interactive television
`system is configured to receive one or more directives
`provided by a content author which describe or otherwise
`indicate an audio and/or video presentation. Included among
`these directives are one or more directives which indicate
`that a particular subset of resources required for the presen
`tation are deemed prerequisites. In response to detecting
`these directives, the providing of the presentation is with
`held until the prerequisite resources are obtained.
`In one embodiment, the directives are received by a
`centrally located proxy server which may be configured to
`receive, transcode and convey transcoded web based content
`to client devices. Upon detecting directives which indicate
`prerequisite resources for a presentation, the proxy server
`separately conveys to the client devices signals, or some
`other indication, that these resources are prerequisites. In
`response, the client device receiving the conveyed signals
`may take actions to prefetch these resources.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a diagram of one embodiment of a broadcast
`television system.
`FIG. 2 is a diagram of one embodiment of a headend.
`FIG. 3 is a block diagram of one embodiment of a client
`device.
`FIG. 4 is a diagram of one embodiment of a television
`system.
`
`55
`
`Apple 1101 - Page 8
`
`
`
`US 7,055,169 B2
`
`3
`FIG. 5 illustrates one embodiment of a method utilizing
`prerequisite directives.
`
`DETAILED DESCRIPTION
`
`0. System Overview
`Referring to FIG. 1, one embodiment of a television
`system 100 is shown. In the embodiment shown, receiving
`devices 30 are coupled to several sources of programming
`and/or interactive content. Each of receiving devices 30 may
`comprise any suitable device, such as a set-top box (STB),
`a television (TV), a video cassette recorder (VCR), a digital
`video recorder (DVR), a personal digital assistant (PDA), a
`personal computer (PC), a video game console, or a mobile/
`cell phone.
`Included in the embodiment of FIG. 1 is a broadcast
`station 16 coupled to receiver(s) 30 via a transmission
`medium 17 and back channel 26. In addition, receiver(s) 30
`are coupled to a source 18 and source 19 via a network 20.
`Further, broadcast station 16 is coupled to a remote source
`13, and Internet 60. In the embodiment shown, broadcast
`station 16 includes sources 14 and 15 and transmitter 22.
`Transmission medium 17 may comprise a satellite based
`system 23, a cable based system 24, a terrestrial or multiple
`multi-point distribution service (MMDS) based system 25, a
`combination of these systems, or some other suitable system
`of transmission.
`In the embodiment of FIG. 1, broadcast station 16 may
`include a variety of sources of content 14, 15, and 60 to be
`utilized and conveyed by transmitter 22. Content sources 14
`and 15 may include databases, application servers, other
`audio/video sources, or other data sources. In one embodi
`ment, content may be created at a source 14 which may
`include an authoring station configured to create such con
`tent. An authoring station may include a computer worksta
`tion configured with software which aids in the development
`of interactive content. An authoring station may be part of
`broadcast station 16 in which case the conveyance of the
`created content may be through a local computing network, 40
`or similar configuration. Alternatively, an authoring station
`may be remotely located 13 from broadcast station 16. In an
`embodiment where authoring station is not directly coupled
`to broadcast station 16, the content created by a source 13
`may be conveyed to broadcast station 16 via Internet,
`broadcast, cable, etc. In some cases, content created by at a
`remote location 13 may first be transferred to a storage
`medium, such as a CD-RW, DVD, or flash memory device,
`and transported to broadcast station 16 via more conven
`tional means where it may be stored in a database or other
`storage device.
`Subsequent to its creation, content from sources 13, 14, 15
`and 60 may be delivered to receiver(s) 30 through a broad
`cast transmission network. This network consists essentially
`of broadcast station 16 which assembles the content from
`sources 13, 14, 15 and 60 and processes the content as
`appropriate (e.g., digitizes, compresses, packetizes), and a
`transmission network 17 which receives the content 40 from
`broadcast station 16 and conveys it 42 to receiving device(s)
`30. In one embodiment, broadcast station 16 includes soft
`ware and/or hardware which is configured to process the
`content conveyed by sources 13, 14, 15 and 60 as described
`above. A second delivery mechanism may include a direct
`point-to-point connection 138 between receiver(s) 30 and
`source 18 which may be some type of server. This connec
`tion 138 may be made via an ordinary telephone line, cable,
`wireless, or otherwise. A third delivery mechanism may also
`
`4
`be a point-to-point connection 136, but transmission of the
`content from a source 19 to receiver(s) 30 is made via one
`or more shared networks (e.g., over the Internet).
`FIG. 1 also illustrates broadcast station 16 may be option
`ally coupled to source 18 and/or source 19. Such a coupling
`may enable broadcast station 16 to work cooperatively with
`source 18 or source 19 in conveying content to receiver(s)
`30. Also illustrated in FIG. 1 is a back channel (or return
`path) 26 by which receiver(s) 30 may convey to and/or
`10 receive data from broadcast station 16. Back charmel 26 may
`comprise a telephone line, cable, wireless, or other connec
`tion.
`One delivery mechanism, the direct point-to-point con
`nection to a source of content, may comprise communica-
`15 tion via an ordinary telephone line. This type of connection
`is typically initiated by the receiver(s) 30 to convey infor
`mation to, or retrieve information from, a data server.
`Another delivery mechanism, the point-to-point connection
`through one or more networks, may comprise a typical
`20 connection between nodes on the Internet. Because data may
`be routed through many different shared networks in this
`case, it may be read, stored and written many times as it is
`transmitted from source 19 to receiver(s) 30. The third
`delivery mechanism may include a satellite, cable or terres-
`25 trial broadcast network 17. Information may be transmitted
`from and to receiver(s) 30 both in real time or store and
`forward.
`In one embodiment, broadcast station 16 further includes
`a proxy server 21 which is configured to transcode received
`30 content to a format compatible with one or more of client
`devices 30. For example, proxy 21 may receive web based
`content including directives written in HTML, JavaScript™
`(JavaScript is a trademark of Sun Microsystems, Inc), CSS,
`or other languages, and transcode the received content to a
`35 format compatible with clients 30. In alternative embodi
`ment, clients may be configured to directly process such
`directives. In such a case, proxy 21 may be configured to
`perform certain types of preprocessing of the content prior
`to conveyance to the clients.
`Turning now to FIG. 2, an overview of one embodiment
`of a broadcast station (head-end) 16 is shown. The broadcast
`station 16 of FIG. 2 includes an application server 250 and
`a database 230 which may contain previously created inter
`active content. Also shown in FIG. 2 is a source 13 of
`45 content (e.g., the Internet) which is external to broadcast
`station 16 and coupled to broadcast station 16. Database
`230, server 250, Internet 60, and source 13 are coupled to a
`content processing mechanism 200 which is configured to
`process the content received and convey the processed
`50 content to a multiplexor 220. In the exemplary embodiment
`of FIG. 2, proxy server 21 includes server 250 and process
`ing mechanism 200.
`In one embodiment, content processing mechanism 200
`comprises a computer coupled to receive and convey content
`55 from source 13, database 230, or server 250. Processing
`mechanism 200 is configured to convey the processed
`content to multiplexor 220. Multiplexor 220 is also coupled
`to receive audio/video signals 240. Multiplexor 220 multi
`plexes the received signals and conveys the multiplexed
`60 signal to network communications operator 17 where it is
`subsequently conveyed to a receiving device. As noted
`above, proxy 21 may be configured to process received
`content prior to conveying the content to client devices. For
`example, proxy 21 may be configured to receive requests
`65 from clients for web based content, obtain the requested
`content, and transcode the received content to an alternate
`format prior to conveyance to the requesting client. Finally,
`
`Apple 1101 - Page 9
`
`
`
`US 7,055,169 B2
`
`5
`in addition to the above, broadcast station 16 includes a
`return data processor 210 coupled to back channel 26. In one
`embodiment, return data processor 210 may comprise a
`modem which receives data for further processing within
`broadcast station 16.
`While the above description describes a source of inter
`active content as being at a broadcast station 16, in an
`alternative embodiment database 230 and content process
`ing mechanism 200 may reside at the location of a network
`communications operator 17. An example of such an alter
`native embodiment may be a cable station which inserts
`interactive content into a broadcast signal prior to transmis
`sion. Numerous such alternatives are possible and are con
`templated.
`Turning now to FIG. 3, one embodiment of a receiving/ 15
`initiating device 1012, hereinafter referred to as a "client" is
`shown. While FIG. 3 illustrates the client 1012 in the form
`of a set top box 1012, client 1012 may comprise other
`devices as well. Generally speaking, client 1012 is config
`ured to receive a first signal 1070, such as a broadcast signal,
`and convey a second signal 1080, such as to a display or
`recording device. While in the embodiment shown, client
`1012 is shown coupled to an external mass storage device
`1018, such storage may be internal to the client 1012 itself.
`Client 1012 includes a control unit 1030, front end 1026,
`return channel 1038, transport stage 1028, and AV stage
`1034. Also represented in FIG. 3 is a memory 1080 which
`includes OS and/or middleware 1044, message processing
`engine 1036, and applications 1042. Also shown is an I/O
`interface 1040 and conditional access (CA) module(s) 1032.
`I/O interface 1040 may be configured to detect user inter
`action via a remote control, keyboard, or other device.
`Control unit 1030 may comprise a microprocessor, memory
`(e.g., RAM), and other components which are necessary to
`perform ordinary general purpose computing.
`In one embodiment, applications 1042, OS/middleware
`1044, CA module(s) 1032, and message processing engine
`1036 comprise code which may be stored in a memory
`device of set-top box 1012. Additionally, CA module(s)
`1032 may comprise system software configured to control
`access to particular programs or services which are acces
`sible by set-top box 1012. While message processing engine
`1036 is shown as program code which may be stored in
`memory 1090 and executed by control unit 1030, it is
`understood that other embodiments are possible and are
`contemplated. For example, message processing engine
`1036 may comprise circuitry or a combination of hardware
`and software. For example, message processing engine 1036
`may comprise a processing device executing program
`instructions. Further, message processing engine 1036 may
`be configured as an external device which may be coupled
`to a receiving unit. For example, such an external device
`may comprise an expansion module which is configured to
`add message processing functionality to a preexisting
`device.
`Generally speaking, client 1012 is operable to receive and
`decompress signals which may include digital data. The
`decompressed signals may be converted into analog signals
`such as PAL, SECAM, or NTSC format signals for televi
`sion display, or may be in digital format for use by a digital
`television display. As shown in FIG. 3, client 1012 includes
`front end circuitry 1026 operable to receive audio, video,
`and other data from a received signal 1070. The received
`signal 1070 is fed into the client 1012 at the front end 1026,
`which may comprise an analog to digital (AID) converter
`and tuner/demodulators (not shown). Front end 1026 may
`select and pass a particular frequency, demodulate it, and
`
`6
`convert analog signals to a digital format. While analog data
`may be converted to digital data, as noted above a received
`signal may comprise digital data which may require no such
`conversion. The digitized output may then be conveyed to a
`transport stage 1028 which further processes the data, con
`veying a portion of the data to an audio-visual (AV) stage
`1034 for display and another portion to control processor
`1030. In addition, CA module 1032 may receive data from
`transport stage 1028 and may conditionally convey a
`10 descrambled or other signal to AV stage 1034. Signaling and
`control information may also be included in the broadcast
`along with the audio-video data and may be manipulated by
`software within the client 1012.
`Audio-video signals and program control signals received
`by the client 1012 may include television programs, meta
`data, and menu selections accessible by a viewer through a
`user interface, as well as applications that may be executed.
`A viewer may control the client 1012 in a variety of ways,
`including through an infrared remote control unit, a control
`20 panel on the client, or a device that is used to choose from
`a menu displayed on the television screen. Selections and
`entries made by the viewer may be intended for one or more
`of several applications that are executing on the client. As
`mentioned above, broadcast signals 1070 are received via
`25 front end 1026 and are filtered by transport stage 1028.
`Unicast or multicast signals may generally be received via
`return channel 1038. Applications 1042 which execute on
`the client 1012 may arrive there in a variety of ways. For
`example, applications may be received via a broadcast signal
`30 1070, via the return channel resource interface 1038, or via
`storage device 1018. Applications received via storage
`device 1018 may have been shipped originally with the
`client 1012 or may have been downloaded previously from
`another source and stored on storage 1018.
`In one embodiment, client 1012 may be configured as a
`digital set top box for use with a satellite receiver or satellite
`integrated decoder/receiver that is capable of decoding
`MPEG video, audio, and data. For example, client 1012 may
`be configured to receive digital video channels that support
`40 broadband communications using Quadrature Amplitude
`Modulation
`(QAM), Quadrature Phase Shift Keying
`(QPSK), Coded Orthogonal Frequency Division Multiplex
`ing (COFDM), or 8-vestigial side band (VSB), and to
`control channels for two-way signaling and messaging. The
`45 digital channels may carry compressed and encoded multi
`program MPEG (Motion Picture Expert Group) transport
`streams. Transport stage 1028 extracts the desired program
`from the transport stream and separates the audio, video, and
`data components, which are routed to devices that process
`50 the streams, such as one or more audio decoders, one or
`more video decoders, and optionally to RAM (or other form
`of memory) or a hard drive. It is to be understood that the
`client 1012 and storage device 1018 (as well as any data and
`signals from the broadcast service provider) may be config-
`55 ured to accommodate analog, digital, or both analog and
`digital data. For storage of received analog data, conversion
`to digital format may be performed.
`Storage device 1018 is optionally coupled to the client
`1012 and may be configured to store video, audio, execut-
`60 able code, metadata, and other data. Storage device 1018
`may be internal to client 1012 or connected externally (e.g.,
`through an IEEE 1 394-1995 connection) with either a
`permanent connection or a removable connection. Further,
`storage device 1018 may comprise any suitable type of
`65 storage, such as a hard disk drive, a recordable DVD drive,
`magnetic tape, optical disk, magneto-optical disk, flash
`memory, or solid state memory. In addition, more than one
`
`35
`
`Apple 1101 - Page 10
`
`
`
`US 7,055,169 B2
`
`7
`storage device such as device 1018 may be attached to the
`client 1012. The client 1012 and/or storage device 1018 may
`further be incorporated into a television set. Executable data,
`such as program instructions, which is stored within storage
`device 1018 may be retrieved and executed. In one embodi
`ment, retrieved data may be executed or otherwise utilized
`in synchronization with other applications or received sig
`nals, for example corresponding to a game show, commer
`cial, or Internet based on-line game. Alternatively, retrieved
`data may be executed or utilized independently, such as for
`video-on-demand, banking, e-mail, a web browser, or an
`electronic program guide (EPG).
`It is to be understood that the client 1012 and system 100
`described herein are intended to be exemplary only. Broad
`cast network system 100 and client 1012 may be different
`than described herein without departing from the scope of
`the invention. Further, various components depicted in the
`client 1012 of FIG. 3 may be combined, such as the
`placement of the integration of storage device 1018 within
`client 1012. Numerous alternatives are possible and are 20
`contemplated.
`
`25
`
`8
`state. The system may suspend an application in order to
`execute another application. Further, broadcast signaling can
`cause the system to request that an application exit.
`While the life cycle defined above may represent a default
`life cycle, modifications to the life cycle may be provided by
`calls in a network provider control task. For example, one
`need not even load an application until the viewer responds
`with an appropriate button selection in response to the
`10 presentation of an icon. Further, the above life cycle may
`generally correspond to a model in which only a single
`application is executable at a time. However, in order to
`support multiple applications concurrently, the application
`model and life cycle definition may be more complex. For
`15 example, priorities may be signaled so that the implemen
`tation may determine which applications may execute in the
`event that the hardware is not capable of supporting all of the
`signaled applications simultaneously.
`Applications developed for use in interactive television
`systems may generally include progranmiing code similar to
`that of progranmiing languages such as C, C++, etc. How
`ever, with the proliferation of the World Wide Web (Web),
`and the desire to take advantage of Web and Web like
`resources in interactive television systems, the use of other
`languages such as HTML and the Javascript™ (JS) language
`may be useful. However, while the use of HTML applica
`tions may be desired, the life cycle of HTML applications in
`an interactive television environment may be complicated
`30 by several factors.
`First, HTML/JS content may be more dynamic than
`persistent. For example, in a current interactive television
`environment, an application may be configured to only
`execute code or use data that is packaged within the carousel
`35 in the same directory as the first program module. Hence, for
`security reasons the directory contents may clearly define
`the application boundary and the permissions signaled
`within the directory may be applied to the entire contents of
`the directory. However, HTML/JS content may refer to other
`40 content (e.g., via a link) that is to be acquired from some
`location other than the carousel and the content that is
`referred to may replace the initial content. It is not clear that
`it is safe in this case to apply the same security permissions
`to such replacing content. Therefore, due to this dynamic
`nature, it is more difficult to define an "application bound
`ary."
`Second, even when a product does not support multiple
`concurrent applications and restricts the application to only
`that content carried within the same directory in the carou
`sel, there may be life cycle issues that affect the way that a
`content author designs the HTML/JS content. For example,
`if it is determined that the broadcaster can signal that an
`application may quit, it may be useful to invoke a handler
`written by the content author to respond to such an event.
`Similarly, there may be other states which might best be
`handled by an application-specific handler. For example, if