IP Library Granted Patent US 7,937,488
Granted Patent B2
US 7,937,488 · App. 12/189,489 · Granted May 3, 2011

Multimedia scheduler

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,937,488
App. No.
12/189,489
Granted
May 3, 2011
Kind
B2
Abstract

A song and ad scheduler supporting clip-based and stream-based scheduling of multimedia items generates several hours of schedule in advance. Having multiple channel capability, the scheduler uses as inputs: the channel, associated playlists, rotation pattern for the channel, and associated programming rules to produce a schedule of multimedia items for the channel. Initially, the scheduler produces a schedule for each channel of predetermined length; then it periodically revisits the channel to add more songs, keeping the schedule to the desired length. Length of the initial playlist is configurable. The scheduler uses a producer-consumer model for distributing work. Producer threads periodically scan the system for work to be done. When a producer thread encounters work to be done, e.g. adding to the schedule of a channel, the producer thread places a work request into a queue. Worker threads consume the work requests by fulfilling the requested work.

Claims (81)

1. A job scheduling apparatus for scheduling media items for a plurality of network broadcast channels, comprising:

at least one processor programmed to:

provide a work manager, said work manager comprising at least one producer thread, a task queue and at least one worker thread; and

provide one or more scheduler objects associated with each producer thread;

wherein said work manager and associated scheduler objects are configured to create and maintain a job schedule according to predefined criteria, and wherein said at least one producer thread is configured to check a channel at configurable intervals, increment a schedule of said channel to generate work requests, and place said work requests in said task queue;

wherein said worker threads are configured to execute said work requests,

wherein said scheduler objects comprise work creator objects and wherein associating a particular scheduler object with a particular producer thread comprises wrapping a work creator object of said particular scheduler object with said particular producer thread.

2. The job scheduling apparatus of claim 1 , wherein said processor is further programmed to provide:

a main application thread configured to initialize said work manager;

a property manager configured to provide, to said work manager, access to application properties stored in any of properties or configuration files; and

a database connection manager configured to serve as an access point to connect said work manager to a database.

3. The job scheduling apparatus of claim 2 , wherein said main application thread is further configured to initialize a logging system, wherein said logging system is configured to record transactions and activities of said work manager.

4. The job scheduling apparatus of claim 2 , wherein said main application thread is further configured to:

stop said work manager in response to a ‘stop’ or ‘abort’ request.

5. The job scheduling apparatus of claim 1 , wherein said predefined criteria comprise any of programming rules, a rotation pattern for each channel, and rotation codes assigned to individual media items.

6. The job scheduling apparatus of claim 1 , wherein said processor is further programmed to access a properties file that specifies parameters to tune operation of said scheduler objects and wherein said properties file specifies at least one of:

work manager properties;

scheduler object properties; and

scheduler-wide properties.

7. The job scheduling apparatus of claim 1 , wherein said work creator is further configured to access a database having a plurality of tables, wherein said plurality of tables includes at least one table for one or more of:

current states of said scheduler objects;

an exception log for recording events, wherein said events include rule violations;

enumeration of log messages;

associating rotation patterns to a channel;

rotation patterns created by DJ's;

rule definitions;

associating rules to a channel;

defining channel specific rule values;

channel configset;

channels;

channel-specific ads;

channel-specific playlists;

playlists;

playlists of clips;

clips;

encoding formats;

song location; and

song metadata.

8. The job scheduling apparatus of claim 1 , wherein said scheduling apparatus is configured for any of a selection comprising:

creating schedules for clip-based channels; and

creating schedules for stream-based channels.

9. A non-transitory computer-readable storage medium having computer-executable instructions embodied thereon to execute a job scheduler, said job-scheduler comprising:

a work manager, said work manager comprising at least one producer thread, a task queue and at least one worker thread; and

one or more scheduler objects associated with each producer thread;

wherein said work manager and associated scheduler objects are configured to create and maintain a job schedule according to predefined criteria, and wherein said at least one producer thread is configured to check a channel at configurable intervals, increment a schedule of said channel to generate work requests, and place said work requests in said task queue;

wherein said worker threads are configured to execute said work requests,

wherein said scheduler obiects comprise work creator obiects and wherein associating a particular scheduler object with a particular producer thread comprises wrapping a work creator object of said particular scheduler object with said particular producer thread.

10. The non-transitory computer-readable storage medium of claim 9 , wherein said scheduler further comprises:

a property manager configured to provide, to said work manager, access to application properties stored in any of properties or configuration files;

a database connection manager configured to serve as an access point to connect said work manager to a database; and

a main application thread configured to initialize said work manager.

11. The non-transitory computer-readable storage medium of claim 10 , wherein said main application thread is further configured to initialize a logging system, wherein said logging system is configured to record transactions and activities of said work manager.

12. The non-transitory computer-readable storage medium of claim 10 , wherein said main application thread is further configured to:

stop said work manager in response to a ‘stop’ or ‘abort’ request.

13. The non-transitory computer-readable storage medium of claim 9 , wherein said predefined criteria comprise any of programming rules, a rotation pattern for each channel, and rotation codes assigned to individual media items.

14. The non-transitory computer-readable storage medium of claim 9 , wherein said work manager is further programmed to access a properties file that specifies parameters to tune operation of said scheduler objects and wherein said properties file specifies at least one of:

work manager properties;

scheduler object properties; and

scheduler-wide properties.

15. The non-transitory computer-readable storage medium of claim 9 , wherein said work creator is further configured to access a database having a plurality of tables, wherein said plurality of tables includes at least one table for one or more of:

current states of said scheduler objects;

an exception log for recording events, wherein said events include rule violations;

enumeration of log messages;

associating rotation patterns to a channel;

rotation patterns created by DJ's;

rule definitions;

associating rules to a channel;

defining channel specific rule values;

channel configset;

channels;

channel-specific ads;

channel-specific playlists;

playlists;

playlists of clips;

clips;

encoding formats;

song location; and

song metadata.

16. The non-transitory computer-readable storage medium of claim 9 , wherein said scheduler is configured for any of a selection comprising:

creating schedules for clip-based channels; and

creating schedules for stream-based channels.

Assignments (3)
MERGER Recorded Dec 29, 2015
From: TARQUIN CONSULTING CO., LLC
To: CALLAHAN CELLULAR L.L.C.
Reel/Frame 037396/0647 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2009
From: AOL LLC
To: TARQUIN CONSULTING CO., LLC
Reel/Frame 023379/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2009
From: GONDHALEKAR, MANGESH MADHUKAR; VISWANATHAN, RAJESH; PRAKASH, SHAILESH; LOOMIS, STEPHEN; VAN HUYSSE, JAMES PATRICK; CARLSON, CAMEO DAWN
To: AOL LLC
Reel/Frame 022445/0428 →