RELIABLE EVENT BROADCASTER WITH MULTIPLEXING AND BANDWIDTH CONTROL FUNCTIONS
First Claim
1. A method of allocating bandwidth of a communications system among multiple applications using the communications system to transfer data, comprising:
- determining a value for the aggregate bandwidth BA available to all applications;
determining a first bandwidth limit B1 for each application, wherein B1 represents a minimum guaranteed bandwidth limit;
determining a second bandwidth limit B2 for each application, wherein B2 represents an expected bandwidth limit that is not less than the first bandwidth limit;
determining a relative priority level for each application, wherein the relative priority level has a value Pi, and, P<
i represents all priority levels less than Pi, and P>
i represents all priority levels greater than Pi;
wherein the bandwidth limits satisfy the relationships the sum of B1 for all applications does not exceed BA, and for each relative priority value, Pi, the sum of B2 for each application at priority level Pi plus the sum of B1 for each application at priority P<
i does not exceed BA; and
allocating bandwidth to each of the applications, wherein the bandwidth allocation satisfies the relationship that the sum of bandwidth allocated to all applications does not exceed BA.
12 Assignments
0 Petitions
Accused Products
Abstract
A system, apparatus, and method for transmitting data in a broadcast mode to multiple devices operating in a network. The invention enables the efficient utilization of bandwidth while providing a desired level of quality of service for the applications executing on the devices that utilize the broadcasted data. The invention utilizes a set of bandwidth constraints in combination with a set of heuristics and rules for the allocation and re-allocation of bandwidth among multiple applications in a manner that minimizes the impact on the quality of service metrics of importance to the affected applications when contention exists for the network resources. The present invention implements processes to cause the quality of service provided to each application to degrade smoothly, with certain priorities and guarantees being maintained. The present invention also provides event segmentation and reassembly functions for applications, and includes reliability mechanisms to increase the ability to provide data to client devices that have not been actively receiving for significant periods of time.
-
Citations
34 Claims
-
1. A method of allocating bandwidth of a communications system among multiple applications using the communications system to transfer data, comprising:
-
determining a value for the aggregate bandwidth BA available to all applications;
determining a first bandwidth limit B1 for each application, wherein B1 represents a minimum guaranteed bandwidth limit;
determining a second bandwidth limit B2 for each application, wherein B2 represents an expected bandwidth limit that is not less than the first bandwidth limit;
determining a relative priority level for each application, wherein the relative priority level has a value Pi, and, P<
i represents all priority levels less than Pi, and P>
i represents all priority levels greater than Pi;
wherein the bandwidth limits satisfy the relationships the sum of B1 for all applications does not exceed BA, and for each relative priority value, Pi, the sum of B2 for each application at priority level Pi plus the sum of B1 for each application at priority P<
i does not exceed BA; and
allocating bandwidth to each of the applications, wherein the bandwidth allocation satisfies the relationship that the sum of bandwidth allocated to all applications does not exceed BA. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus for delivering data to a plurality of client devices over a communications network, comprising:
-
a registration element configured to register an application, the application providing data to be delivered to the client devices;
a bandwidth allocation element configured to allocate bandwidth of the communications network to the application;
a communications network formatting element configured to format the provided data for transport over the communications network; and
a communications network control element configured to provide the formatted data to the communications network for transport over the communications network. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. An apparatus for receiving data transported over a communications network intended for an application executing on the apparatus, comprising:
-
a registration element configured to register the application;
a data assembly element configured to process data received from the communications network, the data assembly element producing an event from one or more data packets;
a cache configured to store the received data; and
a scheduling element configured to determine when to provide the event to the application. - View Dependent Claims (15, 16)
-
-
17. A system for the delivery of data over a communications network to a client application, comprising:
-
a server apparatus comprising a registration element configured to register a server application, the server application providing data to be delivered to the client application;
a bandwidth allocation element configured to allocate bandwidth of the communications network to the server application;
a communications network formatting element configured to format the provided data for transport over the communications network; and
a communications network control element configured to provide the formatted data to the communications network for transport over the communications network; and
a client device comprising a registration element configured to register the client application;
a data assembly element configured to process data received from the communications network, the data assembly element producing an event from one or more data packets;
a cache configured to store the received data; and
a scheduling element configured to determine when to provide the event to the client application. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A method of distributing data to multiple client devices over a communications network, comprising:
-
registering an application to provide data to the client devices;
allocating bandwidth of the communications network to the application;
processing data provided by the application for transport over the communications network;
transporting the processed data over the communications network;
wherein for each client device, the method comprises registering a client application with the client device;
receiving the data after transport over the communications network;
caching the data in a storage medium;
scheduling delivery of the data; and
providing the data to the client application. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
Specification