US20040205826A1 - Method and system for emulating an HTTP server through a broadcast carousel - Google Patents
Method and system for emulating an HTTP server through a broadcast carousel Download PDFInfo
- Publication number
- US20040205826A1 US20040205826A1 US10/833,835 US83383504A US2004205826A1 US 20040205826 A1 US20040205826 A1 US 20040205826A1 US 83383504 A US83383504 A US 83383504A US 2004205826 A1 US2004205826 A1 US 2004205826A1
- Authority
- US
- United States
- Prior art keywords
- carousel
- resource
- broadcast
- interactive television
- point
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000002452 interceptive effect Effects 0.000 claims abstract description 188
- 238000013507 mapping Methods 0.000 claims description 16
- 230000000153 supplemental effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims 13
- 230000008569 process Effects 0.000 abstract description 12
- 230000005540 biological transmission Effects 0.000 description 16
- 230000008901 benefit Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000006854 communication Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H20/00—Arrangements for broadcast or for distribution combined with broadcast
- H04H20/16—Arrangements for broadcast or for distribution of identical information repeatedly
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H20/00—Arrangements for broadcast or for distribution combined with broadcast
- H04H20/20—Arrangements for broadcast or distribution of identical information via plural systems
- H04H20/24—Arrangements for distribution of identical information via broadcast system and non-broadcast system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
- H04N21/23617—Multiplexing of additional data and video streams by inserting additional data into a data carousel, e.g. inserting software modules into a DVB carousel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26266—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for determining content or additional data repetition rate, e.g. of a file in a DVB carousel according to its importance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4622—Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/165—Centralised control of user terminal ; Registering at central
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17318—Direct or substantially direct transmission and handling of requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H20/00—Arrangements for broadcast or for distribution combined with broadcast
- H04H20/26—Arrangements for switching distribution systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H2201/00—Aspects of broadcast communication
- H04H2201/30—Aspects of broadcast communication characterised by the use of a return channel, e.g. for collecting users' opinions, for returning broadcast space/time information or for requesting data
- H04H2201/37—Aspects of broadcast communication characterised by the use of a return channel, e.g. for collecting users' opinions, for returning broadcast space/time information or for requesting data via a different channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/09—Arrangements for device control with a direct linkage to broadcast information or to broadcast space-time; Arrangements for control of broadcast-related services
- H04H60/11—Arrangements for counter-measures when a portion of broadcast information is unavailable
Definitions
- This invention relates generally to the field of interactive television. More specifically, it relates to a method and system for sending and receiving resources in an interactive television system.
- a broadcast server In a broadcast environment, such as interactive television, a broadcast server generally defines a set of resources to be broadcast over a broadcast path.
- the broadcast path is typically unidirectional, and the resources are broadcast to one or more receivers.
- An interactive television receiver ordinarily connects to a television or other display device, which can ultimately display the resources to a user.
- the receiver may also communicate with the broadcast server or with other devices using a point-to-point path, and the point-to-point path may be used to retrieve resources that are not available on the typically faster broadcast path.
- HTML Hypertext Markup Language
- HTML applications can be made of a number of resources referenced through unique identifiers, such as a uniform resource locator (“URL”) or a uniform resource identifier (“URI”). These identifiers point to resources, such as a server or other computer, on which the HTML application may be stored.
- URL uniform resource locator
- URI uniform resource identifier
- An application can be authored in a scripting language, e.g. HTML and Javascript, and published to a recipient using a HyperText Transfer Protocol (“HTTP”) server.
- HTTP HyperText Transfer Protocol
- a software component such as a browser can receive the application and display the application's resources.
- the HTML browser typically establishes a connection with the server indicated by an identifier, such as a URL (for example) and fetches the resource.
- the communication scheme between the HTML browser and the application server is generally a point-to-point scheme, where the HTML browser establishes a bi-directional connection with the server. This scheme may contrast with the unidirectional broadcast path in an interactive television environment.
- One example of an application that Digital TV has made possible is interactive television.
- an HTML browser may operate on a Digital TV device.
- An application is then rendered onto a display connected to the Digital TV device by establishing a connection with the server publishing the application.
- the Digital TV environment based on an HTML browser does not provide many of the advantages of a broadcast environment.
- UHTTP Unidirectional HyperText Transfer Protocol
- UHTTP provides a method for broadcasting and locally storing resources.
- a UHTTP server feeds the recipient's local cache by sending data until the cache fills or until all the data has been sent.
- a drawback of UHTTP is that the amount of data that can be transmitted to a recipient is limited to the recipient's local storage capabilities.
- Many interactive television receivers currently in use have a limited memory capacity. The local caching strategy used by UHTTP for handling HTTP resources can therefore disadvantageously limit the efficiency of low-memory interactive television receivers.
- interactive television receivers may request resources via, either point-to-point or broadcast paths.
- UHTTP systems require that an application use a specific syntax for requests of resources from broadcast paths.
- the syntax used for requests on the broadcast paths differs from the syntax for requests of resources on point-to-point paths. This difference in syntax may result in an interactive television receiver requesting a resource over the broadcast path that is not available on the broadcast path.
- a interface module may run on an interactive television receiver.
- the interface module may receive a request for a resource from an application program.
- the interface module may determine whether the resource is available on a broadcast path or a point-to-point path, and it may convert the request received from the application program into a format used by either the broadcast path or the point-to-point path.
- the interface module may obtain the resource from the broadcast path or the point to point-to-point path, and it may provide the resource to the application program.
- FIG. 1 is an exemplary architecture for an interactive television system
- FIG. 2 shows a division of an interactive television application into modules
- FIG. 3 shows an exemplary order for transmitting the modules of FIG. 2 to an interactive television receiver via a broadcast path
- FIG. 4 shows an exemplary interactive television system using a carousel manager
- FIG. 5 shows the carousel manager used in the interactive television system of FIG. 4;
- FIG. 6 is a flowchart of an exemplary process for building a broadcast carousel
- FIG. 7 shows a block diagram illustrating a interface module running on an interactive television receiver
- FIG. 8 is a flowchart of an exemplary process for obtaining a resource using the interface module of FIG. 7;
- FIG. 9 is a flowchart of another exemplary process for obtaining a resource using the interface module of FIG. 7.
- Interactive television provides a way to transmit interactive content to a television.
- Interactive television systems can provide text, audio, video, hypertext transfer protocol (“HTTP”) resources, or other content to a television, and they can also receive input from a television user.
- HTTP hypertext transfer protocol
- FIG. 1 depicts an exemplary architecture for an interactive television system 62 .
- a broadcast server 50 sends information along a broadcast path 52 to an interactive television receiver 54 .
- the broadcast server 50 may be any computer or other type of server capable of sending information along a data link.
- the broadcast server 50 preferably contains a processor and memory.
- the processor executes programs, which may be stored in memory. Additionally, the memory contains content to be broadcast along the broadcast path 52 to the interactive television receiver 54 .
- the broadcast path 52 can be any type of data link and can carry data in a variety of different formats.
- the broadcast path 52 is a cable television transmission path used to transmit cable television signals from a cable television provider to a television 56 .
- the data transmitted along the broadcast path 52 may use the same signaling protocols that are used for transmission of cable television signals along the path.
- the broadcast path 52 comprises a wireless direct satellite transmission system.
- a signal is sent wirelessly by a satellite to a satellite dish, or other receiver, linked to the television 56 . Once received by the satellite dish, the signal may travel through a data link to the television 56 or to the interactive television receiver 54 .
- the broadcast path 52 may be part of a wireless telecommunications network.
- one or more terrestrial antennas may be used to send signals over the broadcast path to the television.
- the interactive television receiver 54 connects to the broadcast path 52 of an interactive television system, and it receives interactive television signals sent along the broadcast path 52 .
- the interactive television receiver 54 ordinarily contains a processor and memory.
- the interactive television receiver 54 is capable of executing programs stored in its memory, and it is capable of executing programs received along the broadcast path 52 from the broadcast server 50 .
- the interactive television receiver 54 includes a set-top box of a type that is well-known in the art, connected to the television 56 .
- another device connected to the television 56 such as a computer, a game console, or another programmable device, can function as the interactive television receiver 54 .
- the interactive television receiver 54 is illustrated as a separate component from the television 56 , in an alternative embodiment all or part of the functionality of the interactive television receiver 54 may be integrated into the television 56 . In yet another embodiment, the functionality of the interactive television receiver 54 may be distributed across more than one component connected to the television 56 .
- the interactive television receiver 54 connects to the television 56 and provides an interface between the broadcast server 50 and the television 56 .
- the interactive television receiver 54 may pass cable television signals straight through to the television 56 , which would allow the ordinary viewing of cable television signals.
- the interactive television receiver 54 may receive and process interactive television signals sent from the broadcast server 50 .
- the interactive television receiver 54 may convert the interactive television signals into a format understood by the television 56 .
- the interactive television signals sent from the broadcast server 50 may need to be decompressed or decoded.
- the interactive television receiver 54 can perform decoding and decompression to recover the original signals, and it may perform other processing on these signals.
- the interactive television receiver 54 sends the interactive television content that has been converted into a proper format for display, to the television 56 for display. A user may then view the interactive television content displayed on the television 56 .
- the interactive television receiver 54 may additionally contain input devices. For example, it may contain a keyboard, mouse or other devices to allow a user to interact with the television 56 and the interactive television receiver 54 . By using the input devices, the user may, for example, respond to data displayed on the television 56 . The user's selections can be used to interactively drive the content displayed on the television 56 , thus providing an interactive television system.
- input devices For example, it may contain a keyboard, mouse or other devices to allow a user to interact with the television 56 and the interactive television receiver 54 .
- the user may, for example, respond to data displayed on the television 56 .
- the user's selections can be used to interactively drive the content displayed on the television 56 , thus providing an interactive television system.
- the interactive television system provides a web-browsing session to a user.
- the interactive television receiver 54 connects to the Internet 60 through the broadcast server 50 , and the interactive television receiver 54 runs an appropriate browser.
- the interactive television receiver 54 receives Internet content from the Internet 60 via the broadcast server 50 .
- the interactive television receiver 54 then uses the browser to display the Internet content on the television 56 .
- a user can use the keyboard, mouse or other input device, to browse to different web pages or links, thereby interacting with the television 56 .
- the broadcast path 52 is typically unidirectional, although bi-directional broadcast paths may be used in interactive television systems.
- the broadcast path 52 may be the same path used for providing cable television services, and cable television services are generally unidirectional.
- signals are sent from a cable television server to the television 56 .
- the cable television signals may pass through routers, repeaters or other network devices. Since a cable television system does not require return information from the television 56 , the networks elements are ordinarily configured to only support unidirectional communication. Therefore, data cannot be sent “back” through the cable television lines to the broadcast server 50 .
- Signals in a direct satellite transmission system are transmitted from a transmission tower to a satellite and then ultimately received by a satellite dish, or other device, connected to a television 56 .
- the satellite dish is also generally equipped to only receive signals from the satellite and not to transmit signals to the satellite.
- the satellite is not configured to receive signals transmitted from various subscribers.
- the interactive television receiver 54 uses a point-to-point path 58 , also called a return path.
- the point-to-point path 58 is typically different from the broadcast path 52 .
- the point-to-point path 58 can be any number of data links, but ordinarily the point-to-point path 58 is a phone line, cable modem or other bi-directional link.
- the point-to-point path 58 could also be a wireless link, such as an interface with a cellular network.
- the point-to-point path 58 connects with the interactive television receiver 54 .
- the point-to-point path 58 connects to the Internet 60 .
- This may be done, for instance, by connecting to an Internet Service Provider (“ISP”) through a phone line.
- ISP Internet Service Provider
- the ISP may in turn provide connectivity to the Internet 60 .
- the interactive television receiver 54 can access other devices also connected to the Internet 60 .
- the interactive television receiver 54 can communicate with a service provider 64 connected to the Internet 60 .
- the interactive television receiver 54 may send a message via the point-to-point path 58 to the Internet 60 , where the message is ultimately routed to the service provider 64 .
- the interactive television receiver 54 can communicate with the broadcast server 50 via the Internet 60 or via another network connected, thus forming a bi-directional communication link between the broadcast server 50 and the interactive television receiver 54 .
- the broadcast server 50 preferably sends information to the interactive television receiver 54 via the broadcast path 52 , because the broadcast path is ordinarily faster than the point-to-point path 58 .
- the interactive television receiver 54 can send information to the broadcast server 50 using the point-to-point path 58 .
- the broadcast server 50 may send interactive television content to the interactive television receiver 54 via the broadcast path 52 using a data-flow construct hereinafter referred to as a carousel.
- An interactive television receiver 54 can include memory that can be used to store interactive television content sent from the broadcast server 50 ; however, the memory in an interactive television receiver 54 may be limited. Therefore, the interactive television receiver 54 may not be able to store in its memory an entire interactive television application or an entire piece of interactive television content.
- the broadcast server 50 may nevertheless send the interactive television content despite the limited memory in the interactive television receiver 54 by using a carousel.
- the carousel may be implemented as a stream of data partitioned to be transmitted to the interactive television receiver 54 in regular cycles.
- the cyclic, or periodic, transmission of the data permits the interactive television receiver 54 to retrieve any data not currently in memory within the carousel's cycling time. That is, the interactive television receiver 54 does not need to store an entire program since portions that do not fit in the limited memory are available during the cyclic transmission of the carousel.
- the interactive television receiver 54 may retrieve, store and display the television content by extracting the portions of data from the carousel.
- the broadcast server 50 first determines what data should be sent to the interactive television receiver 54 .
- the data may be an application to be run on the interactive television receiver 54 , it may be web pages for a web browsing session or it may be many other types of data or content supported by the interactive television system 62 .
- the broadcast server 50 then divides the data into modules.
- the modules are generally smaller data portions to be transmitted to the interactive television receiver 54 via the broadcast path 52 .
- the broadcast server 50 additionally forms a carousel directory 112 .
- the carousel directory 112 includes a listing of the carousel modules.
- the carousel directory 112 allows an interactive television application to determine what part of the carousel to access in order to obtain the resource.
- Carousel addresses identify the location of resources in the carousel.
- the modules are sent to the interactive television receiver 54 , and the interactive television receiver 54 can store the modules for use in the interactive television system 62 . Since the available memory in the interactive television receiver 54 can be limited, the modules are continually sent to the interactive television receiver 54 in a rotating fashion. When needed, the interactive television receiver 54 may retrieve a module from the broadcast path, and it may overwrite one or more previously received modules with the more recently received module.
- the interactive television receiver 54 can store only a portion of the modules at any given time, but still have access to the other modules.
- the interactive television receiver 54 needs to access a module that is not in memory, it only has to wait a short time before the module is sent as a part of the continual, rotating carousel transmissions. This can reduce the amount of memory needed in the interactive television receiver 54 to accommodate large applications.
- FIG. 2 shows an exemplary division of an interactive television application into six modules 100 , 102 , 104 , 106 , 108 , 110 .
- Each module may include one or more parts of the application. Each module may hold different amounts of information, and, therefore, modules may differ in size.
- a module may contain control information, header information, or other data.
- an interactive television application may be divided into a fewer or greater number of modules, and an interactive television module may carry one or more complete or partial interactive television applications.
- a carousel directory 112 is also created.
- the carousel directory 112 can include a general listing of the division of the interactive television application into the six data modules 100 , 102 , 104 , 106 , 108 , 110 .
- FIG. 3 shows an exemplary order for transmitting modules in the carousel to the interactive television receiver 54 via the broadcast path 52 .
- the carousel directory 112 is transmitted to the interactive television receiver 54 .
- module_ 1 100 and module_ 2 102 are transmitted to the interactive television receiver 54 .
- the carousel directory 112 is retransmitted, and module_ 3 104 and module_ 4 106 are transmitted.
- the carousel directory 112 is retransmitted and module_ 5 108 and module_ 6 110 are transmitted.
- the cycle begins to repeat with the transmission of the carousel directory 112 and module_ 1 100 .
- the order described in FIG. 3 is merely exemplary in nature, and other transmission orders may also be used.
- the interactive television receiver 54 may have sufficient memory to store all the modules in an interactive television application, often time its memory is limited and it may only be able to store a portion of the carousel modules 100 , 102 , 104 , 106 , 108 , 110 .
- an interactive television receiver 54 may receive the carousel described in FIG. 3, and the interactive television receiver 54 may only have enough memory to simultaneously store three modules.
- the carousel modules can be continually transmitted to the interactive television receiver 54 .
- an application running on the interactive television receiver needs a module, it can obtain the module from the carousel.
- the module can then be stored in memory.
- the application needs another module, it can obtain the module from the carousel and store the module in its memory. Therefore, the modules can be obtained and stored by the interactive television receiver 54 in the order they are requested by the application.
- the interactive television receiver 54 may obtain a module from the carousel, however, it may not have sufficient memory to store the newly obtained module.
- the interactive television receiver 54 may remove one or more other modules in its memory.
- the interactive television receiver 54 may remove the oldest module stored in it memory.
- the interactive television receiver 54 may remove a module that is no longer need by the application program.
- the interactive television receiver 54 may use a different criteria to determine which module to remove. Since the modules in the carousel may be different sizes, the interactive television receiver 54 may remove more than one module to make room for the newly obtained module. Once the interactive television receiver 54 may make room for the newly received module, it can be stored in memory and accessed by the application program.
- FIG. 4 shows an exemplary interactive television system using a carousel manager.
- a carousel can be used to broadcast a service in an interactive television system 212 .
- a service is generally a collection of resources.
- a resource may be any number of different data objects, such as a data object that can be identified by a uniform resource indicator (“URI”) or a uniform resource locator (“URL”).
- URI uniform resource indicator
- URL uniform resource locator
- Uniform resource locators are described in more detail in Internet Engineering Task Force Request For Comment 1738, “Uniform Resource Locators (URL)”, Berners-Lee et al., December 1994, which is incorporated herein by reference in its entirety.
- Uniform resource indicators are described in more detail in IETF RFC 2396, which is incorporated by reference herein in its entirety.
- a service may be an on-line magazine.
- the magazine can include a variety of different resources, such as multiple articles. Each article may further include audio files, video files or other content.
- the articles may be stored on-line, for example, as hypertext markup language (“HTML”) pages.
- HTTP hypertext markup language
- XHTML extensible HTML
- WML website meta language
- Other resources may stored using different formats, such as Joint Photographic Experts Group (“JPEG”), Moving Picture Experts Group (“MPEG”), MP3 or any number of other available formats.
- JPEG Joint Photographic Experts Group
- MPEG Moving Picture Experts Group
- MP3 MP3 or any number of other available formats.
- the resources may be formatted into a page, such as a webpage, which can provide a collection of resources constituting a single coherent space of interaction and display.
- the page can itself be a resource, and a service may include more than one page.
- a service such as the on-line magazine, may be accessed from, and sometimes stored by, a service provider 204 .
- the service provider 204 may be connected to the broadcast server 50 through the Internet 60 , as shown in FIG. 5.
- the service provider 204 may be connected to an intranet or other network work that also connects to the broadcast server 50 .
- Multiple service providers 202 , 204 , 206 , 208 can interface with the broadcast server 50 through one or more networks. Additionally, each service provider 202 , 204 , 206 , 208 may store more than one service.
- a carousel manager 210 preferably functions on the broadcast server 50 .
- the carousel manager 210 handles generating and broadcasting carousels, which are formed from services available from service providers 202 , 204 , 206 , 208 . While the carousel manager 210 may handle services authored using a variety of different formats, in a preferred embodiment the carousel manager 210 handles generating and broadcasting of services authored in HTML
- FIG. 5 illustrates a more detailed description of the carousel manager 210 , which can be use to construct a broadcast carousel.
- the carousel manager 210 interfaces with a service provider 204 via the Internet 60 , although this may be done through another type of network or another type of connection.
- a fetcher 250 in the carousel manager 210 interfaces with the service provider 204 , and it receives a service from a service provider. For example, it can receive the HTTP service from the service provider 204 .
- the service may be, for instance, the on-line magazine authored using HTML. Of course, the fetcher 250 can obtain other non-HTTP services.
- the fetcher 250 can obtain resources identified by a URI or URL, or it can obtain resources through applications such as the file transfer protocol (“FTP”).
- FTP file transfer protocol
- the carousel manager 210 can then form the service into a broadcast carousel using a broadcast policy.
- the broadcast carousel can then be transmitted to the interactive television receiver 54 .
- FIG. 6 is a flowchart of an exemplary process that may be used to build a broadcast carousel.
- the carousel manager can obtain a service from a service provider.
- the carousel manager can obtain a broadcast policy from the service provider.
- the carousel manager can create a broadcast carousel using the broadcast policy obtained from the service provider, shown at Step 354 .
- the carousel can be broadcast to the interactive television receiver, shown at Step 356 .
- the fetcher 250 can also determine a broadcast policy for the service.
- the broadcast policy generally defines which resources will be broadcast to the interactive television receiver 54 over the broadcast path and which resources will only be available to the interactive television receiver 54 over the point-to-point path 58 .
- Various different factors can be considered in developing the broadcast policy, and the broadcast policy may be formed in a variety of different ways.
- the broadcast path 52 generally supports a high bandwidth, and, therefore, it may be able to support sending large amounts of data; however, the interactive television receiver 54 may have limited memory.
- data is continually sent to the interactive television receiver 54 in the carousel.
- the interactive television receiver 54 can wait for the carousel to cycle through to the module holding the data.
- the interactive television receiver 54 may have to wait longer for the carousel to cycle through the modules in order to receive a module that is not currently in its memory. Therefore, it may be desirable to limit the amount data placed in the carousel and sent to the interactive television receiver 54 via the broadcast path 52 .
- the HTTP fetcher 250 uses the broadcast policy in a variety of different ways.
- the service provider 204 may send the fetcher 250 a broadcast policy to be used in forming the carousel.
- the service provider 204 may send the fetcher 250 a channel definition file, which can be used as the broadcast policy.
- a channel definition file can be a specific format for identifying a collection of resources.
- the channel definition file can be created by the service provider 204 , and it can be associated with the service.
- the service provider 204 may indicate resources that are more likely to be accessed by the interactive television receiver 54 .
- channel definition file can be placed in the carousel and sent to the interactive television receiver 54 via the broadcast path 52 .
- the lesser-accessed resources may be reserved for the point-to point path 58 .
- the channel definition file is merely exemplary in nature, and other formats may be used to specify the broadcast policy.
- the service provider 204 may specify a channel definition file that identifies certain resources to place in the carousel. These may be, for example, the index of the on-line magazine, the cover story, feature articles or other popular resources. Lesser-viewed resources may be reserved for the point-to-point path 58 .
- the service provider 204 can limit the size of the broadcast carousel. This can increase the speed with which the interactive television receiver 154 can access the carousel's resources. Additionally, a smaller carousel can reduce the strain on the interactive television system than may be caused by continually sending large amounts of data.
- the carousel manager 210 may store a broadcast policy file 254 .
- the broadcast policy file 254 can be used in conjunction with the broadcast policy provided by the service provider 204 to create the carousel.
- the fetcher 250 can use the broadcast policy file 254 and the service provider's broadcast policy in a variety of ways.
- the service provider's broadcast policy may specify a list of resources to be placed in the carousel.
- the broadcast policy file 254 may set a maximum limit for the size of the carousel.
- the size defined by the broadcast policy file 254 may be a maximum number of resources, a maximum number of physical bits used by the resources, or another measure. If the service provider's broadcast policy specifications do not exceed the maximum limit set by the broadcast policy file 254 , then the fetcher 250 may simply use the service provider's broadcast policy to create the carousel.
- the fetcher 250 may further limit the resources placed in the carousel. This may be done using many different methods.
- the service provider's broadcast policy may further define a priority of the resources.
- the fetcher 250 can then use that priority in determining which resources to place in the carousel.
- the fetcher 250 may define a priority for types of resources. For example, HTML pages may receive a higher priority than JPEG files. Therefore, in order to enforce the maximum size limit of the carousel, the fetcher 250 may remove JPEG files from the resources defined by the service provider's broadcast policy. In yet another example, the fetcher 250 may arbitrarily remove content until the maximum size limits are met. Other ways also exist to enforce the maximum size limit, and these may also be used.
- the broadcast policy file 254 may specify limitations or restrictions other than a maximum size.
- the fetcher's broadcast policy file 254 may restrict certain types of resources, such as files. For example, it could specify that no MPEG files are to be placed in the carousel, or it may place similar restrictions on other types of files. Additionally, the broadcast policy file 254 may place restrictions on the size or amounts of certain types of files. Other limitations may also be used.
- the broadcast policy may specify cycle rates for resources in the carousel.
- the broadcast policy may specify that certain modules should be cycled in the carousel more frequently than other resources. This can allow these modules to be accessed more quickly. Since the modules would be cycled in the carousel more frequently that others, an interactive television receiver would have to wait a shorter amount of time before carousel cycles to the module. Therefore, the wait time for obtaining the module can be reduced.
- the fetcher 250 can also perform content negotiation.
- a resource may have multiple representations.
- the carousel builder 252 may perform content negotiation with the service provider 204 and the interactive television receiver 54 in order to determine a proper resource representation to use in building the carousel.
- the service provider may specify an HTML page, and that HTML page may have multiple representations corresponding to different versions of HTML that were used to create the page.
- an audio or video resource may be available in different formats.
- An interactive television receiver 54 may not be able to support any of the multiple representations.
- the interactive television receiver 54 may be able to support one or more of the multiple representations.
- a resource may be an image file.
- the image file may be stored in multiple representations, such as JPEG and bitmap.
- the interactive television receiver 54 may only support bitmap images. Therefore, the interactive television receiver 54 may not be able to properly display the JPEG representation of the image.
- the carousel builder 252 can select a proper representation for a resource when multiple representations are available.
- the carousel manager 210 may determine that the resource is available in the JPEG and bitmap representations. Additionally, the carousel manager 210 may determine that the requesting application program supports only bitmap images. Then, the carousel manager 210 can obtain the bitmap representation from the service provider 204 for use in the carousel.
- HTTP 1.1 is described in more detail in the Internet Engineering Task Force Request For Comment 2616, “Hypertext Transfer Protocol—HTTP/1.1”, Fielding et al., June 1999, which is incorporated herein by reference in its entirety. Of course, other methods may also be used to perform content negotiation.
- the carousel builder 252 can then construct the carousel. This may be done using an appropriately supported carousel format.
- each resource may be put inside a transport module and inserted in the carousel by the carousel builder 252 .
- the module may preferably include the HTTP resource body and HTTP resource headers.
- the carousel may be distributed across multiple tracks. As is known in the art, a track can be an elementary broadcast stream.
- the carousel builder 252 can also construct a carousel directory 256 .
- the carousel directory 256 can be sent to the interactive television receiver 54 as a part of the carousel, and it can specify the resources available in the different carousel modules.
- the carousel directory 256 can specify the resources available in the carousel using a variety of different methods.
- the carousel directory 256 can specify the resources using a carousel addressing scheme.
- the carousel directory 256 can provide a mapping between a resource's carousel module address and the resource's physical address. Other ways may also be used to identify resources in the carousel and to identify the module carrying a particular resource.
- the carousel builder 252 may also construct a URI index 258 .
- the URI index 258 may be, for example, a data structure holding information about resources in the carousel.
- the URI index 258 can include a mapping between a resource's carousel address and the resource's URI or other unique identifier.
- the URI index 258 may provide a mapping between a URI identifying the resource and its location in the carousel.
- a resource may be identified using a URL, and the URI index 258 may provide a mapping between the URL and the resource's carousel address.
- the URI index 258 can be used to provide a mapping between a resource's URI or URL and the resource's carousel address. Then, the carousel directory 256 can be used to further resolve the carousel address into the resource's physical address in the carousel.
- the URI index 258 could also provide a more direct mapping.
- the URI index 258 could provide a mapping between a resource's URI and the resource's physical address in the carousel.
- the URI index 258 could provide a mapping between a resource's URL, or other identifier, and the resource's physical address in the carousel.
- a resource identified by a URI, URL or other identifier could be directly resolved to a physical address using the URI index 258 . This can eliminate the intermediate step of using the carousel directory 256 to resolve a module address into a physical address.
- the carousel provides a set of resources to the interactive television receiver 54 .
- the resources in the carousel may be periodically updated according to the broadcast policy for the carousel. Resources may be added and removed from the carousel, and resources may be updated to provide the interactive television receiver 54 with a more current version of the resource.
- the changes in the carousel resources may also trigger a corresponding change in the carousel directory 256 and the URI index 258 . Both the carousel directory 256 and the URI index 258 can be updated to reflect the changed composition of the carousel.
- a supplemental URI index or supplemental carousel directory can also be used.
- the supplemental URI index can reflect only the changes to the URI index 258 .
- the supplemental carousel directory can reflect only the changes to the carousel directory 256 .
- a resource may be updated or removed from the carousel upon expiration of the resource.
- the HTTP carousel manager 210 generally broadcasts resources that have been assigned for broadcast by the service provider 204 or by the fetcher 250 .
- the fetcher 250 can also ensure that the carousel uses the most current resources.
- the service provider 204 can specify expiration information for resources. This may be done through the broadcast policy, such as by making an entry for a particular resource, or the expiration information may be specified in a resource itself. For example, an HTML page can specify expiration information.
- the fetcher 250 can use the HTTP 1.1 “Server Specified Expiration Model” to prevent resources in the carousel from being obsolete.
- the fetcher 250 may also use another model for determining expiration times of resources. If the fetcher 250 determines a resource is obsolete, it takes it out of the carousel.
- an application running on the interactive television receiver 54 may obtain a resource from the carousel, but the application may want to determine if it has the most current version of the resource.
- the application may use the carousel directory 256 to compute an age calculation header.
- the carousel directory 256 may be used to provide a triggering mechanism to provide real-time update information on the resources held by the carousel, thereby determining if the application has the current version of the resource has held by the carousel.
- the resource expirations can be used to maintain the resources in the carousel.
- the fetcher 250 may obtain a more current version of the resource from the service provider 204 .
- the fetcher 250 may provide the updated resource to the carousel builder 252 , which then replaces the obsolete version of the resource in the carousel with the updated version.
- the interactive television receiver 54 receives the updated resource.
- the updated resource is not placed in the carousel.
- the interactive television receiver 54 can only obtain the updated resource from the point-to-point path 58 .
- the fetcher 250 may instruct the carousel builder 252 to remove the resource from the carousel.
- the carousel builder 252 may then accordingly update the URI index 258 .
- the resource may then no longer be available over the broadcast path 52 .
- FIG. 7 shows a block diagram illustrating a interface module 300 that can be used in the interactive television receiver 54 .
- the interface module can run on the interactive television receiver 54 , and it can serve as an interface for an application program 302 requesting data from the interactive television system.
- the interface module 300 may receive a resource request from the application program 302 .
- the interface module 300 may then decide whether to obtain the resource from the broadcast path 52 or from the point-to-point path 58 . If the request is not already in a supported format, the interface module 300 may translate the request from the application program 302 into a format supported by the path used to obtain the resource.
- the application program 302 can run on the interactive television receiver 54 .
- the interactive television receiver 54 may run a interface module.
- the interface module can provide the application program 302 with the necessary application program interfaces (“APIs”) to allow the application program 302 to fetch a resource from the carousel or from the point-to-point path 58 .
- APIs application program interfaces
- an API can be a set of functions used by a program to communicate with another program, with the operating system or with other services.
- the application program 302 could obtain data directly from the carousel by sending an appropriate request for data from the carousel. In response, the application program 302 could receive the requested data, which was sent in the carousel via the broadcast path 52 . Alternatively, the application program 302 could obtain data by sending a request through the point-to-point path 58 to a service provider 64 . Then, the service provider 64 may cause the data to be sent to the interactive television receiver 54 along the point-to-point path 58 . However, the format for requesting data from the broadcast path 52 may differ from the format for requesting data from the point-to-point path 58 .
- the interface module 300 may run on the interactive television receiver 54 and serve as an interface between the application program 302 and the two data paths 52 , 58 .
- the interface module 300 may receive a data request from the application program 302 running on the interactive television receiver 54 .
- the data request to the interface module 300 can be in a uniform format that may be used to request resource from either the broadcast path 52 or the point-to-point path 58 .
- the interface module 300 can process the data request from the application program 302 to determine whether to obtain the data from the broadcast path 52 or from the point-to-point path 58 . Then, if necessary, the interface module 300 can reformat the data request to the syntax required for either the broadcast path 52 or the point-to-point path 58 .
- FIG. 8 is a flowchart of an exemplary process that can be used to obtain a resource.
- the interface module can receive a request for a resource from an application program. Then, at Step 402 , the interface module can receive a broadcast carousel, which includes an index module. The interface module can then search the index module to determine if the resource is available in the broadcast carousel, shown at Step 404 . If the resource is available in the broadcast carousel, it may be provided to the application program. If, however, the resource is not available in the broadcast carousel, then it may be obtained from the point-to-point path, shown at Step 406 .
- FIG. 9 is a flowchart of another exemplary process that can be used to obtain a resource.
- the interface module can receive a request for a resource from an application program.
- the interface module can search an index to determine whether the resource is available in the carousel. The index module may be transmitted to the interface module in the carousel.
- the interface module determines that the resource is not available in the carousel.
- the interface module requests the resource from the point-to-point path.
- the interface module receives the resource from the point-to-point path.
- the interface module provides the resource to the requesting application program, Shown at Step 460 .
- the interface module 300 receives a resource request from the application program 302 .
- the resource request may identify the resource by its URI or by another identifier.
- the request to the interface module 300 can be in a standard format, regardless of the source of the resource.
- the data request is formatted using the syntax to obtain the resource from the broadcast path 52 .
- the data request is formatted using the syntax to obtain the resource from the point-to-point path 58 .
- the data request is formatted using another format understood by the interface module 300 .
- the interface module 300 receives the data request and determines which resource has been requested. Then, the interface module 300 can use the URI index 258 to determine whether that resource is available through the broadcast path 52 . For example, the interface module 300 can search the URI index 258 based on the URI of the requested resource. If the resource is available on the broadcast path 52 , the URI index 258 can provide a mapping between the resource's URI and its carousel address or its physical location. Then, using the mapping, the interface module 300 can obtain the resource from the carousel and provide it to the application program 302 .
- the interface module 300 may determine that the resource is not available on the broadcast path 52 . Then, the interface module 300 can request the resource from the point-to-point path 58 . In requesting the resource from the point-to-point path 58 , the interface module 300 can use the protocol for requesting resource from that path. And, that protocol can differ from the protocol used for requesting resources from the broadcast path 52 . Thus, once the interface module 300 determines which path to use in requesting the resource, the interface module 300 can use the appropriate protocol for that path.
- the interface module 300 can provide a seamless way to obtain resources from either the broadcast path 52 or the point-to-point path 58 .
- the application program 302 can request a resource using a uniform syntax, regardless of the origin of the resource.
- the use of the single syntax for requesting resources can provide several benefits. In one example of a benefit, the use of the single syntax may eliminate the need for an application developer to determine where a resource will be available. Since the application developer uses a uniform syntax to request resources, the application developer will not have to differentiate in the code between the possible sources of the resource. At the time of coding the application, it is not necessary to know whether the resource will be available through the broadcast path 52 or through the point-to-point path 58 .
- the interface module 300 receives the resource request. If the resource is available on the broadcast path 52 , the interface module 300 retrieves the resource from the carousel.
- the interface module 300 can obtain the resource through the point-to-point path 58 using a protocol for obtaining resources via the point-to-point path 58 .
- Using the interface module 300 to allow a requested resource to be obtained from either the broadcast path 52 or the point-to-point 58 path can reduce program errors, which would occur by requesting a resource solely from a location where it is not available.
- the interface module 300 can also reduce needlessly using the point-to-point path 58 (e.g., where the application developer is not sure whether the resource will be available on the broadcast path 52 and chooses to obtain the resource from the point-to-point path 58 ) to obtain resources that would otherwise be available on the faster broadcast path 52 .
- the interface module 300 can also allow the carousel to be continually updated without adversely affecting the application program 302 .
- an expired resource can be removed from the carousel. Without the interface module 300 , removing a resource from the carousel may cause a program error, because the resource requested by the application program 302 would no longer be available on the broadcast path 52 .
- the interface module 300 can handle converting the request from the broadcast syntax to the point-to-point syntax.
- the request for the removed resource is sent via the point-to-point path 58 and the current version of the resource is obtained from the point-to-point path 58 . This provides the application program 302 with the current version of the resource instead of the expired version that was previously in the carousel.
- the interface module 300 can also monitor the URI index 258 to detect changes in the carousel, such as when resources are added or removed from the carousel.
- the interface module 300 could also monitor the supplemental URI index 258 .
- the supplemental URI index 258 can reflect the changes to the carousel made after the creation of the original URI index 258 , and it can provide the interface module 300 with a simple and efficient method for detecting changes to the carousel.
- the interface module 300 could detect changes to the carousel by monitoring the carousel directory 256 . Changes to the carousel could also be quickly and efficiently detected using the supplemental carousel directory.
- the interface module 300 can also support pre-fetching of resources.
- the application program 302 may access a resource, such as an HTML page.
- the HTML page may comprise a variety of other sub-resources. While the application program 302 may currently access a portion of the sub-resources, the interface module 300 may pre-fetch the remainder of the sub-resources forming the HTML page. Then, if the application program 302 later attempts to access other sub-resources, the sub-resources are readily available without having to be requested from one of the transport paths.
- the HTML page may include links to various other resources.
- the interface module 300 may pre-fetch the linked resources, thereby obtaining the linked resources before they are requested by the application program 302 .
- the resources can be stored in the interactive television receiver's memory. Then, if the application program 302 requests one of the resources in memory, it can be retrieved from memory and provided to the application program 302 .
- the resource can be provided to the application program 302 without having to take the time to retrieve the resource from one of the transmission paths.
- the interface module 300 only pre-fetches the linked resources that are available through the broadcast path 52 . Since the broadcast server 50 periodically cycles through the carousel to send the resources to the interactive television receiver 54 , and since no additional bandwidth would be used on the broadcast path 52 to obtain the resources, the interface module 300 can obtain those resources without slowing the data transmission rate on the broadcast path 52 . This can also be done with only a minimal amount of extra processing by the interactive television receiver 54 . If the application program 302 subsequently requests the resources via a link on the HTML page, the interface module 300 can quickly provide the pre-fetched resources without having to wait for the carousel to cycle through to the requested resources.
- the application program 302 may be removed from memory. For example, if the application program 302 browses to a new HTML page, the interface module 300 can remove the pre-fetched resources from the old page. The interface module 300 may then pre-fetch resources for the new HTML page, and the newly pre-fetched resources may overwrite the pre-fetched resources for the old page. Other processes may also be used to remove unused pre-fetched resources.
- the interface module 300 may pre-fetch resources that are only available through the point-to-point path 58 .
- the resources can be requested by the interface module 300 , which then receives them over the point-to-point path 58 .
- the resources can be stored by the interface module 300 in the interactive television receiver 54 and quickly retrieved if the application requests the resource via a link on the current HTML page. Since the resources would not be ordinarily sent over the point-to-point path 58 , extra bandwidth is consumed in obtaining the resources over the point-to-point path 58 . This may slow down the overall data transmission rate on the point-to-point path 58 and adversely affect other applications using that path.
- the interface module may pre-fetch resources that are available over both the broadcast path 52 and the point-to-point path 58 . Other variations are possible, and these may also be used.
Abstract
In an interactive television system, an interactive television receiver can receives a carousel over a broadcast path. The broadcast server may run a carousel manager, and the carousel manager may formulate a broadcast policy to be used in constructing the carousel. The interactive television receiver may run a interface module that can process resource requests from an application program. The interface module may obtain a requested resource from the broadcast path or from a point-to-point path.
Description
- This invention relates generally to the field of interactive television. More specifically, it relates to a method and system for sending and receiving resources in an interactive television system.
- In a broadcast environment, such as interactive television, a broadcast server generally defines a set of resources to be broadcast over a broadcast path. The broadcast path is typically unidirectional, and the resources are broadcast to one or more receivers. An interactive television receiver ordinarily connects to a television or other display device, which can ultimately display the resources to a user. The receiver may also communicate with the broadcast server or with other devices using a point-to-point path, and the point-to-point path may be used to retrieve resources that are not available on the typically faster broadcast path.
- One type of resource that may be used in an interactive television environment is a Hypertext Markup Language (“HTML”) resource. HTML applications can be made of a number of resources referenced through unique identifiers, such as a uniform resource locator (“URL”) or a uniform resource identifier (“URI”). These identifiers point to resources, such as a server or other computer, on which the HTML application may be stored.
- An application can be authored in a scripting language, e.g. HTML and Javascript, and published to a recipient using a HyperText Transfer Protocol (“HTTP”) server. A software component, such as a browser can receive the application and display the application's resources. To render an HTML resource, the HTML browser typically establishes a connection with the server indicated by an identifier, such as a URL (for example) and fetches the resource. The communication scheme between the HTML browser and the application server is generally a point-to-point scheme, where the HTML browser establishes a bi-directional connection with the server. This scheme may contrast with the unidirectional broadcast path in an interactive television environment.
- One example of an application that Digital TV has made possible is interactive television. In an interactive television service, an HTML browser may operate on a Digital TV device. An application is then rendered onto a display connected to the Digital TV device by establishing a connection with the server publishing the application. Although dedicated for television use, the Digital TV environment based on an HTML browser does not provide many of the advantages of a broadcast environment.
- One way to provide HTTP resources in a broadcast environment is by using Unidirectional HyperText Transfer Protocol (“UHTTP”). UHTTP provides a method for broadcasting and locally storing resources. In UHTTP, a UHTTP server feeds the recipient's local cache by sending data until the cache fills or until all the data has been sent. A drawback of UHTTP is that the amount of data that can be transmitted to a recipient is limited to the recipient's local storage capabilities. Many interactive television receivers currently in use have a limited memory capacity. The local caching strategy used by UHTTP for handling HTTP resources can therefore disadvantageously limit the efficiency of low-memory interactive television receivers.
- In addition, interactive television receivers may request resources via, either point-to-point or broadcast paths. UHTTP systems, however, require that an application use a specific syntax for requests of resources from broadcast paths. The syntax used for requests on the broadcast paths differs from the syntax for requests of resources on point-to-point paths. This difference in syntax may result in an interactive television receiver requesting a resource over the broadcast path that is not available on the broadcast path.
- Therefore, there exists a need for a new and improved system and method for sending and receiving resources in an interactive television environment.
- In one aspect of the present invention, a method is provided for processing resource requests in an interactive television system. A interface module may run on an interactive television receiver. The interface module may receive a request for a resource from an application program. The interface module may determine whether the resource is available on a broadcast path or a point-to-point path, and it may convert the request received from the application program into a format used by either the broadcast path or the point-to-point path. The interface module may obtain the resource from the broadcast path or the point to point-to-point path, and it may provide the resource to the application program.
- These as well as other aspects and advantages of the present invention will become apparent to those of ordinary skill in the art by reading the following detailed description, with appropriate reference to the accompanying drawings.
- An exemplary embodiment of the present invention is described herein with reference to the drawings, in which:
- FIG. 1 is an exemplary architecture for an interactive television system;
- FIG. 2 shows a division of an interactive television application into modules;
- FIG. 3 shows an exemplary order for transmitting the modules of FIG. 2 to an interactive television receiver via a broadcast path;
- FIG. 4 shows an exemplary interactive television system using a carousel manager;
- FIG. 5 shows the carousel manager used in the interactive television system of FIG. 4;
- FIG. 6 is a flowchart of an exemplary process for building a broadcast carousel;
- FIG. 7 shows a block diagram illustrating a interface module running on an interactive television receiver;
- FIG. 8 is a flowchart of an exemplary process for obtaining a resource using the interface module of FIG. 7; and
- FIG. 9 is a flowchart of another exemplary process for obtaining a resource using the interface module of FIG. 7.
- Interactive Television Architecture
- Interactive television provides a way to transmit interactive content to a television. Interactive television systems can provide text, audio, video, hypertext transfer protocol (“HTTP”) resources, or other content to a television, and they can also receive input from a television user.
- FIG. 1 depicts an exemplary architecture for an
interactive television system 62. Abroadcast server 50 sends information along abroadcast path 52 to aninteractive television receiver 54. Thebroadcast server 50 may be any computer or other type of server capable of sending information along a data link. Thebroadcast server 50 preferably contains a processor and memory. The processor executes programs, which may be stored in memory. Additionally, the memory contains content to be broadcast along thebroadcast path 52 to theinteractive television receiver 54. - The
broadcast path 52 can be any type of data link and can carry data in a variety of different formats. In a preferred embodiment, thebroadcast path 52 is a cable television transmission path used to transmit cable television signals from a cable television provider to atelevision 56. The data transmitted along thebroadcast path 52 may use the same signaling protocols that are used for transmission of cable television signals along the path. - In another embodiment, the
broadcast path 52 comprises a wireless direct satellite transmission system. A signal is sent wirelessly by a satellite to a satellite dish, or other receiver, linked to thetelevision 56. Once received by the satellite dish, the signal may travel through a data link to thetelevision 56 or to theinteractive television receiver 54. In yet another embodiment, thebroadcast path 52 may be part of a wireless telecommunications network. For example, one or more terrestrial antennas may be used to send signals over the broadcast path to the television. Of course, it may also be possible to use combinations of wireless and wired transmission methods for sending data on thebroadcast path 52. - The
interactive television receiver 54 connects to thebroadcast path 52 of an interactive television system, and it receives interactive television signals sent along thebroadcast path 52. Theinteractive television receiver 54 ordinarily contains a processor and memory. Theinteractive television receiver 54 is capable of executing programs stored in its memory, and it is capable of executing programs received along thebroadcast path 52 from thebroadcast server 50. In a preferred embodiment, theinteractive television receiver 54 includes a set-top box of a type that is well-known in the art, connected to thetelevision 56. However, another device connected to thetelevision 56, such as a computer, a game console, or another programmable device, can function as theinteractive television receiver 54. While theinteractive television receiver 54 is illustrated as a separate component from thetelevision 56, in an alternative embodiment all or part of the functionality of theinteractive television receiver 54 may be integrated into thetelevision 56. In yet another embodiment, the functionality of theinteractive television receiver 54 may be distributed across more than one component connected to thetelevision 56. - The
interactive television receiver 54 connects to thetelevision 56 and provides an interface between thebroadcast server 50 and thetelevision 56. Theinteractive television receiver 54, for instance, may pass cable television signals straight through to thetelevision 56, which would allow the ordinary viewing of cable television signals. Theinteractive television receiver 54, however, may receive and process interactive television signals sent from thebroadcast server 50. - The
interactive television receiver 54, for instance, may convert the interactive television signals into a format understood by thetelevision 56. For example, the interactive television signals sent from thebroadcast server 50 may need to be decompressed or decoded. Theinteractive television receiver 54 can perform decoding and decompression to recover the original signals, and it may perform other processing on these signals. Theinteractive television receiver 54 sends the interactive television content that has been converted into a proper format for display, to thetelevision 56 for display. A user may then view the interactive television content displayed on thetelevision 56. - The
interactive television receiver 54 may additionally contain input devices. For example, it may contain a keyboard, mouse or other devices to allow a user to interact with thetelevision 56 and theinteractive television receiver 54. By using the input devices, the user may, for example, respond to data displayed on thetelevision 56. The user's selections can be used to interactively drive the content displayed on thetelevision 56, thus providing an interactive television system. - In one example, the interactive television system provides a web-browsing session to a user. The
interactive television receiver 54 connects to theInternet 60 through thebroadcast server 50, and theinteractive television receiver 54 runs an appropriate browser. Theinteractive television receiver 54 receives Internet content from theInternet 60 via thebroadcast server 50. Theinteractive television receiver 54 then uses the browser to display the Internet content on thetelevision 56. A user can use the keyboard, mouse or other input device, to browse to different web pages or links, thereby interacting with thetelevision 56. - In an interactive television system the
broadcast path 52 is typically unidirectional, although bi-directional broadcast paths may be used in interactive television systems. Thebroadcast path 52 may be the same path used for providing cable television services, and cable television services are generally unidirectional. In a cable television system, signals are sent from a cable television server to thetelevision 56. During transmission from the cable television server to thetelevision 56, the cable television signals may pass through routers, repeaters or other network devices. Since a cable television system does not require return information from thetelevision 56, the networks elements are ordinarily configured to only support unidirectional communication. Therefore, data cannot be sent “back” through the cable television lines to thebroadcast server 50. - Signals in a direct satellite transmission system are transmitted from a transmission tower to a satellite and then ultimately received by a satellite dish, or other device, connected to a
television 56. The satellite dish is also generally equipped to only receive signals from the satellite and not to transmit signals to the satellite. Likewise, the satellite is not configured to receive signals transmitted from various subscribers. - In order to enable bi-directional communication in an
interactive television system 62, theinteractive television receiver 54 uses a point-to-point path 58, also called a return path. The point-to-point path 58 is typically different from thebroadcast path 52. The point-to-point path 58 can be any number of data links, but ordinarily the point-to-point path 58 is a phone line, cable modem or other bi-directional link. The point-to-point path 58 could also be a wireless link, such as an interface with a cellular network. - The point-to-
point path 58 connects with theinteractive television receiver 54. As depicted in FIG. 1, the point-to-point path 58 connects to theInternet 60. This may be done, for instance, by connecting to an Internet Service Provider (“ISP”) through a phone line. The ISP may in turn provide connectivity to theInternet 60. Once connected to theInternet 60, theinteractive television receiver 54 can access other devices also connected to theInternet 60. For example, theinteractive television receiver 54 can communicate with aservice provider 64 connected to theInternet 60. Theinteractive television receiver 54 may send a message via the point-to-point path 58 to theInternet 60, where the message is ultimately routed to theservice provider 64. - Likewise, the
interactive television receiver 54 can communicate with thebroadcast server 50 via theInternet 60 or via another network connected, thus forming a bi-directional communication link between thebroadcast server 50 and theinteractive television receiver 54. Thebroadcast server 50 preferably sends information to theinteractive television receiver 54 via thebroadcast path 52, because the broadcast path is ordinarily faster than the point-to-point path 58. Theinteractive television receiver 54 can send information to thebroadcast server 50 using the point-to-point path 58. - While FIG. 1 illustrates the point-to-
point path 58 connecting to theInternet 60, it may also connect to another network or directly to thebroadcast server 50. Then, theinteractive television receiver 54 can communicate with the other devices linked to theinteractive television receiver 54 via the point-to-point path 58. In another embodiment, the point-to-point path 58 may be the same as thebroadcast path 52. - Broadcast Carousels
- The
broadcast server 50 may send interactive television content to theinteractive television receiver 54 via thebroadcast path 52 using a data-flow construct hereinafter referred to as a carousel. Aninteractive television receiver 54 can include memory that can be used to store interactive television content sent from thebroadcast server 50; however, the memory in aninteractive television receiver 54 may be limited. Therefore, theinteractive television receiver 54 may not be able to store in its memory an entire interactive television application or an entire piece of interactive television content. Thebroadcast server 50 may nevertheless send the interactive television content despite the limited memory in theinteractive television receiver 54 by using a carousel. - The carousel may be implemented as a stream of data partitioned to be transmitted to the
interactive television receiver 54 in regular cycles. The cyclic, or periodic, transmission of the data permits theinteractive television receiver 54 to retrieve any data not currently in memory within the carousel's cycling time. That is, theinteractive television receiver 54 does not need to store an entire program since portions that do not fit in the limited memory are available during the cyclic transmission of the carousel. Theinteractive television receiver 54 may retrieve, store and display the television content by extracting the portions of data from the carousel. - In one exemplary process for forming a carousel, the
broadcast server 50 first determines what data should be sent to theinteractive television receiver 54. The data may be an application to be run on theinteractive television receiver 54, it may be web pages for a web browsing session or it may be many other types of data or content supported by theinteractive television system 62. Thebroadcast server 50 then divides the data into modules. The modules are generally smaller data portions to be transmitted to theinteractive television receiver 54 via thebroadcast path 52. In addition to dividing the data into modules, thebroadcast server 50 additionally forms acarousel directory 112. Thecarousel directory 112 includes a listing of the carousel modules. Thecarousel directory 112 allows an interactive television application to determine what part of the carousel to access in order to obtain the resource. Carousel addresses identify the location of resources in the carousel. - The modules are sent to the
interactive television receiver 54, and theinteractive television receiver 54 can store the modules for use in theinteractive television system 62. Since the available memory in theinteractive television receiver 54 can be limited, the modules are continually sent to theinteractive television receiver 54 in a rotating fashion. When needed, theinteractive television receiver 54 may retrieve a module from the broadcast path, and it may overwrite one or more previously received modules with the more recently received module. - By sending the modules in this manner, the
interactive television receiver 54 can store only a portion of the modules at any given time, but still have access to the other modules. When theinteractive television receiver 54 needs to access a module that is not in memory, it only has to wait a short time before the module is sent as a part of the continual, rotating carousel transmissions. This can reduce the amount of memory needed in theinteractive television receiver 54 to accommodate large applications. - FIG. 2 shows an exemplary division of an interactive television application into six
modules data modules carousel directory 112 is also created. Thecarousel directory 112 can include a general listing of the division of the interactive television application into the sixdata modules - FIG. 3 shows an exemplary order for transmitting modules in the carousel to the
interactive television receiver 54 via thebroadcast path 52. First, thecarousel directory 112 is transmitted to theinteractive television receiver 54. Next,module_1 100 andmodule_2 102 are transmitted to theinteractive television receiver 54. Then, thecarousel directory 112 is retransmitted, andmodule_3 104 andmodule_4 106 are transmitted. Again, thecarousel directory 112 is retransmitted andmodule_5 108 andmodule_6 110 are transmitted. Following the transmission ofmodule_6 110, the cycle begins to repeat with the transmission of thecarousel directory 112 andmodule_1 100. The order described in FIG. 3 is merely exemplary in nature, and other transmission orders may also be used. - While the
interactive television receiver 54 may have sufficient memory to store all the modules in an interactive television application, often time its memory is limited and it may only be able to store a portion of thecarousel modules interactive television receiver 54 may receive the carousel described in FIG. 3, and theinteractive television receiver 54 may only have enough memory to simultaneously store three modules. - In order to accommodate the limited memory of the
interactive television receiver 54, the carousel modules can be continually transmitted to theinteractive television receiver 54. When an application running on the interactive television receiver needs a module, it can obtain the module from the carousel. The module can then be stored in memory. Similarly, when the application needs another module, it can obtain the module from the carousel and store the module in its memory. Therefore, the modules can be obtained and stored by theinteractive television receiver 54 in the order they are requested by the application. - Eventually, the
interactive television receiver 54 may obtain a module from the carousel, however, it may not have sufficient memory to store the newly obtained module. In this case, theinteractive television receiver 54 may remove one or more other modules in its memory. For example, theinteractive television receiver 54 may remove the oldest module stored in it memory. In another example, theinteractive television receiver 54 may remove a module that is no longer need by the application program. In yet another example, theinteractive television receiver 54 may use a different criteria to determine which module to remove. Since the modules in the carousel may be different sizes, theinteractive television receiver 54 may remove more than one module to make room for the newly obtained module. Once theinteractive television receiver 54 may make room for the newly received module, it can be stored in memory and accessed by the application program. - Carousel Manager
- FIG. 4 shows an exemplary interactive television system using a carousel manager. A carousel can be used to broadcast a service in an
interactive television system 212. A service is generally a collection of resources. A resource may be any number of different data objects, such as a data object that can be identified by a uniform resource indicator (“URI”) or a uniform resource locator (“URL”). Uniform resource locators are described in more detail in Internet Engineering Task Force Request For Comment 1738, “Uniform Resource Locators (URL)”, Berners-Lee et al., December 1994, which is incorporated herein by reference in its entirety. Uniform resource indicators are described in more detail in IETF RFC 2396, which is incorporated by reference herein in its entirety. - For example, a service may be an on-line magazine. The magazine can include a variety of different resources, such as multiple articles. Each article may further include audio files, video files or other content. The articles may be stored on-line, for example, as hypertext markup language (“HTML”) pages. Of course, other link language, such as extensible HTML (“XHTML”), website meta language (“WML”) may also be used. Other resources may stored using different formats, such as Joint Photographic Experts Group (“JPEG”), Moving Picture Experts Group (“MPEG”), MP3 or any number of other available formats. The resources may be formatted into a page, such as a webpage, which can provide a collection of resources constituting a single coherent space of interaction and display. The page can itself be a resource, and a service may include more than one page.
- A service, such as the on-line magazine, may be accessed from, and sometimes stored by, a
service provider 204. Theservice provider 204 may be connected to thebroadcast server 50 through theInternet 60, as shown in FIG. 5. Alternatively, theservice provider 204 may be connected to an intranet or other network work that also connects to thebroadcast server 50.Multiple service providers broadcast server 50 through one or more networks. Additionally, eachservice provider - A
carousel manager 210 preferably functions on thebroadcast server 50. Thecarousel manager 210 handles generating and broadcasting carousels, which are formed from services available fromservice providers carousel manager 210 may handle services authored using a variety of different formats, in a preferred embodiment thecarousel manager 210 handles generating and broadcasting of services authored in HTML - FIG. 5 illustrates a more detailed description of the
carousel manager 210, which can be use to construct a broadcast carousel. Thecarousel manager 210 interfaces with aservice provider 204 via theInternet 60, although this may be done through another type of network or another type of connection. Afetcher 250 in thecarousel manager 210 interfaces with theservice provider 204, and it receives a service from a service provider. For example, it can receive the HTTP service from theservice provider 204. The service may be, for instance, the on-line magazine authored using HTML. Of course, thefetcher 250 can obtain other non-HTTP services. For example, thefetcher 250 can obtain resources identified by a URI or URL, or it can obtain resources through applications such as the file transfer protocol (“FTP”). Thecarousel manager 210 can then form the service into a broadcast carousel using a broadcast policy. The broadcast carousel can then be transmitted to theinteractive television receiver 54. - FIG. 6 is a flowchart of an exemplary process that may be used to build a broadcast carousel. At
Step 350, the carousel manager can obtain a service from a service provider. Then, atStep 352, the carousel manager can obtain a broadcast policy from the service provider. Next, the carousel manager can create a broadcast carousel using the broadcast policy obtained from the service provider, shown atStep 354. Then, the carousel can be broadcast to the interactive television receiver, shown atStep 356. - With continued reference to FIG. 5, the
fetcher 250 can also determine a broadcast policy for the service. The broadcast policy generally defines which resources will be broadcast to theinteractive television receiver 54 over the broadcast path and which resources will only be available to theinteractive television receiver 54 over the point-to-point path 58. Various different factors can be considered in developing the broadcast policy, and the broadcast policy may be formed in a variety of different ways. - The
broadcast path 52 generally supports a high bandwidth, and, therefore, it may be able to support sending large amounts of data; however, theinteractive television receiver 54 may have limited memory. In order to accommodate the limited storage of theinteractive television receiver 54, data is continually sent to theinteractive television receiver 54 in the carousel. To obtain data not currently in memory, theinteractive television receiver 54 can wait for the carousel to cycle through to the module holding the data. By placing large amounts of data in the carousel to be sent to theinteractive television receiver 54, theinteractive television receiver 54 may have to wait longer for the carousel to cycle through the modules in order to receive a module that is not currently in its memory. Therefore, it may be desirable to limit the amount data placed in the carousel and sent to theinteractive television receiver 54 via thebroadcast path 52. - The
HTTP fetcher 250 uses the broadcast policy in a variety of different ways. In one exemplary embodiment, theservice provider 204 may send the fetcher 250 a broadcast policy to be used in forming the carousel. For instance, theservice provider 204 may send the fetcher 250 a channel definition file, which can be used as the broadcast policy. As is known in the art, a channel definition file can be a specific format for identifying a collection of resources. The channel definition file can be created by theservice provider 204, and it can be associated with the service. In forming the channel definition file, theservice provider 204 may indicate resources that are more likely to be accessed by theinteractive television receiver 54. These resources, as defined by the channel definition file, can be placed in the carousel and sent to theinteractive television receiver 54 via thebroadcast path 52. The lesser-accessed resources, however, may be reserved for the point-to pointpath 58. The channel definition file is merely exemplary in nature, and other formats may be used to specify the broadcast policy. - Returning to the on-line magazine example, the
service provider 204 may specify a channel definition file that identifies certain resources to place in the carousel. These may be, for example, the index of the on-line magazine, the cover story, feature articles or other popular resources. Lesser-viewed resources may be reserved for the point-to-point path 58. By forming the carousel to include commonly accessed resources, theservice provider 204 can limit the size of the broadcast carousel. This can increase the speed with which the interactive television receiver 154 can access the carousel's resources. Additionally, a smaller carousel can reduce the strain on the interactive television system than may be caused by continually sending large amounts of data. - In another exemplary embodiment of using the broadcast policy, the
carousel manager 210 may store abroadcast policy file 254. Thebroadcast policy file 254 can be used in conjunction with the broadcast policy provided by theservice provider 204 to create the carousel. Thefetcher 250 can use thebroadcast policy file 254 and the service provider's broadcast policy in a variety of ways. - In one example, the service provider's broadcast policy may specify a list of resources to be placed in the carousel. The
broadcast policy file 254, however, may set a maximum limit for the size of the carousel. The size defined by thebroadcast policy file 254 may be a maximum number of resources, a maximum number of physical bits used by the resources, or another measure. If the service provider's broadcast policy specifications do not exceed the maximum limit set by thebroadcast policy file 254, then thefetcher 250 may simply use the service provider's broadcast policy to create the carousel. However, if the service provider's broadcast policy specifies an amount of resources that exceeds the size limit set by the fetcher'sbroadcast policy file 254, then thefetcher 250 may further limit the resources placed in the carousel. This may be done using many different methods. - In one example, the service provider's broadcast policy may further define a priority of the resources. The
fetcher 250 can then use that priority in determining which resources to place in the carousel. In another example, thefetcher 250 may define a priority for types of resources. For example, HTML pages may receive a higher priority than JPEG files. Therefore, in order to enforce the maximum size limit of the carousel, thefetcher 250 may remove JPEG files from the resources defined by the service provider's broadcast policy. In yet another example, thefetcher 250 may arbitrarily remove content until the maximum size limits are met. Other ways also exist to enforce the maximum size limit, and these may also be used. - The
broadcast policy file 254 may specify limitations or restrictions other than a maximum size. For example, the fetcher'sbroadcast policy file 254 may restrict certain types of resources, such as files. For example, it could specify that no MPEG files are to be placed in the carousel, or it may place similar restrictions on other types of files. Additionally, thebroadcast policy file 254 may place restrictions on the size or amounts of certain types of files. Other limitations may also be used. - In another type of priority, the broadcast policy may specify cycle rates for resources in the carousel. For example, the broadcast policy may specify that certain modules should be cycled in the carousel more frequently than other resources. This can allow these modules to be accessed more quickly. Since the modules would be cycled in the carousel more frequently that others, an interactive television receiver would have to wait a shorter amount of time before carousel cycles to the module. Therefore, the wait time for obtaining the module can be reduced.
- These examples are not meant to be exhaustive. Many other factors may be considered in creating a broadcast policy. Additionally, many other ways exist for the service provider's broadcast policy and the
broadcast policy file 254 to interact, and these may also be used. - In addition to using a broadcast policy, the
fetcher 250 can also perform content negotiation. A resource may have multiple representations. Thecarousel builder 252 may perform content negotiation with theservice provider 204 and theinteractive television receiver 54 in order to determine a proper resource representation to use in building the carousel. For example, the service provider may specify an HTML page, and that HTML page may have multiple representations corresponding to different versions of HTML that were used to create the page. In another example, an audio or video resource may be available in different formats. Of course, many other representations exist for resources and these may also be used in performing content negotiation. - An
interactive television receiver 54 may not be able to support any of the multiple representations. Alternatively, theinteractive television receiver 54 may be able to support one or more of the multiple representations. For example, a resource may be an image file. The image file may be stored in multiple representations, such as JPEG and bitmap. Theinteractive television receiver 54, however, may only support bitmap images. Therefore, theinteractive television receiver 54 may not be able to properly display the JPEG representation of the image. By performing content negotiation between theinteractive television receiver 54 and with theservice provider 204, thecarousel builder 252 can select a proper representation for a resource when multiple representations are available. For example, thecarousel manager 210 may determine that the resource is available in the JPEG and bitmap representations. Additionally, thecarousel manager 210 may determine that the requesting application program supports only bitmap images. Then, thecarousel manager 210 can obtain the bitmap representation from theservice provider 204 for use in the carousel. - One method for performing content negotiation is specified in the HTTP 1.1 standard. HTTP 1.1 is described in more detail in the Internet Engineering Task Force Request For Comment 2616, “Hypertext Transfer Protocol—HTTP/1.1”, Fielding et al., June 1999, which is incorporated herein by reference in its entirety. Of course, other methods may also be used to perform content negotiation.
- Once the
carousel builder 252 obtains the resources to be placed in the carousel, such as by receiving them from thefetcher 250, thecarousel builder 252 can then construct the carousel. This may be done using an appropriately supported carousel format. For example, each resource may be put inside a transport module and inserted in the carousel by thecarousel builder 252. For an HTTP resource, for example, the module may preferably include the HTTP resource body and HTTP resource headers. The carousel may be distributed across multiple tracks. As is known in the art, a track can be an elementary broadcast stream. - In addition to building the carousel, the
carousel builder 252 can also construct acarousel directory 256. Thecarousel directory 256 can be sent to theinteractive television receiver 54 as a part of the carousel, and it can specify the resources available in the different carousel modules. Thecarousel directory 256 can specify the resources available in the carousel using a variety of different methods. In an exemplary embodiment, thecarousel directory 256 can specify the resources using a carousel addressing scheme. Thus, thecarousel directory 256 can provide a mapping between a resource's carousel module address and the resource's physical address. Other ways may also be used to identify resources in the carousel and to identify the module carrying a particular resource. - The
carousel builder 252 may also construct aURI index 258. TheURI index 258 may be, for example, a data structure holding information about resources in the carousel. TheURI index 258 can include a mapping between a resource's carousel address and the resource's URI or other unique identifier. For example, theURI index 258 may provide a mapping between a URI identifying the resource and its location in the carousel. In another example, a resource may be identified using a URL, and theURI index 258 may provide a mapping between the URL and the resource's carousel address. TheURI index 258 can be used to provide a mapping between a resource's URI or URL and the resource's carousel address. Then, thecarousel directory 256 can be used to further resolve the carousel address into the resource's physical address in the carousel. - Of course, the
URI index 258 could also provide a more direct mapping. For example, theURI index 258 could provide a mapping between a resource's URI and the resource's physical address in the carousel. Similarly, theURI index 258 could provide a mapping between a resource's URL, or other identifier, and the resource's physical address in the carousel. Using this direct mapping, a resource identified by a URI, URL or other identifier could be directly resolved to a physical address using theURI index 258. This can eliminate the intermediate step of using thecarousel directory 256 to resolve a module address into a physical address. - The carousel provides a set of resources to the
interactive television receiver 54. The resources in the carousel may be periodically updated according to the broadcast policy for the carousel. Resources may be added and removed from the carousel, and resources may be updated to provide theinteractive television receiver 54 with a more current version of the resource. The changes in the carousel resources may also trigger a corresponding change in thecarousel directory 256 and theURI index 258. Both thecarousel directory 256 and theURI index 258 can be updated to reflect the changed composition of the carousel. - While it is possible to update both the
carousel directory 256 and theURI index 258 to reflect changes in the carousel, a supplemental URI index or supplemental carousel directory can also be used. The supplemental URI index can reflect only the changes to theURI index 258. Similarly, the supplemental carousel directory can reflect only the changes to thecarousel directory 256. These smaller updates can then be used in conjunction with thecarousel directory 256 and theURI index 258 to reflect the current composition of the carousel. - In one example of updating the resources in the carousel, a resource may be updated or removed from the carousel upon expiration of the resource. The
HTTP carousel manager 210 generally broadcasts resources that have been assigned for broadcast by theservice provider 204 or by thefetcher 250. Thefetcher 250 can also ensure that the carousel uses the most current resources. Theservice provider 204 can specify expiration information for resources. This may be done through the broadcast policy, such as by making an entry for a particular resource, or the expiration information may be specified in a resource itself. For example, an HTML page can specify expiration information. - In one exemplary embodiment, the
fetcher 250 can use the HTTP 1.1 “Server Specified Expiration Model” to prevent resources in the carousel from being obsolete. Thefetcher 250 may also use another model for determining expiration times of resources. If thefetcher 250 determines a resource is obsolete, it takes it out of the carousel. - For example, an application running on the
interactive television receiver 54 may obtain a resource from the carousel, but the application may want to determine if it has the most current version of the resource. The application may use thecarousel directory 256 to compute an age calculation header. Thecarousel directory 256 may be used to provide a triggering mechanism to provide real-time update information on the resources held by the carousel, thereby determining if the application has the current version of the resource has held by the carousel. - In addition to providing an interactive television receiver application with the most current version of the resources, the resource expirations can be used to maintain the resources in the carousel. When a resource expires, the
fetcher 250 may obtain a more current version of the resource from theservice provider 204. Thefetcher 250 may provide the updated resource to thecarousel builder 252, which then replaces the obsolete version of the resource in the carousel with the updated version. Then, as the carousel is transmitted, theinteractive television receiver 54 receives the updated resource. In an alternate embodiment, the updated resource is not placed in the carousel. Theinteractive television receiver 54 can only obtain the updated resource from the point-to-point path 58. - If a more current version of the resource is not available, then the
fetcher 250 may instruct thecarousel builder 252 to remove the resource from the carousel. Thecarousel builder 252 may then accordingly update theURI index 258. The resource may then no longer be available over thebroadcast path 52. - Interface Module
- FIG. 7 shows a block diagram illustrating a
interface module 300 that can be used in theinteractive television receiver 54. The interface module can run on theinteractive television receiver 54, and it can serve as an interface for anapplication program 302 requesting data from the interactive television system. Theinterface module 300 may receive a resource request from theapplication program 302. Theinterface module 300 may then decide whether to obtain the resource from thebroadcast path 52 or from the point-to-point path 58. If the request is not already in a supported format, theinterface module 300 may translate the request from theapplication program 302 into a format supported by the path used to obtain the resource. - The
application program 302 can run on theinteractive television receiver 54. Theinteractive television receiver 54 may run a interface module. The interface module can provide theapplication program 302 with the necessary application program interfaces (“APIs”) to allow theapplication program 302 to fetch a resource from the carousel or from the point-to-point path 58. As is known in the art, an API can be a set of functions used by a program to communicate with another program, with the operating system or with other services. - The
application program 302 could obtain data directly from the carousel by sending an appropriate request for data from the carousel. In response, theapplication program 302 could receive the requested data, which was sent in the carousel via thebroadcast path 52. Alternatively, theapplication program 302 could obtain data by sending a request through the point-to-point path 58 to aservice provider 64. Then, theservice provider 64 may cause the data to be sent to theinteractive television receiver 54 along the point-to-point path 58. However, the format for requesting data from thebroadcast path 52 may differ from the format for requesting data from the point-to-point path 58. - The
interface module 300 may run on theinteractive television receiver 54 and serve as an interface between theapplication program 302 and the twodata paths interface module 300 may receive a data request from theapplication program 302 running on theinteractive television receiver 54. The data request to theinterface module 300 can be in a uniform format that may be used to request resource from either thebroadcast path 52 or the point-to-point path 58. Theinterface module 300 can process the data request from theapplication program 302 to determine whether to obtain the data from thebroadcast path 52 or from the point-to-point path 58. Then, if necessary, theinterface module 300 can reformat the data request to the syntax required for either thebroadcast path 52 or the point-to-point path 58. - FIG. 8 is a flowchart of an exemplary process that can be used to obtain a resource. At
Step 400, the interface module can receive a request for a resource from an application program. Then, atStep 402, the interface module can receive a broadcast carousel, which includes an index module. The interface module can then search the index module to determine if the resource is available in the broadcast carousel, shown atStep 404. If the resource is available in the broadcast carousel, it may be provided to the application program. If, however, the resource is not available in the broadcast carousel, then it may be obtained from the point-to-point path, shown atStep 406. - FIG. 9 is a flowchart of another exemplary process that can be used to obtain a resource. At
Step 450, the interface module can receive a request for a resource from an application program. AtStep 452, the interface module can search an index to determine whether the resource is available in the carousel. The index module may be transmitted to the interface module in the carousel. Then, atStep 454, the interface module determines that the resource is not available in the carousel. AtStep 456, the interface module requests the resource from the point-to-point path. Then, AtStep 458, the interface module receives the resource from the point-to-point path. Finally, the interface module provides the resource to the requesting application program, Shown atStep 460. - With continued reference to FIG. 7, the
interface module 300 receives a resource request from theapplication program 302. The resource request may identify the resource by its URI or by another identifier. The request to theinterface module 300 can be in a standard format, regardless of the source of the resource. In one embodiment, the data request is formatted using the syntax to obtain the resource from thebroadcast path 52. In another embodiment, the data request is formatted using the syntax to obtain the resource from the point-to-point path 58. In yet another embodiment, the data request is formatted using another format understood by theinterface module 300. - The
interface module 300 receives the data request and determines which resource has been requested. Then, theinterface module 300 can use theURI index 258 to determine whether that resource is available through thebroadcast path 52. For example, theinterface module 300 can search theURI index 258 based on the URI of the requested resource. If the resource is available on thebroadcast path 52, theURI index 258 can provide a mapping between the resource's URI and its carousel address or its physical location. Then, using the mapping, theinterface module 300 can obtain the resource from the carousel and provide it to theapplication program 302. - If, however, the
URI index 258 does not store a mapping between the URI and a carousel address, then theinterface module 300 may determine that the resource is not available on thebroadcast path 52. Then, theinterface module 300 can request the resource from the point-to-point path 58. In requesting the resource from the point-to-point path 58, theinterface module 300 can use the protocol for requesting resource from that path. And, that protocol can differ from the protocol used for requesting resources from thebroadcast path 52. Thus, once theinterface module 300 determines which path to use in requesting the resource, theinterface module 300 can use the appropriate protocol for that path. - The
interface module 300 can provide a seamless way to obtain resources from either thebroadcast path 52 or the point-to-point path 58. Theapplication program 302 can request a resource using a uniform syntax, regardless of the origin of the resource. The use of the single syntax for requesting resources can provide several benefits. In one example of a benefit, the use of the single syntax may eliminate the need for an application developer to determine where a resource will be available. Since the application developer uses a uniform syntax to request resources, the application developer will not have to differentiate in the code between the possible sources of the resource. At the time of coding the application, it is not necessary to know whether the resource will be available through thebroadcast path 52 or through the point-to-point path 58. When the application runs, theinterface module 300 receives the resource request. If the resource is available on thebroadcast path 52, theinterface module 300 retrieves the resource from the carousel. - However, if the resource is not available on the
broadcast path 52, theinterface module 300 can obtain the resource through the point-to-point path 58 using a protocol for obtaining resources via the point-to-point path 58. Using theinterface module 300 to allow a requested resource to be obtained from either thebroadcast path 52 or the point-to-point 58 path can reduce program errors, which would occur by requesting a resource solely from a location where it is not available. Theinterface module 300 can also reduce needlessly using the point-to-point path 58 (e.g., where the application developer is not sure whether the resource will be available on thebroadcast path 52 and chooses to obtain the resource from the point-to-point path 58) to obtain resources that would otherwise be available on thefaster broadcast path 52. - In another example of a benefit, the
interface module 300 can also allow the carousel to be continually updated without adversely affecting theapplication program 302. For example, an expired resource can be removed from the carousel. Without theinterface module 300, removing a resource from the carousel may cause a program error, because the resource requested by theapplication program 302 would no longer be available on thebroadcast path 52. Theinterface module 300, however, can handle converting the request from the broadcast syntax to the point-to-point syntax. The request for the removed resource is sent via the point-to-point path 58 and the current version of the resource is obtained from the point-to-point path 58. This provides theapplication program 302 with the current version of the resource instead of the expired version that was previously in the carousel. - The
interface module 300 can also monitor theURI index 258 to detect changes in the carousel, such as when resources are added or removed from the carousel. In addition to monitoring theURI index 258, theinterface module 300 could also monitor thesupplemental URI index 258. Thesupplemental URI index 258 can reflect the changes to the carousel made after the creation of theoriginal URI index 258, and it can provide theinterface module 300 with a simple and efficient method for detecting changes to the carousel. Similarly, theinterface module 300 could detect changes to the carousel by monitoring thecarousel directory 256. Changes to the carousel could also be quickly and efficiently detected using the supplemental carousel directory. - In addition to handling resource requests, the
interface module 300 can also support pre-fetching of resources. In one type of pre-fetching, theapplication program 302 may access a resource, such as an HTML page. The HTML page may comprise a variety of other sub-resources. While theapplication program 302 may currently access a portion of the sub-resources, theinterface module 300 may pre-fetch the remainder of the sub-resources forming the HTML page. Then, if theapplication program 302 later attempts to access other sub-resources, the sub-resources are readily available without having to be requested from one of the transport paths. - In another type of pre-fetching, the HTML page may include links to various other resources. The
interface module 300 may pre-fetch the linked resources, thereby obtaining the linked resources before they are requested by theapplication program 302. Once retrieved, the resources can be stored in the interactive television receiver's memory. Then, if theapplication program 302 requests one of the resources in memory, it can be retrieved from memory and provided to theapplication program 302. The resource can be provided to theapplication program 302 without having to take the time to retrieve the resource from one of the transmission paths. - In one exemplary embodiment, the
interface module 300 only pre-fetches the linked resources that are available through thebroadcast path 52. Since thebroadcast server 50 periodically cycles through the carousel to send the resources to theinteractive television receiver 54, and since no additional bandwidth would be used on thebroadcast path 52 to obtain the resources, theinterface module 300 can obtain those resources without slowing the data transmission rate on thebroadcast path 52. This can also be done with only a minimal amount of extra processing by theinteractive television receiver 54. If theapplication program 302 subsequently requests the resources via a link on the HTML page, theinterface module 300 can quickly provide the pre-fetched resources without having to wait for the carousel to cycle through to the requested resources. - If the
application program 302 does not request the pre-fetched resources, then they may be removed from memory. For example, if theapplication program 302 browses to a new HTML page, theinterface module 300 can remove the pre-fetched resources from the old page. Theinterface module 300 may then pre-fetch resources for the new HTML page, and the newly pre-fetched resources may overwrite the pre-fetched resources for the old page. Other processes may also be used to remove unused pre-fetched resources. - In another exemplary embodiment, the
interface module 300 may pre-fetch resources that are only available through the point-to-point path 58. The resources can be requested by theinterface module 300, which then receives them over the point-to-point path 58. The resources can be stored by theinterface module 300 in theinteractive television receiver 54 and quickly retrieved if the application requests the resource via a link on the current HTML page. Since the resources would not be ordinarily sent over the point-to-point path 58, extra bandwidth is consumed in obtaining the resources over the point-to-point path 58. This may slow down the overall data transmission rate on the point-to-point path 58 and adversely affect other applications using that path. In yet another embodiment, the interface module may pre-fetch resources that are available over both thebroadcast path 52 and the point-to-point path 58. Other variations are possible, and these may also be used. - It should be understood that the programs, processes, methods and apparatus described herein are not related or limited to any particular type of computer or network apparatus (hardware or software), unless indicated otherwise. Various types of general purpose or specialized computer apparatus may be used with or perform operations in accordance with the teachings described herein. While various elements of the preferred embodiments have been described as being implemented in software, in other embodiments in hardware or firmware implementations may alternatively be used, and vice-versa.
- In view of the wide variety of embodiments to which the principles of the present invention can be applied, it should be understood that the illustrated embodiments are exemplary only, and should not be taken as limiting the scope of the present invention. For example, the steps of the flow diagrams may be taken in sequences other than those described, and more, fewer or other elements may be used in the block diagrams.
- The claims should not be read as limited to the described order or elements unless stated to that effect. In addition, use of the term “means” in any claim is intended to invoke 35 U.S.C. §112, paragraph 6, and any claim without the word “means” is not so intended. Therefore, all embodiments that come within the scope and spirit of the following claims and equivalents thereto are claimed as the invention.
Claims (34)
1. A method for emulating an HTTP server in a broadcast network, the method comprising:
receiving a request for a resource from an application program, wherein the application program executes on an interactive television receiver;
receiving a broadcast carousel comprising a data stream of a plurality of data modules, wherein the data modules are cyclically received; and
accessing an index to determine if the resource is available in the broadcast carousel, wherein the index identifies resources available in the broadcast carousel.
2. A computer readable medium having stored therein instructions for causing a central processing unit to execute the method of claim 1 .
3. The method of claim 1 , further comprising:
obtaining the resource from a point-to-point path if the resource is not available in the broadcast carousel.
4. The method of claim 1 , further comprising:
obtaining the resource from an HTTP server, an FTP server or a file server.
5. The method of claim 1 , wherein the request for a resource from an application program uses a first protocol, and wherein obtaining the resource from the point-to-point path comprises:
requesting the resource over the point-to-point path using a second protocol; and
receiving the resource from the point-to-point path.
6. The method of claim 5 , wherein the first protocol identifies the resource using an URI or a URL.
7. The method of claim 5 , wherein the second protocol identifies the resource using a URI or a URL.
8. The method of claim 1 , wherein the request identifies the resource using a URI, wherein a location of the resources in the carousel is identified using a physical address, and wherein the index provides a mapping between the URI and the physical address.
9. The method of claim 1 , wherein the request identifies the resource using a URI, wherein the resource can be obtained from the carousel using a logical carousel address, wherein the index provides a mapping between the URI and the logical carousel address, and wherein obtaining the resource further comprises:
searching the index to determine the logical carousel address of the resource; and
obtaining the resource from the carousel using the logical carousel address.
10. The method of claim 9 , wherein obtaining the resource form the carousel using the logical carousel address comprises:
searching a second index to determine a physical address for the resource, wherein the second index provides a mapping between the logical carousel address and the physical address; and
obtaining the resource from the carousel using the physical address.
11. The method of claim 1 , wherein the resource is created using a hyperlink language.
12. The method of claim 11 , wherein the hyperlink language is HTML, XHTML or WML.
13. The method of claim 11 , wherein the resource includes at least one link identifying a second resource, the method further comprising:
pre-fetching the second resource.
14. The method of claim 1 , wherein the broadcast network is a cable network, a satellite network or an interactive television network.
15. The method of claim 1 , wherein the application program runs on a set-top box, a game console or an interactive television receiver.
16. A method for processing resource requests in an interactive television system, comprising the steps:
receiving a request for a resource from an application program, wherein the request uses a first protocol, and wherein the application program runs on an interactive television receiver;
searching an index to determine whether the resource is available from a broadcast carousel, wherein the index indicates resources available in the broadcast carousel, and wherein the broadcast carousel is cyclically transmitted to the interactive television receiver over a broadcast path;
determining the resource is not available in the broadcast carousel;
requesting the resource over a point-to-point path from a content host;
receiving the resource over the point-to-point path from the content host; and
providing the resource to the application program.
17. A computer readable medium having stored therein instructions for causing a central processing unit to execute the method of claim 16 .
18. The method of claim 16 , wherein requesting the resource over the point-to-point path comprises:
requesting the resource over the point-to-point path using a second protocol.
19. The method of claim 16 , wherein the first protocol identifies the resource using a URI or URL.
20. The method of claim 18 , wherein the second protocol identifies the resource using a URI or URL.
21. The method of claim 16 , wherein the content host stores a plurality of different representations of the resource, and wherein requesting the resource over the point-to-point path from the content host comprises:
performing content negotiation with the content host to select one of the plurality of representations.
22. The method of claim 16 , wherein the interactive television receiver is a set-top box or a game console.
23. An interactive television receiver comprising:
a processor;
a data storage medium;
an application program stored in the data storage medium and executable by the processor;
carousel interface logic stored in the data storage medium and executable by the processor a carousel from a broadcast server sent over a broadcast path
interface module logic stored in the data storage medium and executable by the processor, (i) to receive a request for a resource from the application program, wherein the request uses a first protocol, (ii) to determine if the resource is available in the carousel (iii) to obtain the resource from the carousel if the resource is available in the carousel, (iv) to obtain the resource from a point-to-point path using a second format if the resource is not available in the carousel, and (v) to provide the resource to the application program.
24. The interactive television receiver of claim 23 , further comprising:
pre-fetching logic stored in the data storage medium and executable by the processor, (i) to determine at least one link in the resource, (ii) to retrieve data indicated by the at least one link, and (iii) to store the data in the data storage medium.
25. A method for broadcasting resources to an interactive television receiver, comprising:
obtaining a service from a service provider, wherein the service includes a plurality of resources;
obtaining a broadcast policy from the service provider, wherein the broadcast policy indicates at least one of the plurality of resources to be sent to the interactive television receiver over a broadcast path;
creating a carousel, wherein the carousel includes the at least one of the plurality of resources, wherein the carousel includes a carousel directory, and wherein the carousel directory identifies resources that are included in the carousel; and
broadcasting the carousel to the interactive television receiver over the broadcast path.
26. A computer readable medium having stored therein instructions for causing a central processing unit to execute the method of claim 25 .
27. The method of claim 25 , wherein creating a carousel comprises:
performing content negotiation between the service provider and the interactive television receiver.
28. The method of claim 25 , wherein performing content negotiation further comprises:
determining available formats for at least one of the resources in the service;
determining formats supported by at least one application program in the interactive television receiver; and
selecting one of the available formats for the at least one resource to use in the carousel.
29. The method of claim 25 , wherein obtaining a broadcast policy comprises:
receiving a channel definition file from the service provider.
30. The method of claim 25 , further comprising:
determining that a resource in the carousel has expired;
removing the expired resource from the carousel; and
updating the carousel directory.
31. The method of claim 30 , wherein updating the carousel directory comprises:
creating a supplemental carousel directory, wherein the supplemental carousel directory indicates changes to the carousel that were made subsequent to the creation of the carousel directory.
32. The method of claim 25 , wherein the interactive television receiver is a set-top box or a game console.
33. An interactive television broadcast server comprising:
a processor;
a data storage medium;
service provider interface logic stored in the data storage medium and executable by the processor, (i) to receive a service from a service provider, and (ii) to receive resources from the service provider;
broadcast policy determination logic stored in the data storage medium and executable by the processor, (i) to receive broadcast policy information from the service provider, (ii) to retrieve broadcast policy information stored in the data storage medium, and (iii) to determine a broadcast policy;
carousel building logic stored in the data storage medium and executable by the processor, (i) to determine resources to be placed in a carousel based on the broadcast policy, (ii) to obtain resources to placed in the carousel, (iii) to construct an index, wherein the index provides a mapping between a carousel address and a URI identifier for each resource in the carousel, and (iv) to construct the carousel; and
carousel broadcast logic stored in the data storage medium and executable by the processor to broadcast the carousel to an interactive television receiver.
34. The interactive television broadcast server of claim 30 , further comprising:
expiration logic stored in the data storage medium and executable by the processor, (i) to determine an expiration of a resource contained in the carousel, (ii) to remove the resource from the carousel, and (iii) to update the index.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/833,835 US20040205826A1 (en) | 2002-09-20 | 2004-04-28 | Method and system for emulating an HTTP server through a broadcast carousel |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/251,603 US7065780B2 (en) | 2002-09-20 | 2002-09-20 | Method and system for emulating and HTTP server through a broadcast carousel |
US10/833,835 US20040205826A1 (en) | 2002-09-20 | 2004-04-28 | Method and system for emulating an HTTP server through a broadcast carousel |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/251,603 Division US7065780B2 (en) | 2002-09-20 | 2002-09-20 | Method and system for emulating and HTTP server through a broadcast carousel |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040205826A1 true US20040205826A1 (en) | 2004-10-14 |
Family
ID=31992778
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/251,603 Expired - Lifetime US7065780B2 (en) | 2002-09-20 | 2002-09-20 | Method and system for emulating and HTTP server through a broadcast carousel |
US10/833,835 Abandoned US20040205826A1 (en) | 2002-09-20 | 2004-04-28 | Method and system for emulating an HTTP server through a broadcast carousel |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/251,603 Expired - Lifetime US7065780B2 (en) | 2002-09-20 | 2002-09-20 | Method and system for emulating and HTTP server through a broadcast carousel |
Country Status (7)
Country | Link |
---|---|
US (2) | US7065780B2 (en) |
EP (1) | EP1550310B2 (en) |
JP (1) | JP2006500826A (en) |
AT (1) | ATE543276T1 (en) |
AU (1) | AU2003272574B2 (en) |
ES (1) | ES2379347T3 (en) |
WO (1) | WO2004028119A2 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040226051A1 (en) * | 2001-09-19 | 2004-11-11 | John Carney | System and method for construction, delivery and display of iTV content |
US20060107270A1 (en) * | 2000-08-17 | 2006-05-18 | Matsushita Electric Industrial Co., Ltd. | Information communication system |
US20060117355A1 (en) * | 2004-11-29 | 2006-06-01 | Vincent Dureau | Pushing content in a two-way network |
WO2006132383A1 (en) * | 2005-06-06 | 2006-12-14 | Matsushita Electric Industrial Co., Ltd. | Recording and reproduction apparatus |
US20080114859A1 (en) * | 2006-11-15 | 2008-05-15 | Opentv, Inc. | Data retrieval in a two-way network |
US20080148970A1 (en) * | 2006-12-20 | 2008-06-26 | Palo Alto Research Center Incorporated | Document processing devices, systems and methods thereof |
US20090064249A1 (en) * | 2007-08-31 | 2009-03-05 | Sony Corporation | Distribution network and method |
US7565677B1 (en) * | 2003-04-21 | 2009-07-21 | Microsoft Corporation | Method and apparatus for managing a data carousel |
US20110162023A1 (en) * | 2009-12-30 | 2011-06-30 | Marcus Kellerman | Method and system for providing correlated advertisement for complete internet anywhere |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040221319A1 (en) * | 2002-12-06 | 2004-11-04 | Ian Zenoni | Application streamer |
US7450600B2 (en) * | 2003-04-21 | 2008-11-11 | Microsoft Corporation | Method and apparatus for managing a data carousel |
US7523145B2 (en) | 2004-04-22 | 2009-04-21 | Opentv, Inc. | System for managing data in a distributed computing system |
KR100629434B1 (en) * | 2004-04-24 | 2006-09-27 | 한국전자통신연구원 | Apparatus and Method for processing multimodal web-based data broadcasting, and System and Method for receiving multimadal web-based data broadcasting |
US7590922B2 (en) * | 2004-07-30 | 2009-09-15 | Nokia Corporation | Point-to-point repair request mechanism for point-to-multipoint transmission systems |
KR100714449B1 (en) * | 2004-09-16 | 2007-05-07 | 한국전자통신연구원 | System and Method for Providing Personalized Data Broadcasting Service, User Terminal and Method for Using Personalized Data Broadcasting Service, and Data Broadcasting Application Structure therefor |
US8112548B2 (en) | 2004-09-28 | 2012-02-07 | Yahoo! Inc. | Method for providing a clip for viewing at a remote device |
US20060190981A1 (en) * | 2004-10-07 | 2006-08-24 | Visiware | Carousel technology for interactive television |
US20060168624A1 (en) * | 2004-11-22 | 2006-07-27 | John Carney | Method and system for delivering enhanced TV content |
US20060184989A1 (en) * | 2005-02-11 | 2006-08-17 | Biap Systems, Inc. | Interacting with Internet applications via a broadband network on electronic input/output devices |
US8201205B2 (en) | 2005-03-16 | 2012-06-12 | Tvworks, Llc | Upstream bandwidth management methods and apparatus |
US20070110035A1 (en) * | 2005-11-14 | 2007-05-17 | Broadcom Corporation, A California Corporation | Network nodes cooperatively routing traffic flow amongst wired and wireless networks |
EP1798928A1 (en) * | 2005-12-16 | 2007-06-20 | Alcatel Lucent | A packet based media delivery system with community channel manager |
DE102006008471A1 (en) * | 2006-02-23 | 2007-08-30 | Siemens Ag | Static object`s change transmitting method for e.g. broadcasting service, involves forming change object based on information to be changed and change rule, and transmitting change object by streaming transmission to data service receiver |
US8170584B2 (en) | 2006-06-06 | 2012-05-01 | Yahoo! Inc. | Providing an actionable event in an intercepted text message for a mobile device based on customized user information |
JP2009541877A (en) * | 2006-06-30 | 2009-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, system, apparatus and computer program for controlling web objects (method and apparatus for caching broadcast information) |
US7873703B2 (en) * | 2006-06-30 | 2011-01-18 | International Business Machines Corporation | Method and apparatus for broadcasting information |
DE102007026222A1 (en) * | 2006-10-31 | 2008-05-08 | Siemens Ag | Method for transmitting scene data in a unidirectional data transmission system |
KR101576943B1 (en) * | 2006-12-01 | 2015-12-15 | 에이치에스엔아이 엘엘씨 | Method and System for Improved Interactive Television Processing |
FR2912027B1 (en) * | 2007-01-26 | 2009-04-10 | Nptv Sa | CHARGING UNITS FOR TRANSMITTING MULTIMEDIA DATA ON A BROADCAST NETWORK |
US20090031341A1 (en) * | 2007-07-24 | 2009-01-29 | General Instrument Corporation | Method and apparatus for reducing the number of control messages transmitted by a set top terminal in an sdv system |
US8316150B2 (en) * | 2007-10-31 | 2012-11-20 | Time Warner Cable Inc. | System and method for remotely accessing cablecard |
US20100138875A1 (en) * | 2007-11-30 | 2010-06-03 | Johnson Gerard C | Method and system for improved interactive television processing |
US10721533B2 (en) | 2007-11-30 | 2020-07-21 | Hsni, Llc | Method and system for displaying and updating electronic information on a display device |
US11323337B2 (en) | 2011-09-27 | 2022-05-03 | Comcast Cable Communications, Llc | Resource measurement and management |
US10142121B2 (en) | 2011-12-07 | 2018-11-27 | Comcast Cable Communications, Llc | Providing synchronous content and supplemental experiences |
US8875099B2 (en) * | 2011-12-22 | 2014-10-28 | International Business Machines Corporation | Managing symbolic links in documentation |
US9106557B2 (en) | 2013-03-13 | 2015-08-11 | Comcast Cable Communications, Llc | Scheduled transmission of data |
WO2017002455A1 (en) * | 2015-07-01 | 2017-01-05 | ソニー株式会社 | Transmitting device and transmitting method, and receiving device and receiving method |
CN105578252A (en) * | 2015-12-20 | 2016-05-11 | 天脉聚源(北京)科技有限公司 | Method and device for interactive information configuration of interactive television system |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666293A (en) * | 1994-05-27 | 1997-09-09 | Bell Atlantic Network Services, Inc. | Downloading operating system software through a broadcast channel |
US5805154A (en) * | 1995-12-14 | 1998-09-08 | Time Warner Entertainment Co. L.P. | Integrated broadcast application with broadcast portion having option display for access to on demand portion |
US5929850A (en) * | 1996-07-01 | 1999-07-27 | Thomson Consumer Electronices, Inc. | Interactive television system and method having on-demand web-like navigational capabilities for displaying requested hyperlinked web-like still images associated with television content |
US6018764A (en) * | 1996-12-10 | 2000-01-25 | General Instrument Corporation | Mapping uniform resource locators to broadcast addresses in a television signal |
US6038319A (en) * | 1998-05-29 | 2000-03-14 | Opentv, Inc. | Security model for sharing in interactive television applications |
US6164975A (en) * | 1998-12-11 | 2000-12-26 | Marshall Weingarden | Interactive instructional system using adaptive cognitive profiling |
US6177930B1 (en) * | 1997-03-28 | 2001-01-23 | International Business Machines Corp. | System and method for enabling a user to move between cyclically transmitted image streams |
US6185585B1 (en) * | 1997-12-16 | 2001-02-06 | Corporate Media Partners | System and method for distribution and navigation of internet content |
US6275989B1 (en) * | 1996-07-01 | 2001-08-14 | Opentv, Inc. | Interactive television system and method for displaying web-like stills with hyperlinks |
US6317885B1 (en) * | 1997-06-26 | 2001-11-13 | Microsoft Corporation | Interactive entertainment and information system using television set-top box |
US6427238B1 (en) * | 1998-05-29 | 2002-07-30 | Opentv, Inc. | Module manager for interactive television system |
US20020120940A1 (en) * | 2001-02-02 | 2002-08-29 | Open Tv | Method and apparatus compilation of an interpretative language for interactive television |
US6446262B1 (en) * | 1998-10-26 | 2002-09-03 | Two Way Tv Limited | Broadcasting interactive applications |
US20020138500A1 (en) * | 2001-01-12 | 2002-09-26 | General Instrument Corporation | Virtual streaming in a carousel file system |
US6459427B1 (en) * | 1998-04-01 | 2002-10-01 | Liberate Technologies | Apparatus and method for web-casting over digital broadcast TV network |
US20020170074A1 (en) * | 2001-05-04 | 2002-11-14 | Koninklijke Philips Electronics N.V. | Recording of interactive applications |
US6538701B1 (en) * | 1998-02-17 | 2003-03-25 | Gemstar Development Corporation | Simulated pip window in EPG |
US6539030B1 (en) * | 2000-02-07 | 2003-03-25 | Qualcomm Incorporated | Method and apparatus for providing configurable layers and protocols in a communications system |
US6594699B1 (en) * | 1997-10-10 | 2003-07-15 | Kasenna, Inc. | System for capability based multimedia streaming over a network |
US6622004B1 (en) * | 1999-06-07 | 2003-09-16 | Matsushita Electric Industrial Co., Ltd. | Data transceiving system and method |
US6631523B1 (en) * | 1996-03-29 | 2003-10-07 | Microsoft Corporation | Electronic program guide with hyperlinks to target resources |
US20030217362A1 (en) * | 2001-12-28 | 2003-11-20 | Summers Macy W. | Wideband direct-to-home broadcasting satellite communications system and method |
US6658661B1 (en) * | 1999-03-29 | 2003-12-02 | Hughes Electronics Corporation | Carousel bit mask system and method |
US6675385B1 (en) * | 1998-10-21 | 2004-01-06 | Liberate Technologies | HTML electronic program guide for an MPEG digital TV system |
US6778222B2 (en) * | 2000-03-31 | 2004-08-17 | Matsushita Electric Industrial Co., Ltd. | Data broadcast apparatus for controlling presentation timing of additional data with high precision |
US6785902B1 (en) * | 1999-12-20 | 2004-08-31 | Webtv Networks, Inc. | Document data structure and method for integrating broadcast television with web pages |
US6804708B1 (en) * | 2000-06-29 | 2004-10-12 | Scientific-Atlanta, Inc. | Media-on-demand flexible and adaptive architecture |
US20060048076A1 (en) * | 2004-08-31 | 2006-03-02 | Microsoft Corporation | User Interface having a carousel view |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5615066B2 (en) † | 1974-06-13 | 1981-04-08 | ||
WO2000007361A2 (en) * | 1998-07-29 | 2000-02-10 | Morecom, Inc. | Digital tv system with synchronized world wide web content |
US20020091816A1 (en) * | 1998-12-23 | 2002-07-11 | Altan J. Stalker | Broadcast data access system for multimedia clients in a broadcast network architecture |
EP1024661A3 (en) † | 1999-01-27 | 2002-07-17 | Hughes Electronics Corporation | Pictographic electronic program guide |
WO2000062547A1 (en) | 1999-04-09 | 2000-10-19 | Opentv, Inc. | Bandwidth management on a hybrid point to point broadcast |
-
2002
- 2002-09-20 US US10/251,603 patent/US7065780B2/en not_active Expired - Lifetime
-
2003
- 2003-09-18 EP EP03754762.7A patent/EP1550310B2/en not_active Expired - Lifetime
- 2003-09-18 JP JP2004538243A patent/JP2006500826A/en active Pending
- 2003-09-18 ES ES03754762T patent/ES2379347T3/en not_active Expired - Lifetime
- 2003-09-18 WO PCT/US2003/029513 patent/WO2004028119A2/en active Application Filing
- 2003-09-18 AU AU2003272574A patent/AU2003272574B2/en not_active Ceased
- 2003-09-18 AT AT03754762T patent/ATE543276T1/en active
-
2004
- 2004-04-28 US US10/833,835 patent/US20040205826A1/en not_active Abandoned
Patent Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666293A (en) * | 1994-05-27 | 1997-09-09 | Bell Atlantic Network Services, Inc. | Downloading operating system software through a broadcast channel |
US5805154A (en) * | 1995-12-14 | 1998-09-08 | Time Warner Entertainment Co. L.P. | Integrated broadcast application with broadcast portion having option display for access to on demand portion |
US6631523B1 (en) * | 1996-03-29 | 2003-10-07 | Microsoft Corporation | Electronic program guide with hyperlinks to target resources |
US5929850A (en) * | 1996-07-01 | 1999-07-27 | Thomson Consumer Electronices, Inc. | Interactive television system and method having on-demand web-like navigational capabilities for displaying requested hyperlinked web-like still images associated with television content |
US6275989B1 (en) * | 1996-07-01 | 2001-08-14 | Opentv, Inc. | Interactive television system and method for displaying web-like stills with hyperlinks |
US6018764A (en) * | 1996-12-10 | 2000-01-25 | General Instrument Corporation | Mapping uniform resource locators to broadcast addresses in a television signal |
US6177930B1 (en) * | 1997-03-28 | 2001-01-23 | International Business Machines Corp. | System and method for enabling a user to move between cyclically transmitted image streams |
US6317885B1 (en) * | 1997-06-26 | 2001-11-13 | Microsoft Corporation | Interactive entertainment and information system using television set-top box |
US6594699B1 (en) * | 1997-10-10 | 2003-07-15 | Kasenna, Inc. | System for capability based multimedia streaming over a network |
US6185585B1 (en) * | 1997-12-16 | 2001-02-06 | Corporate Media Partners | System and method for distribution and navigation of internet content |
US6538701B1 (en) * | 1998-02-17 | 2003-03-25 | Gemstar Development Corporation | Simulated pip window in EPG |
US6459427B1 (en) * | 1998-04-01 | 2002-10-01 | Liberate Technologies | Apparatus and method for web-casting over digital broadcast TV network |
US6038319A (en) * | 1998-05-29 | 2000-03-14 | Opentv, Inc. | Security model for sharing in interactive television applications |
US6427238B1 (en) * | 1998-05-29 | 2002-07-30 | Opentv, Inc. | Module manager for interactive television system |
US6675385B1 (en) * | 1998-10-21 | 2004-01-06 | Liberate Technologies | HTML electronic program guide for an MPEG digital TV system |
US6446262B1 (en) * | 1998-10-26 | 2002-09-03 | Two Way Tv Limited | Broadcasting interactive applications |
US6164975A (en) * | 1998-12-11 | 2000-12-26 | Marshall Weingarden | Interactive instructional system using adaptive cognitive profiling |
US6658661B1 (en) * | 1999-03-29 | 2003-12-02 | Hughes Electronics Corporation | Carousel bit mask system and method |
US6622004B1 (en) * | 1999-06-07 | 2003-09-16 | Matsushita Electric Industrial Co., Ltd. | Data transceiving system and method |
US6785902B1 (en) * | 1999-12-20 | 2004-08-31 | Webtv Networks, Inc. | Document data structure and method for integrating broadcast television with web pages |
US6539030B1 (en) * | 2000-02-07 | 2003-03-25 | Qualcomm Incorporated | Method and apparatus for providing configurable layers and protocols in a communications system |
US6778222B2 (en) * | 2000-03-31 | 2004-08-17 | Matsushita Electric Industrial Co., Ltd. | Data broadcast apparatus for controlling presentation timing of additional data with high precision |
US6804708B1 (en) * | 2000-06-29 | 2004-10-12 | Scientific-Atlanta, Inc. | Media-on-demand flexible and adaptive architecture |
US20020138500A1 (en) * | 2001-01-12 | 2002-09-26 | General Instrument Corporation | Virtual streaming in a carousel file system |
US20020120940A1 (en) * | 2001-02-02 | 2002-08-29 | Open Tv | Method and apparatus compilation of an interpretative language for interactive television |
US20020170074A1 (en) * | 2001-05-04 | 2002-11-14 | Koninklijke Philips Electronics N.V. | Recording of interactive applications |
US20030217362A1 (en) * | 2001-12-28 | 2003-11-20 | Summers Macy W. | Wideband direct-to-home broadcasting satellite communications system and method |
US20060048076A1 (en) * | 2004-08-31 | 2006-03-02 | Microsoft Corporation | User Interface having a carousel view |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060107270A1 (en) * | 2000-08-17 | 2006-05-18 | Matsushita Electric Industrial Co., Ltd. | Information communication system |
US20040226051A1 (en) * | 2001-09-19 | 2004-11-11 | John Carney | System and method for construction, delivery and display of iTV content |
US7565677B1 (en) * | 2003-04-21 | 2009-07-21 | Microsoft Corporation | Method and apparatus for managing a data carousel |
US20060117355A1 (en) * | 2004-11-29 | 2006-06-01 | Vincent Dureau | Pushing content in a two-way network |
WO2006132383A1 (en) * | 2005-06-06 | 2006-12-14 | Matsushita Electric Industrial Co., Ltd. | Recording and reproduction apparatus |
US20070011357A1 (en) * | 2005-06-06 | 2007-01-11 | Matsushita Electric Industrial Co., Ltd. | Recording and reproduction apparatus |
US8326997B2 (en) * | 2006-11-15 | 2012-12-04 | Opentv, Inc. | Data retrieval in a two-way network |
US20080114859A1 (en) * | 2006-11-15 | 2008-05-15 | Opentv, Inc. | Data retrieval in a two-way network |
US9043479B2 (en) | 2006-11-15 | 2015-05-26 | Opentv, Inc. | Data retrieval in a two-way network |
US8938546B2 (en) | 2006-11-15 | 2015-01-20 | Opentv, Inc. | Data retrieval in a two-way network |
US20080148970A1 (en) * | 2006-12-20 | 2008-06-26 | Palo Alto Research Center Incorporated | Document processing devices, systems and methods thereof |
US20090064249A1 (en) * | 2007-08-31 | 2009-03-05 | Sony Corporation | Distribution network and method |
US20110162023A1 (en) * | 2009-12-30 | 2011-06-30 | Marcus Kellerman | Method and system for providing correlated advertisement for complete internet anywhere |
Also Published As
Publication number | Publication date |
---|---|
ES2379347T3 (en) | 2012-04-25 |
EP1550310A4 (en) | 2010-04-07 |
ATE543276T1 (en) | 2012-02-15 |
EP1550310A2 (en) | 2005-07-06 |
AU2003272574B2 (en) | 2008-01-10 |
WO2004028119A2 (en) | 2004-04-01 |
JP2006500826A (en) | 2006-01-05 |
EP1550310B1 (en) | 2012-01-25 |
AU2003272574A1 (en) | 2004-04-08 |
WO2004028119A3 (en) | 2004-11-04 |
EP1550310B2 (en) | 2017-10-18 |
US7065780B2 (en) | 2006-06-20 |
US20040060068A1 (en) | 2004-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7065780B2 (en) | Method and system for emulating and HTTP server through a broadcast carousel | |
JP6419173B2 (en) | An Adaptive Data Streaming Method with Push Message Control | |
US6018764A (en) | Mapping uniform resource locators to broadcast addresses in a television signal | |
CN102577420B (en) | For being able to access that the method and apparatus that the client of radio network and Internet receives application | |
KR100540495B1 (en) | A method and apparatus for compressing a continuous, indistinct data stream | |
JP5161276B2 (en) | Method and apparatus for digital television and digital broadcasting | |
US20100281042A1 (en) | Method and System for Transforming and Delivering Video File Content for Mobile Devices | |
CN110933517B (en) | Code rate switching method, client and computer readable storage medium | |
US8407260B2 (en) | Method and apparatus for caching broadcasting information | |
CN101952823B (en) | Method for media discovery | |
KR20140096063A (en) | Browser core adaptation method and browser | |
CN103258056B (en) | Process the method for style design table, server, client and system | |
JP2011066916A (en) | Information processing method, storage device and recording medium | |
WO2000004461A1 (en) | Modifiable universal resource locators (murls) | |
CN104065678B (en) | A kind of dual mode data based on built-in browser is received and access method | |
WO2010062761A1 (en) | Method and system for transforming and delivering video file content for mobile devices | |
KR102619590B1 (en) | Reception device, transmission device, and data processing method | |
CN116846881A (en) | Cache library file updating method and terminal | |
KR100753291B1 (en) | A Method for Selectively Receiving a Broadcast Website Service in DMB Terminal | |
CA2563488C (en) | A system and method for abbreviating information sent to a viewing device | |
CN1375783A (en) | Method for transforing some edition of a target description | |
JP2003030036A (en) | Www server, system and method for transferring web page | |
GB2403046A (en) | A method for literal data access | |
KR20030071387A (en) | Method and Apparatus for providing manual data of home network device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |