Method and system for updating programming listing data for a broadcasting system

A method and system for processing listing data includes a listing system having a listing database associated therewith, an external data source communicating station data, external schedule data and external program data to a listing system and an internal source communicating internal program data to the listing system. The listing system stores the station data, external schedule data and external program data and the internal program data in the database. The listing system communicates the listing data to other systems using the listing data such as a program guide system.

TECHNICAL FIELD

The present disclosure relates generally to communication systems, and more particularly, to a method and system for updating programming listing data at a primary service provider.

BACKGROUND

Communication systems such as pay or subscription communication systems include a primary service provider and a user receiver device such as a set top box or integrated receiver decoder. The user device is typically provided with authorization to communicate with the primary service provider and receive services therefrom. One example of such a system is a satellite television system such as DIRECTV®. Broadcast television channels and other internal programs are provided by the primary service provider. Another service provided by a primary service provider is providing program guide data which is used by a user device to display a grid guide on a display associated with the user device.

Broadcasting channel data used for the program guide may come from many sources. The broadcasting channel data may be used by many other broadcast system components. Coordinating data in the broadcasting system has been difficult due to the numerous systems involved and the ever-evolving architectures. Broadcast data may change several times throughout a day, particularly in a day in which many sporting events are shown. In previous systems, the components received data in such a way as to allow the data to be out of synch at data using systems. The data using systems ultimately provide the data in some form to end users. The end users may be set top box users, wireless device users or users of a website. Different systems used for different devices may convey different data to end users. This may lead to customer confusion or frustration.

SUMMARY

The present disclosure provides a system to receive data from both internal and external sources. The system includes a listing system that provides a centralized source for both receiving data and for communicating data. This allows current data to be provided or all data using systems. Such data may change throughout a broadcast day.

In one aspect of the disclosure, a method includes communicating a station, schedule data and program data to a listing system, communicating guide channel data to a listing system, communicating broadcast channels to the listing system, forming a listing database from the guide channel data, the broadcast channel data station data, schedule data and program data and communicating listing data from the listing database to an external system.

In a further aspect of the disclosure, a method includes parsing external data from an external source, determining at least one of station data, external program data and external schedule data from the external data in response to parsing, adding the at least one of station data, external program data and external schedule data to a database when the at least one of station data, external program data and external schedule data is not in a listing database and updating the at least one of station data, external program data and external schedule data in the database when the at least one of station data, external program data and external schedule data is in a listing database.

In another aspect of the disclosure, a system includes a listing system having a listing database associated therewith, an external data source communicating station data, external schedule data and external program data to a listing system and an internal source communicating internal program data to the listing system. The listing system stores the station data, external schedule data and external program data and the internal program data in the database.

DETAILED DESCRIPTION

While the following disclosure is made with respect to example DIRECTV® broadcast services and systems, it should be understood that many other delivery systems are readily applicable to disclosed systems and methods. Such systems include wireless terrestrial distribution systems, wired or cable distribution systems, cable television distribution systems, Ultra High Frequency (UHF)/Very High Frequency (VHF) radio frequency systems or other terrestrial broadcast systems (e.g., Multi-channel Multi-point Distribution System (MMDS), Local Multi-point Distribution System (LMDS), etc.), Internet-based distribution systems, cellular distribution systems, power-line broadcast systems, any point-to-point and/or multicast Internet Protocol (IP) delivery network, and fiber optic networks. Further, the different functions collectively allocated among a service provider and integrated receiver/decoders (IRDs) as described below can be reallocated as desired without departing from the intended scope of the present patent.

Further, while the following disclosure is made with respect to the delivery of content (e.g., television (TV), movies, games, music videos, etc.), it should be understood that the systems and methods disclosed herein could also be used for delivery of any media content type, for example, audio, music, data files, web pages, games, etc. Additionally, throughout this disclosure reference is made to data, information, programs, movies, assets, video data, etc., however, it will be readily apparent to persons of ordinary skill in the art that these terms are substantially equivalent in reference to the example systems and/or methods disclosed herein. As used herein, the term title or program will be used to refer to, for example, a media content type such as a movie itself and not the name of the movie.

