IP Library Granted Patent US 8,458,127
Granted Patent B1
US 8,458,127 · App. 11/966,005 · Granted Jun 4, 2013

Application data synchronization

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,458,127
App. No.
11/966,005
Granted
Jun 4, 2013
Kind
B1
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 (43)

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.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2016
From: BLUE COAT SYSTEMS, INC.
To: SYMANTEC CORPORATION
Reel/Frame 039851/0044 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2016
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 039516/0929 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 30740/0181 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035797/0280 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 27727/0144 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035798/0006 →
SECURITY INTEREST Recorded May 22, 2015
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS THE COLLATERAL AGENT
Reel/Frame 035751/0348 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 3, 2013
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 030740/0181 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 027727/0178 Recorded Oct 16, 2012
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 029140/0170 →