US8458127B1ActiveUtility

Application data synchronization

85
Assignee: LORCH III GEORGE OPriority: Dec 28, 2007Filed: Dec 28, 2007Granted: Jun 4, 2013
Est. expiryDec 28, 2027(~1.5 yrs left)· nominal 20-yr term from priority
G06F 16/178G06F 11/1456G06F 11/1464
85
PatentIndex Score
40
Cited by
56
References
28
Claims

Abstract

In a particular implementation, providing a virtual cached network drive, on a client, for PST-type (Personal STore) file operations, during a non-optimal connection. In one implementation, during the non-optimal connection, changes to objects, in a local PST file, are saved in a local cache (the virtual network drive) and logged. At certain intervals, the changes are compiled, compared with entries in a synchronization database and a list of changes, to be performed on the objects, is generated which is used to update a remote PST. If the connection remains non-optimal, a temporary PST file is created, based on the list of changes, and transferred to a remote agent that performs the changes on the remote PST. If the connection improves, the changes are instead performed directly on the remote PST.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 responsive to a synchronization operation identifying a first application data file, selecting, by a synchronization engine executing on a host, from a data access module operative to directly access the first application data file and a data access plug-in to an application executing on the host, wherein the data access plug-in is operative to access the first application data file via the application, wherein the data access plug-in is selected over the data access module if the application has a lock on the first application data file thereby preventing direct access to the first application data file by the data access module, the lock indicating a reservation for use by the data access module; 
 responsive to the synchronization operation, determining a connection mode between the synchronization engine and a remote server; 
 gathering, using the selected access method, state information relating to the first application data file; and 
 synchronizing the first application data file with a second application data file based at least in part on the state information. 
 
     
     
       2. The method as recited in  claim 1  wherein from the data access module and the data access plug-in is repeated for at least one operation in the synchronizing step. 
     
     
       3. The method as recited  claim 1  wherein synchronizing based at least in part on the state information comprises comparing the gathered state information of the first application data file to a synchronization database, reflective of a previous synchronization step, to generate a change work list to be implemented on the second application data file. 
     
     
       4. The method as recited in  claim 3  wherein determining the connection mode comprises determining the status of a connection between the synchronization engine and a network drive. 
     
     
       5. The method as recited in  claim 4  wherein if the connection mode is a local mode then the synchronization is performed directly on the second application data file. 
     
     
       6. The method as recited in  claim 4  wherein if the connection mode is a non-local mode then the synchronization is performed by creating a data file of changes to be performed on the second application data file and a change list detailing how to implement the changes. 
     
     
       7. The method as recited in  claim 6  wherein a remote agent performs the changes to the second application data file based on the data file and the change list. 
     
     
       8. The method as recited in  claim 5  further comprising updating the synchronization database based on the performed synchronization. 
     
     
       9. The method as recited in  claim 7  further comprising updating the synchronization database based on the performed synchronization. 
     
     
       10. The method as recited in  claim 1  further comprising gathering state information relating to the second application data file. 
     
     
       11. The method as recited in  claim 10  further comprising building a synchronization table based on the gathered state information of the first and second application data files. 
     
     
       12. The method as recited in  claim 11  further comprising generating a change work list from the synchronization table. 
     
     
       13. The method as recited in  claim 12  further comprising determining a connection mode. 
     
     
       14. The method as recited in  claim 13  wherein if the connection mode is a local mode then the synchronization is performed directly on the second application data file. 
     
     
       15. The method as recited in  claim 12  wherein if the connection mode is a non-local mode then the synchronization is performed by creating a data file of changes to be performed on the second application data file and a change list detailing how to implement the changes. 
     
     
       16. The method as recited in  claim 15  wherein a remote agent performs the changes to the second application data file based on the data file and the change list. 
     
     
       17. The method as recited in  claim 16  further comprising receiving additions to the second data application data file and applying the additions to the first data application data file. 
     
     
       18. The method as recited in  claim 14  further comprising updating the synchronization database based on the performed synchronization. 
     
     
       19. The method as recited in  claim 15  further comprising updating the synchronization database based on the performed synchronization. 
     
     
       20. An apparatus comprising:
 a memory; 
 one or more processors; 
 computer-executable program code stored in the memory and executable by the one or more processors, the computer-executable program code comprising
 an application comprising computer-executable instructions configured to cause the one or more processors to obtain a lock on a first application data file when accessing the first application data file; 
 a data access plug-in to the application comprising computer-executable instructions configured to cause the one or more processors to provide access through the application to the first application data file to a synchronization engine when the application has a lock on the first application data file; 
 a data access module operative to directly access the first application data file responsive to commands of the synchronization engine; 
 
 a synchronization engine comprising computer-executable instructions configured to cause the one or more processors to
 responsive to a synchronization operation identifying the first application data file, select the data access module or the data access plug-in for accessing the first application data file, wherein the data access plug-in is selected over the data access module if the application has a lock on the first application data file thereby preventing direct access to the first application data file by the data access module, the lock indicating a reservation for use by the data access module; 
 responsive to the synchronization operation, determine a connection mode between the synchronization engine and a remote server; 
 gather, using the selected access method, state information relating to the first application data file; and 
 synchronize the first application data file with a second application data file based at least in part on the state information. 
 
 
     
     
       21. The apparatus as recited in  claim 20  wherein selecting the data access module or the data access plug-in is repeated for at least one operation in the synchronizing step. 
     
     
       22. The apparatus as recited  claim 20  wherein synchronize based at least in part on the state information comprises compare the gathered state information of the first application data file to a synchronization database, reflective of a previous synchronization step, to generate a change work list to be implemented on the second application data file. 
     
     
       23. The apparatus as recited in  claim 22  wherein the logic operable to determine the connection mode further comprises logic operable to determine the connection mode by determining the status of a connection between the synchronization engine and a network drive. 
     
     
       24. The apparatus as recited in  claim 23  wherein if the connection mode is a local mode then the synchronization is performed directly on the second application data file. 
     
     
       25. The apparatus as recited in  claim 23  wherein if the connection mode is a non-local mode then the synchronization is performed by creating a data file of changes to be performed on the second application data file and a change list detailing how to implement the changes. 
     
     
       26. The apparatus as recited in  claim 25  wherein a remote agent performs the changes to the second application data file based on the data file and the change list. 
     
     
       27. The apparatus as recited in  claim 24  further comprising logic operable to cause the one or more processors to update the synchronization database based on the performed synchronization. 
     
     
       28. The apparatus as recited in  claim 27  further comprising updating the synchronization database based on the performed synchronization.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.