Referring now toFIG. 1, a satellite television broadcast system10is illustrated. The satellite television broadcast system10is illustrated by way of example. However, the present disclosure is not so limited as mentioned above. The television broadcast system10includes a satellite12that receives content or programming from a primary service provider14. More specifically, the primary service provider14includes a content system16that generates uplink signals20corresponding to content through an uplink antenna18. As mentioned above the content may be various types of content including but not limited to live content, recorded content, pay-per-view content and on-demand content. The uplink signals20may be television signals and more specifically digital television signals. The uplink signals may also be data including but not limited to interactive television data and program guide data. The uplink antenna18communicates the uplink signals20to the satellite12which in turn generates downlink signals22. The downlink signals22are communicated to a receiving antenna24on a user device26. Although only one user device26is illustrated, several user devices may be provided in the system10. The uplink signals20and downlink signals22may be referred to as communication signals. Communication signals are wireless communication signals and may include various types of entertainment content, data, traffic, weather, hazardous material warnings, advertising material, guide data and the like. As mentioned above, this system may be suitable for wired systems such as cable televisions and terrestrial wireless systems.

The user device26may include a satellite television receiver, set top box or a digital video recorder. The satellite television receiver may also be referred to as an integrated receiver decoder. Of course, other types of user devices may be used such as a cable television set top box. Other types of user devices may also include a mobile device such as a lap top computer, cellular phone, personal digital assistant, a portable media player or an automotive-based television receiving device. Thus, the user device26may be a fixed user device in the case of a satellite television set top box or a mobile user device. Both fixed and mobile devices may be used in a system.

The primary service provider14may also include an account/billing web service30and an authentication server32. The authentication server32may include an authentication server for generating and validating user devices using eTokens or other processes.

The primary service provider14may also include a conditional access management system34. The conditional access management system34may be used to grant conditional access to various programming as well as provide recording commands to the user device26as will be described below.

The primary service provider14may also include a DIRECTV® listing system (DLS)36. The listing system36may be in communication with an event scheduler36A, which may also be referred to or be a part of a DIRECTV® traffic and scheduling system (DTSS)37. The event scheduler may be stand alone or a module within the DTSS37. The DIRECTV® listing system36may also be in communication with a guide channel manager (GCM)36B may also be stand alone or part of the DTSS37. The listing system may also be in communication with an advance program guide module36C, a program guide generator36D, a program guide web service36E and other systems36F. The interaction of the DIRECTV® listing system36and the various modules36A-36F will be further described below inFIG. 2. In summary, the listing system receives various data from the various systems which may be used to generate program guide data.

An external data input38, such as Times Media Service (TMS), may be used for receiving various data regarding programming. Times Media Service is just one example of an external data service. The external data input38may provide channels, programs and schedules as an input to the listing system36. The external data input38may provide various types and formats of data. A data stream may be provided with various types of information regarding programming.

The user device26is in communication with the primary service provider14through a network40. The network40may be a secured network or use a secure protocol. The network40may include a broadband network through which the user device26communicates with the primary service provider14. The network40may be a wired network such as a public-switched telephone network (PSTN) or a broadband Internet network. The network may be wireless such as a cellular or wireless Internet system. The broadband network may communicate wired, wirelessly or a combination of both. For example, the user device26may include a wireless antenna42for communicating with an antenna44of a router46which, in turn, is in communication with the network40.

The network40may also be an intranet. The components of both the primary and partner service provider may be located separately or in the same building.

The user device26may be associated with a display50for displaying content and programming, as well as displaying various types of user commands, or the like. The display50may be a television or display integrated into the device. The display50may include speakers for an audio display. The display50may be used for displaying primary content from a primary service provider and secondary content from a secondary service provider.

The user device26may include a user interface52, such as a keyboard, remote control, or the like, for selecting and entering various types of information by the user. The user device26may also include a conditional access module54that allows the user to access the programming provided from the content system16. The conditional access module54may be referred to as an access card. The conditional access module54may include various activation codes without which the user device is not activated. The conditional access module54may include a conditional access module identifier such as a number or a code.

The user device26may also include a network interface56for interfacing with the network40. For example, the network interface56may communicate wirelessly through the antenna42or through a direct connection such as an Ethernet connection. The network interface56may be but is not limited to a wireless broadband interface, a broadband interface, a modem-type interface or a public-switched telephone network interface.

