Time-window-constrained multicast using connection scheduling
First Claim
1. A method of distributing a client among a first trusted edge server and a second trusted edge server, wherein a trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, the method comprising:
- determining a first latency between the first trusted edge server and the client;
determining a second latency between the second trusted edge server and the client;
comparing the first latency to the second latency; and
transferring the client to the second trusted edge server if the second latency is lower than the first latency, further comprising;
obtaining a release time, wherein the release time is an earliest time at which an event is intended to be delivered to the client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the client;
calculating a send time as a function of the first latency and the second latency; and
sending the event to the client at the send time.
3 Assignments
0 Petitions
Accused Products
Abstract
A method of reducing bandwidth limitations to send events to a set of interested clients within a pre-defined time period as quickly and fairly as possible. The clients can be re-distributed among the servers in a network such that the delay due to server overloading is minimized by moving clients from an overloaded server to a server with available bandwidth. In addition, the latency of client-server communications can be incorporated into an estimation of download times, and the servers can then initiate delivery to respective clients based on those download times. By staggering the send times to account for heterogeneous latencies, more clients can receive the event at the same time, and a fairness of distribution can be achieved.
26 Citations
48 Claims
-
1. A method of distributing a client among a first trusted edge server and a second trusted edge server, wherein a trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, the method comprising:
- determining a first latency between the first trusted edge server and the client;
determining a second latency between the second trusted edge server and the client;
comparing the first latency to the second latency; and
transferring the client to the second trusted edge server if the second latency is lower than the first latency, further comprising;
obtaining a release time, wherein the release time is an earliest time at which an event is intended to be delivered to the client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the client;
calculating a send time as a function of the first latency and the second latency; and
sending the event to the client at the send time.
- determining a first latency between the first trusted edge server and the client;
-
2. A method of distributing an event from a trusted edge server to a client, wherein the trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, the method comprising:
- obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the client;
determining a first latency between the trusted edge server and a first client;
calculating a first send time as a function of the first latency; and
sending the event from the trusted edge server to the client at the first send time, wherein the step of calculating the first send time further comprises;
estimating a first delivery time using the first latency; and
calculating the first send time to be prior to the completion time minus the first delivery time. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
- obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
-
15. A method of distributing an event from a trusted edge server to a client, wherein the trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, the method comprising:
- obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the client;
determining a first latency between the trusted edge server and a first client communicating with the first trusted server;
comparing the first latency to a first transfer latency;
transferring the first client if the first transfer latency is lower than the first latency;
calculating a first send time as a function of the first latency and the first transfer latency; and
sending the event to the first client at the first send time, wherein the first transfer latency is a latency between a second trusted edger server and the first client and wherein transferring the first client if the first transfer latency is lower than the first latency includes transferring the first client to the second trusted edger server. - View Dependent Claims (16, 17, 18, 19)
- obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
-
20. A computer-readable medium, having computer-executable instructions for distributing an event from a trusted edge server to a client, wherein the trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, the computer-executable instructions for performing steps comprising:
- obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the client;
determining a first latency between the trusted edge server and a first client;
calculating a first send time as a function of the first latency; and
sending the event from the trusted edge server to the client at the first send time, wherein the step of calculating the first send time further comprises;
estimating a first delivery time using the first latency; and
calculating the first send time to be prior to the completion time minus the first delivery time. - View Dependent Claims (21, 22, 23)
- obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
-
24. A computer-readable medium, having computer-executable instructions for distributing an event from a trusted edge server to a client, wherein the trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, the computer-executable instructions for performing steps comprising:
- obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the client;
determining a first latency between the trusted edge server and a first client communicating with the first trusted server;
comparing the first latency to a first transfer latency;
transferring the first client if the first transfer latency is lower than the first latency;
calculating a first send time as a function of the first latency and the first transfer latency; and
sending the event to the first client at the first send time, wherein the first transfer latency is a latency between a second trusted edger server and the first client and wherein transferring the first client if the first transfer latency is lower than the first latency includes transferring the first client to the second trusted edger server. - View Dependent Claims (25, 26)
- obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
-
27. A system for network distribution to minimize latencies, the system comprising:
- an originating server;
a first trusted edge server having connected to it a client;
a second trusted edge server, wherein a trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; and
computer-executable instructions for performing steps comprising;
determining a first latency between the first trusted edge server and the client;
determining a second latency between the second trusted edge server and the client;
comparing the first latency to the second latency; and
transferring the client to the second trusted edge server if the second latency is lower than the first latency, wherein the computer-executable instructions perform further steps comprising;
obtaining a release time, wherein the release time is an earliest time at which an event is intended to be delivered to the client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the client;
calculating a send time as a function of the first latency and the second latency; and
sending the event to the client at the send time.
- an originating server;
-
28. A system for efficient distribution, the system comprising:
- an originating server;
a trusted edger server having connected to it a first client, wherein the trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; and
computer-executable instructions for performing steps comprising;
obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the first client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the first client;
determining a first latency between the trusted edge server and the first client;
calculating a first send time as a function of the first latency; and
sending the event from the trusted edge server to the client at the first send time, wherein the step of calculating the first send time further comprises;
estimating a first delivery time using the first latency; and
calculating the first send time to be prior to the completion time minus the first delivery time. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
- an originating server;
-
37. A system for efficient event distribution, the system comprising:
- a first trusted edge server having connected to it a first client;
a second trusted edger server, wherein a trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time; and
computer-executable instructions for performing steps comprising;
obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the first client;
obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the first client;
determining a first latency between the trusted edge server and the first client;
comparing the first latency to a first transfer latency;
transferring the first client if the first transfer latency is lower than the first latency;
calculating a first send time as a function of the first latency and the first transfer latency; and
sending the event to the first client at the first send time, wherein the first transfer latency is a latency between the second trusted edger server and the first client and wherein the computer-executable instructions for transferring the first client if the first transfer latency is lower than the first latency include computer-executable instructions for transferring the first client to the second trusted edger server. - View Dependent Claims (38, 39, 40, 41)
- a first trusted edge server having connected to it a first client;
-
42. A method of distributing an event from a trusted edge server to a client, wherein the trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, the method comprising:
- a step for obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
a step for obtaining a completion time, wherein the completion time is a latest time at which the event can arrive at the client;
a step for determining a first latency between the trusted edge server and a first client;
a step for calculating a first send time as a function of the first latency; and
a step for sending the event from the trusted edge server to the client at the first send time, wherein the step for calculating the first send time further comprises;
a step for estimating a first delivery time using the first latency; and
a step for calculating the first send time to be prior to the completion time minus the first delivery time. - View Dependent Claims (43, 44)
- a step for obtaining a release time, wherein the release time is an earliest time at which the event is intended to be delivered to the client;
-
45. A trusted edge server for distributing an event to a client, wherein the trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, comprising:
- means for obtaining a release time and a completion time, wherein the release time is an earliest time at which the event is intended to be delivered to the client, and the completion time is a latest time at which the event can arrive at the client;
means for determining a first latency between the trusted edge server and a first client;
means for calculating a first send time as a function of the first latency; and
means for sending the event from the trusted edge server to the client at the first send time, wherein means for calculating the first send time further comprises;
means for estimating a first delivery time using the first latency; and
means for calculating the first send time to be prior to the completion time minus the first delivery time. - View Dependent Claims (46, 47)
- means for obtaining a release time and a completion time, wherein the release time is an earliest time at which the event is intended to be delivered to the client, and the completion time is a latest time at which the event can arrive at the client;
-
48. A trusted edge server for distributing an event to a client, wherein the trusted edge server is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, comprising:
- means for obtaining a release time and a completion time, wherein the release time is an earliest time at which the event is intended to be delivered to the client, and the completion time is a latest time at which the event can arrive at the client;
means for determining a first latency between the trusted edge server and a first client communicating with the first trusted server;
means for comparing the first latency to a first transfer latency;
means for transferring the first client if the first transfer latency is lower than the first latency;
means for calculating a first send time as a function of the first latency and the first transfer latency; and
means for sending the event to the first client at the first send time, wherein the first transfer latency is a latency between a second trusted edger server and the first client and wherein means for transferring the first client if the first transfer latency is lower than the first latency includes means for transferring the first client to the second trusted edger server.
- means for obtaining a release time and a completion time, wherein the release time is an earliest time at which the event is intended to be delivered to the client, and the completion time is a latest time at which the event can arrive at the client;
Specification