IP Library Granted Patent US 8,793,402
Granted Patent B2
US 8,793,402 · App. 13/218,843 · Granted Jul 29, 2014

Synchronizing time across a plurality of devices connected to a network

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,793,402
App. No.
13/218,843
Granted
Jul 29, 2014
Kind
B2
Abstract

Methods, apparatuses, and computer program products for synchronizing time across a plurality of devices connected to a network are provided. Embodiments include detecting, by a particular device, a synchronization initiation event; in response to detecting the synchronization initiation event, broadcasting, by the particular device to each device of the plurality of devices, a synchronization request; receiving, by the particular device, a plurality of time acknowledgments from the plurality of devices, each time acknowledgement indicating a current time of a device and a device initialization time indicating a time that the device last set the current time of the device; selecting, from the plurality of time acknowledgements the time acknowledgement with the shortest duration between an indicated device initialization time and an indicated current time of a device; and setting a current time of the particular device based on the current time indicated in the selected time acknowledgment.

Claims (45)

1. A method of synchronizing time across a plurality of devices connected to a network, the method comprising:

detecting, by a particular device, a synchronization initiation event;

in response to detecting the synchronization initiation event, broadcasting, by the particular device to each device of the plurality of devices, a synchronization request;

receiving, by the particular device, a plurality of time acknowledgments from the plurality of devices, each time acknowledgement indicating a current time of a device and a device initialization time indicating a time that the device last set the current time of the device;

selecting, from the plurality of time acknowledgements, by the particular device, the time acknowledgement with the shortest duration between an indicated device initialization time of a device and an indicated current time of the device; and

setting, by the particular device, a current time of the particular device based on the current time indicated in the selected time acknowledgment.

2. The method of claim 1 further comprising in response to setting the current time of the particular device, storing, by the particular device, a particular device initialization time indicating a time that the particular device last set the current time of the particular device.

3. The method of claim 1 wherein the synchronization initiation event includes the particular device connecting to the network.

4. The method of claim 1 wherein the synchronization initiation event includes the particular device losing power.

5. The method of claim 1 wherein the synchronization initiation event includes the current time of the particular device matching a predetermined time or a predetermined date.

6. The method of claim 1 further comprising:

receiving from one or more devices of the plurality of devices, by the particular device, a synchronization request for the current time of the particular device; and

in response to receiving the synchronization request, transmitting, by the particular device, a synchronization acknowledgement that indicates the current time of the particular device and a particular device initialization time indicating a time that the particular device last set the current time of the particular device.

7. The method of claim 1 further comprising:

receiving from a user, by a particular device, a current time indication; and

setting, by the particular device, the current time of the particular device based on the current time indication received from the user.

8. An apparatus for synchronizing time across a plurality of devices connected to a network, the apparatus comprising a particular device that includes a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that when executed by the computer processor cause the apparatus to carry out the steps of:

detecting, by the particular device, a synchronization initiation event;

in response to detecting the synchronization initiation event, broadcasting, by the particular device to each device of the plurality of devices, a synchronization request;

receiving, by the particular device, a plurality of time acknowledgments from the plurality of devices, each time acknowledgement indicating a current time of a device and a device initialization time indicating a time that the device last set the current time of the device;

selecting, from the plurality of time acknowledgements, by the particular device, the time acknowledgement with the shortest duration between an indicated device initialization time of a device and an indicated current time of the device; and

setting, by the particular device, a current time of the particular device based on the current time indicated in the selected time acknowledgment.

9. The apparatus of claim 8 further comprising in response to setting the current time of the particular device, storing, by the particular device, a particular device initialization time indicating a time that the particular device last set the current time of the particular device.

10. The apparatus of claim 8 wherein the synchronization initiation event includes the particular device connecting to the network.

11. The apparatus of claim 8 wherein the synchronization initiation event includes the particular device losing power.

12. The apparatus of claim 8 wherein the synchronization initiation event includes the current time of the particular device matching a predetermined time or a predetermined date.

13. The apparatus of claim 8 further comprising:

receiving from one or more devices of the plurality of devices, by the particular device, a synchronization request for the current time of the particular device; and

in response to receiving the synchronization request, transmitting, by the particular device, a synchronization acknowledgement that indicates the current time of the particular device and a particular device initialization time indicating a time that the particular device last set the current time of the particular device.

14. The apparatus of claim 8 further comprising:

receiving from a user, by a particular device, a current time indication; and

setting, by the particular device, the current time of the particular device based on the current time indication received from the user.

15. A computer program product for synchronizing time across a plurality of devices connected to a network, the computer program product disposed upon a computer readable storage medium, wherein the computer program product is not a signal, the computer program product comprising computer program instructions capable, when executed, of causing a computer to carry out the steps of:

detecting, by the particular device, a synchronization initiation event;

in response to detecting the synchronization initiation event, broadcasting, by the particular device to each device of the plurality of devices, a synchronization request;

receiving, by the particular device, a plurality of time acknowledgments from the plurality of devices, each time acknowledgement indicating a current time of a device and a device initialization time indicating a time that the device last set the current time of the device;

selecting, from the plurality of time acknowledgements, by the particular device, the time acknowledgement with the shortest duration between an indicated device initialization time of a device and an indicated current time of the device; and

setting, by the particular device, a current time of the particular device based on the current time indicated in the selected time acknowledgment.

16. The computer program product of claim 15 further in response to setting the current time of the particular device, storing, by the particular device, a particular device initialization time indicating a time that the particular device last set the current time of the particular device.

17. The computer program product of claim 15 wherein the synchronization initiation event includes the particular device connecting to the network.

18. The computer program product of claim 15 wherein the synchronization initiation event includes the particular device losing power.

19. The computer program product of claim 15 wherein the synchronization initiation event includes the current time of the particular device matching a predetermined time or a predetermined date.

20. The computer program product of claim 15 further comprising:

receiving from one or more devices of the plurality of devices, by the particular device, a synchronization request for the current time of the particular device; and

in response to receiving the synchronization request, transmitting, by the particular device, a synchronization acknowledgement that indicates the current time of the particular device and a particular device initialization time indicating a time that the particular device last set the current time of the particular device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 034194/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2011
From: RODRIGUEZ, ADRIAN X.; SANDONATO, NICHOLAS R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026814/0729 →