Patent ID: 7346688

Claim:
A method of bandwidth allocation for stored digital content, the method comprising the steps of: storing digital content on at least one server device, the digital content having a payload and a play duration; and delivering the digital content from the at least one server device to at least one client device upon demand of the at least one client device by way of a network having a defined bandwidth, and wherein the digital content is available for playback upon client request, the delivery of digital content from the at least one server device to the at least one client device comprising: describing a control variable which represents a target flow rate of digital content from the server device to each client device, and wherein the target flow rate ensures that all required digital content will be available to each client when needed; determining time-varying constraints on the target flow rate of the digital content, and wherein the time-varying constraints for the digital content for each client device further comprises evaluating: payload of the digital content not yet delivered; and remaining play duration of the digital content; determining a cost function of the control variables for all clients, wherein the cost function represents an aggregate flow rate and is a sum of all flow rates for all clients; and prescribing bandwidth to all clients based upon a value of the control variables that maximize the cost function comprising performing periodic computations to update the value of the control variable such that the bandwidth can be continuously allocated to each client; ceasing delivery of digital content to the at least one client device when the payload of the digital content not yet delivered is equal to zero; and accepting a new client by: determining an admission capacity of the bandwidth; admitting a prospective client if the clients minimum allowed value of the control variable is less than the admission capacity; and wherein a client admitted for service is guaranteed to have sufficient content flow over the entire session.