US6324544B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
File object synchronization between a desktop computer and a mobile device
Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-10-21
•
Granted: 2001-11-27
•
Expires: 2018-10-21
Abstract
Abstract First and second computing devices each contain an object store which store objects indicative of file data. Synchronization components are provided to synchronize the objects while efficiently overcoming problems associated with synchronizing files.
Inventors
- 👤 Salim Alam
- 👤 Vinayak A. Bhalerao
- 👤 Charles Wu
- 👤 George Hu
- 👤 John I. Ferrell
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-01 19:57
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/10; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99953
Claims Analysis
Total Claims: 31
Claim 1
Independent Claim
164 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the objects having associated file names, the method comprising: maintain a mapping table which maps objects to be synchronized on the first object store with corresponding objects on the second object store; determining whether an object to be synchronized has been added to the second object store since a last synchronization process; if so, adding a corresponding object to the first object store during a subsequent synchronization process; determining whether the object added to the first object store during the subsequent synchronization process already exists on the first object store under a different file name; if so, deleting the already existing object from the first object store; and updating the mapping table to map the object added to the first object store to the object which was renamed on the second object store.
Claim 2
Independent Claim
164 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the objects having associated file names, the method comprising: maintain a mapping table which maps objects to be synchronized on the first object store with corresponding objects on the second object store; determining whether an object to be synchronized has been added to the second object store since a last synchronization process; if so, adding a corresponding object to the first object store during a subsequent synchronization process; determining whether the object added to the first object store during the subsequent synchronization process already exists on the first object store under a different file name; if so, deleting the already existing object from the first object store; and updating the mapping table to map the object added to the first object store to the object which was renamed on the second object store.
Claim 3
Dependent Claim
40 words
The method of claim 1 wherein maintaining the mapping table comprises maintaining a handle associated with each object on the first object store and mapping the handle to a handle associated with a corresponding object on the second object store.
Claim 4
Dependent Claim
28 words
The method of claim 2 wherein updating the mapping table comprises updating the handle associated with the already existing object to indicate that the object has been renamed.
Claim 5
Dependent Claim
81 words
The method of claim 3 wherein, when the object added to the second object store is renamed from an original name to a new file name, the second computing device deletes the object under the original file name and subsequently recreates the object under the new file name and provides a notification to the first computing device indicating that the object under the original file name has been deleted and that the object under the new file name has been created.
Claim 6
Dependent Claim
50 words
The method of claim 4 wherein the first computing device performs the step of determining whether the object added to the first object store during the subsequent synchronization process already exists on the first object store under a different file name based on the notification from the second computing device.
Claim 7
Dependent Claim
38 words
The method of claim 1 wherein the first computing device comprises a desktop computer and the second computing device comprises a mobile device and wherein the step of maintaining a mapping table is performed by the desktop computer.
Claim 8
Independent Claim
99 words
A method of synchronizing an object indicative of file data from a first object store to a second object store, the method comprising: determining that the object is to be synchronized; preparing packets indicative of the object to be transmitted from the first object store to the second object store; determining whether the object to be synchronized is a new object in the second object store; if so, displaying a message indicating a file path location where the object is to be placed during synchronization and transmitting the object from the first object store to the second object store.
Claim 9
Independent Claim
99 words
A method of synchronizing an object indicative of file data from a first object store to a second object store, the method comprising: determining that the object is to be synchronized; preparing packets indicative of the object to be transmitted from the first object store to the second object store; determining whether the object to be synchronized is a new object in the second object store; if so, displaying a message indicating a file path location where the object is to be placed during synchronization and transmitting the object from the first object store to the second object store.
Claim 10
Dependent Claim
30 words
The method of claim 7 and further comprising: if the object to be synchronized is a new object in the second object store, storing a backup copy of the object.
Claim 11
Dependent Claim
20 words
The method of claim 8 and further comprising: providing a display indicating the file path location of the backup copy.
Claim 12
Independent Claim
153 words
A method of synchronizing objects indicative of file data, each object being one of a plurality of object types, between a first object store associated with a first computing device and a second object stare associated with a second computing device, the method comprising: maintaining a list of available converters for conversion of objects from a first format to a second format, each converter being configured to convert at least one of the object types, wherein the list is maintained based on the object types that the converter is configured to convert; determining that a selected object is to be synchronized; determining that the selected object is to be converted prior to synchronization; examining the list; generating an exclusion list including object types for which no converter is available; determining whether the selected object is of an object type included in the exclusion list; and if not, excluding the selected object from synchronization.
Claim 13
Independent Claim
153 words
A method of synchronizing objects indicative of file data, each object being one of a plurality of object types, between a first object store associated with a first computing device and a second object stare associated with a second computing device, the method comprising: maintaining a list of available converters for conversion of objects from a first format to a second format, each converter being configured to convert at least one of the object types, wherein the list is maintained based on the object types that the converter is configured to convert; determining that a selected object is to be synchronized; determining that the selected object is to be converted prior to synchronization; examining the list; generating an exclusion list including object types for which no converter is available; determining whether the selected object is of an object type included in the exclusion list; and if not, excluding the selected object from synchronization.
Claim 14
Dependent Claim
78 words
The method of claim 10 wherein the first computing device comprises a desktop computer and the second computing device comprises a mobile device connectable to the desktop computer and wherein the steps of examining the list, generating an exclusion list including object types for which no converter is available, and determining whether the selected object is of an object type included in the exclusion list, are performed each time the mobile device is connected to the desktop computer.
Claim 15
Dependent Claim
28 words
The method of claim 11 wherein the step of maintaining the list of available converters is performed each time the mobile device is connected to the desktop computer.
Claim 16
Dependent Claim
117 words
The method of claim 11 and further comprising: performing the steps of examining the list, generating an exclusion list including object types for which no converter is available, and determining whether the selected object is of an object type included in the exclusion list for the desktop computer and for the mobile device to create a desktop exclusion list identifying first object types for which no converter is available to convert objects of the first object type to a format suitable for the desktop computer, and a mobile device exclusion list identifying second object types for which no converter is available to convert objects of the second object type to a format suitable for the mobile device.
Claim 17
Dependent Claim
20 words
The method of claim 13 wherein the list of available converters is maintained in a registry of the desktop computer.
Claim 18
Dependent Claim
25 words
The method of claim 13 wherein the desktop exclusion list and the mobile device exclusion list are maintained in the registry of the desktop computer.
Claim 19
Independent Claim
101 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the first and second computing devices being remotely connectable to one another, the method comprising: determining that the first and second computing devices are remotely connected to one another; determining that a selected object is to be synchronized; and suppressing user interface dialog during synchronization, while allowing other computing operations to take place in the background, based on the determination that the first and second computing devices are remotely connected.
Claim 20
Independent Claim
101 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the first and second computing devices being remotely connectable to one another, the method comprising: determining that the first and second computing devices are remotely connected to one another; determining that a selected object is to be synchronized; and suppressing user interface dialog during synchronization, while allowing other computing operations to take place in the background, based on the determination that the first and second computing devices are remotely connected.
Claim 21
Dependent Claim
38 words
The method of claim 16 and further comprising: determining that the selected object is to be converted from a first format to a second format prior to synchronization; and suppressing conversion progress user interface dialog messages during conversion.
Claim 22
Dependent Claim
48 words
The method of claim 17 and further comprising: determining whether a FileFilterOptions application programming interface is present on the first computing device; and if so, calling a SetFilterOptions method exposed by the FileFilterOptions interface providing a value indicating that the user interface dialog messages are to be suppressed.
Claim 23
Independent Claim
168 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, one of the first and second computing devices being a mobile device and the other being a non-mobile device, the method comprising: providing a synchronization manager on the first computing device which determines that a selected object in the second object store is to be synchronized to a corresponding object in the first object store; providing a file synchronization provider; indicating to the file synchronization provider that the selected object is to be synchronized; determining, with the file synchronization provider, that the corresponding object in the first object store is locked; returning an error message from the file synchronization provider to the synchronization manager indicating that the corresponding object in the first object store is locked; maintaining, at the synchronization manager, an indication that the selected object is to be synchronized until the corresponding object is unlocked.
Claim 24
Independent Claim
168 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, one of the first and second computing devices being a mobile device and the other being a non-mobile device, the method comprising: providing a synchronization manager on the first computing device which determines that a selected object in the second object store is to be synchronized to a corresponding object in the first object store; providing a file synchronization provider; indicating to the file synchronization provider that the selected object is to be synchronized; determining, with the file synchronization provider, that the corresponding object in the first object store is locked; returning an error message from the file synchronization provider to the synchronization manager indicating that the corresponding object in the first object store is locked; maintaining, at the synchronization manager, an indication that the selected object is to be synchronized until the corresponding object is unlocked.
Claim 25
Independent Claim
67 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the method comprising: maintaining a folder of objects on the first and second object stores indicative of files to be synchronized; and excluding from the synchronization process objects indicative of temporary files located in the folder.
Claim 26
Independent Claim
67 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the method comprising: maintaining a folder of objects on the first and second object stores indicative of files to be synchronized; and excluding from the synchronization process objects indicative of temporary files located in the folder.
Claim 27
Dependent Claim
75 words
The method of claim 20 wherein the first computing device comprises a desktop computer including a synchronization manager and a file synchronization provider, and further comprising: providing the file synchronization provider with an enumeration request from the synchronization manager requesting the file synchronization provider to enumerate objects in the folder in order for the synchronization manager to determine which objects in the folder need to be synchronized to corresponding objects in the second object store.
Claim 28
Dependent Claim
26 words
The method of claim 21 wherein excluding from the synchronization process comprises: failing to enumerate objects indicative of temporary files in response to the enumeration request.
Claim 29
Independent Claim
179 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the method comprising: providing a synchronization manager configured to provide an enumeration request and maintain a mapping between the objects on the first object store and the objects on the second object store; providing a file synchronization provider configured to maintain a folder of file objects to be synchronized and to enumerate the file objects in response to the enumeration request such that the synchronization manager can determine which file objects need to be synchronized; and when the mapping is lost, recovering the mapping by combining the file objects on the second object store with the file objects on the first object store utilizing the file synchronization provider and enumerating the combined files so the synchronization manager can reestablish the mapping, wherein combining includes determining, with the file synchronization provider, which combined file objects are duplicates and deleting one of the duplicates prior to enumerating the file objects.
Claim 30
Independent Claim
179 words
A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the method comprising: providing a synchronization manager configured to provide an enumeration request and maintain a mapping between the objects on the first object store and the objects on the second object store; providing a file synchronization provider configured to maintain a folder of file objects to be synchronized and to enumerate the file objects in response to the enumeration request such that the synchronization manager can determine which file objects need to be synchronized; and when the mapping is lost, recovering the mapping by combining the file objects on the second object store with the file objects on the first object store utilizing the file synchronization provider and enumerating the combined files so the synchronization manager can reestablish the mapping, wherein combining includes determining, with the file synchronization provider, which combined file objects are duplicates and deleting one of the duplicates prior to enumerating the file objects.
Claim 31
Dependent Claim
28 words
The method of claim 23 wherein determining, with the file synchronization provider, which combined file objects are duplicates, comprises: performing a binary compare of the combined file objects.
References Cited (Backward Citations)
US5392390A
Cited
US5701423A
Cited
US5664176A
Cited
US5928329A
Cited
US5666530A
Cited
WO1994015294A1
Cited
US5684990A
Cited
US5799323A
Cited
US5710917A
Cited
US5832510A
Cited
US5664228A
Cited
US5630081A
Cited
US6000000A
Cited
WO1997023853A1
Cited
US5926816A
Cited
US6026401A
Cited
US6052735A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2004-11-26 | 2005-05-28 | 2005-11-27 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2008-11-26 | 2009-05-28 | 2009-11-27 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2012-11-26 | 2013-05-28 | 2013-11-27 | $7700.00 | Window Closed / Lapsed |