Automatic control of broadcast and execution of interactive applications to maintain synchronous operation with broadcast programs
1 claim: 1 independent, 0 dependent
- 1放送局(114)、スケジューリング・システム(106)、オートメーション・サーバ(108),放送サーバ(110)、トラフィック・システム(104)、及び、放送プログラム・ソース(102)、を備えているシステムにおいて インタラクティブ・アプリケーションの放送及び受信を制御する、コンピュータで実行される方法 であって、 前記トラフィック・システム(104)は、放送プログラム・スケジュールを放送局(114)から受信して、プレイリスト(113)を作成するものであり、 前記スケジューリング・システム(106)は、どの放送プログラムがどの時間にどの放送プログラム・ソース(102)を用いて放送されるかを記載したプレイリスト(113)を、トラフィック・システムから受信するものであり、 前記スケジューリング・システム(106)は、前記放送プログラム・ソース(102)向けに、及び、前記オートメーション・サーバ(108)向けにフォーマットされた、制御信号を出力するものであり、 前記オートメーション・サーバ(108)は、前記放送サーバ向けに、放送サーバ(110)を制御して、放送プログラムとの同期的挙動を達成するためのコマンドを送信するものであり、 放送サーバ(110)はトラフィック・システム(104)から放送される放送プログラムのプレイリスト(113)を受信するものであり、 前記方法が、 前記スケジューリングシステム(106)から送信された、 放送プログラムの放送を制御する制御信号を 、前記オートメーション・サーバ(108)で 受信するステップと、 前記オートメーション・サーバ(108)で、 前記制御信号から放送プログラムのうちの1つと関連したインタラクティブ・アプリケーションが発見できたかを決定するステップと、 発見できた場合、 前記オートメーション・サーバ(108)で、 放送プログラムの表示及び放送のうちのいずれかと同期してインタラクティブ・アプリケーションの実行及び終了を維持するためのコマンドを前記制御信号から発生 して、前記放送サーバ(110)に送信 するステップと、 発見できなかった場合、前記オートメーション・サーバ(108)で、放送プログラムの表示及び放送のうちのいずれかの間、デフォールトのインタラクティブ・アプリケーションの実行及び終了を維持するコマンドを前記制御信号から発生して、前記放送サーバ(110)に送信するステップと、を備える方法。
1 paragraph, as filed
[0001] [background] [A. Technical field] The present invention generally relates to the field of interactive television, and particularly to the automatic control of synchronous interactivity with a television broadcasting program. [0002] [B. Background of the invention] Most interactive television systems attempt to increase existing broadcast programs with viewer-selectable interactivity. For example, interactivity may be broadcast on a special interactive channel where the viewer can synchronize the set-top box or other device to receive and display the interactivity. This interactivity usually has a user interface that occupies the entire television screen. In this way, the viewer chooses whether to watch the traditional broadcast program on a regular channel or to use interactivity on an interactive channel. In other practices, interactivity may be activated on any channel, but still occupies the entire television screen. However, these practices of interactive television usually do not require the interactivity to be synchronized with a broadcast program being broadcast, which is because the interactivity overlaps the entire screen of the broadcast program. This is because it interferes with the display. Broadcast programs include television shows, commercials, program guides, and more. [0003] Another version of interactive television is intended to be displayed only on a portion of the television screen to provide the interactivity that accompanies the broadcast program. For example, a broadcast game show may be accompanied by interactivity that allows viewers to play along with the questions presented during the show and enter answers to them. This interactivity is only visible on a portion of the television screen, allowing viewers to continue watching the broadcast program. [0004] Regarding the interactivity that accompanies the broadcasting program, it is desirable to maintain the interactivity in synchronization with the broadcasting program. This means that interactivity should be available to the viewer whenever the accompanying broadcast program is being broadcast, and that the broadcast program is temporarily suspended and then resumed, for example during a commercial interruption. This means that any state information created by the viewer, such as the cumulative total score in the game, should be maintained, even if it is done. [0005] Furthermore, when a broadcast program with interactivity is not being broadcast or is otherwise interrupted, it means that it should not be displayed. In particular, proper synchronization requires that the interactivity about the television show is not displayed when the commercial is being broadcast during the show. This is for two reasons. First, commercials may have their own interactivity that accompanies it, such as a form in which a user requests product information about a product advertised during a commercial. Therefore, the interactivity of the commercial must be displayed, but the interactivity of the show must be redisplayed when the commercial (or series of commercials) ends and the television show resumes. The redisplay of the show's interactivity should be prompt and, as mentioned above, the state information that was available when the commercial began should be retained. For example, if the viewer was accumulating points in an interactive game, the accumulated points should be available when the show's interactivity is resumed. [0006] Second, it is inappropriate to display show interactivity between commercials, even if the commercial does not have its own interactivity. This is because the interactivity covers part of the commercial by overlaying it on top of a portion of the television screen, which is for advertisers who have paid for the commercial to be broadcast. It's unacceptable. Also, the interactivity about the show is not associated with commercials, and its appearance can confuse viewers. [0007] Therefore, it is desirable to provide interactive television systems, methods and software products that accurately synchronize the interactivity of various broadcast programs and coordinate the interruption of broadcast programs by other broadcast programs. [0008] Apart from interactive television systems, traditional television broadcast systems provide varying degrees of automatic and manual control over how a broadcast program is selected and output for broadcast transmission. Traditional broadcast systems typically include broadcast scheduling systems, various broadcast sources (broadcast sources), data insertion units and transmitters. Broadcast sources provide video, audio or other content that is broadcast via a transmitter. These broadcast sources may include various types of video tape decks and audio tape decks, video tape libraries, digital audio / video sources, live video sources, server computers, and the like. [0009] Scheduling systems typically have a set of native control signals. signals) controls the broadcast source in the broadcast system. These control signals command various broadcast sources to start, stop, load, or otherwise manage their broadcast programs. The set of control signals is primarily determined by a playlist that identifies which broadcast source is activated or deactivated at what time, and a channel assignment to which the active broadcast source is directed. In a manual control system, control signals are generated in response to manual operation by a human operator to selectively activate or deactivate any of the broadcast sources and assign the output to the appropriate channel. [0010] Broadcast data from the broadcast source is passed to the transmitter. The transmitter transmits a broadcast signal to any number of broadcast receivers on the selected channel. Broadcast receivers, such as set-top boxes and compatible televisions, tuned to the selected channel receive the broadcast signal and display the broadcast program. [0011] Traditional scheduling systems and manual controls generally provide their output control signals only to broadcast sources or similar devices. This is because these control signals are in a particular format for their broadcast source and are not designed to control other types of broadcast equipment. For example, a scheduling system that controls a video source uses control signals that are important to the video source device. Therefore, it is desirable to provide systems and methods that further facilitate the automatic control of synchronous interactivity with broadcast programs using existing control signals from scheduling systems. This is desirable to avoid the need to change the scheduling system to work with the equipment for which the new automatic control scheme is available. [0012] Some broadcasts insert into the broadcast signal a code that identifies the broadcast program and its type, for example as a television show or commercial. A commonly used set of code is the American Association of Advertising Agencies. Inc.'s Industry Standard Coding Identification system (ISCI Code). ISCI codes are typically used to indicate commercial broadcast sponsorship or partnership. However, these codes are not currently used to control the performance of interactivity that may be associated with television shows, commercials or other broadcast programs. Therefore, it is desirable to use these and similar codes embedded in broadcast signals to provide systems and methods for controlling the synchronization of interactivity of various broadcast programs. [0013] Certain forms of interactive television work in conjunction with traditional broadcasting systems such as those described above to provide useful interactivity. Such a system includes a broadcast server that stores a database of interactive applications. Interactive applications are selectively associated with various broadcast programs, as they accompany them as they are broadcast. A broadcast server typically receives its own playlist for a given broadcast period and uses the scheduling information in it to identify a particular broadcast program that is currently being broadcast. The broadcast server searches for interactive applications associated with the program currently being broadcast (broadcast program) and provides these interactive applications to the data insertion unit. The data insertion unit combines data from an interactive application with broadcast data from a broadcast source to generate a broadcast signal, in which the interactive application accompanies the broadcast program. The combined broadcast signal is transmitted by the transmitter on the selected channel. Any broadcast receiver tuned to that channel receives a broadcast signal that includes both the broadcast program and associated interactive applications. The broadcast receiver displays the broadcast program, decodes and executes the interactive application, and displays it on the television screen as appropriate. The broadcast server can also send commands to the broadcast receiver to selectively start, stop, stop, or resume execution of an interactive application according to predetermined instructions in the playlist. [0014] However, in the past, broadcast servers were not integrated with existing scheduling systems to automate the control of interactive applications based on control signals from that scheduling system. One of the difficulties in this regard is the lack of uniformity, as described above, that the various control signals that control their broadcast sources using different types of scheduling systems should interface with the broadcast sources. It is designed. Previously, this system did not even control interactivity in response to ISCI code or the like. Therefore, it is desirable to provide a synchronous interactive application through a valid interface between the scheduling system and the broadcast server. [0015] [Outline of Invention] The present invention is interactive in order to maintain a synchronous display of interactivity with individual broadcast programs without being affected by other broadcast programs and / or interruptions in the interactivity of the broadcast program. Provides automated control. [0016] According to one embodiment of the invention, a control signal, which is normally used only to control a broadcast source (or a similar device such as a subtitler), is received and processed to output a command to the broadcast server. To do. These commands selectively instruct the broadcast server to control the execution of interactivity on the broadcast receiver. Then, in turn, the broadcast server sends a command to the broadcast receiver, and the broadcast receiver executes the command to control the interactivity. [0017] The control signals used by the present invention vary from conventional broadcast scheduling systems operating in automatic or manual mode, or from pre-recorded sources that encode the signal with a broadcast program, such as videotapes. May come from the source. [0018] As mentioned above, control signals are typically formatted to specifically control broadcast sources such as certain types of video, audio or other output devices. Also, the control signals only control the broadcast of these sources and have no direct or inherent relationship to the execution of interactivity. Therefore, the present invention translates a control signal into a command acceptable to the broadcast server to selectively control the execution of interactivity. [0019] The present invention may use state information from a broadcast server to determine the current state of interactive execution in various broadcast receivers. This state information allows the scheduling system to generate different commands in response to opaque control signals when the situation changes. [0020] The present invention provides automated synchronous control of interactivity for a wide variety of different types of broadcast scheduling systems. In general, different types of scheduling systems provide different amounts and types of information in their control signals. [0021] [0021] Certain basic scheduling systems only provide a control signal indicating that a broadcast program is started, stopped, or prepared, and this signal may include a broadcast program ID for that broadcast program. For this type of scheduling system, the identification of the broadcast program (for example, a television show or commercial) is used to determine if there is an accompanying interactive application for the broadcast program, and timing information is used to be interactive. · Determine if the application should be started, stopped, stopped or restarted. Providing appropriate commands and data to the broadcast server to selectively control the broadcast of interactive applications. [0022] Another type of scheduling system can be used to identify commercial programs that are being broadcast during a television show, but otherwise identify the television program itself. Does not provide a control signal. The present invention uses this information to identify the interactivity associated with a commercial, thereby with a command to selectively stop and resume the interactivity that may accompany the television show in which the commercial is aired. Provide commands to the broadcast server to achieve identified interactive broadcasts. [0023] Yet another type of scheduling system provides a control signal that identifies a broadcast program with its duration. In this case, the present invention can selectively suspend and resume the interactivity appropriate for the broadcast program and the commercials appearing in between. [0024] In one embodiment, the present invention interfaces between an existing conventional broadcast scheduling system and a server (and other forms of interactivity) of an interactive application and responds to control signals output by the scheduling system. It provides an automation server that selectively controls the execution of interactivity that may accompany broadcast programs. [0025] According to the present invention, the automation server further interfaces with the broadcast server to provide the broadcast server with commands to selectively start, cancel, stop or resume execution of the interactive application. Using the control signals from the scheduling system, the automation server determines which broadcast program is being broadcast and generates and maintains state information about the state of each broadcast program. The automation server also maintains state information about the state of each interactive application, using information that identifies the broadcast programs and their associated interactivity (if any). Using this state information and control signals from the scheduling system, the automation server determines the appropriate command and sends it to the broadcast server to maintain synchronization between the broadcast program and the interactive application. [0026] This synchronous behavior leads to the interactivity being displayed when the broadcast program associated with it is displayed and not being displayed at other times. For example, the present invention relates to television shows classified by one or more commercial interruptions, each of which may contain a large number of commercials, each of which may have their own interactivity. Provides a proper synchronous display of interactive applications. The present invention detects when a commercial interruption occurs during a broadcast or television show from the control signal of a scheduling system. The present invention then discontinues the interactive execution of the television program without canceling the interactivity until it is safe to determine that no other segment of the same television show exists after the commercial interruption ends. It may (stop). Appropriate interactivity is performed in the commercial during the commercial interruption. If the television show resumes, that is, another segment of the television show airs, the invention detects that the previous segment is related to the current segment and discontinues it. Resume the interactivity that has been made to replay any state information that may have been generated prior to the commercial interruption (eg, current game score, stylized data, etc.). If the television show is not resumed after the commercial interruption and a new television show is broadcast, the invention again detects this change in the broadcast program to provide interactivity with the previous television show. Finish and start interacting with the next television show. [0027] In one embodiment of the invention, the automation server includes a plurality of channel interfaces, each of which receives and manages control signals for a particular channel. Each channel interface contains a translator module and an event manager. The translator module translates native control signals from the scheduling system associated with the broadcast program on the channel into a set of atomic commands. The translator also maintains state information about the life cycle of each broadcast program. The event manager receives atomic commands and processes them into commands to the broadcast server to control the interactivity of the broadcast program. The event manager maintains state information about the life cycle of the interactive application on the channel and uses this state information to generate the appropriate commands to the broadcast server. The use of separate translators and event managers allows the present invention to easily interface with different scheduling systems by using different translators while retaining the same event manager. Also, the separation of the translator module and the event manager is latent because the automation server creates a new kind of event manager without the need to change the translator module. Allows you to interface with each other. This feature allows automation servers to work with the interactivity set by various standards that may be developed in the future. [0028] In the context of the present invention, interactivity is an interactive application transmitted in the same signal as a broadcast program and executed at a broadcast receiver, or other end-user device or cable head end that receives the broadcast signal. Interactive applications that run on or other broadcast sources, interactive applications that run on traditional computers and broadcast on the Internet or other networks in sync with the broadcast program, or are provided asynchronously by the broadcast program. It may be provided by any form of interactive application, such as an interactive application that runs as needed. [0029] The automation server of the present invention may be implemented as a software product or as part of a larger system or device that includes dedicated hardware and software. The present invention may also be implemented as various methods of controlling the performance of interactivity associated with a broadcast program. [0030] [Detailed description of preferred embodiments] With reference to FIG. 1, a diagram of the system according to the present invention is shown. It will be appreciated that the system shown in Figure 1 may be incorporated into larger and more complex systems while still providing the features and benefits of the present invention. [0031] [A. System overview] Generally, system 100 includes a scheduling system 106, an automation server 108, a broadcast server 110, a traffic system 104, a broadcast program source 102, a data insertion unit 116 and a transmitter 118. These components are typically used in embodiments used by cable operators at the cable head end. Implementation of the present invention in other equipment is certainly feasible. Broadcast receivers (BR) 120 are remotely distributed in viewers' homes and offices. One or more people who receive a program are called "subscribers" or "viewers." [0032] System 100 works with a number of broadcasters 114. Broadcasting station 114 provides BR120 with broadcast program material. As used herein, "broadcasting station" 114 is any entity that provides programs carried by broadcast signals. A "program" is an independent segment of broadcasting. As such, as defined herein, the program includes television shows, commercials, public service announcements and pay-per-view events. Broadcasters include television networks as well as commercial advertisers, paperview providers, and cable networks. [0033] Broadcasting station 114 includes or generates broadcast video data, including audio and other data, as needed, including or generating program material, video cassette players, video laser disc players, sub-titlers, video servers, character generation. Vessels, audio carts, still stores, digital effects systems, live studio feeds and live remote field feeds. Provide to various broadcast program sources 102, such as banks (for example, from cameras at live sporting events). The broadcast video data is stored in the broadcast program source 102 until it is needed for broadcasting. Suitable broadcast program sources include TCS45 Automated Video Library from Odetics, Inc., Anaheim, California, MediaStream Server from Hewlett-Packard, Palo Alto, California and similar equipment or systems. [0034] The traffic system 104 receives the broadcast program schedule from the broadcast station 114. The broadcast program source determines which program provided by broadcaster 114 is broadcast on which channel at what time. Depending on the station 114, the commercial program may be included in the broadcast program source, and the schedule time frame may be provided for the insertion of commercials provided by the other station 114. The traffic system 104 integrates broadcast program sources from a number of different broadcast stations, for example, with broadcast schedule information generated in the field by a cable operator, to create playlist 113. A suitable traffic system 104 is the Columbine JDS manufactured by Columbine JDS Systems, Inc. [0035] In one embodiment, the playlist 113 is created prior to broadcasting and identifies programs that will be broadcast at a particular time. Playlist 113 preferably contains sufficient information to identify each program, its start and end times, channel and network allocations. Also, for each program at a particular time, there may be information that identifies the particular broadcast program source 102 that will output the program. [0036] Scheduling system 106 may include manual or automatic control components or both as well as suitable switching devices. The scheduling system 106 also receives a playlist 113 that describes which broadcast program is broadcast at what time and with which broadcast program source 102. Through its manual and / or automatic components, the scheduling system 106 individually selects broadcast program sources to control which program sources are output to which broadcast medium at any given time. Combine with the broadcast medium of. More specifically, the scheduling system 106 outputs native control signals that are formatted for various broadcast program sources 102 and are usually only important to them. The types and complexity of automatic and manual components vary, so do the types of control signals they provide. The manual components of the scheduling system 106 are used by the operator to manually select and activate the broadcast program source 102 as needed and also generate the corresponding control signals received by the automation server 108. [0037] Yet another source of control signals to automation server 108 includes pre-recorded control signals that are included with broadcast data at broadcast source 102. Therefore, a control signal suitable for a specific broadcasting program can be generated in advance and stored in a video tape of the broadcasting program at an appropriate time. The storage of such a control signal can be performed on any medium for storing the broadcast program. Alternatively, the control signals may be pre-recorded and stored in a medium other than those broadcast programs, but may be reproduced together with them. Alternatively, the control signal may be embedded in the broadcast data in real time, for example using a VITC time code generator or NORPAK data insertion unit. [0038] Further, the method of obtaining the control signal can be performed by either pushing from the scheduling system 106 or polling the scheduling system 106. [0039] The broadcast server 110 is preferably a computer system that executes one or more software programs that provide the functionality described herein. A suitable broadcast server is Wink Broadcast Server from Wink Communications, Inc. of Alameda, California. Broadcast server 110 includes an interactive application database 112. The interactive application database 112 stores interactive applications or other forms of interactivity broadcast to various remotely distributed BR120s. Interactive applications and other forms of interactive content may be added to the interactive application database 112 by broadcaster 114 or other program providers, and to database 112 by secure network links or other transmission media. It may be transmitted. Fields in database 112 associate interactive applications with, for example, specific stations, networks, channels, broadcast programs and / or broadcast times. Also, each interactive application in database 112 preferably has a unique interactive application identification code that can identify it. The association of the interactive application identification code with the broadcast program identification code (as used by the broadcast source) ensures that the broadcast server 112 selectively searches for the interactive application in response to receiving the program identification code. to enable. For ease of reference, the term "interactive application" includes all forms of interactivity for broadcast programs equivalent to those described or disclosed herein. [0040] In one embodiment of the invention, an interactive application stored in database 112 will be described by a compact communication protocol. The compact protocol is designed to broadcast a compact set of information and commands between system components in an efficient manner, thereby transmitting low bandwidth such as vertical blanking interval (VBI). Allows the use of. A preferred embodiment of the invention uses the compact protocol described herein, but interactive applications include, for example, hypertext markup language (HTML), extensible markup language (XML). It may be written by other protocols, including the JAVA language of SUN MICROSYSTEMS INC. Or the HTML-based interactive television protocol ATVEF. A detailed description of one compact protocol suitable for interactive applications, including supported definitions, scripts and commands, is referred to as "Method and MFP for Routing Confidential Information". It is described in US Pat. No. 5,689,799 of the name and is incorporated herein by reference. As further described below, interactive applications are themselves software products consisting of executable code and data that configure and control the operation of broadcast receiver 120. [0041] There may be a plurality of broadcast servers 110, each broadcast server 110 providing services to a particular region, group of broadcasters or group of subscribers. In one embodiment, each broadcast server 110 is identified by a unique server identification code. [0042] In general, the broadcast server 110 determines which interactive application should be broadcast on a particular channel at a particular time, and the interactive application corresponding to that particular channel and time or broadcast program identification code is available from database 112. Search and create interactive applications for broadcasting. [0043] In order to determine which interactive application will be broadcast at various times, channels, etc., the broadcast server 110 receives the playlist 113 of the broadcast program broadcast from the traffic system 104. The broadcast server 110 uses this information to identify the corresponding interactive application (if any) associated with each broadcast program and retrieve it from the database 112. Broadcast server 110 also outputs commands that are broadcast to BR120 to start, stop, cancel, cancel or resume interactive applications that may be received by BR120 or already received and reside in its memory. Instruct BR120 to do so. [0044] The broadcast server 110 prepares the searched interactive application for insertion into the broadcast signal by, for example, formatting it as necessary. Using the playlist 113 received from station 114, the broadcast server 110 passes the interactive application 115 and / or various commands to the data insertion unit (DIU) 116 to broadcast the program at the same time as the interactive application 115. Is incorporated into the broadcast data 117. [0045] The DIU 116 receives commands from the interactive application 115 or the broadcast server 110 and broadcast signals or feeds that carry the broadcast program corresponding to the interactive application 115. Broadcast feeds may be received directly from the broadcast program source, broadcast station 114, or, if the broadcaster does not provide the feed, from a third party such as a network, cable operator, or local television station. .. DIU116 transforms the interactive application 115 and commands as broadcast data 117 into a format suitable for insertion into and accompanying transmissions into broadcast station feeds. The DIU116 may receive feeds from multiple broadcasters and can insert separate interactive applications into each feed. Similarly, the DIU116 can simultaneously insert separate interactive applications into multiple channels from the same or different stations 114. [0046] The DIU116 inserts broadcast data 117, including interactive applications, commands and broadcast programs, into the broadcast medium. The broadcast medium is the frequency spectrum used to carry the interactive application 115. In one embodiment, the broadcast medium is a standard analog television signal that complies with the National Television Standard Committee (NTSC) standard, and VBI is used as a transport to broadcast interactive applications. The transport is a specific part of the broadcast medium that carries the interactive application 115. In another embodiment, the broadcast medium is a standard MPEG2 digital video multiplex that includes one or more MPEG2 video services, and the MPEG2 elemental stream (s) within this multiplex is used as a transport. Be done. The DIU 116 may operate with an analog or digital video source and instead may operate as an interface to a wide area network that connects the broadcast station 114 or broadcast source 102 directly to various transmitters 118. [0047] In one embodiment, the DIU 116 uses conventional methods to insert data defining an interactive application into the VBI of a broadcast feed. The North American Broadcast Teletext Standard (EIA-506) defines methods and protocols for transmitting data over one or more lines of the VBI. However, a wide variety of other transport mechanisms are available, including those that broadcast the interactive application 115 separately from the television program. Such transport mechanisms include out-of-band transmitters that transmit the interactive application 115 outside the unused portion of the television frequency spectrum and conventional frequency modulation (FM"" that transmits the interactive application 115 outside the television frequency spectrum. ) Including wireless transmitter. In another embodiment, the DIU uses conventional methods to insert data into an elementary stream within an MPEG2 multiplex. [0048] In one embodiment, an error check code or error correction code, such as a Hamming code, is inserted with the data. In one embodiment, the DIU 116 converts the data into a Hamming code, and in another embodiment, the data received by the DIU 116 from the broadcast server 110 is already encoded. [0049] DIU116 is coupled to transmitter 118, which sends a broadcast feed containing any inserted interactive application or command from broadcast server 110. In one embodiment, transmitter 118 is a satellite uplink that transmits the feed to a local uplink receiver, which delivers the feed to BR120 via a cable. In another embodiment, the transmitter 118 is a conventional cable system headend amplifier. In yet another embodiment, the transmitter 118 is a conventional television broadcast transmitter or a high-definition television digital transmitter. In yet another embodiment, transmitter 118 may transmit broadcast data over a WAN connection, the Internet or other public / private networks. [0050] In another embodiment, the DIU 116 inserts the interactive application 115 into the broadcast program before it is broadcast. For example, DIU116 may insert an interactive application into a source copy of a television commercial. Therefore, the interactive application will be broadcast whenever the commercial is broadcast. In this embodiment, the broadcast server 110 does not need to synchronize the search for the interactive application with the schedule listed in the playlist. However, the automation server 108 is intended to control the synchronization of the behavior of such broadcast interactive applications during the commercial broadcast and any interactive applications broadcast during the commercial broadcast television program. Will still be used. [0051] Broadcast data 117, including interactive applications, is received by the subscriber BR120, regardless of transmission method and insertion time. Only a single BR120 is shown in FIG. 1, but in a typical embodiment there are hundreds or thousands of BR120s that receive and respond to broadcast data 117 as described herein. It is understood that there is. In a typical embodiment, the BR 120 is a television set-top box that receives data 117 over a coaxial cable. The BR120 may also be integrated into the television. In addition, other broadcast receivers may be used, including NTSC broadcast receivers, high-definition television digital receivers, video cassette recorders or FM radio receivers. [0052] The architecture described above supports a number of useful embodiments in which the automation server 108 controls the broadcast server 110 and of various types and formats to achieve synchronous behavior with the broadcast program. Send data. First, it should be noted that the broadcast server 110 may send other types of data separately from or in addition to the interactive applications. For example, the broadcast server may provide data such as computer programs or audio / video data. The broadcast server may provide data, formats, codes or triggers for interactive applications previously transmitted to broadcast receivers. [0053] These various types of data may be transmitted in response to commands from automation server 108 in accordance with the present invention. For example, the broadcast server may send the interactive application to the broadcast receiver well in advance of the time when the interactive application and its associated broadcast program appear. Then, in response to a command from automation server 108, broadcast server 110 sends out a trigger code that triggers the execution of a previously loaded interactive application to run in sync with the broadcast program. May be good. Similarly, in response to automation server 108, broadcast server 110 sends forms or other data to update features, user interfaces or functionality of interactive applications that are already resident in the broadcast receiver. You may modify it. This allows the automation server 108 to operate or modify the interactive application in response to control signals from the scheduling system 106. [0054] The broadcast server 110 also responds to commands from automation server 108 by text, graphics, images, uniform resource locator (URL), uniform resource identifier (URI), HTML, XML, ATVEF, You may send hypermedia data such as JAVA applets or data of other types or formats. For example, in response to a scheduling system 106 that provides a control signal to signal the start of a television show, automation server 108 sends broadcast server 110 the URL to a website or web page to a broadcast receiver. The broadcast receiver loads the website for display to the user for synchronous display with the television show of the website. [0055] For any of these or other types of data that may be sent by broadcast server 110 in response to commands from automation server 108, the interactive application database or its analogs is the broadcast program identifier for the broadcast program. Stores data related to. This allows the automation server 108 to determine the appropriate data to be sent given the broadcast program identifier from the control signal of the scheduling system 106. [0056] [B. Broadcast receiver] FIG. 2 shows an embodiment of BR120 according to an embodiment of the present invention. In one embodiment, the BR120 is a General Instrument CFT-2200 CATV set-top decoder. The BR 120 is equipped with a tuner 202 that receives broadcast data 117 from the transmitter 118. In one embodiment, the tuner 202 is a conventional cable television tuner. In other embodiments, the tuner is a television broadcast tuner, an FM radio tuner, a digital tuner or some other form of tuner. In yet another embodiment, a personal computer with the appropriate hardware and software functions to display broadcast programs received on various types of transmission channels, including cables, the Internet and satellites. You may. The embodiment shown in FIG. 2 shows a display 218 within the BR120, which is usually a television. As described above, the display 218 may be provided outside the BR 120. [0057] The BR120 also includes a data extractor 206 coupled to the tuner 202 to extract interactive applications from broadcast data 117. In one embodiment, the data extractor 206 is a conventional VBI in-band data extraction circuit. In another embodiment, the data extractor 206 is a conventional modem. The data extractor 206 provides the bus 208 with a serial bitstream containing the extracted interactive application. Bus 208 is coupled via bus 208 to microprocessor 210, which stores the extracted interactive application in first storage 212, as instructed by a program stored in second storage 214. ing. In one embodiment, the microprocessor 210 uses the error code information from the extracted data to check or correct errors in the decoded interactive application. In one embodiment, the first storage device 212 is conventional random access memory (RAM), while the second storage device 214 is conventional read-only memory (ROM). A third storage device, which may be RAM or flash memory, is coupled to the microprocessor 210 to store reminder data. The advantage of flash memory is that the software or data residing on the BR120 can be modified by the receiving interactive application. [0058] [0058] In one embodiment, the BR 120 also uses the data extractor 206 to extract the time signal from the broadcast data 117. The time signal indicates the current time using a standard time axis such as Coordinated Universal Time (UTC) or the subscriber's regional time. In another embodiment, the BR 120 has a real-time clock set by either the subscriber or the received time signal. Nevertheless, the BR120 preferably has access to the above current times and is therefore capable of performing data stamping and timekeeping functions. [0059] As described below, the microprocessor 210 uses the program stored in the second storage device 214 and the interactive application stored in the first storage device 212 to execute the interactive application and provide output. To do. The program stored in the second storage device 214 is preferably an execution engine 217 that executes an interactive application defined by various scripts, formats, definitions and code and graphic resources. A suitable execution engine is the Wink Engine provided by Wink Communications, Inc. of Alameda, California. The station receiver 120, as part of either the execution engine 217 or the native operating system 219, also stored in the second storage 214, as a background process that counts down from the input value. Includes executable timer function or equivalent timekeeping specifications. [0060] The output by running the interactive application may be in the form of presenting information or menus to the television viewer or receiving viewer input, for example, or may include BR120 or television usage data or the viewer. It may be a silent response or another response that indicates your preference. For the purposes of the present invention, the form may present any variety of information to obtain any variety of user responses. To that end, the BR 120 is a graphic overlay generator coupled to bus 208 and driven by an interactive application 115 stored in first storage 212 and a program stored in second storage 214. It preferably contains 216. The graphics overlay generator 216 generates a graphics display in response to the interactive application 115. This graphic display is displayed on display 218, which is usually a television combined with BR120. Of course, the graphics overlay generator 216 is typically not used when interactive applications run silently. [0061] In one embodiment, the graphic overlay generator 216 also receives the broadcast signal corresponding to the broadcast program from the tuner 202 and, for example, the broadcast program and the interactive application 115 to input the data in the displayed format. Allows simultaneous display with the graphic side (if any) of. In one embodiment, the microprocessor 210 is also coupled to the user input decoder 222 coupled to the user input receiver 224 so that the user communicates with the microprocessor 210 in order to respond to the interactive application 115. to enable. In one embodiment, the user input decoder 222 is a conventional infrared remote control decoder. The user input receiver 224 is preferably a conventional infrared receiver 224 that allows the user to use a conventional portable remote control device. The remote control key pressed by the user is converted into an encoded infrared signal received by the user input receiver 224, decoded by the user input decoder 222 and sent to the microprocessor 210 to allow the user to interact with the application 115. Allows you to communicate with. [0062] In one embodiment, the BR120 is a cable television set-top decoder connected to the cable system via a broadband coaxial cable. In this embodiment, the line driver 230 is an RF modem that can send a response to the cable system headend over a coaxial cable, typically using the out-of-band portion of the RF spectrum, and the communication port 232 is a standard RF tap. Is. In another embodiment, the BR120 is a television, VCR or set-top where the line driver 230 is a standard telephone modem and the communication port 232 is a standard RJ-11 jack. [0063] The microprocessor 210 may be coupled to a conventional infrared command encoder 226, which accepts infrared command inputs and encodes the signal for the conventional infrared transmitter 228, interactive application 115. There child control external device to enable the. [0064] [C. Run Interactive Application] FIG. 3 is a flowchart showing the steps of receiving and executing an interactive application using a compact information protocol according to a preferred embodiment of the present invention. BR120 receives and decodes application header records created by broadcast server 110, inserted by DIU116, and transmitted by transmitter 118 (310). The application header record describes the information containing them according to the interactive application identification code. [0065] The reminder functionality of interactive applications is described by definitions, scripts and commands that may be encoded and broadcast in any order. Definitions, scripts and commands are received and decrypted by BR120 (312) and define the reminder and response parameters used when running the reminder interactive application (314). [0066] Some or all of the received reminder interactive applications may be stored within the BR120 (312). In one embodiment, the interactive application is broadcast repeatedly, allowing the BR120 to tune to the broadcast program whenever the entire interactive application is not received. Any desired update to the stored interactive application may be received and decrypted (316). If there are additional or updated definitions, scripts or commands, they may be sent until the application completes (318). In one embodiment, an exit command may be broadcast to stop the interactive application (320). [0067] The new interactive application may be sent at any time, including while the original application is running or sending a response. For example, a new interactive application for commercials may interrupt the original application for news programs, and the present invention allows the latter application to resume operation at the end of the former. [0068] In other embodiments using different forms of interactivity, such as URLs, the broadcast receiver 120 provides appropriate decryption, parsing, and execution capabilities to suit the type of interactivity. Therefore, for URL-type data, the broadcast receiver 120 may be equipped with a browser and an appropriate mechanism for searching, loading, and displaying web pages, JAVA applets, and the like. [0069] [D. Automation Server] [1. Overview of Automation Server Behavior] The automation server 108 interfaces with the scheduling system 106 to receive control signals that the latter provides to the broadcast program source 102. In addition, the automation server 108 is communicably coupled to the broadcast server 110 to receive state information about which interactive application is being prepared for broadcast or is currently being broadcast on which channel. Automation server 108 uses state information and control signals, including its playlists, to generate specific commands for broadcast server 110. These commands command the broadcast server 110 to selectively control the preparation of the interactive application being broadcast or the execution of the interactive application currently being broadcast. [0070] In particular, the automation server 108 responds to the control signal to generate commands to the broadcast server 110 to schedule, start, stop, or cancel the execution of the interactive application. Automation server 108 generates a sequence of these commands to achieve appropriate interactive execution, including display and / or termination, for both commercial and television shows as well as other broadcast programs. [0071] The control signal from the scheduling system 106 is associated with a particular channel, either explicitly or implicitly. From the nature of the control signal, its channel allocation and playlist information, the automation server 108 determines the state and type of the current broadcast program being broadcast or the next broadcast program to be broadcast, as appropriate. In particular, the automation server 108 determines whether the control signal indicates whether the program currently being broadcast is a television show or a commercial. [0072] Automation Server 108 in response to receiving a control signal indicating that the commercial has started broadcasting on a particular channel (ie, a control signal to one of the broadcast sources that plays the broadcast data about the commercial). Determines if the interactive application is currently running on that channel and, if so, generates a command to the broadcast server 110 to suspend (stop) the execution of the interactive application. The broadcast server 110 transmits this command to the broadcast receiver 120. A broadcast receiver tuned to the appropriate channel interrupts the execution of the interactive application. However, since the broadcast receiver 120 needs to re-execute the interactive application once the commercial is finished, the automation server 108 should not cancel the interactive application so that the interactive application can be re-executed immediately. Yes, you should retain the state information you had when the commercial started. [0073] Automation server 108 may determine if there is an interactive application associated with a commercial. The automation server 108, if any, orders the broadcast server to send an interactive application to run it. Unless there is an interactive application specifically associated with the commercial, the automation server 108 may signal the broadcast server to start running the default interactive application. [0074] At some point, the automation server 108 receives a control signal indicating that the commercial has ended. In response to this control signal, the automation server 108 generates a command to the broadcast server 110 to resume execution of the interactive application, and the broadcast server 110 sends the command to the broadcast receiver 120. The broadcast receiver tuned to the appropriate channel receives this command and resumes execution of the interactive application for the television program. [0075] The effect seen by viewers here is that the interactive application that accompanies the original television show has been removed from the television screen during the commercial. An interactive application that is specific to a commercial, that is, a default application, is executed and displayed during the commercial. When the commercial ends and the television show resumes, the interactive application of the television program will reappear. When the interactive application reappears, it has the state information it had before the commercial (eg, the current score), thereby retaining the viewer's use of the interactive application. [0076] Broadcast programs such as television shows typically have a large number of segments in this format, separated by commercial period. The interactivity associated with the television program should be consistently available with its state information throughout each of the segments. Automation server 108 controls signals to determine if a large number of segments are actually part of a single television show or other broadcast program, thereby being associated with the same interactive application. This result is achieved by correlating the information extracted from and identifying each segment to be broadcast. By so correlating the otherwise unrelated segments, Automation Server 108 can properly abort and resume a single interactive application of a television program over a number of commercial periods. it can. This process is described in more detail below with reference to FIG. [0077] Automation Server 108 may be implemented as a software product running on traditional workstations and personal computers, such as those using Intel chipsets and Microsoft operating systems, or dedicated ASICs. Alternatively, it may be encoded in other hardware embodiments. [0078] [2. Overview of Automation Server Functions] Here, with reference to FIG. 4, a diagram of the functional architecture of the automation server 108 according to the embodiment of the present invention is shown. In this embodiment, the automation server 108 includes an interface manager 400. The interface manager 400 manages a plurality of channel interfaces 402, each of which is associated with one or more channels. Each channel interface 402 receives a control signal from the scheduling system 106 for its assigned channel and outputs a command to the broadcast server 110. [0079] Here, with reference to FIG. 5, the functional structure of channel interface 402 is shown. Each channel interface module 402 includes a translator module 502 and an event manager 504. The translator module 502 receives control signals from the scheduling system 106 and converts these signals into atomic commands. The event manager 504 receives atomic commands and processes them into commands that the broadcast server 110 understands. [0080] [0080] [3. Interface Manager] With reference to FIG. 6, a lifecycle interaction diagram of Interface Manager 400 is shown. Interface manager 400 creates and maintains all channel interfaces 402 for different scheduling systems 106. The interface manager 400 has three main phases: the initialization phase, the running phase (execution phase), and the shutoff phase. When the automation server 108 starts, it creates interface manager 400 (602) and initializes it. During this initialization phase, interface manager 400 calls the initialization (ini) file (604) to create the different channel interfaces 402 needed to work with the scheduling system 106 (606). ) Initialize (608). [0081] Once the interface manager 400 has created and initialized all the required objects, it transitions to the running phase. During this phase, interface manager 400 requires each channel interface 402 to operate (610). [0082] Normally, the automation server 108 and its interface manager 400 remain in the running phase for an extended period of time. However, if there is an irreparable error or if the automation server 108 needs to be upgraded, the automation server 108 will be shut down. During this cutoff phase, the interface manager requires each channel interface 402 to shut down (612). [0083] With reference to FIG. 7, a life cycle interaction diagram for each channel interface 402 is shown. As shown in FIG. 4, each channel interface 402 includes a translator module 502 and an event manager 504. Channel interface 402 also has three main phases: initialization phase, running phase and shutoff phase. [0084] During the initialization phase, it creates (702) and initializes (704) translator module 502 and event manager 504. The event manager 504 initialization parameters include the following information: [0085] -How to configure broadcast server events for each event type. · Where to find interactive applications. -Parameters for fine tuning the timing of the automation server. [0086] -How to connect to the broadcast server. -How to respond to a sudden disconnection from the broadcast server. Is the event scheduled in advance? [0087] The initialization parameters of translator module 502 include the following information: -How to connect to the scheduling system. · How to respond to a sudden disconnect from the scheduling system. [0088] -Scheduling system specific parameters, such as how to interpret a particular command when it can be used differently by different broadcasters. [0089] -Fine tuning on how to call and interpret commands from the scheduling system. Ordinary language or other information used to distinguish a commercial from a show. [0090] During the running phase, channel interface 402 enters an infinite loop (event loop) (708) to process any control signal from scheduling system 106. Channel interface 402 may receive the request directly from a separate automation server client (eg, a request for blocking). Channel Interace 402 requests atomic commands from translator module 502 (710) and, if they are event-related, passes them to event manager 504 (712). If the atomic commands are null or error commands, channel interface 402 handles those commands themselves (714). If an irreparable error occurs, log the error and exit the event loop (715). [0091] During the cutoff phase, channel interface 402 receives the cutoff request (716) and sends the request to them so that the translator module 502 and event manager 504 can clearly cut off (718). ). Once they shut off, channel interface 402 cleans itself up and returns from the event loop to shut off itself. [0092] [4. Outline of translator module] Each broadcast program may be understood to have a specific "life cycle". This life cycle is also basically managed by a scheduling system 106 that acts as a state machine for each broadcast program. However, the scheduling system 106 provides only a limited amount of information about the broadcast program, usually as much as needed to control the broadcast source. [0093] Then, for each broadcast program, the translator module 502 reconstructs the state-machine behavior with respect to the limited information received from the scheduling system 106 to recreate the life cycle of the broadcast program. It then allows event manager 504 to provide appropriate atomic commands to manage interactive applications that may be associated with the broadcast program. Therefore, as shown in FIG. 5, the translator module 502 creates and maintains a state machine 510 for each unique broadcast program identified by the control signal from the scheduling system 106. [0094] Each translator module 502 is specific to the type of scheduling system 106 with which it communicates and provides a state mapping from the scheduling system 106 to a series of events that the translator module 502 can understand. Since each type of scheduling system 106 provides different types of information in each control signal, the cause of errors, missing information, etc. can be clarified, and the translator module can be derived from the implicit state machine of the scheduling system 106. Need to map to the state machine defined by 502. [0095] As mentioned above, each of the translator modules 502 is of a particular type because there are different types of scheduling systems 106, each of which outputs different types of control signals with different levels of information. Corresponds to the scheduling system 106 of. However, all scheduling systems 106 may be able to explain the "ideal" scheduling system 106, which provides the most complete set of control signals. Table 1 lists the types of control signals provided by the ideal scheduling system 106 and the data contained in each of these ideal signal types. [0096] [table 1]<img file="JP4972258B2_D0001.tif" />[0097] These signals have all the identified data and the translator module 502 can very easily determine the proper state of the broadcast program to form the data needed to communicate with the event manager 504. It is ideal in that sense. In the non-ideal scheduling system 106, the translator module 502 uses an additional external data source to provide appropriate data for transmission to the event manager 504, such as a playlist on broadcast server 110, and interactively. Determine information about the relationship to the broadcast program identifier contained in the application's interactive application database. [0098] The preload signal is a control signal typically used by the scheduling system 106 to cause the broadcast source 106 to load the broadcast program in anticipation of being broadcast at a later time. Ideally, this signal contains a program ID that uniquely identifies the broadcast program being loaded. Channel identification identifies the channel for broadcasting, which may be implicit or explicit. The duration specifies the duration of the broadcast program. It is used by the automation server 108 to terminate the interactive application in the absence of an explicit stop signal from the scheduling system 106. [0099] The preload signal may or may not be received at the exact time. That is, in some scheduling systems, it is received accurately (with a fraction of a second accuracy prior to broadcasting the event). In other scheduling systems, it can be received in seconds to hours prior to the broadcast of the event. Preroll event start and event stop signals must be accurately timed. If the native control signal is used for both the preload and any other control signal, it must be timed accurately. [0100] The location of the interactive application identifies the location of the interactive application designated to accompany the broadcast program. This location may be identified within the interactive application database 112 or may be a pathname into a file directory where the interactive application is stored. The event type defines the type of broadcast program. The number of types depends on the system design and may simply make a distinction between television shows and commercials, or further identify program guides, closed captions or other types of broadcast content. Event types are described further below for Event Manager 504 and Table 7. [0101] Since these signals and their data content relate to the ideal scheduling system 106, the actual scheduling system 106 will have fewer of these signals and only or both of the identified data. You may use it. However, the translator module 502 and the event manager 504 manage the broadcast server 110 by operating and completing whatever data is lost from these control signals. [0102] For an ideal control signal, the "ideal" translator module 502 can be defined. This ideal translator module 502 maps control signals from scheduling system 106 to a series of atomic commands used by event manager 504. As such, this ideal translator is for any broadcast program life cycle and how the event manager 504 responds to different states of the broadcast program life cycle for interactive applications associated with that broadcast program. Indicates whether a command for the broadcast server 110 that controls execution can be generated. [0103] Table 2 lists the atomic commands generated by translator module 502. [0104] [Table 2]<img file="JP4972258B2_D0002.tif" />[0105] In some situations, the translator module 502 issues a schedule atomic command fast enough for the interactive application to synchronize with the video data being broadcast, as the broadcast server 110 takes time to schedule the interactive application. You may not be able to send. In this case, the interactive application can be pre-scheduled on the broadcast server 110 by some other manual or automated process, and the automation server 108 pre-schedules instead of instructing the broadcast server 110 to schedule. You can save time by looking for an interactive application. In this mode, pre-scheduled events may be rebroadcast, so Automation Server 108 does not undo them. Instead, the process that scheduled them is responsible for canceling them. [0106] The actual translator module 502 for any particular scheduling system 106 is obtained from the ideal translator module 502. Here, with reference to FIG. 8, a description of the state machine of the ideal translator state machine 510 is shown. Each broadcast program may be understood to transition through a number of states defined by the control signal. [0107] The state machine starts in the starting state 800. From this state, the translator module 502 transitions to the loaded state 802. The loaded state 802 can be reached from three different ideal signals 801, one of the preload signal, preroll signal or start signal. [0108] Normally, the first control signal 801 received by the translator module 502 will be the preload signal. On the scheduling system 106, this signal indicates that the broadcast program is about to be broadcast. If the preload signal has not been previously received, the start state 802 is also reached with the preroll signal, as described above. The preroll signal also indicates that the broadcast program is about to be broadcast. [0109] In the loaded state 802, the translator module 502 determines the appropriate interactive application associated with the broadcast program and schedules its execution. The translator module 502 determines what is as close as possible to the ideal data for this condition, such as the broadcast program ID for the broadcast program, the event type, and the location of the associated interactive application. The event type describes the type of broadcast program, such as television show, commercial or unknown. Event types are described further below. In some cases, the translator module 502 is associated with a particular channel, so the channel allocation is implied, in other cases the channel may be explicitly encoded in the control signal. [0110] More specifically, the translator module 502 logs the current time and the received signal. The translator module 502 sets the broadcast program ID for the associated interactive application to the broadcast program ID included in the control signal. If necessary, translator module 502 uses regular expressions to calculate the event type (see below). Otherwise, translator module 502 sets the event type to unknown and leaves it to event manager 504 to determine the event type from the data contained in the interactive application itself. If necessary, the translator module 502 also sets the location of the interactive application to be the broadcast program ID, but again the event manager 504 is based on the broadcast program ID and the broadcast program segment number. Determine the position appropriately. [0111] Then, the translator module 502 creates a schedule command using the created ideal data and outputs it to the event manager 504. This schedule command determines if there is an interactive application associated with the broadcast program ID for the broadcast program and requests the broadcast server to prepare to broadcast the identified interactive application, if any. Command event manager 504. [0112] The next state is the prepared state 804. This state is reached from state 802 loaded with either the preroll signal or the start signal. There is also an automatic transition to the prepared state 804 if the preroll or start signal was the first signal 801 received. That is, if any of these signals are received as the first signal 801 the translator module 502 will automatically go through the loaded state 802, the prepared state 804 and the in-broadcast state 806. Transition. [0113] The prepared state 804 controls the timing of atomic commands sent to event manager 504. Before being started, the automation server 108 is designed for how long before the scheduling system starts broadcasting the preroll signal can be received. This is usually between 1 and 10 seconds and is usually measured in milliseconds. Upon receiving the preroll or start signal, the ideal translator module enters the prepared state 804. The prepared state 804 is preferably paused for XY microseconds, where X is how quickly the preroll signal arrives, Y is the event manager 504 and the broadcast server 110 is an interactive application for the broadcast program. The length of time required to start an (event). After that time elapses, the translator module 502 automatically transitions to the on-air state 806, where the event begins. It also produces a start signal 805 that can be used by other event state machines (see section on broadcast outages below). Note that if XY is less than zero or the control signal is a start signal, it will not wait at all in the prepared state 804. Instead, it immediately transitions to the in-broadcast state 806, allowing the broadcast server event to start as soon as possible. [0114] The "on air" state 806 automatically occurs after the prepared state 804. In this state, the translator module 502 creates a start atomic command and sends it to the event manager 504. When combined with the pause introduced in the prepared state 804, this has the effect of starting an interactive application and starting to run with the broadcast program. [0115] During the broadcast state 806, additional signals forming a secondary trigger 809 may be received and processed (810). These secondary triggers can lead to the execution of additional functions associated with the interactive application being broadcast. [0116] The event stop signal 807 ends the broadcast, resulting in a "stop broadcast" state 808. This state cancels the event. That is, the translator module 502 creates a cancel command based on the current broadcast program ID and sends it to event manager 504 to cancel the current interactive application. This state can be triggered by a control signal associated with another event. For example, if the scheduling system's native control signal does not include an event stop signal, the event start signal for the next event will stop the previous event. [0117] For error signals, translator module 502 creates a cancel command based on the current broadcast program ID and sends it to event manager 504 to cancel the current interactive application. [0118] Thus, these states represent the life cycle of each broadcast program as seen by the scheduling system 106. From this information, automation server 108 determines the state of the interactive application associated with the broadcast program and generates the appropriate command to broadcast server 110 for that state. [0119] Therefore, the translator module 502 is designed to manage broadcast programs on specific channels corresponding to these conditions. More specifically, the translator module 502 maintains a state machine 510 for each broadcast program ID it receives. This state machine is created each time a new broadcast program ID is received and is maintained by the scheduling system 106 until it indicates that the broadcast program has been terminated. [0120] With reference to FIG. 9, a flowchart of the overall operation of the translator module 502, especially its mapping logic 506, is shown. Each time the translator module 502 receives a control signal from the scheduling system 106 (900), it determines whether the control signal is associated with the event it manages (902). The event is indicated by an error signal or other data representing the broadcast program ID or broadcast program, as opposed to other data such as start-up, blockage, error or system message. [0121] If the control signal is not about an event, the translator module 502 determines if it is an error signal (904). The error signal is passed to event manager module 504 for processing (906). [0122] If the control signal is not an error signal, it is ignored (910). If the signal is an event signal, the translator module 502 applies mapping logic 506 using the broadcast program ID of the event as a key to the state machine, and the identified event is a new event or is already a state machine. Determine if 510 is an existing event. If the event is a new event, the translator module 502 initiates the state machine 510 (914), exemplifying the new state machine 510 with respect to the broadcast program ID and event (912). [0123] If there is an existing state machine, the event control signal is passed to the state machine 510 associated with the broadcast program ID (916). The state machine 510 then processes events according to its state logic, as described above for an ideal state machine and as described in more detail below for a particular translator type. [0124] [5. Translator type] Each scheduling system 106 produces a series of control signals that are unique to itself, interpreted by the translator module 502. The following sections describe how a particular translator module is implemented, based on an ideal phase diagram of the translator module. That is, the control signal specific to the scheduling system can be mapped on the general control signal in the ideal translator. Each particular translator module 502 proceeds through the same conditions as described for the ideal translator module. However, the state behavior for each particular translator is slightly different to account for the differences in the control signals they receive. [0125] The mapping of ideal translator state machines to specific state machines for each type of translator is summarized in Table 4-6 below. The column headings in these tables are defined in Table 3. [0126] [Table 3]<img file="JP4972258B2_D0003.tif" />[0127] a) Translator type 1: Basic scheduling system The basic scheduling system 106 is a system that usually encodes very little data in its control signal other than the broadcast program ID. Interpretation of this control signal through the state machine of the translator involves the creation and inference of appropriate data to reproduce what was ideal data for the ideal control signal. An example of the basic scheduling system 106 is the Louth ADC-100. [0128] In one embodiment, the automation server 108 interfaces with the basic scheduling system by emulating a sub-titler. In one embodiment, such as one with a Louth scheduling system, the emulated sub-titler is the Cavena sub-titler. Typically, the basic scheduling system 106 sends a signal to the subtitler to create a subtitle, start the subtitle, and stop the subtitle displayed on the video program data of the broadcast program. In the present invention, the automation server 108 uses these control signals to synchronize the interactive application with the video. [0129] Some of the basic scheduling systems 106 preferably have the ability to provide preroll information. In this case, it prepares in a suitable number of seconds before the actual start of the broadcast program. Signal) is sent. Automation server 108 uses this information to preload and start interactive applications faster, just as they are delivered to the user when the broadcast program begins. Thus, when a type 1 translator receives a readiness signal, it transitions through the loaded state 802, the prepared state 804, and the in-broadcast state 806. This is explained in Table 4 as automatic migration. [0130] When the automation server 108 receives the start signal 805 from the basic scheduling system 106, it uses the prepare signal to know that the interactive application has already started, so it ignores the start signal. If there is an error in the control signal of the basic scheduling system, the automation server 108 will stop the current interactive application and move to error state 812. [0131] Table 4 summarizes the relationship between the native control signals for the basic scheduling system 106, the ideal control signals, and the state transitions for the state machine of the ideal translator module 502. [0132] [Table 4]<img file="JP4972258B2_D0004.tif" />[0133] b) Translator Type 2: Codebase Scheduling System The second type of scheduling system 106 uses an identification code to selectively distinguish between television shows and commercials. An example of this type of scheduling system 106 is an ISCI code-based system, such as that used by ESPN Inc. for its broadcast system. In this type of system, the ISCI code is present in broadcast programs such as commercials, not in television shows. These types of code may be provided directly by the scheduling system 106 or indirectly pre-recorded on a medium (eg, videotape) with the broadcast program. [0134] Other types of code base systems use code that individually identifies interactive applications, URLs, URIs, and so on. The automation server 108 interfaces with the code base scheduling system 106 through a VITC timecode reader or a similar timecode reader. The code-based scheduling system sends ISCI information during commercials through VITC timecode, not during shows. Automation server 108 uses this information to selectively add interactive applications between commercials and shows. Only the default interactive application is supported because the control signals of the scheduling system do not identify the show by broadcast program ID. [0135] Generally, when the control signal contains the presence of an ISCI or similar code, the translator 502 knows that a commercial has begun. Therefore, the state machine 510 transitions through the loaded state, the prepared state, and the in-broadcast state to start the interactive application. These migrations occur automatically as automatic migrations, as described in Table 5. In the loaded state, the ISCI code (or other code such as a URL, application identifier, etc.) is used as the broadcast program ID for the ideal data (eg, store the code as the broadcast program ID). This allows Event Manager 504 to determine the appropriate interactive application. [0136] When the ISCI code changes, Translator 502 knows that a new commercial has begun. Therefore, the state machine 510 transitions through the broadcast outage state to stop the interactive content and create a cancel atomic command to cancel the current interactive application for commercials. The translator 502 creates a new state machine 510 with respect to the new ISCI code, which state machine 510 transitions through the loaded state, the prepared state and the in-broadcast state, and a start atomic command is generated for the new commercial. Start your interactive application. [0137] When the control signal does not contain an ISCI code, the translator 502 knows that the television show has started (or is in progress). Therefore, the state machine 510 transitions through the broadcast outage state to stop the interactive content and create a cancel atomic command that cancels the current interactive application for commercials. Based on the same signal (ie, no ISCI code at all), a new state machine 510 with an unknown broadcast program ID with the show's event type is created. As described below, the event manager determines that this broadcast program ID should be associated with the default show. The state machine 510 proceeds through the loaded state, the prepared state, and the in-broadcast state, and generates a start atomic command to start the default application for the television show. When the ISCI code is detected again, the state machine 510 proceeds through the broadcast outage state and a cancel atomic command is generated. [0138] Because code-based systems often have small gaps with no data (especially during transitions between codes), the translator 502 has a correctable number of seconds before detecting the absence of ISCI code. Wait for a while. This avoids false detections. [0139] If there is an error in the control signal, the state machine 510 also cancels the current interactive content and moves to the error state. Table 5 shows the native control signals for the code-based scheduling system 106, the ideal control signals, and the ideal translator module 502 state machine state transitions for both commercial and default show events. Summarizes the relationship with. [0140] [Table 5]<img file="JP4972258B2_D0005.tif" />[0141] c) Translator Type 3: Playlist-based scheduling system The third type of scheduling system 106 supported by the present invention is a playlist-based scheduling system. In this type of system, the control signal identifies the program being broadcast and its duration to provide a playlist element. In some cases, the program title of the broadcast program is included. An example of this type of scheduling system is the Library Management System (LMS) BZCA-1000 Multicassette System running the BZCA-1102 Spot Reel Option Software provided by Sony Corporation. [0142] The automation server 108 is associated with this type of scheduling system 106 by acting as a control terminal. The control terminal displays an outbound playlist, which is a table of scheduled events. LMS The BAC-1200 control terminal is an example. The playlist contains event information such as broadcast program ID, program title, and duration for each broadcast program. [0143] The playlist-based translator module 502 takes in and parses all event information received from the scheduling system 106. Events will appear in the outgoing playlist prior to their broadcast time. When an event (for example, a broadcast program) appears in an outgoing playlist, translator 502 preloads an interactive application for that event and transitions to the loaded state 802. The scheduling system 106 provides preroll information for each event by transmitting the event state of the play control signal for a modifiable number of seconds before the event is on the air. [0144] Translator module 502 transitions through prepared state 804 and in-broadcast state 806 and initiates an interactive application when it receives a play control signal for an event. If the translator 502 misses the play control signal for the event due to a network problem or some other problem and receives a broadcast or online control signal for the event, it will transition to the on-air state 806 for the interactive application. Start. In this case, the automation server 108 misses the benefit of preroll information, but the interactive application is nevertheless started. [0145] If the translator module 502 receives an on-air or online signal and is not yet in the prepared state 804, treats the on-air / online signal as a play signal, first transitions to the prepared state 804, and then automatically. It shifts to the state 806 being broadcast. [0146] When the event data disappears from the transmit playlist, the translator module 502 transitions to the out-of-broadcast state 808, instructing the event manager 504 to cancel the current interactive application. [0147] In the event of any other type of error, such as losing connectivity to the scheduling system, Automation Server 108 will stop the current interactive application and move to an error state. [0148] Table 6 summarizes the relationship between the native control signals for the playlist-based scheduling system 106 and the ideal control signals and state transitions for the ideal translation module 502 state machine. [0149] [Table 6]<img file="JP4972258B2_D0006.tif" />[0150] [6. Translator event type calculation based on regular expressions] The scheduling system 106, which tracks the event type of the broadcast program ID, can send that information directly to the automation server 108. Since many scheduling systems 106 do not support this feature, some broadcasters 114 use broadcast program IDs that distinguish between different types of broadcast programs, such as shows and commercials. Automation server 108 uses this information for itself. The translator 502 uses that information to determine what type of event to schedule. For example, a commercial broadcast program ID may have the prefix "VT" and a television show broadcast program ID may have a different prefix or no prefix at all. Automation server 108 uses a regular expression along with the broadcast program ID to distinguish between commercials and shows. Based on regular expression analysis, the event type is set to commercial if the broadcast program ID meets the commercial criteria, or to the show if the broadcast program ID meets the show criteria. .. If station 114 does not name the broadcast program ID to distinguish between shows and commercials, the event type is set to unknown. In such cases, Event Manager 504 looks at the actual interactive application file to see if there is a flag telling whether the content is commercial or show related. [0151] [7. Outline of Event Manager] Referring to FIG. 5, the event manager 504 receives various atomic commands 514 from the translator module state machine 510 and accordingly commands the broadcast server 110 to control its interactive application. [0152] Generally, in a conventional system without an automation server 108, the broadcast server 110 sends an interactive application to the data insertion unit 116 according to a predetermined playlist, which is a list of broadcast server events. [0153] However, the automation server 108 automates the creation of broadcast server playlists via the control signals provided by the scheduling system 106, dynamically adding, deleting, and modifying events on the broadcast server playlists. It can be adapted to near real-time changes to playlists in the scheduling system. Broadcast server playlists may contain events for all channels, but event manager 504 manages only events for the channel on which it receives atomic commands. [0154] FIG. 5 shows how translator module 502 sends atomic command 514 to event manager 504. Event manager 504 interprets atomic command 514 to generate a series of basic commands for broadcast server 110. When the event manager 504 receives the atomic command 514, the event manager 504 maps the broadcast program ID contained therein to a specific broadcast server event via the mapping logic 508. If no suitable broadcast server event exists for a particular broadcast program ID, event manager 504 creates a broadcast server event. In general, event manager 502 creates, modifies, or destroys broadcast server events as needed. [0155] Event manager 504 maintains a separate state machine 512 for each broadcast server event it manages. Each state machine is assigned to the event by the broadcast program ID of the event. Atomic commands from the translator module 502 are then sent to these state machines based on their broadcast program IDs. This process is described in the Atomic Command Mapping Logic section below. The event state machine 512 is responsible for generating accurate broadcast server basic commands. It is described in detail in the Event State Machine section below. [0156] By using two state machines, the translator module 502 and the event manager 504, any of a variety of different types of scheduling systems 106, while enabling relatively simple and efficient implementation of the event manager 504. Can also be easily interfaced with the automation server 108. This allows the creation of a new translator module 502 for collaboration with the new scheduling system 106 without the need to change event manager 504. [0157] Since different event types cause the atomic command mapping logic 508 and the event state machine 512 to behave differently, the following sections define the different event types that event manager 504 supports. [0158] a) Event type The event type determines how the broadcast server event should behave. There are three different categories that define event behavior. [0159] Broadcast program type ·segmentation Interactivity The program type can be commercial, show or unknown. Commercials are an independent part of television programming, which is usually short (30-120 seconds). A show is a television program that contains one or more segments. One or more commercials will be aired during the television show segment. If the automation server 108 cannot determine the program type from the control signal transmitted by the scheduling system 106, the type is set to unknown. In general, unknown events may be treated as independent programming, such as commercials, or as television shows. [0160] Program type and segmentation are closely related. In a preferred embodiment, television shows are always treated as classified and commercials are always treated as unclassified. Unknown programs can be treated as some kind of program. The treatment of the segmented television shows will be further described below with reference to FIG. [0161] Interactivity (eg, an interactive application) can be either a regular interactive event or a default interactive event. A normal event is an event with which a particular interactive application is associated. Event manager 504 may replace the default interactive application with the duration of the event if it cannot find the particular interactive application associated with the event in the interactive application database 112. No event can also be identified as the default event, which means that the interactive application will not be broadcast for the duration of the event. [0162] The table below lists the six event types and summarizes the behavior of each event type. [0163] [Table 7]<img file="JP4972258B2_D0007.tif" />[0164] The event type is also used to determine the broadcast server event settings. b) Determine the event type The event type is first determined by translator module 502 and passed to event manager 504 with atomic command 514. In some cases, the translator module 502 does not have enough information to determine the actual event type. The translator module 502 makes the first decision about the event type, but the event manager 504 may change the event type if it has better information. Event manager 504 has two pieces of information that translator module 502 does not have. 1. Event Manager 504 knows if an interactive application exists for the broadcast program ID of the event. 2. Event manager 504 can obtain event type information from an interactive application. [0165] The application contains information to determine if it can be interrupted. Automation server 108 assumes that all television shows are interruptable and not all commercials are interruptable. [0166] Combining the event manager information with the translator module information, event manager 504 can determine the appropriate event type as summarized in the table below. [0167] [Table 8]<img file="JP4972258B2_D0008.tif" />[0168] c) Atomic command mapping logic Event manager 504 maintains a separate state machine 512 for each event it manages. Upon receiving the atomic command 514 from the translator module 502, the event manager 504 must associate the broadcast program ID of the atomic command with the appropriate broadcast server event and pass the atomic command to the appropriate state machine 512. It doesn't become. This process is processed by the event manager's mapping logic 508. [0169] The mapping logic 508 creates and maintains an event association table that associates the broadcast program ID with the broadcast server event ID. Only scheduled atomic commands can cause new broadcast server events to be created. As a result, only they can add a new row to the event association table that associates the broadcast program ID with the ID of the new broadcast server event. When an event interferes with the state machine 512 and the state machine is destroyed, the association is removed from the table. [0170] FIG. 10 shows the state behavior of one embodiment of the mapping logic 508. Table 9 illustrates this figure. [0171] [Table 9]<img file="JP4972258B2_D0009.tif" />[0172] When creating a new event state machine, the mapping logic 508 determines the event type according to the rules in Table 8 above. For regular non-segmented interactive events, there is a one-to-one mapping between scheduling system events and broadcast server events in the event association table. Two notable exceptions are described below. [0173] d) Special case event mapping Generally, there is a one-to-one mapping between scheduling system events and broadcast server events. Two notable exceptions are described here. [0174] (i) Default event At startup, Event Manager 504 creates three broadcast server events (one for each default event type). These are the first three events in the event association table. As described above for event types, the default event is selected when the interactive application cannot find the identified broadcast program ID. To support this, the event association table allows multiple broadcast program IDs to be mapped to the same default event ID. When the mapping logic 508 receives a schedule atomic command that does not have an interactive application associated with it, the mapping logic 508 assigns its broadcast program ID to the event identified in the schedule atomic command. Associate with the default event corresponding to the type. Mapping logic 508 does not pass scheduled atomic commands because the default event is already scheduled. [0175] (ii) Segmented events As mentioned above, a single television show can be segmented into multiple parts. For the scheduling system 106, a show is a series of numerous events, each with its own broadcast program ID. For broadcast servers, a television show is a single event that is interrupted and resumed on a segment-by-segment basis. As a result, the event association table fills this gap by matching multiple broadcast program IDs to a single broadcast server event. [0176] If the scheduling system 106 provides information about segmentation in its broadcast program ID, event mapping logic 508 creates a new event state machine 512 for the first segment of the television show, and others. Automatically maps all segments of to the same event state machine 512. [0177] Unfortunately, most scheduling systems do not provide this information. Therefore, the automation server 108 determines whether two different broadcast program IDs are mapped to the same interactive application in the interactive application database 112 so that the two broadcast program IDs are the same television. Determine if it is associated with the show. When Mapping Logic 508 determines that the new broadcast program ID is for another segment of the television show already listed in the event association table, 1. In the event association table, associate the new broadcast program ID with the existing broadcast server event, 2. Do not pass the schedule atomic command because the show is already scheduled. [0178] This will be described in more detail in the Event State Machine and Segmentation section below. e) Broadcast server basic command The event manager's state machine controls the broadcast server by issuing four broadcast server basic commands: schedule, start, stop, and cancel. These are similar to atomic commands of the same name. Schedule creates an interactive application for broadcasting and adds it to the playlist on the broadcasting server. Start starts broadcasting the interactive application, and stop stops the broadcast. Canceling stops the interactive application (if it is not already stopped), removes the interactive application from memory, and removes the associated event from the broadcast server playlist. [0179] In alternative embodiments, these special commands suspend indefinitely, suspend over a selected time interval, resume immediately, resume after a selected time interval, and other more complex behaviors. May be extended to include. [0180] Also, the content of the command, i.e. the type of interactivity that can be managed by the command, is variable and also depends on the type of interactivity determined by the system designer. As such, the command may schedule or initiate triggers for previously broadcast interactivity, forms or other data, URLs, web pages, Java applets or other hypermedia interactivity. [0181] [8. Event state machine] Atomic commands end their lifetime at a particular event state machine 512. Each event state machine 512 is associated with a broadcast server event and controls all actions associated with that event. The atomic command mapping logic 508 determines which state machine 512 receives a particular atomic command (with some exceptions described below). [0182] FIG. 11 shows the behavior of the event state machine 512 with details on commercials, television shows and default event types. The event state machine tracks the life cycle of an event. In Figure 11, state transitions are specified as follows to show which type of event they apply to. [0183] C: Migration applied to commercial events S: Transition applicable to television show events D: Migration applied to default events In general, the event goes through the following states: [0184] Scheduled state 1102: Schedule atomic commands from translator module 502 cause events to be scheduled on the broadcast server. The state machine 512 issues a broadcast scheduling primitive, which commands the broadcast server 110 to create an interactive application for the broadcast and add it to the playlist on the broadcast server. After scheduling, the event must be started by the start atomic command. [0185] Started state 1104, stopped state 1106: The start command from the translator module 502 transitions the state machine to the started state 1104. The state machine issues a broadcast start primitive. After being started, the event can be started and stopped any number of times with the start and stop atomic commands. The state machine transitions to the stopped state 1106 only for television shows and default events, and does not reach the stopped state 1106 for commercial events. [0186] Depending on the broadcast start primitive, the broadcast server 110 will send the interactive application if it has not been sent before, or trigger the interactive application if the application has been sent before. You can start an interactive application in a variety of ways, including submitting and starting to run. Similarly, as described above, the broadcast server 110 may transmit other types of data such as forms and contents to the interactive application, or may transmit URLs and the like. [0187] Secondary Trigger Processing Stage 1108: An event can generate a secondary trigger of zero 1 or greater, also after it has been started. Secondary triggers are actions that occur while an event is active (ie, scheduled on a broadcast server). One example is a 5-minute warning to the end user before the event ends. These triggers are created by the scheduling system 106 and passed to the translator module as control signals. [0188] Canceled state 1110: Finally, once the broadcast program associated with the event has terminated, a cancel atomic command is sent from translator module 502. The state machine responds by issuing a broadcast cancellation primitive to the broadcast server 110, which cancels the event. This state is reached in different ways for different events. For commercial events, this state is reached when a cancel atomic command is received from translator module 502, and for television show events, this state is received when the next television state command is received. The state is reached, and finally for the default event, this state is reached when shut down. [0189] Scheduling system to accurately synchronize the start of a broadcast server event (interactive application) with its associated scheduling system Some scheduling systems support prerolling. Preroll is the length of time required for a device (such as a VTR) controlled by the scheduling system 106 to complete an operation (such as starting to broadcast a program). Scheduling system 106 can give automation server 108 the same type of preroll warning and give it time to start an interactive application. Some scheduling systems support only one preroll value. If the response time of the automation server 108 is faster than the preroll value, the automation server 108 introduces some additional delay when initiating the broadcast server event. This fine tuning timing is performed by the system designer on the event state machine. The started, stopped, and canceled states can all introduce the amount of delay before actually starting, stopping, or canceling the broadcast server event. [0190] All broadcast server events share this same basic state machine, but the event state machine is different for each event type. Details of these differences will be described below. [0191] Secondary triggers are processed in the same way for all event types. Secondary triggers are a way to extend Automation Server 108. Some scheduling systems 106 support more than basic control signals (preload, preroll, on-air and off-air). They can, for example, send a control signal 5 minutes before the end of the program to warn the device that the program is about to end. The automation server can use this signal to update the current interactive application and warn the viewer that it is about to end. This is just one example of how secondary triggers can be used. [0192] a) Commercial event type This is the simplest event state machine. Commercial events are neither stopped nor restarted, so they are only scheduled, started (potentially with some secondary triggers), and finally canceled. The table below summarizes the states, the atomic commands that enter them, and the actions they take. [0193] [Table 10]<img file="JP4972258B2_D0010.tif" />[0194] b) Show event type The show event state machine 512 is very similar to the commercial event state machine, but the segmentation must still be revealed (discussed in the event type section). [0195] Unlike commercial events, the show only needs to be restarted at some point in the future, so the cancel command only stops the show event. The start of the next show This show can only be canceled when an atomic command is received. The table below summarizes the states, the atomic commands that enter them, and the actions they take. [0196] [Table 11]<img file="JP4972258B2_D0011.tif" />[0197] c) Default event type There are three different types of default events: default show events, default commercial events, and default unknown events. The default event is used when there is no associated interactive application for that broadcast program ID. [0198] Unlike commercial events, the default event needs to be restarted at some point in the future, so the cancel command only stops the default event. It is only canceled when the automation server 108 is shut down. The main difference between a regular event and a default event is that two consecutive broadcast program IDs can mean the same default event. In this case, it is preferable to restart the default event immediately without stopping it. Instead, the default event is allowed to continue airing. For this to work, the "stopped" state does not actually stop the event until it is certain that the next start atomic command is also not related to this default event. Regardless of the default event type, the following table summarizes the state, the atomic commands that enter that state, and the actions that the state takes. [0199] [Table 12]<img file="JP4972258B2_D0012.tif" />[0200] [9. Segmentation] Figure 12 provides the viewer with a stable experience, as well as the right interactive application between all commercials, while maintaining the right interactive application between different segments of the television show. To show how to handle the segmentation of a television show. [0201] In Figure 12, the scheduling system 106, (ideal) translator module 502 and event manager 504 for control signals, atomic commands and broadcast server commands when processing a segmented television show. An event trace of the flow from is shown. Show A, a television show, will be broadcast in two segments A.1 and A.2, each with a unique broadcast program ID. Between these segments is the commercial AdX. Segment A.2 is followed by commercial AdY, followed by a new show, Show B. Here, the problem solved by the present invention maintains the same interactivity between both segments A.1 and A.2 while providing some particular or default interactivity associated with AdX and AdY. (Although the segment has a unique broadcast program ID). To achieve this result, the broadcast program IDs for both segments A.1 and A.2 must be mapped by event manager 504 to the same broadcast event (Show A) in the event association table. This is done using the various procedures described above. The sequence of control signals and atomic commands is as follows. [0202] Show segment A.1 1200: First, the scheduling system 106 issues a preload A.1 signal. [0203] 1202: Translator module 502 then schedules segment A.1. 1204: Event Manager 504 creates a new state machine 512 for this event (Show A) and stores the mapping for this broadcast program ID and state machine in the event association table. The Show A state machine commands the broadcast server 110 to schedule the appropriate interactive application for broadcasting with Show A. [0204] 1206: Scheduling system 106 then issues either a preroll signal or a start signal for A.1. 1208: The translator module 502 is then somewhat determined by the amount of preroll, and the length of time it takes for event manager 504 and broadcast server 110 to initiate broadcast server events. After the amount of delay in, segment A.1 is started. [0205] 1210: In response, the Event Manager Show A state machine commands the broadcast server to start an interactive application for Show A. [0206] 1212: Show A's interactive application is run by broadcast receiver 120 and appears on a display device such as a television set connected to broadcast receiver 120. [0207] If the scheduling system 106 first issues a preroll, then show A.1 has already started and the translator module 502 ignores the subsequent start signal from the scheduling system 106. [0208] AdX 1214: After some time, scheduling system 106 issues a preload signal for AdX. [0209] 1216: Translator module 502 then issues a scheduled AdX atomic command. 1218: The event manager issues a schedule command to broadcast server 110 to schedule interactive applications (including defaults) for AdX. [0210] 1220: Scheduling system 106 then issues a preroll or start Ad signal. 1222, 1224: Translator module 502 does not know that it has another segment to show A, so it sends a cancel command for segment A.1 and then a start AdX command. (If scheduling system 106 sends a stop A.1, it comes after preload and preroll for AdX and is ignored.) 1226, 1228: Event manager 504 normally responds by canceling segment A.1. However, Event Manager 504 temporarily ignores the cancel command and instead stops the interactive application for Show A, the Stop A.1 command, and the Start AdX command, which starts running the AdX interactive application. Is issued. [0211] 1230, 1232: When these commands are received by the broadcast receiver, the receiver interrupts the execution of the interactive application for Show A, but does not terminate it, and of the AdX interactive application (or default application). Start execution. Suspending an interactive application retains whatever state information it has, such as the score of the game, the particular form the viewer was watching, and so on. Suspending also has the additional effect of excluding Show A's interactive application from the viewer's display on the television set, for example, so the Show A interactive application will be displayed when AdX appears on the screen. However, the interactivity of AdX proceeds appropriately. [0212] Event Manager 504 delays the cancel command of the translator module until it can determine that Show A has no other segments, which is unknown at this point. Then, as shown below, this happens when Show B is started. [0213] Show segment A.2 1234: Scheduling system 106 issues a preload A.2 signal when AdX is about to end. [0214] 1236: Translator module 502 issues a schedule A.2 command. At this point, event manager 504's mapping logic 508 determines that the broadcast program ID for this event (segment A.2) correlates with the same interactive application as the broadcast program ID for segment A.1. Therefore, mapping logic 508 directs all commands for segment A.2 (according to their broadcast program ID) to the event state machine for show A. The interactive application for this segment of Show A is already loaded on the broadcast receiver, so there is no need to have the broadcast server preload it here. Therefore, the event manager does not issue another schedule command. [0215] 1238: Scheduling system 106 then issues either a preroll A.2 or start A.2 signal. 1240, 1242: Translator module 502 sends a cancel command for AdX and a start command for segment A.2. [0216] 1244, 1246: Event Manager 504 first commands the broadcast server to cancel the interaction with AdX, and then commands the broadcast server to start the interactive application associated with Show A. Show A to the state machine. The interactive application for Show A was only previously interrupted, so whatever state it had before AdX started, it will start working again here (1248). [0217] So if Show A was a game show and its interactive application as a game application, suspending the application for AdX would have saved the viewer's total score (and other states) in the game. Let's go. And it will be recovered when segment A.2 is broadcast and the application is restarted. [0218] AdY 1250: At some point later, scheduling system 106 issues a preloaded AdY signal. [0219] 1252: Translator module 502 sends a schedule Y command to event manager 504. 1254: Event Manager 504 schedules AdY interactivity on the broadcast server. [0220] 1256: Scheduling system 106 then issues a preroll AdY or start AdY signal. 1258, 1260: Translator module 502 sends a cancel command for segment A.2 and a start command for AdY. [0221] 1262, 1264: Again, Event Manager 504 delays the cancel command and instead stops the interactive with Show A and starts it, if any (including the default) with AdY. To instruct the broadcasting server. Show A's interactive application is interrupted (1266) and AdY interaction is performed (1268). [0222] Again, the state machine for show A delays the cancellation of the interactive application in segment A.2 because it is not yet known if there is another segment of show A. [0223] Show B 1270: Scheduling system 106 issues a preload show B signal when AdY is about to end. [0224] 1272: Translator module 502 schedules show B. 1274: Here, the event manager's mapping logic 508 determines that the program ID for show B is different from show A, so there are no other segments for show A. A new state machine for Show B is launched. Event manager 504 then issues a schedule show B to the broadcast server to schedule interactivity with respect to show B. Show B hasn't started yet, so the event manager hasn't revoked Show A's interactivity yet. [0225] 1276: Scheduling system 106 then issues either preroll or start show B. 1278: 1280: Translator module 502 issues an atomic command to cancel AdY and start Show B. [0226] 1282, 1284: Event Manager 504 first cancels AdY and then directs the start command to the new Show B state machine. 1288: When the Start Show B command appears, it is clear that a new show has begun, so Event Manager 504 can safely undo the interactivity with Show A, Segment A.2. This cancel command does not come directly from translator module 502, but is synthesized by the event manager's show A state machine based on the start command for show B. Show A's interactivity should not be canceled until Show B actually begins, as it is possible for Show B to be scheduled hours ahead of its broadcast. Also note that cancellations cannot occur when scheduling event B, due to the potential of back-to-back shows and because show B can be scheduled hours ahead of its start time. [0227] In some cases, there are no intervening commercials (eg AdY) between two television shows (eg Show A and Show B). That is, the two shows can be back-to-back (ie, show B can start immediately after show A). In this case, Show A Cancellation 1288 occurs before Show B Start 1284. [0228] In an alternative embodiment, event manager 504 can start one interactive application before canceling another interactive application. For example, if canceling an interactive application takes longer than stopping, this is desirable, and if the two shows are not back-to-back, interactive about show B before canceling the interactive application for show A. -Starting the application is the optimization. In general, an alternative embodiment is to stop the previous interactive application, start the next interactive application, and then cancel the previous interactive application. [0229] In summary, the present invention provides various methods and means of controlling the behavior of interactive content in synchronization with the display of broadcasts and broadcast programs, including television shows and commercials. The principles of the present invention, including determining the identity and state of a broadcast program using native control signals and then managing the state of interactivity associated with that broadcast program, are diverse with numerous variations. It can be done in different ways. Some of these variations within the scope of the present invention are: [0230] The automation server 108 is described as using the dual state machine of translator module 502 and event manager 504. Although this is beneficial, other embodiments of the invention implement the automation server 108 or its function without a state machine, eg, using programmed scripts or other procedural mechanisms for each type of control signal. It is considered that it may be done. [0231] A set of ideal control signals and states in translator module 502, atomic commands output to event manager 504, or commands generated to control a device such as a broadcast server are all more or more. It may be modified to cover fewer signals and commands. Similarly, the specific action in each of the states may be changed. For example, a resume with a specific resume or delay command in addition to the stop or cancel command may be used for more complex control. The save command may instruct broadcast receiver 120 to save the data generated interactively for future retrieval. This command can be generated in response to an error condition, channel change or other event, for example to save user or interactively created data. The send or upload command may send the created / stored data back to the collection mechanism and instruct the broadcast receiver to complete the purchase of the goods, for example via an interactive purchase application. [0232] The types of interactivity that can be controlled by Automation Server 108 and the present invention vary and are not limited to existing interactive applications. It seems that the interactivity such as a web page or the combination of a web page and an interactive application can be controlled using the principles of the present invention. [0233] The timing of commands to the broadcast server or similar device may vary depending on the bandwidth, the connection speed at which data is transmitted, and the execution response time of the broadcast receiver relative to how fast the television image can be displayed. Good. Therefore, the command can be sent before, just then, immediately after, or almost before the basic broadcast event occurs. Command timing can be optimized by taking advantage of what information is known at the earliest available time. [0234] The means by which the control signals are provided to the automation server or their equivalents may vary. These include binary data on serial ports, remote communication interfaces to LANs or scheduling systems, or binary data encoded in analog or digital video signals. [0235] Therefore, it is understood that the present invention is limited by the scope of claims and is not inherently limited by the details of the preferred embodiments disclosed above. [Simple explanation of drawings] FIG. 1 is a diagram of a system according to the present invention. FIG. 2 is a diagram of a broadcast receiver. FIG. 3 is a flow chart of the overall process of receiving and executing an interactive application. FIG. 4 is a diagram of an automation server according to an embodiment of the present invention. FIG. 5 is a diagram of a channel interface that includes a translator module and an event manager. FIG. 6 is a life cycle diagram of an interface manager. FIG. 7 is a lifecycle diagram of a channel interface that includes a translator module and an event manager. FIG. 8 is a state mechanical diagram relating to an ideal translator. FIG. 9 is a flowchart of a translator module mapping logic. FIG. 10 is a flowchart of an event manager mapping logic. FIG. 11 is a mechanical diagram of the state of the event manager. FIG. 12 is an event trace showing the segmentation of broadcast program interactivity with respect to commercials.
24 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO9800975A1 | Cites | World Intellectual Property Organization (WIPO) | Search report |
| JPH08205123A | Cites | Japan | Search report |
| JPH0846935A | Cites | Japan | Examiner |
| JPH0851596A | Cites | Japan | Examiner |
| JPH0993563A | Cites | Japan | Examiner |
| JP08205123A | Cites | Japan | – |
| WO98000975A1 | Cites | World Intellectual Property Organization (WIPO) | – |
| JP08051596A | Cites | Japan | – |
| JP08046935A | Cites | Japan | – |
| JP09093563A | Cites | Japan | – |
26 members in 10 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 09333724 | United States of America | – | |
| 33372499 | United States of America | A | |
| 33372499 | United States of America | A | |
| 0016272 | United States of America | W | |
| 0016272 | United States of America | W | |
| 1999333724 | – | – | – |
| 2000016272 | – | – | – |
| US19990333724 | – | – | – |
| WO2000US16272 | – | – | – |
Members26
| Document | Office | Kind | |
|---|---|---|---|
| CA2377571A1 | Canada | A1 | |
| WO0078043A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU5611200A | Australia | A | |
| CA2445186A1 | Canada | A1 | |
| WO02086746A1 | World Intellectual Property Organization (WIPO) | A1 | |
| JP2003502920A | Japan | A | |
| MXPA01012939A | Mexico | A | |
| WO02086746A8 | World Intellectual Property Organization (WIPO) | A8 | |
| EP1381961A1 | European Patent Office (EPO) | A1 | |
| EP1381961A4 | European Patent Office (EPO) | A4 | |
| JP2005527171A | Japan | A | |
| AU2002303484B2 | Australia | B2 | |
| EP1381961B1 | European Patent Office (EPO) | B1 | |
| AT349854T | Austria | T | |
| ATE349854T1 | Austria | T1 | |
| DE60217091D1 | Germany | D1 | |
| US7222155B1 | United States of America | B1 | |
| DE60217091T2 | Germany | T2 | |
| ES2278025T3 | Spain | T3 | |
| US2008010342A1 | United States of America | A1 | |
| US7634787B1 | United States of America | B1 | |
| US7941564B2 | United States of America | B2 | |
| JP4724420B2 | Japan | B2 | |
| JP2012055001A | Japan | A | |
| JP4972258B2This record | Japan | B2 | |
| JP5536738B2 | Japan | B2 |
17 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Transfer to examiner for re-examination before appeal (zenchi)AppealJAPANESE INTERMEDIATE CODE: A911A911 | A911 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of change in applicantJAPANESE INTERMEDIATE CODE: A711A711 | A711 | |
| Decision of refusalJAPANESE INTERMEDIATE CODE: A02A02 | A02 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 4972258
- Publication, DOCDB
- 4972258
- Publication, EPODOC
- JP4972258B
- Application
- 2001504170
- Application, DOCDB
- 2001504170
- Application, EPODOC
- JP20010504170
Titles2
- Japanese
- 放送プログラムとの同期動作を維持するための放送及びインタラクティブ・アプリケーションの実行の自動制御
- English
- Automatic control of broadcast and interactive application execution to maintain synchronization with broadcast programs
Classification
- CPC, 10
- H04N21/435
- H04N7/165
- H04N7/17318
- H04N21/235
- H04N21/4722
- H04N21/4758
- H04N21/4781
- H04N21/812
- H04N21/8166
- H04N21/43074
- IPC, 14
- H04N5 765
- H04N7 16
- H04H20 76
- H04N5 93
- H04N7 08
- H04N7 081
- H04N7 173
- H04N21 235
- H04N21 43
- H04N21 435
- H04N21 4722
- H04N21 475
- H04N21 478
- H04N21 81