The user device26may also include a storage device58. The storage device58may store various content received from the primary service provider therein. The content may be received through the satellite12or through the network40through the network interface56. The storage device58may be a hard disk drive or memory chip-based device. The storage device58may be referred to as a digital video recorder.

The primary service provider14may be in communication with a partner service provider80. The partner service provider80may include a partner web application82, a program guide cache84, and a setup web page module86. The partner web application82may generate various types of web content. For example, the partner web application82may generate a homepage-type display. The homepage display may receive information from the program guide cache84to fill a TV listing portion of the homepage display.

The setup web page module86may be used to setup various types of user network devices to communicate with the partner service provider14as will be described below.

The partner service provider80may also include a guide search index88. The guide search index88may be in communication with the data web service36and, in particular, the guide search web service36D. The guide search index88may enable the partner service80to obtain search criteria from a user, client or client device interacting with the partner service provider80. Operation of this interface is described below.

It should be noted that the components (82-88) within the partner service provider80may be physically located together with the primary service provide14. The components are distributable individually or together. The primary service provider14may have these components as a mere convenience to enable the partner service to quickly provide certain services offered by the primary service provider14.

Referring now toFIG. 2, the listing system26and its associated inputs and outputs (36A-36F,38) are illustrated in further detail.

An operator100through a terminal101may manually configure various settings within the DIRECTV® listing system36. For example, the formats of listing data provided to the various systems may be manually set. Also, time settings and the like for receiving updates may also be provided manually. The terminal101may also be used for monitoring the status of various components and intercommunications within the system. Examples of such will be described below.

The DIRECTV® listing system36may be in communication with a listing database102that has a temporal memory104and a perpetual memory106. Channels and schedules may be stored in the temporal memory104and program info may be stored within the perpetual memory106.

The event scheduler36A is used to provide various data such as the channel, schedule, channel mapping, program associated data (PAD), channel information, program information packets (PIPs). The event scheduler36A may be referred to as an internal data source since some of the data may be for internal programming provide by the primary service provider such as pay-per-view and the like. The data provided by the event scheduler36A will support searches in various fields of stored information relative to available programming. For example, the data from the event scheduler36A may be searchable using keywords in fields such as but not limited to Program Reference Identifier, Program Title, Program Category, Program Credits Channel Short Name or in one or more specific fields such as but not limited to Program Title, Episode Title, Program Description, Program Category, Program Credits and Air Date, Run Length, Rating, Channel Short Name. The searching may be performed for linear content as well as non-linear content.

The event scheduler36A may also be used to provide broadcast operation channel attributes and broadcast operation channel to guide channel mapping. The mapping is used to link various channels to the guide channels and thus the channels viewers may use to view the particular programming. When changes are made in the programs and schedules or the mapping, the event scheduler may notify the listing system36. For pay-per-view programming, the DIRECTV® listing system may request further program information from the external data input38.

Guide channel data is also provided by the guide channel manager36B. The guide channel manager36B may provide guide channel attributes to the DIRECTV® listing system36. Examples of data the guide channel manager36B may provide include channel data including local channel configuration data, the content channel identifier, a long name of the channel, a channel category, a logo index, a network affiliation, a channel URL, an BD/SD hide channel flag, an audio identifier, a minor channel identifier, a PIP channel number, and the like.

The information or the data provided by the event scheduler36A, the guide channel manager36B and the external data input30A is used to form the entries in the listing database102. The listing data may be used by several systems such as the advance program guide system36C, the program guide generator (MPG)36D and the program guide web service36E. Other systems36F may also use the listing data from the listing database.

The program guide web service36E may be used to generate program guide data and information regarding various programming that is available. The program guide web service36E, as will be described below, may generate custom programming guide information based upon the subscription to which a user is subscribed. The custom guide information may be formatted for a particular consumer. The program guide web service36E may also provide generic or non-customized content when specific user attributes are not known. When user attributes such as location and subscription information are known, only the content available to the particular subscriber may be included in the program guide. Additional content may be provided for advertising purposes. Thus, channel data for particular channels may be provided in the program guide.

