IP Library Granted Patent US 8,315,976
Granted Patent B2
US 8,315,976 · App. 12/037,609 · Granted Nov 20, 2012

Data transfer and synchronization system

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,315,976
App. No.
12/037,609
Granted
Nov 20, 2012
Kind
B2
Abstract

A data transmission system is disclosed which optimizes transfer and updates of information between systems by providing difference information between the systems. The system transmits data packages having instructions for manipulating user data. The data packages include a header identifying the respective packages, as well as transaction objects for effecting a change to user data on a device having object instructions.

Claims (68)

1. A non-transitory computer readable data package within a computer usable medium containing instructions for synchronizing user data on a first device to changed user data on a second device, comprising:

a header identifying the data package and containing information on content in the data package; and

a sequence of transaction objects, each transaction object describing a change to user data on the second device, wherein the only portion of the user data being synchronized that is reflected in the sequence of transaction objects is difference data reflecting the differences between the user data on the first device and the user data on the second device, and wherein at least one of the transaction objects is selected from the group consisting of an account object, a device object, a data class object, a provider object, a data store object, an item list object, and a field list object,

wherein the data package is encrypted.

2. The non-transitory computer readable data package of claim 1 wherein each transaction object includes a content object which comprises binary data.

3. The non-transitory computer readable data package of claim 2 wherein the binary data is raw data.

4. The non-transitory computer readable data package of claim 2 wherein the binary data is binary difference data.

5. The non-transitory computer readable data package of claim 1 wherein each transaction object includes a content object which comprises structured data.

6. The non-transitory computer readable data package of claim 5 wherein the structured data includes a transaction header, an information list and a transaction list.

7. The non-transitory computer readable data package of claim 6 wherein the transaction header comprises a transaction identifier, a data package identifier and a data package version.

8. The non-transitory computer readable data package of claim 6 wherein the information list includes field identification information.

9. The non-transitory computer readable data package of claim 6 wherein the information list comprises an operation, item information and field identification information.

10. The non-transitory computer readable data package of claim 9 wherein the operation comprises one selected from the set of: none, add, delete, change, move, rename, or force change without conflict.

11. The non-transitory computer readable data package of claim 8 wherein the field identification information comprises a field tag and field data.

12. The non-transitory computer readable data package of claim 1 wherein the header includes information on a synchronization agent which generated the data.

13. The non-transitory computer readable data package of claim 1 wherein the header includes content type information.

14. The non-transitory computer readable data package of claim 1 wherein the header includes device type information.

15. The non-transitory computer readable data package of claim 1 wherein the header includes data size information.

16. The non-transitory computer readable data package of claim 1 wherein said transaction object comprises an application object including information on the type of application from which the content originates.

17. The non-transitory computer readable data package of claim 5 wherein said transaction object comprises a device object including information on the origin type of device.

18. The non-transitory computer readable data package of claim 5 wherein said transaction object comprises a network object identifying information as coming from a particular user.

19. The non-transitory computer readable data package of claim 16 wherein each transaction object is identified with a unique tag.

20. The non-transitory computer readable data package of claim 1 wherein the data package is compressed.

21. The non-transitory computer readable data package of claim 1 further including a tag representing actual content objects.

22. The non-transitory computer readable data package of claim 1 wherein the only portions of the user data on the second device that are referred to in the non-transitory computer readable data package are the changes to the user data on the second device.

23. A non-transitory computer readable medium programmed with instructions for a software agent to alter data in a data structure in a first system, comprising:

a data structure header including information on the data structure;

an encryption header;

at least one data object including content data from a user data store in a second system, wherein the content data comprises difference data reflecting the differences between user data on the first system and user data on the second system; and

a transaction object including instructions for operations on the at least one data object to alter the data on the first system, wherein altering the data on the first system comprises synchronizing the data between the first and second systems, and the only portion of the data being synchronized that is reflected in the at least one data object is the difference data, and wherein the transaction object is selected from the group consisting of an account object, a device object, a data class object, a provider object, a data store object, an item list object, and a field list object.

24. The non-transitory computer readable medium of claim 23 wherein the data structure header includes a package ID and a package version.

25. The non-transitory computer readable medium of claim 24 further including a compression header.

26. The non-transitory computer readable medium of claim 23 wherein the data object comprises raw binary data.

27. The non-transitory computer readable medium of claim 23 wherein the data object comprises binary change data.

28. The non-transitory computer readable medium of claim 23 wherein the data object comprises structured application data.

29. The non-transitory computer readable medium of claim 28 wherein the transaction object comprises an operation, item information and a field list.

30. The non-transitory computer readable medium of claim 29 wherein the field list comprises a filed tag and field data.

31. The non-transitory computer readable medium of claim 29 wherein the item information includes an item type, an item flag, an entry id, and a parent entry id.

32. The non-transitory computer readable medium of claim 23 wherein the only portions of the user data on the second system that are referred to in the non-transitory computer readable data package are the changes to the user data on the second system.

