IP Library Granted Patent US 8,024,290
Granted Patent B2
US 8,024,290 · App. 11/273,891 · Granted Sep 20, 2011

Data synchronization and device handling

Assignee: Yahoo! Inc.
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,024,290
App. No.
11/273,891
Granted
Sep 20, 2011
Kind
B2
Abstract

In one example, a synchronization server includes logic operable to engage in a first synchronization session with a client device, wherein client modifications and server modifications may be exchanged based, at least in part, on synchronization data stored locally. The synchronization server further includes logic operable to initiate a query of a remote database (e.g., having data associated with the synchronization data) to determine differences between the synchronization data stored locally and associated data stored remotely. The synchronization server is further operable to initiate an exchange of further server modifications based on the differences between the synchronization data stored locally and the associated data stored remotely. In one example, the server may engage in a second synchronization session with the client device to update the client device with differences to the synchronization data stored locally and the remote database.

Claims (41)

1. A synchronization server comprising:

a data storage;

a processor for:

engaging in a first synchronization session between a client device and the synchronization server, wherein client modifications and synchronization server modifications are exchanged, the synchronization server modifications based, at least in part, on synchronization data stored locally on the data storage of the synchronization server;

determining, by the synchronization server, the client modifications based, at least in part, on a digest indicating which client modifications are changes by a user of the client device and which client modifications are changes due to characteristics of the client device;

in response to the first synchronization session, initiating a query of a remote database on a backend server from the synchronization server to determine differences between the synchronization data stored locally on the synchronization server related to the client device and associated data stored remotely on the remote database; and

initiating an exchange of further synchronization server modifications to the client device based on the differences between the synchronization data stored locally on the synchronization server and the associated data stored remotely on the remote database.

2. The synchronization server of claim 1 , wherein the processor further engages in a second synchronization session with the client device to exchange the further synchronization server modifications.

3. The synchronization server of claim 2 , wherein engaging in a second synchronization session comprises responding to a request from the client device.

4. The synchronization server of claim 1 , wherein the processor further notifies the client device of updates for the client device after the first synchronization session.

5. The synchronization server of claim 1 , wherein the processor further initiates a slow synchronization process with the client device.

6. The synchronization server of claim 5 , wherein the slow synchronization process comprises comparing Locally Unique Identifiers and Cyclical Redundancy Checks of data items.

7. The synchronization server of claim 1 , wherein the processor further modulates synchronization data based on the client device.

8. The synchronization server of claim 7 , wherein the modulation of data is based on capabilities of the client device.

9. The synchronization server of claim 1 , further comprising logic configured to send an empty sync message to the client device.

10. A method comprising:

using a synchronization server, engaging in a first synchronization session between a client device and the synchronization server, wherein client modifications and synchronization server modifications are exchanged, the synchronization server modifications based, at least in part, on synchronization data stored locally on the synchronization server;

determining, by the synchronization server, the client modifications based, at least in part, on a digest indicating which client modifications are changes by a user of the client device and which client modifications are changes due to characteristics of the client device;

in response to the first synchronization session, using the synchronization server, querying a remote database on a backend server from the synchronization server to determine differences between the synchronization data stored locally on the synchronization server related to the client device and associated data stored remotely on the remote database; and

using the synchronization server, exchanging further synchronization server modifications based on the differences to the synchronization data stored locally and the associated data stored remotely.

11. The method of claim 10 , further comprising engaging in a second synchronization session with the client device to exchange the further synchronization server modifications.

12. The method of claim 11 , wherein engaging in a second synchronization session comprises responding to a request from the client device.

13. The method of claim 10 , further comprising notifying the client device of updates for the client device after the first synchronization session.

14. The method of claim 10 , further comprising sending an empty sync message to the client device.

15. The method of claim 10 , further comprising initiating a slow synchronization process with the client device.

16. The method of claim 15 , wherein the slow synchronization process comprises comparing Locally Unique Identifiers and Cyclical Redundancy Checks of data items.

17. The method of claim 10 , further comprising modulating synchronization data based on the client device.

18. The method of claim 17 , wherein the modulation of data is based on capabilities of the client device.

19. A computer-readable storage medium comprising computer-readable instructions tangibly stored thereon for assisting data synchronization between a client device and a synchronization server using a remote database, the computer-readable storage medium comprising:

program code configured to engage in a first synchronization session between the client device and the synchronization server, wherein client modifications and synchronization server modifications are exchanged, the synchronization server modifications based, at least in part, on synchronization data stored locally on the synchronization server;

program code configured to determine the client modifications based, at least in part, on a digest indicating which client modifications are changes by a user of the client device and which client modifications are changes due to characteristics of the client device;

program code configured to initiate a query of a remote database on a backend server from the synchronization server in response to the first synchronization session to determine differences between the synchronization data stored locally on the synchronization server related to the client device and associated data stored remotely on the remote database; and

program code configured to exchange further synchronization server modifications based on the differences between the synchronization data stored locally and the associated data stored remotely.

20. The computer-readable storage medium of claim 19 , further comprising program code configured to engage in a second synchronization session with the client device to exchange the further synchronization server modifications.

21. The computer-readable storage medium of claim 20 , wherein engaging in a second synchronization session comprises responding to a request from the client device.

22. The computer-readable storage medium of claim 19 , further comprising program code configured to notify the client device of updates for the client device after the first synchronization session.

23. The computer-readable storage medium of claim 19 , further comprising program code configured to initiate a slow synchronization process with the client device.

24. The computer-readable storage medium of claim 23 , wherein the slow synchronization process comprises comparing Locally Unique Identifiers and Cyclical Redundancy Checks of data items.

25. The computer-readable storage medium of claim 19 , further comprising program code configured to modulate synchronization data based on the client device.

26. The computer-readable storage medium of claim 25 , wherein the modulation of data is based on capabilities of the client device.

27. The computer-readable storage medium of claim 19 , further comprising program code configured to send an empty sync message to the client device.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2021
From: VERIZON MEDIA INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 057453/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2018
From: YAHOO HOLDINGS, INC.
To: OATH INC.
Reel/Frame 045240/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2017
From: YAHOO! INC.
To: YAHOO HOLDINGS, INC.
Reel/Frame 042963/0211 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2006
From: YANG, LIE; TRAVER, JOHN A.; SRINIVASAN, VENKATACHARY; BOERRIES, MARCO
To: YAHOO! INC.
Reel/Frame 017277/0549 →
Continuity (1)
Related Publication 20070112880A1 · May 17, 2007