The program guide web service36E may generate program guide data for both linear and non-linear content. Linear content are television shows broadcasted at a particular time and a particular channel. Network television programming is an example. Non-linear content is programming that is not tied to a particular time such as on-demand content that can be requested at the user's discretion.

The program guide web service36E may communicate with the listing system36using Java Remote Message Invocation (RMI) over Internet Inter-Orb Protocol (IIOP).

By providing a centralized listing system and listing database102, updates may be provided nearly simultaneously with each of the other systems using the listing data. For example, the advance program guide system36C, the program guide generator36D and the PGWS may all be provided information simultaneously. Likewise, any other systems36F may also be provided the same information simultaneously or nearly simultaneously. In this manner, all of the systems may thus be synchronized and thus provide consumers with the same program guide schedules. In the past, updates to data took some time and thus some systems were not updated more than once per day. As things changed, the program guide displayed on a set top box may be different than that displayed on a website.

Referring now toFIG. 3, a listing data structure150is illustrated in further detail. As can be seen, the primary components of the data listing are the channel, the schedule and the program. The components form a listing152which is stored in the listing database102described above. As can be seen, each listing includes a channel154that is associated with one or more channel configurations156. Each channel configuration156includes broadcast operations channel attributes158and a guide attribute object160. The channel configuration156may also be associated with a start time and an end time. The channel154may also be associated with the broadcast station162. The schedule164of the listing152may be obtained from a schedule adapter166. The schedule adapter may obtain the schedule from the external data source or TMS schedule168or the DIRECTV® or internal schedule source170. That is, the schedules may be classified in two manners including an internal schedule and an external schedule.

A program172is also part of the listing152. A program172can exist in the database without any associated schedules but a schedule must have an associated program. The programs may be formed in a program adapter174which receives information from an external source such as the TMS program176or an internal source such as the DIRECTV® program source178.

It should be noted that the TMS or external schedule is associated with a station whereas the internal schedule is associated with a channel.

Referring now toFIG. 4, the DIRECTV® listing system36ofFIGS. 1 and 2may also be provided in a multicast mode. That is, the DIRECTV® listing system36may be divided among multiple servers210,212,214, and216. Each server may contain a listing system36. The database102may be in communication with each of the listing servers. A multicast communication scheme may be implemented between the servers210-216and the other components such as the listing consumers36C-36F, the external data input38and the event scheduler36A. The network218may be used to provide simultaneous input from the various servers to the listing consumers36C-36F and may also be used to receive information for the listing systems36through the various servers210-216. By providing multiple servers210-216, the load of the inputs and outputs of the system may be distributed.

Referring now toFIG. 5, a TMS data load architecture250is illustrated as a pull model as opposed to a push model. A scheduler252schedules a periodic “load from TMS” task. The task is queued in the queue254. A TMS agent256receives the task and obtains the TMS files from the TMS file transfer protocol (FTP) server258. When the scheduled time for the task is reached, the scheduler252sends the task as a message to the queue260. If Java is used, a Java message service message may be provided to the queue260. By sending the message to the queue254, the scheduler252ensures that only one TMS agent in the cluster responds to the load data from a TMS request. The agent256may be a simple JMS client that listens to the queue254. The TMS data loaders262,264and266receive the TMS records and insert the records into a temporary table within the database270. The TMS agent parses the TMS files and reads every station, schedule and program record. After each record is read, the agent256sends the unparsed TMS records to the queue260. The unparsed TMS records are received from the queue by the data loaders262,264and266. The loaders262-266may reside in a cluster of loaders. By providing a cluster of data loaders262-266, the responsibility of updating is provided to every server in the cluster. The loaders262-266that receive the unparsed records are responsible for creating appropriate listing objects and inserting the record to a temporary table within the database. The “JMS message receive” and the “insert to temporary table” may be under the same transaction. By updating the temporary table, the system avoids locking the main listing tables during TMS updates.

Once the TMS records are inserted into the temporary tables, the TMS agent256cleans the temporary database tables by removing the unreferenced schedules and programs. After cleaning the temporary tables, the TMS agent256moves all the listing data from the temporary tables to the main listing table. The data moved from the temporary to the main listing tables shall be executed by a serialized lock to the respective listing table. Once the TMS task is completed, the TMS agent uses a notification service280to notify the listing update to all of the components and services that are subscribed to the notification.

