IP Library Granted Patent US 7,412,532
Granted Patent B2
US 7,412,532 · App. 10/734,783 · Granted Aug 12, 2008

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,412,532
App. No.
10/734,783
Granted
Aug 12, 2008
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 associated, 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 (96)

1. A multimedia scheduler for scheduling media items for network broadcast; comprising:

at least one work manager for each channel serviced, said work manager including 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 create and maintain a broadcast schedule for each channel according to predefined criteria;

wherein said at least one producer thread checks a channel at configurable intervals and increments said channel's schedule by generating a work request and placing it in said task queue and wherein said worker threads execute said work requests; and

wherein said multimedia scheduler is scalable to service a plurality of broadcast channels and/or services simultaneously.

2. The multimedia scheduler of claim 1 , further comprising: at least one properties file;

at least one property manager, wherein said property manager provides access to application properties, said application properties stored in any of said property file and a configuration database;

at least one database;

at least one database connection manager for managing access to data sources, wherein said database connection manager comprises an access point to connect to said database;

at least one communication module for accepting requests on a server socket and calling appropriate routines to fulfill the requests;

at least one rules factory, wherein said rules factory maintains a cache of rule objects in memory;

at least one utility thread, wherein said at least one utility thread comprises any of: a property refresher thread, a GC (garbage collection) thread for memory management and a logfile rotator thread;

at least one logging system, wherein said logging system records transactions and activities; and

at least one work creator factory, wherein said work creator factory is created during initialization of said work manager;

at least one data cache, wherein said data cache caches data common to all scheduler objects and data that change infrequently, and wherein a static data cache object contains a concrete data cache instance for each data source defined on a system; and

at least one main application thread wherein said main application thread comprises a starting point for said multimedia scheduler and wherein said main application thread initializes main components within the multimedia scheduler.

3. The multimedia scheduler of claim 2 , wherein said predefined criteria comprise any of programming rules, a rotation pattern for each channel, and rotation codes assigned to individual media items.

4. The multimedia scheduler of claim 3 , wherein said media items comprise digital recordings of songs.

5. The multimedia scheduler of claim 2 , wherein said rules objects implement a rules interface.

6. The multimedia scheduler of claim 2 , wherein properties are loaded into a properties object in said property manager when said property manager is initialized by said main application thread.

7. The multimedia scheduler of claim 2 , wherein said property manager includes a method for refreshing properties at regular intervals, wherein said method is called by one of said utility threads.

8. The multimedia scheduler of claim 7 , wherein said database connection manager maintains a thread-local cache of connections for each thread.

9. The multimedia scheduler of claim 7 , wherein said database connection manager provides a connection pool to each data source.

10. The multimedia scheduler of claim 7 , wherein said database connection manager provides a thread-local cache of connections for each thread.

11. The multimedia scheduler of claim 9 , wherein said database connection manager includes methods for getting connections; returning connections; and flushing a thread local cache.

12. The multimedia scheduler of claim 9 , wherein said connection pool performs a sanity check on each connection requested from said pool by creating a dummy prepared statement, and executing it.

13. The multimedia scheduler of claim 12 , wherein said connection pool discards a connection if an exception is thrown.

14. The multimedia scheduler of claim 9 , wherein the connection pool opens a new connection if one is unavailable from the pool.

15. The multimedia scheduler of claim 2 , wherein a port number for said socket is configured in said property file.

16. The multimedia scheduler of claim 2 , wherein said requests comprise XML (extensible markup language) strings.

17. The multimedia scheduler of claim 2 , wherein said requests include strings for:

stop;

abort;

channel_schedule;

status;

ping;

rotate_logfile; and

refresh.

18. The multimedia scheduler of claim 2 wherein a sleep interval for each utility thread is configured in said properly file.

19. The multimedia scheduler of claim 2 , wherein logging behavior is configurable by means of a logging properties file.

20. The multimedia scheduler of claim 2 , wherein scheduler objects comprise work creator objects and wherein associating a scheduling scheduler object with a producer thread comprises wrapping a work creator object with a producer thread.

21. The multimedia scheduler of claim 20 , wherein said work creator objects encapsulate song and/or ad scheduling logic, wherein said work manager is independent of said song and/or ad scheduling logic.

22. The multimedia scheduler of claim 21 , wherein said scheduling logic includes processes for any of:

scheduling songs on stream-based channels;

scheduling ads on stream-based channels;

scheduling songs on clip-based channels; and

scheduling ads on clip-based channels.

23. The multimedia scheduler of claim 22 , wherein said ads are provided by a third party.

