CA2437281A1 - Client-server model for synchronization of files - Google Patents

Client-server model for synchronization of files Download PDF

Info

Publication number
CA2437281A1
CA2437281A1 CA002437281A CA2437281A CA2437281A1 CA 2437281 A1 CA2437281 A1 CA 2437281A1 CA 002437281 A CA002437281 A CA 002437281A CA 2437281 A CA2437281 A CA 2437281A CA 2437281 A1 CA2437281 A1 CA 2437281A1
Authority
CA
Canada
Prior art keywords
client
server
synchronization
file
file system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CA002437281A
Other languages
French (fr)
Other versions
CA2437281C (en
Inventor
David K. Brown
Thomas A. Rolander
Robert D. Silberstein
Josef Wein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micro Focus Software Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority claimed from US10/098,985 external-priority patent/US7035847B2/en
Publication of CA2437281A1 publication Critical patent/CA2437281A1/en
Application granted granted Critical
Publication of CA2437281C publication Critical patent/CA2437281C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A server stores files. Distributed clients access the server, to learn about changes made to the files on the server, and to push local changes of the files onto the server. A synchronization application is used to synchronize the clients and server, synchronizing metadata and selected files.

Claims (83)

1. A client synchronization application running on a client, comprising:
means for comparing a client sync index (CSI) with a server sync index (SSI);
and means for determining if a client is in sync with a server based on the compared CSI
and SSI.
2. A client synchronization application according to claim 1, further comprising a client sync data (CSD).
3. A client synchronization application according to claim 2, further comprising means for comparing the CSD with a server sync data (SSD).
4. A client synchronization application according to claim 3, further comprising means for updating the CSD responsive to the compared CSD and SSD.
5. A client synchronization application according to claim 1, further comprising a filter driver to monitor activity on the client.
6. A client synchronization application according to claim 1, further comprising a directory entry stored on the client.
7. A client synchronization application according to claim 6, wherein:
the directory entry is a file; and the apparatus further comprises a filter driver to monitor activity on the client and to interrupt the client synchronization application if a second application accesses the file.
8. A client synchronization application according to claim 6, further comprising a metadata item for the directory entry, the metadata item including a client ID and server ID.
9. A client synchronization application according to claim 6, wherein:
the directory entry is a file; and the client synchronization application further comprises means for partially uploading or downloading the file.
10. A client synchronization application according to claim 9, wherein:
the apparatus further comprises:
a message digest array (MDA) for the file;
means for receiving a second MDA from the server; and the means for partially uploading or downloading includes means for comparing the MDA and the second MDA.
11. A client synchronization application according to claim 10, wherein the MDA
is stored with a metadata item for the file.
12. A client synchronization application according to claim 10, further comprising means for generating the MDA for the file.
13. A client synchronization application according to claim 6, further comprising means for storing a change time to the directory entry.
14. An applet running on a browser installed on a client, comprising:
means for processing a server sync data (SSD); and means for enabling user interaction with files on a server.
15. An applet according to claim 14, further comprising means for encrypting data to be transmitted to the server.
16. An applet according to claim 14, further comprising means for decrypting data received from the server.
17. A library providing access to an account on a server by a client of the library, the library comprising:
means for processing a server sync data (SSD);
means for interacting with the client; and means for enabling interaction with files on the server.
18. A client-server apparatus for supporting synchronization between a client and a server, comprising:

a synchronization file system installed on the server, including:
a directory entry;
a metadata item for the directory entry; and a server sync index (SSI);
a client synchronization application installed on the client, the client remote from the server, the client synchronization application including:
means for comparing a client sync index (CSI) with the server sync index (SSI); and means for determining if the client is in sync with the server based on the compared CSI and SSI; and a network connecting the client to the server.
19. A method for a client to synchronize a first directory on the client with a second directory on a synchronization file system of a server, comprising:
transmitting a client sync index (CSI) to the synchronization file system;
receiving a server sync index (SSI) from the synchronization file system; and using the CSI and SSI to determine whether the server and client are synchronized.
20. A method according to claim 19, further comprising:
receiving a server sync data (SSD) from the synchronization file system;
comparing a client sync data (CSD) and the SSD to determine what updates to make to the client; and updating a directory entry on the client and a metadata item for the directory entry on the client.
21. A method according to claim 20, wherein comparing a client sync data (CSD) and the SSD includes:
identifying a server ID (SID) in the SSD but not in the CSD; and determining that a file exists on the server and missing on the client.
22. A method according to claim 20, further comprising updating the CSD based on the comparison of the CSD and the SSD.
23. A method according to claim 20, further comprising updating a metadata item based on the SSD.
24. A method according to claim 19, further comprising:
requesting a file from the synchronization file system by a server ID;
receiving the file from the synchronization file system; and storing the file on the client.
25. A method according to claim 24, wherein:
requesting a message digest array (MDA) for the file; and receiving the MDA from the synchronization file system.
26. A method according to claim 25, wherein:
requesting a file includes requesting a block of the file from the synchronization file system; and receiving the file includes receiving the block of the file from the synchronization file system.
27. A method for a client to synchronize a first directory on the client with a second directory on a synchronization file system of a server, comprising:
transmitting a directory entry and a client metadata item for the directory entry to the synchronization file system;
receiving a server ID (SID) for the directory entry and a server sync index (SSI) from the synchronization file system;
inserting the SID into the client metadata item; and updating a client sync data (CSD).
28. A method according to claim 27, wherein:
the directory entry is a file; and transmitting a directory entry includes:

transmitting a second SID, a parent directory SID, and a name for the file to the synchronization file system; and receiving an indication whether the synchronization file system was able to find a previous version of the file.
29. A method according to claim 27, wherein transmitting a directory entry further includes:
requesting a message digest array (MDA) from the synchronization file system;
receiving the MDA from the synchronization file system;
computing an MDA for the file; and comparing the computed and received MDAs.
30. A method according to claim 29, wherein transmitting a directory entry further includes transmitting a block of the file.
31. A method for a client-server apparatus to synchronize a first directory on a synchronization file system of a server with a second directory on a client, comprising:
the client transmitting and the synchronization file system receiving a client sync index (CSI);

the synchronization file system transmitting and the client receiving a server sync index (SSI); and using the CSI and SSI to determine whether the server and client are synchronized.
32. Computer-readable media containing a program for a client to synchronize a first directory on the client with a second directory on a synchronization file system of a server, comprising:
software for transmitting a client sync index (CSI) to the synchronization file system;
software for receiving a server sync index (SSI) from the synchronization file system;
and software for using the CSI and SSI to determine whether the server and client are synchronized.
33. Computer-readable media containing a program for a client to synchronize a first directory on the client with a second directory on a synchronization file system of a server, comprising:
software for transmitting a directory entry and a metadata item for the directory entry to the synchronization file system;

software for receiving a server ID (SID) for the directory entry and a server sync index (SSI) from the synchronization file system; and software for inserting the SID into the metadata item.
34. Computer-readable media containing a program for a client-server apparatus to synchronize a first directory on a synchronization file system of a server with a second directory on a client, comprising:
software for the client transmitting and the synchronization file system receiving a client sync index (CSI);
software for the synchronization file system transmitting and the client receiving a server sync index (SSI); and software for using the CSI and SSI to determine whether the server and client are synchronized.
35. A computer-readable signal comprising:
a synchronization request message, including:
means for identifying a synchronization request; and means for providing a client sync index; and a synchronization response message, including means for providing a server sync index.
36. A computer-readable signal according to claim 35, wherein the synchronization response message further includes a server sync data, including means for identifying a file.
37. A computer-readable signal according to claim 36, further comprising:
a block request message, including means for identifying a block in the file;
and a block transmission message, including means for providing the block in the file.
38. A computer-readable signal according to claim 35, further comprising:
a block transmission message, including:

means for identifying a file; and means for providing a block in the file; and a server receipt message, including means for providing a server sync index.
39. A computer-readable signal according to claim 38, wherein the block transmission message further includes means for providing a message digest for the block in the file.
40. A synchronization file system installed on a server, comprising:
means for assigning a server ID (SID) to a metadata item for a directory entry; and a server sync index (SSI).
41. A synchronization file system according to claim 40, further comprising means for assigning a sync index to the metadata item.
42. A synchronization file system according to claim 40, further comprising means for updating the SSI when a change occurs to the directory entry.
43. A synchronization file system according to claim 40, wherein:
the directory entry is a directory; and the synchronization file system further comprises means for assigning a directory sync index to the metadata item for the directory.
44. A synchronization file system according to claim 40, further comprising means for storing a change time to the metadata item for the directory entry.
45. A synchronization file system according to claim 40, wherein:

the directory entry is a file; and the synchronization file system further comprises means for assigning a previous version file ID (PFID) to the metadata item for the file.
46. A synchronization file system according to claim 40, wherein:
the directory entry includes a name; and the synchronization file system further comprises means for storing an encrypted version of the name in the metadata item for the directory entry.
47. A synchronization file system according to claim 40, wherein:

the directory entry is a file; and the synchronization file system further comprises means for storing an encrypted version of the file.
48. A synchronization file system according to claim 40, wherein:
the directory entry is a file;
the file includes a message digest array (MDA); and the synchronization file system further comprises means for storing the MDA.
49. A synchronization file system according to claim 48, wherein the means for storing includes means for storing the MDA with the file.
50. A synchronization file system according to claim 48, wherein the means for storing includes means for storing the MDA in the metadata item.
51. A synchronization file system according to claim 40, further comprising means for generating a server sync data (SSD).
52. A synchronization file system according to claim 51, wherein the means for generating includes means for generating a SSD responsive to a client sync index (CSI).
53. A synchronization file system installed on a server, comprising:
a directory in a user account in the sync file system;
a server ID assigned to the directory; and a server sync index for the user account.
54. A synchronization file system according to claim 53, further comprising a metadata item for the directory storing the server ID assigned to the directory.
55. A synchronization file system according to claim 54, wherein the metadata item for the directory further stores a directory sync index assigned to the directory.
56. A synchronization file system according to claim 54, wherein the metadata item for the directory further stores a change time assigned to the directory.
57. A synchronization file system according to claim 54, wherein:
the directory includes a name; and the metadata item for the directory further stores an encrypted name assigned to the directory.
58. A synchronization file system according to claim 54, wherein the metadata item for the directory further stores a sync index assigned to the directory.
59. A synchronization file system according to claim 53, further comprising:
a file in the directory;
a second server ID assigned to the file; and a second sync index assigned to the file.
60. A synchronization file system according to claim 59, further comprising a metadata item for the file storing the second server ID assigned to the file and the second sync index assigned to the file.
61. A synchronization file system according to claim 60, wherein the metadata item for the file further stores a previous version file ID (PFID) assigned to the file.
62. A synchronization file system according to claim 60, wherein the metadata item for the file further stores a change time assigned to the file.
63. A synchronization file system according to claim 60, wherein:
the file includes a name; and the metadata item for the file further stores an encrypted name assigned to the file.
64. A synchronization file system according to claim 59, wherein the file is an encrypted file.
65. A synchronization file system according to claim 59, further comprising a message digest array (MDA).
66. A synchronization file system according to claim 65, wherein the MDA is stored with the file.
67. A synchronization file system according to claim 65, wherein the MDA is stored in a metadata item for the file.
68. A synchronization file system according to claim 53, further comprising a server sync data (SSD).
69. A method for a synchronization file system of a server to synchronize a first directory on the synchronization file system with a second directory on a client, comprising:
receiving a client sync index (CSI) from the client;

transmitting a server sync index (SSI) to the client; and using the CSI and SSI to determine whether the server and client are synchronized.
70. A method according to claim 69, further comprising:
generating a server sync data (SSD); and transmitting the SSD to the client.
71. A method according to claim 69, further comprising:
receiving a request from the client for a file;
transmitting the file to the client.
72. A method according to claim 71, wherein:
receiving a request includes receiving a request for a message digest array (MDA) for the file; and transmitting the file includes transmitting the MDA to the client.
73. A method according to claim 72, wherein:
receiving a request includes receiving a request from the client for a block of the file;
and transmitting the file includes transmitting the block of the file to the client.
74. A method for a synchronization file system of a server to synchronize a first directory on the synchronization file system with a second directory on a client, comprising:
receiving an instruction from the client to update a directory entry;
performing the instruction;
updating a server sync index (SSI); and transmitting the updated SSI to the client.
75. A method according to claim 74, further comprising the synchronization file system assigning the SSI to a metadata item.
76. A method according to claim 74, wherein:
receiving an instruction includes receiving a metadata item from the client;
and performing the instruction includes adding the metadata item to a server SFS
database.
77. A method according to claim 74, wherein performing the instruction includes modifying a metadata item.
78. A method according to claim 74, wherein performing an instruction includes:
creating a second directory in the first directory;
assigning a server ID (SID) to the second directory; and transmitting the SID for the second directory to the client.
79. A method according to claim 74, wherein performing an instruction includes:
receiving a file from the client;
adding the file into a server SFS database;
assigning a server ID (SID) to the file; and transmitting the SID for the file to the client.
80. A method according to claim 79, wherein performing an instruction further includes:
receiving a request for a message digest array (MDA); and transmitting the MDA to the client.
81. A method according to claim 79, wherein receiving a file includes:
copying the file to a temporary file;
receiving a block of the file;
incorporating the block into the temporary copy of the file; and adding the temporary copy of the file into a server SFS database.
82. Computer-readable media containing a program for a synchronization file system of a server to synchronize a first directory on the synchronization file system with a second directory on a client, comprising:
software for receiving a client sync index (CSI) from the client;
software for transmitting a server sync index (SSI) to the client; and software for using the CSI and SSI to determine whether the server and client are synchronized.
83. Computer-readable media containing a program for a synchronization file system of a server to synchronize a first directory on the synchronization file system with a second directory on a client, comprising:
software for receiving an instruction from the client to update a directory entry;
software for performing the instruction;
software for updating a server sync index (SSI); and software for transmitting the updated SSI to the client.
CA2437281A 2001-03-16 2002-03-15 Client-server model for synchronization of files Expired - Fee Related CA2437281C (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US27636901P 2001-03-16 2001-03-16
US60/276,369 2001-03-16
US10/098,985 US7035847B2 (en) 2001-03-16 2002-03-15 Server for synchronization of files
US10/099,522 2002-03-15
US10/098,985 2002-03-15
US10/099,522 US7734826B2 (en) 2001-03-16 2002-03-15 Client-server model for synchronization of files
PCT/US2002/007781 WO2002075539A2 (en) 2001-03-16 2002-03-15 Client-server model for synchronization of files

Publications (2)

Publication Number Publication Date
CA2437281A1 true CA2437281A1 (en) 2002-09-26
CA2437281C CA2437281C (en) 2011-01-04

Family

ID=29219585

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2437281A Expired - Fee Related CA2437281C (en) 2001-03-16 2002-03-15 Client-server model for synchronization of files

Country Status (1)

Country Link
CA (1) CA2437281C (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036823B2 (en) 2014-12-31 2021-06-15 Quantum Metric, Inc. Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
US11232253B2 (en) 2015-07-16 2022-01-25 Quantum Metric, Inc. Document capture using client-based delta encoding with server

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036823B2 (en) 2014-12-31 2021-06-15 Quantum Metric, Inc. Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
US11232253B2 (en) 2015-07-16 2022-01-25 Quantum Metric, Inc. Document capture using client-based delta encoding with server

Also Published As

Publication number Publication date
CA2437281C (en) 2011-01-04

Similar Documents

Publication Publication Date Title
US5999947A (en) Distributing database differences corresponding to database change events made to a database table located on a server computer
US7657517B2 (en) Server for synchronization of files
US7711707B2 (en) Method for synchronizing and updating bookmarks on multiple computer devices
US7222139B2 (en) Method, system and program for synchronizing data
US7469260B2 (en) File storage service system, file management device, file management method, ID denotative NAS server and file reading method
US6105028A (en) Method and apparatus for accessing copies of documents using a web browser request interceptor
TW579463B (en) System and method for a caching mechanism for a central synchronization server
US7032033B1 (en) Handling collisions during synchronization of data between client and server computers
EP0501701A2 (en) Data library system
US20040143836A1 (en) System and method for sharing objects among two or more electronic devices
EP2463789A2 (en) Computer method and system for combining OLTP database and OLAP database environments
JP2003522344A (en) Database synchronization / organization system and method
EP1588259A2 (en) System and method for automatically installing data on a handheld computer
US20060129616A1 (en) System and method for synchronizing computer files between a local computer and a remote server
CA2623221A1 (en) Systems and methods for remote storage of electronic data
KR20100067976A (en) Method for synchronizing contents files stored separately
US20060129661A1 (en) Controlling execution of files transmitted to clients
CA2437281A1 (en) Client-server model for synchronization of files
JP2005063374A (en) Data management method, data management device, program for the same, and recording medium
JPH113368A (en) Schedule data managing method in distributed environment, its system and storing medium housing schedule data managing program
US6980311B1 (en) Method and apparatus for modifying temporal addresses
JP3811615B2 (en) Information distribution system, apparatus and method, and recording medium
US20040267696A1 (en) Data management method, and data processing unit
JP2003242017A (en) Method and system for information disclosure
JPH11203321A (en) Information providing device equipped with meta information managing function

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20180315