Referring now toFIG. 6, the DLS36is illustrated in further detail. Inputs from components such as the event schedule36A and the external data input38are provided with an agent. For example, the external data input38includes an external data input agent310within the listing system36and the event scheduler36A has an event scheduler agent312within the listing system36. The external data input38A may communicate with the agent310through file transfer protocol. The event scheduler36A may communicate with the event scheduler agent312through a remote enterprise Java bean. A notification service314using a Java message service316may provide consumer agents318with a message that the listing data has been updated. This may be performed simultaneously or nearly simultaneously so that updates can be readily provided. This allows all systems to maintain near synchronous guide listings. The consumer agents318is illustrated with various boxes that may correspond with the various types of listing consumers320. The listing consumers320may include the components such as the advance program guide36C, the program guide generator36D and the program guide web service36E. Other consumers are illustrated by box36F. Each of the consumer agents may communicate listing data360to the listing consumers in various manners including through file transfer protocol, through a simple object access protocol (SOAP), through a remote enterprise Java bean and through hypertext transfer protocol. This architecture de-couples the listing from the external databases. The listing façade322is in communication with the agents through a local enterprise Java bean. The listing façade322acts as the face of the listing with the other components that need to access and update the listing data. Every external interface that interacts with the DLS36will have a corresponding agent component in the DLS. The agents take care of communication and other business logic related to the external interfaces. As is illustrated, the façade interacts with the listing324which may include program data326, schedule data328, channel data330and station data332. The listing may interface through the consumer agents318through the listing interface340through a local extended Java bean.

The consumer agents318use the listing façade322to read the listing data360. Since each consumer only requires a limited set or subset of listing data360, the agents318pass an extractor342to the façade to help in extracting only the required data from the listing. The extractor's objects form a visitor pattern with the listing façade322. The extractors342are visitors and provide an indicator as to which data components to extract. The listing façade322accepts the visitors and initiates a visit operation on the visitor. A listing façade322also returns the appropriate extractor to the agents after invoking the visit operation. The extractors342de-couple the listing façade from the consumers. The extractors342act as an extension logic for the listing façade to extract consumer-specific data from the listing components. A listing data is illustrated as box360.

To summarize, the listing consumer320requests data through the consumer agents318which, in turn, communicates with the façade322. Listing extractors are provided to obtain the listing data360. When changes are made to the listing324, the notification service314provides a notification to the listing consumers320through the consumer agents318.

Referring now toFIG. 7, a method of receiving external data files and updating a database is set forth. In this example, the external data files that will be referred to as Times Media Service files. However, various and numerous sources of data may be used. In step410, a request to load TMS files is generated. This may be performed at a predetermined time for updating or upon a query. In step412, the TMS file is parsed to retrieve the TMS stations. In step414, if a station is not present, it may be added to the listing in step416. In step414, if the station is present in the database, step418updates the station in the listing. After step418and416, the TMS files are parsed for programs. If the program is not present in step422, step424adds the program to the listing. In step422, if the program is present, step426updates the program in the listing. After steps424and426, step428parses the TMS file for the TMS schedule. In step430, if the schedule is not in the TMS file, step432adds the schedule to the listing. In step430, if the schedule is in the TMS file, step434updates the schedule in the listing. After steps434and432, if a schedule from the listing is not present in the TMS file in step436, step438removes the schedule from the listing. In step436, if the schedule from the listing is within the TMS file and after step438, a notification of a listing update is provided to the various consumers of the listing data in step440.

Referring now toFIG. 8, a method for updating the guide channel data is set forth. In step510, an update notification is communicated from the guide channel manager to the listing service in step510. The step presumes that the listing service is registered with the guide channel manager to receive guide channel updates. In step512, new or updated guide channel configurations are received from the guide channel manager. In step514, if the guide channel configuration does not have a mapping broadcast operation attribute, the system maps a default broadcast operation attribute to the guide channel configuration in step516. If the guide channel configuration does have a mapping broadcast operation attribute in step514, step518sends a channel update notification to the consumer or consumer agents.

