`Case 3:l6—cv—O2433 Document 1-7 Filed 05/04/16 Page 1 of 13
`
`
`
`EXHIBIT G
`
`EXHIBIT G
`
`
`
`
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 2 of 13
`°"‘Se3‘16'°”'°2433 D°°”me“f|fl|fl|||||l|'||Ffl||flWflfl|Hfl|lllllifllfllml||||l|l||||||||||||||
`
`US006895595B2
`
`(12) United States Patent
`Goodman et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,895,595 B2
`*May 17, 2005
`
`(54) MODULE MANAGER FOR INTERACTIVE
`TELEVISION SYSTEM
`
`(75)
`
`Inventors: Andrew Goodman, Menlo Park, CA
`.
`(CUAS)(’UJSe)an Rene Menand’ Palo Alto’
`
`6,317,885 B1 * 11/2001 Fries ........................ .. 725/109
`6,381,748 B1
`4/2002 Lin et al.
`6,427,238 B1 *
`7/2002 Goodman et al.
`;VTighttet1a1~
`,
`,
`ang e a .
`6,487,723 B1 * 11/2002 Maclnnis .................... 725/132
`FOREIGN PATENT DOCUMENTS
`
`........ .. 725/136
`
`(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. 154(b) by 333 days.
`
`EP
`$530
`
`11/1990
`
`0 399 200
`Ogggogig
`OTHER PUBLICATIONS
`
`.
`.
`.
`.
`.
`Thls Patent 15 5ubJeCt to 3 termmal d15'
`Clalmen
`
`(21) Appl. No.: 10/164,823
`(22)
`Filed:
`Jun. 7, 2002
`(65)
`Prior Publication Data
`
`Us 2002/0152477 A1 Oct‘ 17’ 2002
`Related U.S. Application Data
`(63) Continuation of application No. 09/087,269, filed on May
`29, 1998, now Pat. No. 6,427,238.
`Int. Cl.7 ........................... H04N 7/16; H04N 7/173
`(51)
`.
`.
`.
`(52) U.S. Cl.
`..................... .. 725/136, 725/109,.725/132,
`_
`725/139’ 725/152
`(58) Field of Search ............................... .. 725/131, 139,
`725/142> 152> 109> 110» 48‘51> 136
`_
`References Clted
`Us. PATENT DOCUMENTS
`
`(56)
`
`8/1995 B39011 et 31-
`5340532 A *
`8/1996 Menand et al‘ ““““““ " 370/477
`5548532 A
`4/1997 Mcclellan et al‘ """" " 725/132
`5’619’250 A *
`4/1997 Rohatgi et al.
`5,625,693 A
`709/243
`9/1998 Danneels et al.
`5,805,825 A *
`
`3/1999 Harrison ................ .. 725/139
`5,878,222 A *
`5,990,927 A * 11/1999 Hendricks et al.
`..
`725/132
`.......... .. 348/552
`6,157,411 A * 12/2000 Williams et al.
`6,177,930 B1 *
`1/2001 Chernock et al.
`......... .. 345/716
`
`Magazine Radio—Fernsehen Elektronik, Issue 9 and Issue
`10, 1996; Cover sheet, pp. 28 to 31 (Issue 9) and pp. 38 to
`40 (Issue 10). English translation attached.
`Praxis;
`“Europa—Premiere: Empfanger
`fur das digitale
`Fernsehen”; Funkschau 1995, Issue 11, pp. 62-65. English
`translation attached.
`*
`'t d b
`'
`C1 e
`y exammer
`Primary Examiner—Hai Tran
`Assistant Examiner—Son P. Huynh
`ggégtgrgiétgfegtb
`Raififlons Hood Kwhn
`(57)
`ABSTRACT
`
`System and method Implemented In .an lnteyactlve te.1e.V1-
`sion system for managing modules of interactive television
`applications. The System transmits modules from a broad_
`cast station to a plurality of receiving stations through
`Various paths, Such as broadcast Channels and modem Chan_
`nels. The receiving stations have module managers which
`store module requests and which monitor the various chan-
`nels for modules corresponding to the requests. When mod-
`ules are transmitted on the.monitored channels, they are
`matched with the corresponding stored requests. If a module
`matches one of the requests, or if is an auto-loading module,
`it is stored in the receiving station. If a module has not been
`re uested and is not an auto-loadin module it is i nored
`TS
`d
`d 1
`dd d
`lg
`f
`a 1
`g .1 b1‘
`3 S‘°“°'
`. H10 “ C5 are a
`C
`‘O a 1.5‘ 0 H10. “ ‘.35 aw“ a
`3
`for exeeutlen Of fer use by an exeeutlng applleatlenr and the
`eorrespendlng requests are deleted
`
`20 Claims, 4 Drawing Sheets
`
`BROAD
`—CAST
`SIGNAL
`
`To TV
`
`CTRL MMU
`E.
`3_0
`
`
`
`
`
`USER INPUT
`
`TO PHONE LINE
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 3 of 13
`Case 3:16—cv—O2433 Document 1-7 Filed 05/04/16 Page 3 of 13
`
`U.S. Patent
`
`May 17, 2005
`
`Sheet 1 of 4
`
`US 6,895,595 B2
`
` SOURCE
`
`
`
`1_1
`
`
`
`COMPRESSION
`
`E
`
`BROAD
`—CAST
`
`S|GNAL
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 4 of 13
`Case 3:16—cv—O2433 Document 1-7 Filed 05/04/16 Page 4 of 13
`
`U.S. Patent
`
`May 17, 2005
`
`Sheet 2 of 4
`
`US 6,895,595 B2
`
`TRANSMISSION
`
`ORDER
`
`DIRECTORY
`
`MODULE 1
`
`MODULE 2
`
`.
`
`MODULE 15
`
`CAROUSEL
`
`MODULES
`
`I DIRECTORY |
`
`MODULE 1
`
`MODULE 2
`
`:> DIRECTORY
`
`MODULE N
`
`MODULE 16
`
`MODULE N
`
`DIRECTORY
`
`FIG. 3
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 5 of 13
`Case 3:16—cv—O2433 Document 1-7 Filed 05/04/16 Page 5 of 13
`
`U.S. Patent
`
`May 17, 2005
`
`Sheet 3 of 4
`
`US 6,895,595 B2
`
`51 \
`
`DATA
`
`2
`
`.513.
`
`L_
`
`
`
`_‘j"'_'*T
`
`H
`£5.61
`
`DATA
`5»f5_a
`
`54a/'
`
`54b /"
`
`DATA
`H
`§§Q
`5.529
`L.
`
`1
`
`H
`' @
`
`'
`
`'
`
`DATA
`5_69
`
`CRC
`Q
`
`54c/'
`
`
`
`H
`5_
`
`DATA
`5_9éI
`
`DATA
`5_9_b
`
`‘
`
`’
`
`‘
`
`DATA
`Q93
`
`FIG. 4
`
`M‘
`
`M2
`
`FIG. 5
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 6 of 13
`Case 3:16—cv—O2433 Document 1-7 Filed 05/04/16 Page 6 of 13
`
`U.S. Patent
`
`May 17, 2005
`
`Sheet 4 of 4
`
`US 6,895,595 B2
`
`
`
`CLIENT INTF.
`§l
`
`_.-.——._ —.__—._....—__.____—__————..__.—__—_...___
`
`«-
`
`
`
` POST-LOAD
`
`MGR.
`
`
`SOURCE
`INTF.
`51
`
`CAROUSEL
`D.B.
`§§
`
`u_.._.—__—-—___._..-.._.__——..-___-______ —_.__...
`
`
`
`POST-LOAD LOADED
`
`
`
`POST-LOAD
`
`LOADING
`ZOMBIE
`
`ZOMBIE
`
`FIG. 7
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 7 of 13
`Case 3:16—cv—O2433 Document 1-7 Filed 05/04/16 Page 7 of 13
`
`US 6,895,595 B2
`
`1
`MODULE MANAGER FOR INTERACTIVE
`TELEVISION SYSTEM
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application is continuing application of U.S. patent
`application Ser. No. 09/087,269, filed May 29, 1998, now
`U.S. Pat. No. 6,427,238.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`1. Field of the Invention
`
`The invention relates to interactive television systems and
`more particularly to management of application modules
`which are delivered to an interactive television receiver.
`
`15
`
`2. Description of the Related Art
`Interactive television systems enable television sets to be
`used to provide various new means for providing services to
`viewers. Interactive television systems are capable of dis-
`playing text and graphic images in addition to typical video
`program streams. Interactive television systems are also
`capable of registering viewer actions or responses. Proposed
`features of interactive television include a variety of
`marketing, entertainment and educational capabilities such
`as allowing a user to interact with televised programs by
`ordering advertised products or services, competing against
`contestants in a game show, or requesting specialized infor-
`mation regarding particular programs.
`Typically, a broadcast service provider generates an inter-
`active television signal for transmission to a viewer’s tele-
`vision. The interactive television signal includes an interac-
`tive portion consisting of application code or control
`information, as well as an audio-video portion consisting of
`a television program. The broadcast service provider com-
`bines the audio-video and interactive portions into a single
`signal for transmission to a receiver connected to the user’s
`television. The signal
`is generally compressed prior to
`transmission and transmitted through typical broadcast
`channels, such as cable television (CATV) lines or direct
`satellite transmission systems.
`The interactive functionality of the television is controlled
`by a set-top box connected to the television. The set-top box
`receives the signal
`transmitted by the broadcast service
`provider, separates the interactive portion from the audio-
`video portion and decompresses the respective portions of
`the signal. The set-top box uses the interactive information
`to, for example, execute an application while the audio-
`video information is transmitted to the television. The set-
`
`top box may combine the audio-video information with
`interactive graphics or audio generated by the interactive
`application prior to transmitting the information to the
`television. The interactive graphics and audio may present
`additional information to the viewer or may prompt the
`viewer for input. The set-top box may provide viewer input
`or other information to the broadcast service provider via a
`modem connection.
`
`Interactive television applications may consist of a set of
`program modules. The set of modules forming an applica-
`tion is typically self-contained in that all of the code needed
`by the application is in the set of modules. The first module
`is a directory module which identifies all of the modules
`which are part of the application. The entire set of modules,
`which is listed in the directory module, is transmitted via the
`broadcast channel to the set-top box and the application is
`executed. If a first
`interactive television application has
`completed execution and a second is to be executed, the
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`directory and other modules of the second application are
`transmitted to the set-top box and the second application is
`executed. The entire set of modules used by the second
`application are transmitted even though some of the modules
`might be identical to modules used by the first application.
`
`SUMMARY OF THE INVENTION
`
`One of the advantages of designing software applications
`in a modular fashion is the ability to share modules between
`applications. The advantages of modularity may include
`conserving the limited amount of memory in a set-top box
`which can be used for interactive applications, reducing the
`time required to download applications from a broadcast
`station to a set-top box and reducing the amount of appli-
`cation code which must be written by allowing modules to
`be shared. The components of an application, however, may
`reside in different carousels (sets of modules, as described in
`more detail below) or in modules which may not be avail-
`able at
`the time the application begins execution.
`It
`is
`therefore desirable to implement a system for management
`of the different modules. It would be advantageous for this
`management system to be capable of handling modules
`which have not yet been received and which may have to be
`extracted from an interactive television signal. Further, it
`would be advantageous for this management system to be
`capable of simultaneously monitoring several sources (e.g.,
`a broadcast channel and a modem channel) for the modules
`needed by an application.
`The invention comprises a system and method for man-
`aging modules of interactive television applications. One
`embodiment of the invention includes a set-top box config-
`ured with several input ports for receiving one or more
`interactive television signals which may embody the carou-
`sel modules. The interactive television signals typically
`comprise packets of compressed data corresponding to mod-
`ules of an interactive television application,
`television
`programs, or other interactive television data. (“Television
`program” as used herein refers generally to any type of audio
`and/or video programming which is normally viewed on a
`television.) The various types of packets are generally time
`multiplexed with each other. The set-top box monitors the
`input ports to determine whether a packet received at the
`input port contains module data and,
`if so, whether the
`module should be processed and stored in the set-top box. If
`the system determines that the module should be stored, the
`packets corresponding to the module are extracted from the
`interactive television signal. When all of the packets corre-
`sponding to the module have been extracted from the
`interactive television signal, the module is processed and
`made available for execution.
`
`If there is no interactive television application executing
`in the set-top box, the system monitors the input ports for
`auto-loading modules, such as application directory mod-
`ules. When one of these application directory modules is
`detected, the system begins collecting packets containing
`data from the directory module. When all of these packets
`have been collected, the system reconstructs the directory
`module and authenticates it. The system then monitors the
`input ports for the carousel modules (i.e., those listed in the
`directory module,) stores the corresponding packets and
`reconstructs the modules for use by the application corre-
`sponding to the carousel.
`The executing application may request modules which are
`not yet available in the set-top box. These requests are stored
`by the system, which monitors the input ports for the
`corresponding modules. The system collects the packets of
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 8 of 13
`Case 3:16—cv—O2433 Document 1-7 Filed 05/04/16 Page 8 of 13
`
`US 6,895,595 B2
`
`3
`these modules when they are detected at the input ports, then
`stores the modules. The system thus matches incoming
`modules with pending requests and makes the modules
`available for execution. The system may provide for mod-
`ules which are in greater demand among subscribers of the
`system to be transmitted to all of the subscribers via a
`broadcast channel, while modules which are in less demand
`are transmitted to individual subscribers via a modem chan-
`nel.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Other objects and advantages of the invention will
`become apparent upon reading the following detailed
`description and upon reference to the accompanying draw-
`ings in which:
`FIG. 1 is a block diagram illustrating the distribution of
`interactive television applications and television programs
`from their sources to a series of viewers.
`
`FIG. 2 is a block diagram of a set-top box used in one
`embodiment of the invention.
`
`FIG. 3 is an illustration of the component modules of a
`carousel and the transmission order of the modules in one
`embodiment of the invention.
`
`FIG. 4 is a block diagram illustrating the manner in which
`the data comprising a module is packetized in one embodi-
`ment of the invention.
`
`10
`
`15
`
`20
`
`25
`
`FIG. 5 is a diagrammatic representation of the signal
`transmitted from the broadcast station to a receiving station
`in one embodiment of the invention.
`
`30
`
`FIG. 6 is a block diagram illustrating the organization of
`one embodiment of the invention.
`
`FIG. 7 is a state diagram illustrating the handling of
`module requests in one embodiment of the invention.
`While the invention is susceptible to various modifica-
`tions and alternative forms, specific embodiments thereof
`are shown by way of example in the drawings and will
`herein be described in detail.
`It should be understood,
`however, that the drawings and detailed description thereto
`are not intended to limit the invention to the particular form
`disclosed, but on the contrary, the intention is to cover all
`modifications, equivalents and alternatives falling within the
`spirit and scope of the present invention as defined by the
`appended claims.
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`One embodiment of the invention is described below. In
`
`this embodiment, an interactive television receiver accepts
`an audio-video-interactive signal via a broadcast channel
`such as direct satellite transmission. (“Direct” satellite trans-
`mission as used herein contemplates transmissions received
`by the interactive television receiver, more particularly by its
`antenna, directly from the satellite.) The audio-video-
`interactive signal contains television programs or similar
`audio-video content, as well as interactive content such as
`control signals or interactive applications. (“Broadcast” is
`used herein to refer to transmission of a single signal to all
`subscribing receivers.) The interactive television receiver is
`also configured to receive signals via a modem channel. The
`signals transmitted via the broadcast and modem channels
`may both embody various modules. Each of these two
`channels is therefore considered a “module source” for the
`
`purposes of this description. The modules contained in the
`signals from the module sources may comprise components
`of an interactive application. The modules can contain any
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`type of data, such as application code, raw data or graphical
`information. Because the modules are generally transmitted
`to the television receiver in a cyclic manner,
`the set of
`modules is often referred to as a carousel. (An application is
`a carousel which contains a “top-level” program.) A module
`manager is implemented in the system to control the manner
`in which the modules are requested by an application,
`received from the module sources and matched with the
`
`application requiring the modules.
`If no application is executing in the system, the module
`manager monitors the module sources for modules which
`are auto-loading. The directory module of an interactive
`application, for example, may be auto-loading. If an appli-
`cation is executing in the system,
`the application may
`request modules. More particularly, it may request modules
`which are not part of the same carousel as the application.
`The module manager stores the application’s requests and
`monitors the module sources for modules corresponding to
`the requests. When one of the requested modules is detected,
`the module manager stores it, makes it available to the
`executing application and removes the request from the
`module manager’s request queue. If the module manager
`receives a module which has not been requested and which
`cannot be automatically loaded, the module is ignored (i.e.,
`it is not stored in the system.)
`Referring to FIG. 1, a block diagram illustrating the
`distribution of interactive television applications and tele-
`vision programs from their sources to a series of viewers is
`shown. Broadcast station 10 has several program sources 11.
`These sources may include remote broadcast network feeds,
`videotape recorders, computers, data storage devices, and
`the like. Sources 11 may provide interactive applications,
`control information or audio or video information which is
`
`to be included in the interactive television signal. The
`information provided by sources 11 is typically compressed
`by compression units 12 in order to conserve bandwidth.
`Any of a number of compression algorithms, such as one of
`the Motion Picture Expert Group (MPEG) compression
`standards, may be used if appropriate for a particular pro-
`gram or application. Time stamps may also be added to, for
`example, synchronize associated audio and video signals.
`Some information may not be easily or effectively
`compressed, so some of the information may be routed
`directly from the source to packetization unit 13 without
`compressing the information. Packetization units 13 accept
`the compressed (or uncompressed) information and format it
`into packets for transmission over the broadcast channel.
`The packetization of the information will be described in
`more detail below. The packets are fed into multiplexing unit
`14, which intersperses the packets prior to transmission. The
`interspersed packets are then broadcast
`to the receiving
`stations 20. (Although only one receiving station is shown in
`the figure, it is contemplated that the audio-video-interactive
`signal
`is broadcast
`to a group of subscribing receiving
`stations.) In the figure, the audio-video-interactive signal is
`depicted as being transmitted via satellite broadcast through
`antenna 15.
`
`The broadcast signal is relayed by communications sat-
`ellite 18 and received by receiving station 20. Although the
`figure illustrates a satellite transmission, it is contemplated
`that any broadcast medium (e.g., CATV or direct satellite
`transmission) may be used. Receiving station 20 is contem-
`plated to be one of a number of such stations which are
`subscribers of the broadcast service provider operating
`broadcast station 10. The broadcast signal is collected by
`receiving antenna 21 and fed to receiver 22, which in this
`embodiment is contemplated to be a set-top box. Set-top box
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 9 of 13
`Case 3:16—cv—O2433 Document 1-7 Filed 05/04/16 Page 9 of 13
`
`US 6,895,595 B2
`
`5
`22 processes the packetized signal to reconstruct the televi-
`sion programs and interactive applications embodied in the
`signal. The reconstructed applications are executed in the
`set-top box, while the reconstructed television programs are
`passed to the television, where they are displayed. The
`interactive applications may generate graphics or audio
`which are combined with the television program prior to
`being displayed.
`In addition to the broadcast channel between the broad-
`
`there may be other
`cast station and receiving station,
`channels, such as a modem channel (which may also be
`referred to as an http, or hypertext
`transfer protocol,
`channel.) These types of channels serve two functions in the
`system: they allow the set-top box to provide feedback to the
`broadcast station; and they provide an alternate path for
`programs and applications from sources 12 to be delivered
`to receiving station 20.
`Referring to FIG. 2, a block diagram of a set-top box 22
`is shown. The broadcast signal is received and fed into tuner
`31. Tuner 31 selects the channel on which the broadcast
`
`audio-video-interactive signal is transmitted and passes the
`signal to processing unit 32. (Tuner 31 may be replaced by
`other means, all collectively referred to herein as input ports,
`for receiving signals from various signal sources.) Process-
`ing unit 32 demultiplexes the packets from the broadcast
`signal if necessary and reconstructs the television programs
`and/or interactive applications embodied in the signal. The
`programs and applications are then decompressed by
`decompression unit 33. The audio and video information
`associated with the television programs embodied in the
`signal
`is then conveyed to display unit 34, which may
`perform further processing and conversion of the informa-
`tion into a suitable television format, such as NTSC or
`HDTV audio/video. Applications reconstructed from the
`broadcast signal are routed to random access memory
`(RAM) 37 and are executed by control system 35. Module
`manager unit 30 is contained within control system 35. In
`one embodiment, module manager unit 30 is implemented in
`software, but it may also be implemented in hardware or a
`combination of hardware and software.
`
`Control system 35 may include a microprocessor, micro-
`controller, digital signal processor (DSP), or some other type
`of software instruction processing device. RAM 37 may
`include memory units which are static (e.g., SRAM),
`dynamic (e.g., DRAM), volatile or non-volatile (e.g.,
`FLASH), as required to support the functions of the set-top
`box. When power is applied to the set-top box, control
`system 35 executes operating system code which is stored in
`ROM 36. The operating system code executes continuously
`while the set-top box is powered in the same manner the
`operating system code of a typical personal computer (PC)
`and enables the set-top box to act on control information and
`execute interactive and other applications. The set-top box
`also includes modem 38. Modem 38 provides both a return
`path by which viewer data can be transmitted to the broad-
`cast station and an alternate path by which the broadcast
`station can transmit data to the set-top box.
`it is
`Although the term “set-top box” is used herein,
`understood that this term refers to any receiver or processing
`unit for receiving and processing a transmitted signal and
`conveying the processed signal
`to a television or other
`monitor. The set-top box may be in a housing which
`physically sits on top of a television, it may be in some other
`location external to the television (e.g., on the side or back
`of the television or remotely located from the television), or
`it may be incorporated into the television itself. Set-top box
`22 serves to demodulate the signal received from broadcast
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`station 10 and to separate the components of the signal, such
`as different television programs and interactive applications.
`Similarly,
`television 23 may be a television or a video
`monitor employing any suitable television format (e.g.,
`NTSC or HDTV), or it may be replaced by other devices,
`such as a video recorder.
`
`The receiving station is operatively connected to the
`broadcast station by a broadcast channel. This broadcast
`channel could utilize various transmission media and is
`contemplated to include media such as coaxial cable and
`free space (e.g., as used for direct satellite transmissions.)
`The broadcast channel forms a transmission path between
`the broadcast station and the receiving station. The broadcast
`station and receiving station are also connected by a return
`path. The return path typically consists of a pair of modems,
`one in the receiving station and one in the broadcast station,
`each connected to a standard telephone line. Other means for
`establishing a return path, e.g., using a portion of the
`bandwidth of the transmission path, are also contemplated.
`Referring to FIG. 3, an application (and in fact, any
`carousel) consists of a series of modules, one of which is a
`directory module. The directory module has a unique iden-
`tifier so that it can be identified during transmission without
`further information. The directory module contains an entry
`for each of the modules in the application and any module
`which does not have a corresponding entry in the directory
`module is not recognized by the application. The directory
`module contains enough information to allow the interactive
`television receiver to access all of the parts (i.e., modules) of
`the application which may be necessary for execution of the
`program. The directory module must be accessed before the
`other modules of the application so that the remainder of the
`modules can be properly interpreted. The directory module
`may be transmitted several times during the cycle in which
`the modules of the application are transmitted in order to
`ensure that it is available for essentially random access to the
`other modules.
`
`the applications have a
`The directory modules of all
`common format. The format consists of three parts: a portion
`having fixed-length components; a portion having variable-
`length components; and a portion having certification infor-
`mation. The fixed-length portion contains data on the appli-
`cation and each of the modules in the application. The
`variable-length portion contains string data on the module
`names and the hash of the modules. The certification portion
`contains the producer certificate and directory signature.
`In one embodiment, an application includes at least one
`module which is downloaded and executed automatically.
`Other modules containing data or additional code may not
`be needed immediately, so they may be downloaded after
`execution of the application begins. The downloading of
`these modules may be subject
`to timing constraints,
`however, so the interactive television system is configured to
`take these constraints into account and deliver the modules
`
`in a timely manner. If necessary, one of these modules may
`be multiplexed with other modules or data to be sure it is
`received when needed.
`
`Referring to FIG. 4, each of the modules 51 has a data
`segment 52 and a CRC segment 53. The data segment 52 of
`the directory module is described above. The data segment
`52 of the remainder of the modules can contain any type of
`data, such as application code or raw data. The CRC
`segment 53 of each of the modules is used for error control
`and is computed for the entire module 51. Each of the
`modules 51 has a unique identifier.
`Before the modules 51 are transmitted, they are formatted
`into transmission units 54. For the purposes of discussion,
`
`
`
`Case 3:16-cv-02433 Document 1-7 Filed 05/04/16 Page 10 of 13
`Case 3:16—cv—O2433 Document 1-7 Filed 05/04/16 Page 10 of 13
`
`US 6,895,595 B2
`
`7
`items referenced by the same number but different letters
`(e.g., 54a, 54b, 54c) will be collectively referred to by the
`number only (e.g., 54). Each of the transmission units 54
`contains header information 55, which uniquely identifies
`that transmission unit 54 within the stream of transmission
`units, and data 56 which comprises a portion of the module
`being transmitted. The header 55 contains information such
`as the module ID, module offset and size, which allow the
`transmission units 54 to be reconstructed into a complete
`module 51. The transmission units 54 comprising a particu-
`lar module 51 may be interleaved with other transmission
`units 54 in the transmission stream. The last transmission
`unit 54 for a module 51 carries the CRC 53.
`
`The format of the transmission units 54 is dependent upon
`the transmission medium, but typically employs a series of
`packets of fixed length (the last packet may be padded to
`obtain the proper length.) The first packet 58 in the series
`carries the header information for the transmission unit 54.
`
`10
`
`15
`
`This header packet 58 is a special packet which can generate
`an interrupt in the CPU and which contains information to
`enable the CPU to determine whether the module 51 should
`
`20
`
`be decoded and where it should be loaded into memory. The
`header packet 58 in a direct satellite transmission utilizes an
`auxiliary type packet which can generate an interrupt. The
`remainder of the packets 58 in a direct satellite transmission
`utilize a basic type packet which simply carries the trans-
`mission unit data.
`The audio-video-interactive transmission from the broad-
`
`25
`
`cast station to the interactive television receiver comprises a
`series of transmission units. The transmission units which
`
`30
`
`8
`A certificate is a collection of information which typically
`identifies a module and can be taken as proof of the
`module’s authenticity and integrity. The certificate may use
`“public key” encryption for this purpose. There are various
`encryption algorithms which may be employed by public
`key encryption systems. One embodiment uses RSA (Rivest,
`Shamir & Adleman) and DES (Data Encryption Standard)
`algorithms. Public key encryption utilizes a pair of encryp-
`tion keys, one of which is termed a private key and one of
`which is called a public key. The private key is kept secret
`by its owner, while the public key is made freely available.
`A message or other file which is encrypted with the public
`key can only be decrypted with the private key. Likewise, a
`file which is encrypted with the private key can only be
`decrypted with the public key. Thus, when a public-key
`encrypted message is sent to the owner, the sender can be
`assured that, even if the message is intercepted, only the
`owner (who holds the private key) can decrypt it and read
`the message.
`The set-top box maintains copies of the public keys of one
`or more trusted parties. When the set-top box receives a
`directory module,
`it checks the module for a certificate
`signed with the private key of the producer. The certificate
`contains a producer’s certificate, which is the producer’s
`public key, signed by a trusted party. The set-top box, having
`a copy of the trusted party’s public key, can verify that the
`producer’s certificate (the producer’s public key) is authen-
`tic. Then, the producer’s authenticated public key can be
`used to verify that the certificate is unaltered. The security
`mechanism may also include performing a hash function
`over the modules and including the hash value in the
`corresponding directory module or the like. Credentialing or
`other security in the directory module is typically imple-
`mented after the insertion of the other modules’ hash values
`
`with their entries in the directory module.
`The module manager controls delivery, access and other
`functions which relate to the modules. Referring to FIG. 6,
`a block diagram illustrating the organization of one embodi-
`ment of the module manager 60 is shown. Module manager
`60 includes a series of interfaces 61-63, a series of databases
`64-66 and a post-load manager 67. The interfaces are source
`interface 61, client interface 62 and control task interface 63.
`The databases include, credential database 64, carousel
`database 65 and request database 66.
`Source interface 61 manages requests from module
`sources. Source interface 61 is a series of uni-directional
`
`channels from the module sources to module manager 60.
`Source interface 61 includes a mechanism for requesting a
`buffer which can be used to store a module received from
`one of the module sources.
`
`35
`
`40
`
`45
`
`50
`
`form a given module are typically time multiplexed with
`other information. This information may consist of trans-
`mission units of another module or compressed audio or
`video. The transmission units which are received by the
`interactive television receiver are reconstructed into their
`
`respective application modules.
`Referring to FIG. 5, a diagrammatic representation of the
`signal transmitted from broadcast station 10 to receiving
`station 20 is shown. The packets of several program sources
`are multiplexed into a single transmission stream if neces-
`sary. These packets may contain data for various