IP Library Granted Patent US 7,734,828
Granted Patent B2
US 7,734,828 · App. 11/761,834 · Granted Jun 8, 2010

Data synchronization transparent to application

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,734,828
App. No.
11/761,834
Granted
Jun 8, 2010
Kind
B2
Abstract

Synchronization of data accessible by an application program is performed transparent to the application program. After a data item is instantiated by the application program, the synchronization engine performs data synchronization without or with minimal intervention of the application program. The synchronization engine may be part of an operating system. The synchronization engine is preinstalled on a computing device; therefore, application program developers can simply define whether the data items associated with the application programs should be syncable, and if so, to what extent the data items should be syncable. The application program developer is relieved of the task of developing the synchronization engine or other software components associated with data synchronization.

Claims (44)

1. A computing device for synchronizing data with another computing device, comprising:

a data repository for storing data;

a communication module configured to communicate with the other computing device;

a synchronization engine coupled to the communication module and the data repository, the synchronization engine comprising code for synchronizing data in the data repository with the other computing device via the communication module, the synchronization engine comprising code representing a synchronization data structure that defines a data structure of a data item that can be synchronized via the synchronization engine; and

a first application module coupled to the synchronization engine and the data repository, the first application module containing code for referencing the synchronization data structure in the synchronization engine to instantiate a first data item accessed by the first application module.

2. The computing device of claim 1 , the computing device comprises a second application module coupled to the same synchronization engine and the same data repository, the second application module referencing the synchronization data structure to instantiate a second data item accessed by the second application module.

3. The computing device of claim 2 , wherein the synchronization data structure comprises a superclass of an object oriented programming, the superclass defining attributes and functions associated with synchronizing data, the first application module using a first subclass inheriting from the superclass to instantiate the first data item, the second application module using a second subclass inheriting from the superclass to instantiate the second data item.

4. The computing device of claim 2 , wherein the data repository is implemented as a database, and the first and second application modules share the database.

5. The computing device of claim 1 , wherein the synchronization data structure in the synchronization engine defines:

a first attribute for indicating whether a data item belonging to a category is syncable.

6. The computing device of claim 5 , wherein the synchronization data structure in the synchronization engine further defines:

a second attribute for indicating whether a data item can be individually configured to be syncable; and

a third attribute for indicating whether a field of a data item can be individually configured to be syncable.

7. The computing device of claim 6 , wherein a field of the first data corresponding to at least one of the first attribute, the second attribute, and the third attribute is modified responsive to the first data item being accessed by the first application module to prevent the first data item from being synchronized by the synchronization engine during access of the first data item by the first application module.

8. The computing device of claim 6 , wherein the synchronization data structure defines a notifiable attribute defining whether any changes to data items in the data repository is to be notified to the synchronization engine.

9. The computing device of claim 1 , wherein the first data item is selected from a group consisting of: a contact, a calendar entry, an email, a text document, and a picture.

10. A method of synchronizing data between multiple computing devices, comprising:

by an application program, referencing a synchronization data structure in a synchronization engine, the synchronization data structure defining a data structure of a data item that can be synchronized by a synchronization engine;

by the application program, instantiating the data item according to the synchronization data structure;

by the application program, accessing the data item; and

by the synchronization engine, performing synchronization of the data item instantiated by the application program.

11. The method of claim 10 , wherein the synchronization data structure comprises a superclass in an object oriented programming, the superclass defining attributes and functions associated with synchronizing data via the synchronization engine, the application program using a subclass inheriting from the superclass to instantiate the data item.

12. The method of claim 10 , wherein the synchronization data structure defines:

a first attribute for indicating whether a data item belonging to a category is syncable with the other computing device.

13. The method of claim 12 , wherein the synchronization data structure further defines:

a second attribute for indicating whether a data item can be individually configured to be syncable with the other computing device; and

a third attribute for indicating whether fields of a data item can be individually configured to be syncable with the other computing device.

14. The method of claim 13 , further comprising: modifying a field of the data item representing at least one of the first attribute, the second attribute, and the third attribute responsive to the data item being accessed by the application program to prevent the data item from being synchronized by the synchronization engine during access of the data item by the application module.

15. The method of claim 12 , wherein the synchronization data structure defines notifiable attribute defining whether any changes to the data item can be notified to the synchronization engine.

16. The method of claim 10 , wherein the data item is selected from a group consisting of: contact information, calendar information, an email and a picture.

17. A computer program product comprising a computer readable medium structured to store instructions executable by a processor in a computing device, the instructions, when executed cause the processor to:

by an application program, reference a synchronization data structure in a synchronization engine, the synchronization data structure defining a data structure of a data item that can be synchronized by a synchronization engine;

by the application program, instantiate the data item according to the synchronization data structure;

by the application program, access the data item; and

by the synchronization engine, perform synchronization of the data item instantiated by the application program.

18. The computer program product of claim 17 , wherein the synchronization data structure comprises data representing a superclass in an object oriented programming, the superclass defining attributes and functions associated with synchronizing data via the synchronization engine, the application program using a subclass inheriting from the superclass to instantiate the data item.

19. The computer program product of claim 17 , wherein the synchronization data structure defines:

a first attribute for indicating whether a data item belonging to a category is syncable with the other computing device.

20. The computer program product of claim 17 , wherein the synchronization data structure further defines:

a second attribute for indicating whether a data item can be individually configured to be syncable with the other computing device; and

a third attribute for indicating whether fields of a data item can be individually configured to be syncable with the other computing device.

21. The computer program product claim 20 , the instructions when executed further causes, to modify a field of the item representing at least one of the first attribute, the second attribute, and the third attribute responsive to the data item being accessed by the application program to prevent the data item from being synchronized by the synchronization engine during access of the data item by the application module.

22. The computer program product of claim 20 , wherein the synchronization data structure defines notifiable attribute defining whether any changes to the data item can be notified to the synchronization engine.

23. The computer program product of claim 17 , wherein the data item is selected from a group consisting of: contact information, calendar information, an email or a picture.

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: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: PALM, INC.
Reel/Frame 031837/0544 →
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 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 4, 2008
From: PALM, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 020319/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2007
From: PRASAD, SRIKIRAN
To: PALM, INC.
Reel/Frame 019572/0183 →