IP Library Granted Patent US 8,122,139
Granted Patent B2
US 8,122,139 · App. 12/370,193 · Granted Feb 21, 2012

Scheduling of multiple files for serving on a server

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 8,122,139
App. No.
12/370,193
Granted
Feb 21, 2012
Kind
B2
Abstract

Multiple files a served using a server coupled to a data network. A plurality of files is determined, wherein a file includes an integer number of blocks, and wherein each block includes at least one input symbol. For each file, an indication of at least one channel on which to serve the file is determined, and, for each file, a rate at which to serve the file is determined. Also, a schedule for processing the blocks is determined, and output symbols for the blocks are generated according to the schedule. The output symbols are transmitted on the corresponding at least one channel, wherein the files are concurrently served at their corresponding rates.

Claims (31)

1. A method for serving multiple files using a server coupled to a data network, the method comprising:

determining a plurality of files, wherein a file includes an integer number of blocks, wherein each block includes at least one input symbol;

for each file, determining an indication of multiple channels on which to serve the file;

for each file, determining a rate at which to serve the file;

determining a schedule for processing the blocks;

generating output symbols for the blocks according to the schedule, wherein generating output symbols includes using a chain reaction code; and

transmitting the output symbols on the corresponding multiple channels, wherein the files are concurrently served at their corresponding rates.

2. A method for serving a file using a server coupled to a data network, the method comprising:

determining a file, wherein the file includes an integer number of compound blocks, wherein each compound block includes at least one basic block, wherein at least one of the compound blocks includes at least two basic blocks, wherein each basic block includes at least one input symbol;

determining an indication of multiple channels on which to serve the file;

determining a rate at which to serve the file;

determining a schedule for processing the basic blocks;

generating using a chain reaction code output symbols for the basic blocks according to the schedule, wherein the output symbols for the basic blocks comprising each compound block are generated using a same set of operations;

assembling the output symbols for the basic blocks into compound output symbols; and

transmitting the compound output symbols on the corresponding multiple channels, such that the file is served at the corresponding rate.

3. A system for serving a file using a server coupled to a data network, the system comprising:

a file block scheduler configured to determine a file, wherein the file includes an integer number of compound blocks, each compound block includes at least one basic block, at least one of the compound blocks includes at least two basic blocks, and each basic block includes at least one input symbol; determine an indication of multiple channels on which to serve the file; determine a rate at which to serve the file; and determine a schedule for processing the basic blocks;

a block encoder including a chain reaction code encoder communicatively coupled with the file block scheduler and configured to generate output symbols for the basic blocks according to the schedule, wherein the output symbols for the basic blocks comprising each compound block are generated using a same set of operations; and assemble the output symbols for the basic blocks into compound output symbols; and

a transmit module communicatively coupled with the block encoder and configured to transmit the compound output symbols on the corresponding multiple channels, such that the file is served at the corresponding rate.

4. A system for serving a file using a server coupled to a data network, the system comprising:

means for determining a file, wherein the file includes an integer number of compound blocks, each compound block includes at least one basic block, at least one of the compound blocks includes at least two basic blocks, and each basic block includes at least one input symbol; determining an indication of multiple channels on which to serve the file; determining a rate at which to serve the file; and determining a schedule for processing the basic blocks;

means for generating using a chain reaction code output symbols for the basic blocks according to the schedule, wherein the output symbols for the basic blocks comprising each compound block are generated using a same set of operations; and assembling the output symbols for the basic blocks into compound output symbols; and

means for transmitting the compound output symbols on the corresponding multiple channels, such that the file is served at the corresponding rate.

5. A non-transitory computer program product for serving a file using a server coupled to a data network, the product comprising:

a processor-readable medium storing processor-readable instructions configured to cause a processor to:

determine a file, wherein the file includes an integer number of compound blocks, wherein each compound block includes at least one basic block, wherein at least one of the compound blocks includes at least two basic blocks, wherein each basic block includes at least one input symbol;

determine an indication of multiple channels on which to serve the file;

determine a rate at which to serve the file;

determine a schedule for processing the basic blocks;

generate using a chain reaction code output symbols for the basic blocks according to the schedule, wherein the output symbols for the basic blocks comprising each compound block are generated using a same set of operations; and

assemble the output symbols for the basic blocks into compound output symbols, such that the file is served at the corresponding rate by transmitting the compound output symbols on the corresponding multiple channels.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2018
From: DIGITAL FOUNTAIN, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 045641/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2009
From: LASSEN, SOREN; HORN, GAVIN; PERSCH, JEFFREY J.; HAKEN, ARMIN; LUBY, MICHAEL G.
To: DIGITAL FOUNTAIN, INC.
Reel/Frame 022645/0448 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2009
From: LASSEN, SOREN; HORN, GAVIN; PERSCH, JEFFREY J.; HAKEN, ARMIN; LUBY, MICHAEL G.
To: DIGITAL FOUNTAIN, INC.
Reel/Frame 022465/0253 →