24. The multimedia scheduler of claim 22 , wherein said ads are provided in buckets, wherein a bucket is associated with a channel.

25. The multimedia scheduler of claim 21 , wherein said work creator objects create work objects representing tasks to be performed.

26. The multimedia scheduler of claim 21 , wherein work creator objects are created by at least one work creator factory.

27. The multimedia scheduler of claim 20 , wherein said work manager further comprises at least one delete symlink (symbolic link) thread.

28. The multimedia scheduler of claim 20 , wherein said work manager further comprises at least one monitoring thread.

29. The multimedia scheduler of claim 2 , wherein a data cache refresher thread reloads cached data, and wherein a refresh interval is specified in said property file.

30. The multimedia scheduler of claim 2 , wherein said main application thread waits for a ‘stop’ or ‘abort’ request after initializing said main components.

31. The multimedia scheduler of claim 2 , wherein said main application thread includes a monitor, wherein a socket listener thread notifies said monitor when a request is received by a server socket.

32. The multimedia scheduler of claim 31 , wherein an ‘abort’ request stops said multimedia scheduler immediately.

33. The multimedia scheduler of claim 31 , wherein a ‘stop’ request allows the multimedia scheduler to stop so that:

work managers are stopped;

a cleanup of the database connection manager is performed; and

the application is exited.

34. The multimedia scheduler of claim 2 , wherein said main application thread includes a plurality of public static methods to control and report on the multimedia scheduler.

35. The multimedia scheduler of claim 2 , wherein said main application thread constitutes a class.

36. The multimedia scheduler of claim 2 , wherein said properties file controls behavior of said multimedia scheduler and specifies parameters to tune said multimedia scheduler.

37. The multimedia scheduler of claim 36 , wherein said properties file specifies at least:

work manager properties;

scheduler object properties;

scheduler-wide properties;

rules module properties;

property manager properties; and

database connection pool properties.

38. The multimedia scheduler of claim 2 , wherein said database comprises a plurality of tables, and wherein said at least one work manager and said property manager access said database.

39. The multimedia scheduler of claim 38 , wherein said tables include tables for at least:

current state of multimedia scheduler wherein said state is persistently saved;

an exception log for recording events, wherein 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; and

channel configset.

40. The multimedia scheduler of claim 39 , wherein said tables further include:

channels;

channel-specific ads;

channel-specific playlists;

playlists;

playlists of clips;

clips;

encoding formats;

song location; and

song metadata.

41. The multimedia scheduler of claim 1 , wherein said multimedia scheduler creates schedules for clip-based channels.

42. The multimedia scheduler of claim 1 , wherein said multimedia scheduler creates schedules for stream-based channels.

43. The multimedia scheduler of claim 1 , wherein said services are broadcast at different bit rates.

Assignments (7)
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 →
CORRECTION TO CORRECTIVE ASSIGNMENT RECORDED AT REEL 022451, FRAME 0186 CORRECTING THE NATURE OF CONVEYANCE RECORDED AT REEL 019711, FRAME 0316. THE ACTUAL NATURE OF CONVEYANCE IS CONVERSION TO LIMITED LIABILITY COMPANY. Recorded Jun 17, 2009
From: AMERICA ONLINE, INC.
To: AOL LLC
Reel/Frame 022835/0613 →
CORRECTION OF ASSIGNEE NAME RECORDED ON REEL 015385, FRAME 0612 Recorded Jun 17, 2009
From: GONDHALEKAR, MANGESH MADHUKAR; VISWANATHAN, RAJESH; PRAKASH, SHAILESH; LOOMIS, STEPHEN; VAN HUYSSE, JAMES PATRICK; CARLSON, CAMEO DAWN
To: AMERICA ONLINE, INC.
Reel/Frame 022835/0563 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED ON REEL 019711 FRAME 0316. ASSIGNOR(S) HEREBY CONFIRMS THE NATURE OF CONVEYANCE IS CHANGE OF NAME. Recorded Mar 25, 2009
From: AMERICA ONLINE, INC.
To: AOL LLC, A DELAWARE LIMITED LIABILITY COMPANY
Reel/Frame 022451/0186 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2007
From: AMERICA ONLINE, INC.
To: AOL LLC, A DELAWARE LIMITED LIABILITY COMPANY
Reel/Frame 019711/0316 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2004
From: GONDHALEKAR, MANGESH MADHUKAR; VISWANATHAN, RAJESH; PRAKASH, SHAILESH; LOOMIS, STEPHEN; VAN HUYSSE, JAMES PATRICK; CARLSON, CAMEO DAWN
To: AMERICA ONLINE, INCORPORATED
Reel/Frame 015385/0612 →