33. A non transitory computer readable structured transaction data package within a computer readable medium in a first system containing instructions for synchronizing user data, comprising:

a data package identifier;

a transaction object, wherein the transaction object is selected from the group consisting of an account object, a device object, a data class object, a provider object, a data store object, an item list object, and a field list object

a listing of fields addressed in the transaction object;

at least one operation associated with an item and a field, wherein executing the at least one operation associated with the item and the field comprises a synchronization step with an item and a field on a second system; and

difference data reflecting the differences in data between the item and the field on the first system and the item and the field on the second system, and the only portion of the data being synchronized that is reflected in the difference data is the portion that has been changed,

wherein the data package is encrypted.

34. The non transitory computer readable structured transaction data package of claim 33 wherein the field list comprises a field tag and field data.

35. The non transitory computer readable structured transaction data package of claim 34 wherein the field data comprises a field data type and field data.

36. The non transitory computer readable structured transaction data package of claim 33 wherein the item information includes an item type, an item flag, an entry id, and a parent entry Id.

37. The non transitory computer readable structured transaction data package of claim 33 wherein said item includes an item type, an entry id, and a parent entry id.

38. The non transitory computer readable structured transaction data package of claim 33 wherein the entry id is a static universally unique identifier.

39. The non transitory computer readable structured transaction data package of claim 33 wherein the entry id is a dynamic universally unique identifier.

40. The non transitory computer readable structured transaction data package of claim 33 wherein the only portions of the data on the second system that are referred to in the non-transitory computer readable data package are the changes to the user data on the second system.

41. A non-transitory computer readable data file including code in a computer readable medium for instructing a processing device to change data on a user device so that the data on the user device is synchronized with data from another data source, comprising:

a unique file identifier;

at least one association to a transaction content object, wherein the transaction content object comprises difference data that describes a change to the data on the user device, and the only portion of the data being synchronized that is reflected in the transaction content object is the difference data, and wherein the transaction content object is selected from the group consisting of an account object, a device object, a data class object, a provider object, a data store object, an item list object, and a field list object; and

code instructing an agent having access to the user device to update the data on the user device with the content object,

wherein the data file is encrypted.

42. The non transitory computer readable data file of claim 41 wherein the association comprises a tag representing the actual content objects.

43. The non transitory computer readable data file of claim 41 wherein the transaction content object includes a user object.

44. The non transitory computer readable data file of claim 41 wherein the transaction content object includes a device object.

45. The non transitory computer readable data file of claim 41 wherein the transaction content object includes an application object.

46. The non transitory computer readable data file of claim 41 wherein the transaction content object includes a folder object.

47. The non transitory computer readable data file of claim 41 wherein the transaction content object includes an item object.

48. The non transitory computer readable data file of claim 41 wherein the transaction content object includes an item field object.

49. The non transitory computer readable data file of claim 47 wherein the item object includes a binary delta.

50. The non transitory computer readable data file of claim 47 wherein the item object includes a record delta.

51. The non transitory computer readable data file of claim 41 wherein the only portions of the data from another data source that are referred to in the non-transitory computer readable data package are the changes to the data from another data source.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Apr 15, 2026
From: BGC LENDER REP LLC, AS ADMINISTRATIVE AGENT
To: SYNCHRONOSS TECHNOLOGIES, INC.; SYNCHRONOSS SOFTWARE IRELAND LIMITED
Reel/Frame 074370/0226 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 067964/0628 Recorded Feb 13, 2026
From: BGC LENDER REP LLC, AS ADMINISTRATIVE AGENT
To: SYNCHRONOSS TECHNOLOGIES, INC.; SYNCHRONOSS SOFTWARE IRELAND LIMITED
Reel/Frame 074858/0327 →
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2025
From: SYNCHRONOSS TECHNOLOGIES, INC.
To: CITIZENS BANK, N.A.
Reel/Frame 071224/0279 →
SECURITY AGREEMENT Recorded Jun 28, 2024
From: SYNCHRONOSS TECHNOLOGIES, INC.; SYNCHRONOSS SOFTWARE IRELAND LIMITED
To: BGC LENDER REP LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 067964/0628 →
SECURITY INTEREST Recorded Oct 29, 2019
From: SYNCHRONOSS TECHNOLOGIES, INC.
To: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 050854/0913 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING PARTY PREVIOUSLY RECORDED ON REEL 025573 FRAME 0750. ASSIGNOR(S) HEREBY CONFIRMS THE CONVEYING PARTY NAME IS FUSIONONE, INC. (NOT FUSHIONONE, INC.). Recorded Oct 3, 2011
From: FUSIONONE, INC.
To: SYNCHRONOSS TECHNOLOGIES, INC.
Reel/Frame 027003/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2011
From: FUSHIONONE, INC.
To: SYNCHRONOSS TECHNOLOGIES, INC.
Reel/Frame 025573/0750 →