IP Library Granted Patent US 7,860,825
Granted Patent B2
US 7,860,825 · App. 11/382,058 · Granted Dec 28, 2010

Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks

Assignee: Palm, 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 7,860,825
App. No.
11/382,058
Granted
Dec 28, 2010
Kind
B2
Abstract

Web Applications run as software which is served through a portal or browser. However this precludes their use offline or when connectivity is not present. The present invention is a method for creating offline web applications and managing associated user data which is created offline and must later be reconciled with one or more central servers without a data collision. This allows the system to efficiently know which version of different pieces of user data are new and which need to be added to centralized servers. This method also applies to the actual web application program files so that software applications can be synchronized in addition to user data enabling a transparent online and offline user experience. The method described here also applies to mobile computing devices such as cellular telephones and personal digital assistants. A side benefit of the method introduced here is that data sets can be distributed in manner which allows peer to peer synchronization and filedata distribution. Lastly the method described herein minimizes the amount of transactional data required to synchronize data sets across a network thereby increasing efficiency of available bandwidth on a computer network using the system.

Claims (43)

1. A method, comprising:

generating a global set universally unique identifier for a data set object using a one-way hash sum and local random data, the global set universally unique identifier representing a unique number in a distributed data sharing system;

creating an item object for the data set object, the item object having the global set universal unique identifier, system metadata and application metadata;

normalizing the system metadata and the application metadata to produce a predictable deterministic ordering of the metadata in a format that allows the one-way hash sum to use the normalized metadata to produce a repeatable value, the format comprising a concatenated string of sorted names and values from a field of the system metadata or application metadata;

creating an item universally unique identifier for the item object of the data set object using the one-way hash sum, the normalized system metadata and the normalized application metadata, the item universally unique identifier also representing a unique number in the distributed data sharing system; and

storing the data set object and the item object for the data set object at a client.

2. The method of claim 1 , comprising creating the item universally unique identifier for the item object of the data set object using the one-way hash sum, the normalized metadata, and payload data for the item object.

3. The method of claim 1 , comprising:

sorting fields of the system metadata based on names for each field;

sorting values for each field having a same name; and

concatenating the sorted names and values for each field into a single string to form the normalized system metadata.

4. The method of claim 1 , comprising:

sorting fields of the application metadata based on names for each field;

sorting values for each field having a same name; and

concatenating the sorted names and values for each field into a single string to form the normalized application metadata.

5. The method of claim 1 , comprising calculating a master hashsum for multiple data set objects and respective item objects stored by the client.

6. The method of claim 5 , comprising sending the master hashsum from the client to a server.

7. The method of claim 6 , comprising determining whether to synchronize some or all of the multiple data set objects and respective item objects with the server based on the master hashsum.

8. The method of claim 1 , comprising synchronizing the data set object and the item object stored by the client with a corresponding data set object and item object stored by a server using the global set universally unique identifier or the item universally unique identifier.

9. The method of claim 8 , comprising synchronizing the data set object and the item object stored by the client using differential based synchronization operations.

10. The method of claim 8 , comprising performing a one-way synchronization between the client and the server.

11. The method of claim 8 , comprising performing a two-way synchronization between the client and the server.

12. The method of claim 1 , comprising storing the system metadata and the application metadata for the item object as binary information, textual information or XML.

13. The method of claim 1 , comprising creating a manifest file to describe distributed item objects for the data set object.

14. The method of claim 1 , comprising segmenting item objects of said data set object by ranges of item universally unique identifiers to determine which item objects to synchronize with another device.

15. An article comprising a storage medium containing instructions that when executed enable a system to:

generate a global set universally unique identifier for a data set object using a one-way hash sum and local random data, the global set universally unique identifier representing a unique number in a distributed data sharing system;

create an item object for the data set object, the item object having the global set universal unique identifier, metadata, and payload data;

normalize the metadata to produce a predictable deterministic ordering of the metadata in a format that allows the one-way hash sum to use the normalized metadata to produce a repeatable value, the format comprising a concatenated string of sorted names and values from a field of the metadata;

create an item universally unique identifier for the item object of the data set object using the one-way hash sum, the normalized metadata, and the payload data, the item universally unique identifier also representing a unique number in the distributed data sharing system; and

synchronize the data set object or the item object with another device using the global set universally unique identifier or the item universally unique identifier.

16. The article of claim 15 , further comprising instructions that when executed enable the system to:

sort fields of the metadata based on names for each field;

sort values for each field having a same name; and

concatenate the sorted names and values for each field into a single string to form the normalized metadata.

17. The article of claim 15 , further comprising instructions that when executed enable the system to synchronize the data set object or the item object with the other device using differential based synchronization operations.

18. A mobile device, comprising:

means for creating a global set universally unique identifier for a data set object using a one-way hash sum and local random data, the global set universally unique identifier representing a unique number in a distributed data sharing system;

means for creating an item object for the data set object, the item object having the global set universal unique identifier, metadata, and payload data;

means for normalizing the metadata to produce a predictable deterministic ordering of the metadata in a format that allows the one-way hash sum to use the normalized metadata to produce a repeatable value, the format comprising a concatenated string of sorted names and values from a field of the metadata;

means for creating an item universally unique identifier for the item object of the data set object using the one-way hash sum, the normalized metadata, and the payload data, the item universally unique identifier also representing a unique number in the distributed data sharing system; and

means for synchronizing the data set object or the item object with another device using the global set universally unique identifier or the item universally unique identifier.

19. The mobile device of claim 18 , comprising means for synchronizing the data set object or the item object with another device using differential based synchronization operations.

Assignments (11)
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/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 Dec 18, 2013
From: PALM, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 031837/0239 →
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 Oct 22, 2009
From: PALM, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 023406/0671 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2008
From: LAMPDESK CORPORATION
To: PALM, INC.
Reel/Frame 020502/0580 →
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 Nov 15, 2007
From: CHATTERJEE, MANJIRNATH; SIMON, GREGORY
To: LAMPDESK CORPORATION
Reel/Frame 020120/0897 →
Continuity (1)
Related Publication 20070276836A1 · Nov 29, 2007