Scalable synchronization of events among server and clients with varying lag-times
First Claim
1. An apparatus for synchronizing a function on a plurality of devices, the apparatus comprising:
- a memory comprising an event, the event comprising a reference to the function and a desired event time (DET);
one or more processors in communication with the memory and configured to, for each of the devices;
send content comprising the function and the event to the device;
receive a timepacket comprising a start time t1 sent at the start time t1 from the device;
add to the each timepacket a system time t2; and
send a return timepacket comprising return time t2 to the device;
whereby the device;
receives the return timepacket at a receipt time t3;
determines a roundtrip time (RTT=t3−
t1) and calculate a server difference (SD=t2+(RTT/2)−
t3);
receives, at an event receipt time t4, the event;
calculates a delay (D=DET−
(t4+SD)); and
exhibits the function at a synchronized event time (SDET=t4+D).
5 Assignments
0 Petitions
Accused Products
Abstract
The invention relates generally to synchronizing functions on handheld devices and more particularly to precisely synchronizing a function among a large number of devices having multiple different platforms. The invention provides the ability to cause a large number of handheld devices to perform certain functions simultaneously, within seconds or fractions of a second of each other. In certain aspects, the invention provides an apparatus for synchronizing a function among devices, including one or more processors in communication with a memory and configured to, for each of the devices, send an event to the device, receive a timepacket, and send a return timepacket, thereby causing the device to receive the event and invoke the function after a delay.
-
Citations
15 Claims
-
1. An apparatus for synchronizing a function on a plurality of devices, the apparatus comprising:
-
a memory comprising an event, the event comprising a reference to the function and a desired event time (DET); one or more processors in communication with the memory and configured to, for each of the devices; send content comprising the function and the event to the device; receive a timepacket comprising a start time t1 sent at the start time t1 from the device; add to the each timepacket a system time t2; and send a return timepacket comprising return time t2 to the device; whereby the device; receives the return timepacket at a receipt time t3; determines a roundtrip time (RTT=t3−
t1) and calculate a server difference (SD=t2+(RTT/2)−
t3);receives, at an event receipt time t4, the event; calculates a delay (D=DET−
(t4+SD)); andexhibits the function at a synchronized event time (SDET=t4+D). - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for synchronizing a function on a plurality of devices by means of a computing system comprising one or more processors, the method comprising:
-
sending, from a memory comprising an event, the event comprising a reference to the function and a desired event time (DET); sending content comprising the function to a device and a second device; receiving a timepacket, the timepacket comprising a start time t1 indicating the time at which the timepacket was sent, from a device adding, to the timepacket, a system time t2; sending a return timepacket to the device; receiving a second timepacket from a second device and sending a second return timepacket to the second device; and sending the event to the second device, thereby causing the device to; determine a roundtrip time (RTT=t3−
t1) and calculate a server difference (SD=t2+(RTT/2)−
t3),receive, at an event receipt time t4, the event, calculate the delay (D=DET−
(t4+SD)), andexhibit the function at a synchronized event time (SDET=t4+D), and also causing the second device to invoke the function within approximately 1 second of when the device invokes the function. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system for synchronizing handhelds, the system comprising:
-
a server comprising a processor and a memory, wherein the server is configured to send content comprising functionality and an event, the event comprising a reference to the content and a desired event time (DET); a plurality of handheld devices, each in communication with the server and each configured to; obtain the content and store it; send a timepacket at a start time t1 comprising the start time t1; receive, at a return timepacket receipt time t3, from the server, a return timepacket comprising a return time t2; determine a roundtrip time (RTT=t3−
t1) and calculate a server difference (SD=t2+(RTT/2)−
t3);receive, at an event receipt time t4, the event; calculate a delay (D=DET−
(t4+SD)); andexhibit the functionality at a synchronized desired event time (SDET=t4+D). - View Dependent Claims (13, 14, 15)
-
Specification