Distributed scheduling of media channel playout
AssigneeTiVo Inc.
InventorChristopher Colby
Life of this patent
Estimating the term…
Abstract
Multiple scheduling producers such as content management systems, advertisement systems, and emergency broadcast systems can independently send scheduling events to scheduling consumers such as streaming servers, guide generators, and playlogs. The scheduling consumers maintain state machines with persistent storage to process scheduling events from scheduling producers and output media channel playlists, channel guides, and/or content. Scheduling producers can contribute independently to define a channel playout while information at scheduling consumers remains synchronized.
Claims20
A method for distributed scheduling, the method comprising:
- receiving, at a scheduling event messaging middleware, a plurality of scheduling events and their associated time-stamps from a plurality of scheduling producers, wherein the plurality of scheduling producers are separate devices connected to the scheduling event messaging middleware over a network and the scheduling event messaging middleware is configured to receive scheduling events from any number of different scheduling producers over the network;
- dynamically prioritizing the scheduling events in a prioritized order as they are received at the scheduling event messaging middleware, wherein the priority is based on the context of the scheduling event;
- sending, from the scheduling event messaging middleware, the plurality of scheduling events and their associated time-stamps in the prioritized order, that were received from the plurality of scheduling producers to a plurality of scheduling consumers, wherein the scheduling event messaging middleware is further configured to send scheduling events and their associated time-stamps to any number of different scheduling consumers;
- wherein each of the plurality of scheduling consumers includes a state machine that turns the plurality of scheduling events into playouts for each channel in a plurality of channels, wherein each time-stamp identifies a time for a specific channel, from the plurality of channels, at which the specific channel is to play one or more of the plurality of scheduling events.
A system, comprising:
- processor;
- memory;
- and
- scheduling event messaging middleware configured for:
- receiving a plurality of scheduling events and their associated time-stamps from a plurality of scheduling producers, wherein the plurality of scheduling producers are separate devices connected to the scheduling event messaging middleware over a network and the scheduling event messaging middleware is configured to receive scheduling events from any number of different scheduling producers over the network;
- dynamically prioritizing the scheduling events in a prioritized order as they are received, wherein the priority is based on the context of the scheduling event;
- sending the plurality of scheduling events and their associated time-stamps in the prioritized order, that were received from the plurality of scheduling producers to a plurality of scheduling consumers, wherein the scheduling event messaging middleware is further configured to send scheduling events and their associated time-stamps to any number of different scheduling consumers;
- wherein each of the plurality of scheduling consumers includes a state machine that turns the plurality of scheduling events into playouts for each channel in a plurality of channels, wherein each time-stamps identifies a time for a specific channel, from the plurality of channels, at which the specific channel is to play one or more of the plurality of scheduling events.
A non-transitory computer readable storage medium comprising instructions for executing a method, the method comprising:
- receiving, at a scheduling event messaging middleware, a plurality of scheduling events and their associated time-stamps from a plurality of scheduling producers, wherein the plurality of scheduling producers are separate devices connected to the scheduling event messaging middleware over a network and the scheduling event messaging middleware is configured to receive scheduling events from any number of different scheduling producers over the network;
- dynamically prioritizing the scheduling events in a prioritized order as they are received at the scheduling event messaging middleware, wherein the priority is based on the context of the scheduling event;
- sending, from the scheduling event messaging middleware, the plurality of scheduling events and their associated time-stamps in the prioritized order, that were received from the plurality of scheduling producers to a plurality of scheduling consumers, wherein the scheduling event messaging middleware is further configured to send scheduling events and their associated time-stamps to any number of different scheduling consumers;
- wherein each of the plurality of scheduling consumers includes a state machine that turns the plurality of scheduling events into playouts for each channel in a plurality of channels, wherein each time-stamp identifies a time for a specific channel, from the plurality of channels, at which the specific channel is to play one or more of the plurality of scheduling events.
Dependencies are inferred from the claim text.