IP Library Granted Patent US 7,680,067
Granted Patent B2
US 7,680,067 · App. 11/684,551 · Granted Mar 16, 2010

Peer-to-peer data synchronization architecture

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 7,680,067
App. No.
11/684,551
Granted
Mar 16, 2010
Kind
B2
Abstract

To enable the peer-to-peer synchronization among multiple devices, each device in the peer network keeps track of the changes it makes to any shared data and also keeps track of its own knowledge of the changes made by other devices. When two or more peer devices communicate, they share with each other their information about any changes made to the shared data by them or by other devices. This allows the devices to synchronize with each other to the extent that each of the devices knows what changes have been made by it or by other devices in the peer network.

Claims (119)

1. A method for synchronizing data between or among multiple devices in a peer network, the method comprising:

making a change to a shared data item on a local device;

tracking the change to the shared data item;

tracking additional changes to the shared data item made by other devices in the peer network;

establishing communication with a remote device in the peer network;

transmitting data describing changes to the shared data item made by the local device or other devices in the peer network;

receiving data from the remote device describing changes to the shared data item by the remote device or other devices in the peer network;

changing the shared data item according to the received data from the remote device; and

updating the additional changes to the shared data item made by other devices in the peer network.

2. The method of claim 1 , wherein tracking the change to the shared data item comprises:

logging a change identifier on the local device, the change identifier uniquely identifying the change, the data item changed and the device making the change.

3. The method of claim 1 , wherein tracking changes to the shared data item made by other devices in the peer network comprises:

maintaining a device-change table on the local device, the device-change table associating a change with the device making the change.

4. The method of claim 2 , wherein transmitting data describing changes to the shared data item made by the local device or other devices in the peer network comprises:

transmitting a most recent change identifier.

5. The method of claim 4 , further comprising:

transmitting a most recent change associated with each device from the device-change table.

6. The method of claim 3 , wherein receiving data from the remote device describing changes to the shared data item by the remote device or other devices in the peer network further comprises:

generating an identifier associating the received data describing changes to the shared data item with the remote device; and

storing the identifier in the device-change table.

7. The method of claim 1 , wherein changing the shared data item according to the received data from the remote device comprises an action selected from a group consisting of: adding the shared data item, modifying the shared data item and deleting the changed data item.

8. The method of claim 1 , wherein changing the shared data item according to the received data from the remote device comprises:

applying a conflict resolution scheme to the received data; and

changing the shared data item in response to the conflict resolution scheme determining the received data describes a change that should be implemented.

9. The method of claim 1 , wherein updating the additional changes to the shared data item made by other devices in the peer network comprises: updating a device-change table on the local device, the device-change table associating an additional change with the device making the change, to reflect the changes described by the received data.

10. The method of claim 2 , wherein the change identifier further comprises a priority level.

11. The method of claim 2 , wherein the change identifier further comprises a timestamp indicating the time of the change to the shared item.

12. The method of claim 1 , wherein receiving data from the remote device describing changes to the shared data item by the remote device or other devices in the peer network comprises:

receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network;

determining additional changes to the shared data item tracked by the local device and not described by the data received from the remote device; and

transmitting data to the remote device describing the additional changes tracked by the local device and not described by the data received from the remote device.

13. A method for synchronizing data between or among multiple devices in a peer network, the method comprising:

making a change to a shared data item on a local device;

tracking the change to the shared data item;

tracking additional changes to the shared data item made by other devices in the peer network;

establishing communication with a remote device in the peer network;

receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network;

determining local changes to the shared data item tracked by the local device and not described by the data received from the remote device; and

transmitting data to the remote device describing the additional changes tracked by the local device and not described by the data received from the remote device.

14. The method of claim 13 , wherein tracking the change to the shared data item comprises:

logging a change identifier on the local device, the change identifier uniquely identifying the change, the data item changed and the device making the change.

15. The method of claim 13 , wherein tracking additional changes to the shared data item made by other devices in the peer network comprises:

maintaining a device-change table on the local device, the device-change table associating a change with the device making the change.

16. The method of claim 14 , wherein, receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network comprises:

transmitting a most recent change identifier from the remote device.

17. The method of claim 15 , receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network comprises:

generating an identifier associating the received data describing changes to the shared data item with the remote device; and

storing the identifier in the device-change table.

18. The method of claim 14 , wherein transmitting data to the remote device describing the additional changes tracked by the local device and not described by the data received from the remote device comprises:

transmitting the changed shared item to the remote device; and

transmitting a change identifier identifying the change to the shared item.

19. The method of claim 13 , wherein receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network comprises:

changing the shared data item according to the received data from the remote device; and

updating the changes to the shared data item made by other devices in the peer network.

20. A computer program product for synchronizing data between or among multiple devices, the computer program product comprising a computer-readable medium containing computer program code for:

making a change to a shared data item on a local device;

tracking the change to the shared data item;

tracking additional changes to the shared data item made by other devices in the peer network;

establishing communication with a remote device in the peer network;

transmitting data describing changes to the shared data item made by the local device or other devices in the peer network;

receiving data from the remote device describing changes to the shared data item by the remote device or other devices in the peer network;

changing the shared data item according to the received data from the remote device; and