Referring now toFIG. 9, a method for updating broadcast operation channel data is set forth. Prior to this method, it is presumed that the listing server is registered with the event scheduler to receive broadcast operation channel updates. In step550, the event scheduler sends an update to the broadcast operation channel attribute with guide mapping data. In step560, if the guide channel map by the event scheduler is present in the database, step562determines whether the guide channel is available during the entire period of the broadcast operation channel to guide channel mapping. If the guide channel is available during the entire period of the broadcast operation channel to guide channel mapping in step562, step564splits the guide channel configuration according to the availability of the mapped broadcast operation channel attribute in step564. In step566, the broadcast operation channel attribute with the split guide channel configuration for the period when the broadcast channel attribute is available is mapped. In step568, a channel update notification is provided to the consumers through the consumers' agents.

Referring back to step560, if the guide channel mapped by the event scheduler is not present in the database, the channel update is rejected in step570and an error message is sent in step572. Likewise, in step562if the guide channel is not available during the entire period of the broadcast operation channel to guide channel mapping, steps570and572are performed which the channel update is rejected and an error message is sent.

Referring now toFIG. 10, a method for updating internal schedules (which in this example are DIRECTV® schedules) and programs is provided. The precondition for this method is that the event scheduler is registered to receive the DIRECTV® schedules and programs update. In step610, the event scheduler sends an updated DIRECTV® schedule along with the associated DIRECTV® programs to the listing system. In step612, the system rejects the schedule of updates sent by the event scheduler if a schedule is sent by the event schedule has only the schedule object and not an associated program object. In step614, the listing service adds the new schedule sent as the DIRECTV® schedules into the database. In step616, if the schedule is present in the database, the schedule is updated in the database with a new schedule. In step616, if the schedule is not in the database, step618adds the new DIRECTV® or internal programs to the database. If the schedule is present in the database, step620updates the schedule in the database with a new schedule. If the program sent by the event scheduler in step622is in the database, step624updates the program database with the program sent by the event scheduler. In step622, if the program is not in the database, the program is added to the database in step618.

Referring now toFIG. 11, a method for performing a cloning operation is set forth. In this operation, a new internal program is created by cloning an existing TMS program. The newly created program is sent to the event schedule and the newly created program is not added to the listing. In this system an external system such as the traffic and scheduling system initiates a cloned TMS operation in step710. If the program does exist in step712, a new program object is created by setting the attributes of the new program to the TMS program clone in step714. After step714, step716communicates the new DIRECTV® program to the traffic and scheduling system. In step718, if the program does exist in the listing, the program is returned to the traffic and scheduling system in step720. Referring back to step712, if the program does not exist, an error message is sent to the traffic and scheduling system in step724. The traffic and scheduling system then generates a program request to the external data system to get the required TMS program in step726. If a program request is not in progress in step728, step730creates a program request file to the TMS. If the system times out in step732, an error message is generated in step734. In step732, if a time out has not been reached, the TMS responds with a program record and program identifier file in step736. In step738, a new TMS program is added to the program listing.

Referring back to step728, if a program is in progress an error message is generated in step740. After steps740and738, the traffic and scheduling system determines if the TMS program has been received from the TMS system in step742. After step742, step742sends the TMS program to the TMS in step744. If the TMS program has not been received in step742, an error message is generated.

Referring now toFIG. 12, a method for sending a listing is set forth. In step810, the channels to be sent to the guide system from the listing are found. In step812, all the schedules associated with the channel are determined. In step814, if the TMS schedule overlaps with the DIRECTV® schedule for the same channel, a hybrid schedule preference may be selected and sent to a consumer. The hybrid schedule may provide a method to resolve the conflict. After step814and after step818, all the programs associated with the schedule are found. In step820, the identifier channels, schedules and programs are formatted in a form that's acceptable by the particular consumer system. In step822, the formatted listing data is provided to the appropriate consumer systems. Various formats for communicating the data may be used such as FTP, SOAP and HTTP. The listing data may be communicated simultaneously or nearly simultaneously to the various consumers. A notification may also be generated that allows the listing data consumers to generate a request for the listing data.