updating the additional changes to the shared data item made by other devices in the peer network.

21. The computer program product of claim 20 , wherein tracking the change to the shared data item comprises:

logging a change identifier on the local device, the change identifier uniquely identifying the change, the data item changed and the device making the change.

22. The computer program product of claim 20 , wherein tracking additional changes to the shared data item made by other devices in the peer network comprises:

maintaining a device-change table on the local device, the device-change table associating a change with the device making an additional change.

23. The computer program product of claim 21 , wherein transmitting data describing changes to the shared data item made by the local device or other devices in the peer network comprises:

transmitting a most recent change identifier.

24. The computer program product of claim 23 , further comprising computer program code for:

transmitting a most recent change associated with each device from the device-change table.

25. The computer program product of claim 22 , wherein receiving data from the remote device describing changes to the shared data item by the remote device or other devices in the peer network further comprises:

generating an identifier associating the received data describing changes to the shared data item with the remote device; and

storing the identifier in the device-change table.

26. The computer program product of claim 20 , wherein changing the shared data item according to the received data from the remote device comprises an action selected from a group consisting of: adding the shared data item, modifying the shared data item and deleting the changed data item.

27. The computer program product of claim 20 , wherein changing the shared data item according to the received data from the remote device comprises:

applying a conflict resolution scheme to the received data; and

changing the shared data item in response to the conflict resolution scheme determining the received data describes a change that should be implemented.

28. The computer program product of claim 20 , wherein updating the changes to the shared data item made by other devices in the peer network comprises:

updating a device-change table on the local device, the device-change table associating a change with the device making the change, to reflect the changes described by the received data.

29. The computer program product of claim 21 , wherein the change identifier further comprises a priority level.

30. The computer program product of claim 21 , wherein the change identifier further comprises a timestamp indicating the time of the change to the shared item.

31. The computer program product of claim 20 , wherein receiving data from the remote device describing changes to the shared data item by the remote device or other devices in the peer network comprises:

receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network;

determining changes to the shared data item tracked by the local device and not described by the data received from the remote device; and

transmitting data to the remote device describing the changes tracked by the local device and not described by the data received from the remote device.

32. A communication network for synchronizing data between or among multiple devices, the system comprising:

a plurality of devices each running the computer program product of claim 20 .

33. The communication network of claim 32 , wherein a device comprises:

a transceiver for receiving data or metadata and for transmitting data or metadata;

a user input device for receiving a change to a data stored on the device.

34. A computer program product for synchronizing data between or among multiple devices, the computer program product comprising a computer-readable medium containing computer program code for:

making a change to a shared data item on a local device;

tracking the change to the shared data item;

tracking additional changes to the shared data item made by other devices in the peer network;

establishing communication with a remote device in the peer network;

receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network;

determining changes to the shared data item tracked by the local device and not described by the data received from the remote device; and

transmitting data to the remote device describing the additional changes tracked by the local device and not described by the data received from the remote device.

35. The computer program product of claim 34 , wherein tracking the change to the shared data item comprises:

logging a change identifier on the local device, the change identifier uniquely identifying the change, the data item changed and the device making the change.

36. The computer program product of claim 34 , wherein tracking additional changes to the shared data item made by other devices in the peer network comprises:

maintaining a device-change table on the local device, the device-change table associating a change with the device making an additional change.

37. The computer program product of claim 35 , wherein, receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network comprises:

transmitting a most recent change identifier from the remote device.

38. The computer program product of claim 34 , receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network comprises:

generating an identifier associating the received data describing changes to the shared data item with the remote device; and

storing the identifier in the device-change table.

39. The computer program product of claim 35 , wherein transmitting data to the remote device describing the additional changes tracked by the local device and not described by the data received from the remote device comprises:

transmitting the changed shared item to the remote device; and

transmitting a change identifier identifying the change to the shared item.

40. The computer program product of claim 34 , wherein receiving, from the remote device, data describing changes to the shared data item the remote device has tracked, wherein the changes to the shared data item are made by the remote device or other devices in the peer network comprises:

changing the shared data item according to the received data from the remote device; and

updating the changes to the shared data item made by other devices in the peer network.

41. A communication network for synchronizing data between or among multiple devices, the system comprising:

a plurality of devices each running the computer program product of claim 34 .

42. The communication network of claim 41 , wherein a device comprises:

a transceiver for receiving data or metadata and for transmitting data or metadata;

a user input device for receiving a change to a data stored on the device.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2014
From: HEWLETT-PACKARD COMPANY; HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.; PALM, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 032132/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2013
From: PALM, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 031837/0239 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2013
From: PALM, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 031837/0659 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2013
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: PALM, INC.
Reel/Frame 031837/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2013
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: PALM, INC.
Reel/Frame 030341/0459 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2010
From: PALM, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 025204/0809 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2010
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: PALM, INC.
Reel/Frame 024630/0474 →
SECURITY AGREEMENT Recorded Jan 9, 2008
From: PALM, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 020341/0285 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2007
From: PRASAD, SRIKIRAN; SAGAR, RIK; JUDGE, FRANK; KALRA, GURMEET SINGH
To: PALM, INC.
Reel/Frame 018993/0386 →