GB2502408A - File synchronization using timestamp data - Google Patents

File synchronization using timestamp data Download PDF

Info

Publication number
GB2502408A
GB2502408A GB1303927.6A GB201303927A GB2502408A GB 2502408 A GB2502408 A GB 2502408A GB 201303927 A GB201303927 A GB 201303927A GB 2502408 A GB2502408 A GB 2502408A
Authority
GB
United Kingdom
Prior art keywords
file
timestamp
server
storage medium
updated
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.)
Withdrawn
Application number
GB1303927.6A
Other versions
GB201303927D0 (en
Inventor
Joseph Saib
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.)
AppSense Ltd
Original Assignee
AppSense Ltd
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 AppSense Ltd filed Critical AppSense Ltd
Publication of GB201303927D0 publication Critical patent/GB201303927D0/en
Publication of GB2502408A publication Critical patent/GB2502408A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Abstract

A system for synchronizing files in a networked communication system comprises a server which can receive a file or a notification of an update to a master file from a client and/or remote storage medium. In response, the server can determine whether the received file is the most recent version of the file. The server can compare the timestamp of the received file with the timestamp of the file currently stored as the most recent version of the file. If the received file is the most recent version of the file, the server stores the received file as the most recent master version of the file. In an alternative embodiment the server may also include a clock synchronization module.

Description

SYSTEMS AND METHODS FOR SYNCHRONIZING FILES
IN A NETWORKED COMMUNICATION SYSTEM
BACKGROUND
Technical Field
100011 Disclosed systems and methods relate to synchronizing files in a networked communication system.
Description of the Related Art
[00021 Traditionally, computing devices managed data files locally. For example, a computer stored data files on a local storage medium and accessed the contents of the data files by retrieving them from the local storage medium. Oftentimes, the local storage medium could only be accessed by the computing device being physically coupled to the storage medium. Therefore, the management of data files on a local storage medium was largely independent of other computing devices. Such a local data file management had some benefits. One benefit was the speed at which data files could be stored and accessed.
Another benefit was the ability to maintain the most recent version of the data files in the local storage medium.
100031 However, the local management of data files rendered certain data management tasks cumbersome, especially the sharing of data files amongst multiple computing devices.
For example, every time a user wanted to provide a data file to another computer, the user had to copy the data file into a portable storage medium, such as a portable hard disk or a Universal Serial Bus (TJSB) drive, and copy the data file in the portable storage medium to the destination computing device. In addition, if a user updated a data file on one computer or portable storage medium, this would create different versions of the data file across different computers and/or portable storage medium. The user would then have to keep track of the computer or portable storage medium with the most recent version of the data file so that the user did not inadvertently access an older version of the data file stored on a different computer or portable storage medium. Because this mechanism involves a physical coupling of the portable storage medium to the destination computing device, sharing of data files was slow, involved too much user interaction, created different versions of data files stored at different computers and/or portable storage medium, and was at best cumbersome.
[00041 Some of these issues have been addressed with communication networks.
Communication networks enable server/client systems to share data files amongst multiple computing devices. A server/client data sharing system allows clients, such as computers, to locally access data files, just as in traditional computing devices. However, a server/client data sharing system also allows clients to access data files at a remote server via communication networks. Such a remote data access allows users to store data files at a remote server and access those files from any clients that are coupled to the remote server.
Existing implementations of server/client data sharing systems include web-folder services, such as DROPBOX, INC., a Network File System (NFS,) or an Andrew File System (AFS.) [00051 With existing server/client systems, the servers typically have their own storage.
Data files from any client are sent through the server for storage. This allow for the server to be able to maintain master versions (or most recent versions) of the data files received from any client. Any time a client sends an updated data file to the server, the server stores the updated data file as the most recent version of the data file. The server will then noti' all of the clients of the updated data file. Then, when the server receives a request for the data file from a client, the server will send the most recent version of the data file (or updated data file) to the client.
[00061 With the advances in network communications, including the introduction of cloud computing, data files can be stored at one or more remote storage locations other than at the server. Because data files can be stored at locations other than at the server, the server may not receive all data files from all clients for storage. A client can send an updated data file to a remote storage location without the server's knowledge. Existing servers are not necessarily informed of updated data files from the remote storage locations. As a result, existing servers do not always know when the data file that it accesses is the most recent version of the data file.
[00071 Therefore, there is a need in the art to provide systems and methods for improving the synchronization of files in a networked communication system. Accordingly, it is desirable to provide methods and systenis that overcome these and other deficiencies of the related art.
SUMMARY
[00081 In accordance with the disclosed subjcct matter, systems and methods are provided for synchronizing files in a networked communication system.
[00091 Disclosed subject matter includes a non-transitory computer readable medium having executable instructions. The executable instructions are operable to cause a server to store a file received from a client over a communication network in a storage medium, wherein the file is stored as a master version and has associated with it a first timestamp; rcccive a notification of an update to the flic, wherein the notification has associated with it a second timestamp for the updated file; and compare the first timestamp to the second timestamp. When the second timestamp is later than the first timestamp, the executable instructions are further operable to cause the server to send a request for the updated file; and receive and store the updated file in the storage medium, wherein the updated file is stored as the master \Tersion 100101 Disclosed subject matter includes an apparatus comprising one or more interfaces configured to provide communication with a client via a communication network; and a processor, in communication with the one or more interfaces, and configured to run a module stored in memory. The module is configured to store a file received from a client over a communication network in a storage medium, wherein the file is stored as a master version and has associated with it a first timestamp; to receive a notification of an update to the file, wherein the notification has associated with it a second timestamp for the updated file; and to compare the first timestamp to the second timestamp. When the second timestamp is later than the first timestamp, the module is thrther configured to send a request for the updated file; and to receive and store the updated file in the storage medium, wherein the updated file is stored as the master version.
[00111 Disclosed subject matter includes a method comprising storing a file received from a client over a communication network in a storage medium, wherein the file is stored as a master version and has associated with it a first timestamp; receiving a notification of an update to the file, wherein the notification has associated with it a second timestamp for the updated file; and comparing the first timestamp to the second timestamp. When the second timestamp is later than the first timestamp, the method also comprises sending a request for the updated file; and receiving and storing the updated file in the storage medium, wherein the updated file is stored as the master version.
10012 I There has thus been outlined, rather broadly, the features of the disclosed subject matter in order that the detailed description thereof that follows may be better understood, and in order that the present contribution to the art may be better appreciated. There are, of course, additional features of the disclosed subject mailer that will be described hereinafter and which will form the subject mailer of the claims appended hereto.
[00131 In this respect, before explaining at least one embodiment of the disclosed subject matter in detail, it is to be understood that the disclosed subject matter is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting.
[00141 As such, those skilled in the art will appreciate that the conception, upon which this disclosure is based, may readily be utilized as a basis for the designing of other structures, methods and systems for carrying out the several purposes of the disclosed subject matter. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the disclosed subject matter.
[00151 These together with the other objects of the disclosed subject matter, along with the various features of novelty which characterize the disclosed subject matter, are pointed out with particularity in the claims annexed to and forming a part of this disclosure. For a better understanding of the disclosed subject matter, its operating advantages and the specific objects attained by its uses, reference should be had to the accompanying drawings and descriptive matter in which there are illustrated preferred embodiments of the disclosed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[00161 Various objects, features, and. advantages of the disclosed, subject matter can be more fully appreciated with reference to the following detailed description of the disclosed subject matter when considered in connection with the following drawings, in which like reference numerals identify like elements.
I007I FIG. I illustrates a diagram ofa networked communication system.
[00181 FIG. 2 illustrates a diagram of a networked communication system in accordance with an embodiment of the disclosed subject matter.
[00191 FIG. 3 illustrates a flow diagram illustrating how the server synchronizes files in a networked computer system in accordance with certain embodiments of the disclosed subject matter.
[00201 FIG. 4 illustrates a flow diagram illustrating how the server synchronizes files in a networked computer system in accordance with certain embodiments of the disclosed subject matter.
[00211 FIG. S illustrates a flow diagram illustrating how the server synchronizes files in a networked computer system in accordance with certain embodiments of the disclosed subject mattcr.
[00221 FIG. 6 illustrates a flow diagram illustrating how the server synchronizes files in a networked computer system in accordance with certain embodiments of the disclosed subject matter.
[00231 FIG. 7 illustrates a block diagram of a server in accordance with certain embodiments of the disclosed subject matter.
DETAILED DESCRIPTION
[00241 In the foUowing description, numerous specific details are set forth regarding the systems and methods of the disclosed subject matter and the environment in which such systems and methods may operate, etc., in order to provide a thorough understanding of the disclosed subject matter. It will be apparent to one skilled in the art, however, that the disclosed subjcct matter may be practiced without such specific details, and that certain features, which are well known in the art, are not described in detail in order to avoid complication of the subject matter of the disclosed subject matter. In addition, it will be understood that the examples provided below are exemplary, and that it is contemplated that there are other systems and methods that are within the scope of the disclosed subject matter.
S
[00251 The disclosed subject matter relates to systems and methods for providing synchronization of data files in a networked computer system. The clients in the networked computer system can store data files at one or more remote locations, including at a server andIor at onc or more remote storagc media apart from thc servcr. The rcmote storage media can be in direct communication with the server or via a communication network. The data files can be any suitable files that include text, audio, video, images, or any other suitable data or combination of data.
[00261 In accordance with the disclosed subject matter, the servcr can receive one or more data files from any client and/or remote storage medium, within the same communication network or from other communication networks. In response, the server can determine whether the received data file is the most recent version of the data file. In particular, the server can determine whether the received data file has been updated and should now represent thc master version of the data file that is stored remotely.
100271 The scrver can compare the timestamp of the receivcd data file to the timestamp of the most recent version of the data file that is currently stored at the server or other remote storage medium. The timestamp can represent the last date and time that the data file was updated, saved, and/or accessed. Although the disclosed subject matter is described in the context of comparing timestamps, any othcr suitable metric or combination of metrics can be used to determine the most recent version of the data file. In one embodiment, the server can send a request to its local storage or remote storage medium for the timestamp of the stored data file. In another embodiment, the server can send a request to its local storage or remote storage medium for the stored data file, and upon receiving the stored data file, can determine the timestamp. In yet another embodiment, the server can maintain a record of the timestamp of the stored data file.
[00281 When the timestamp of the received data file is more recent (e.g., a later date and time) than the timestamp of the stored data file, this indicates that the received data file is an updated version of the stored data file. Accordingly, the server can store the received data file at its local storage or remote storage medium. The server can now treat the received data file as the most recent version of the data file that is currently stored at the server or remote storage medium. In one embodiment, the server can replace the previously stored data file with the received data file so that only the most recent version of the data file is stored and can be accessed. In another embodiment, the server can store the received data file without replacing the previously stored data tile so all versions of the data file arc stored and can be accessed. Upon storing the received data file at its local storage or remote storage medium, the server can also update its record with the timestamp of the newly stored data file. The server can also send notifications to the clients and/or remote storage media notifying them of the updated data file.
[00291 Whcn the timestamp of the received data file is less recent (e.g., an carlicr date and time) than the timestamp of the stored data file, this indicates that the received data file is an older version of the stored data file. Accordingly, the server can ignore the received data file. Altematively, the server can store the received file at its local storage or remote storage medium as an older version of the data file.
[00301 Also in accordance with the disclosed subject matter, the server can receive one or more notifications about updates to data files (rather than the data files themselves) from any client and/or remote storage medium, within the same communications network or from other communication networks. The notification can include any suitable information about the updated data file, including the timestamp of the updated data file. hi response, the server can determine whether the updated data file is the most recent version of the data file, similar to that described above whcn the server receives the data files. If thc updated data file is the most recent version of the data file, then the server can send a request to the client and/or remote storage medium for the updated data file. The server can store the updated data file at its local storage or remote storage medium and frcat the updated data file as the most recent version of the data tile that is currently stored at the server or remote storage medium.
[00311 In one embodiment, the server can automatically receive notifications about updates to data files, or the updated data files themselves, from any client and/or remote storage medium. In another embodiment, the server can periodically send requests to any client and/or remote storage medium for updates to data files. In yet another embodiment, a listener can be placed at any client and/or remote storage medium to monitor for updates to data files and in response, to send notifications of the updates or the updated data files themselves, to the server. The listener can be any suitable hardware, sofiware, or a corn bination thereof.
100321 The disclosed subject matter can achieve greater reliability by providing clock synchronization at any one or more of the client, server, and remote storage medium. In one embodiment, the internal clocks at each of these devices can be synchronized to a master clock and/or to one another. In another embodiment, the server can be provided with information about the clocks of any client and/or remote storage medium. This allows the scrvcr to take into account any changes in time with respect to the server clock when comparing timestamp information. The information about the clocks of any client and/or remote storage medium can be the delay between those clocks and the server clock, or any other suitable information. In yet another embodiment, the server can also keep a record of the history of any time drift between the clocks of any client and/or remote storage medium and the server. This allows the server to take into account any changes in time when comparing timestamp information. Providing clock synchronization ensures the accuracy of the timestamps for data files so that the data file with the most recent tirnestamp is stored as the most recent version of the data file. Clock synchronization can occur once, at periodic intervals, at random intervals, in response to a server receiving a data file, in response to a server receiving a notification of an update to a data file, or at any other suitable time or combination of times.
[00331 The disclosed subject matter can also achieve greater reliability by performing error control on the timestamps of data files. If a server receives a data file or a notification of an update to a data file having a timcstamp at sonic thture time or invalid time (e.g., a date of January 32, a time of 25:00), the server can change the timestamp associated with that data file and perform synchronization on the data file. Alternatively, the server can treat the data file or notification as invalid and decide not to perform synchronization on the data file.
In addition, the server can also cheek the timestamps of the data files stored at its local storage and/or remote storage medium, and/or its record of timestamps of stored data files, and corrcct any tiniestanip set to sonic future time or invalid time.
S
[00341 The disclosed subject matter allows for a server to synchronize data files across different remote storage mediums so that any client accessing a remote data tile stored at the server or other remote storage medium can receive the most recent version of the data file.
[00351 FIG. 1 illustrates a diagram of a networked communication system in accordance with existing systems. FIG. 1 includes a communication network 102, at least one client 104 (e.g., client 104-1, 104-2, ... 104-N), and a server system 110. The communication network 102 can include the Internet, a cellular network, a telephone network, a computer network, a packet switching network, a line switching network, a local area network (LAN), a wide area network (WAN), a global area network, or any number of private networks currently referred to as an Intranet, and/or any other network or combination of networks that can accommodate data communication. Such networks may be implemented with any number of hardware and software components, transmission media and network protocols. Although FIG. I represents the network 102 as a single network, the network 102 can include multiple interconnected networks listed above. Each client 104 can include a desktop computer, a mobile computer, a tablet computer, a cellular device, or any other computing devices having a processor and memory. Each client 104 can communicate with the server system I 10 via the communication network 102 to send and receive data files. The server system 110 includes a server 106 and its local storage medium 108 for storing the data files. Although FIG. 1 represents the server 106 and the storage medium 108 as separate components, the server 106 and storage medium 108 can be combined together. Although FIG. I represents the server system 110 as a single server system, the server system 110 can include more than one server and can be part of a cloud-computing platform.
100361 FIG. 2 illustrates a diagram of a networked communication system in accorthnce with an embodiment of the disclosed subject matter. FIG. 2 includes a communication network 202, at least one client 204 (e.g., client 204-1, 204-2, ... 204-N), a server 206, and at least one remote storage medium (e.g., storage medium 208-1, 208-2, ... 208-N, 210-1, 210-N). The communication network 202 can be similar to communication network 102 (FIG. 1). Each client 204 can be similar to client 104 (FIG. 1). The server 206 can be similar to server system 106 (FIG. 1) and can have its own local storage medium combined with, or separate from, the server. There can be one or more remote storage media 208 that are coupled directly to server 206. There can also be one or more remote storage media 210 that are coupled to server 206 via communication network 202. Remote storagc media 208 andior 210 can bc any suitable storage mcdia including a physical database or cloud database. Each client 204 can communicate with the server 206 via the communication network 202 to send and receive data files. Data files can be stored at server 206, one or more of storage media 208, and/or one or more of storage media 210.
[00371 FIG. 3 illustrates a flow diagram illustrating how a server synchronizes files in a networked computer system in accordance with certain embodiments of the disclosed subject matter. At step 302, the server 206 receives a file from a client 204 or remote storage medium 208/210. At step 304, the server 206 determines whether the received file is the most recent version of the file. If the received file is not the most recent version of the file, server 206 ignores the received file at step 306. If the received file is the most recent version of the file, the server 206 saves the received file as the most recent version of the file at step 308. The server 206 can save the received file at its local storage medium andior at one or more of the remote storage media 208/2 10.
[00381 FIG. 4 illustrates a flow diagram illustrating how a server synchronizes files in a networked computer system in accordance with certain embodiments of the disclosed subject matter. At step 402, the server 206 receives a file from a client 204. The file can include information about the file, including a timestamp. The timestamp can represent the last date and time that the data file was updated, saved, and/or accessed.
[00391 At step 404, the server 206 sends a request for the timestamp of the file currently stored as the most recent version of the file. The most recent version of the file can be stored at the server 206's local storage medium and/or remote storage medium 208/210. The server 206 can send the request to its local storage medium and/or remote storage medium 2081210.
The request can be formatted as an Extensible Markup Language (XML), Google Protobuf, Hypertext Transfer Protocol (HTTP), JavaScript Object Notation (JSON), or any other format suitable for data communication. In response, the server 206 receives the timestamp of the file currently stored as the most recent version of the file at step 406. The server 206 can receive just the timestamp, information describing the file that includes the timestamp, and/or the entire file from which the timestamp can be extracted. The server 206 can receive this information in the sante format as, or a different format from, the request.
IOOOI At step 408, the server 206 compares the timestamp of the received file with the timestamp of the file currently stored as the most recent version of thc file. At step 410, the server 206 determines whether the timestamp of the received file is more recent than the timestamp of the file currently stored as the most recent version of the file. If the timestamp of the received file is older than the timestamp of the file currently stored as the most recent version of the file, server 206 ignores the received file at step 412.
[00411 If the timestamp of the received file is later than the timestamp of the file currently stored as the most recent version of the file, server 206 saves the received file as the most recent version of the file at step 414. The server 206 can save the received file at its local storage medium and/or at one or more of the remote storage media 208/210. Although FIG. 4 shows the server 206 as receiving the file from the client 204, the server 206 can also receive the file from the remote storage medium 208/210.
[00421 FIG. 5 illustrates a flow diagram illustrating how a server synchronizes files in a networked computer system in accordance with certain embodiments of the disclosed subject matter. At step 502, the server 206 receives a file from a client 204. The file can include information about the file, including a timestamp. The timestamp can represent the last date and time that the data file was updated, saved, and/or accessed.
[00431 At step 504, the server 206 compares the timestamp of the received file with a record of the timestamp of the file currently stored as the most recent version of the file. At step 506, the server 206 determines whether the timestamp of the received file is more recent than the recorded timestamp of the file currently stored as the most recent version of the file.
If the timestamp of the received file is older than the timestamp of the file currently stored as the most recent version of the file, server 206 ignores the received file at step 508.
[00441 If the timestamp of the received file is later than the timestamp of the file currently stored as the most recent version of the file, server 206 saves the received file as the most recent version of the file at step 510. The server 206 can save the received file at its local storage medium andior at one or more of the remote storage media 208/2 10. The server 206 also updates its record with the timestamp of the received file as the file currently stored as the most recentversion of the file in step 512. Although steps 510 and 512 are shown as separate steps, they can be done in any order or at the same time. Although FIG. 5 shows the server 206 receiving the file from the client 204, the server 206 can also receive the file from thc remote storage medium 208/210.
[00451 FIG. 6 illustrates a flow diaam illustrating how a server synchronizes files in a networked computer system in accordance with certain embodiments of the disclosed subject matter. At step 602, the server 206 receives a notification of an update to a file. The server 206 can receive the notification from a client 204 or from a remote storage medium 208/210.
The notification can include any suitable information about an updated data file, including the timestamp of the updated data file. The timestamp can represent the last date and time that the data file was updated, saved, andlor accessed.
[00461 At step 604, the server 206 compares the timestamp of the updated file with the tirnestamp of the file currently stored as the most recent version of the file. The timestamp of the file currently stored as the most recent version of the file can be requested and received from the server 206's local storage medium and/or remote storage medium 208/210 (similar to steps 404 and 406 in FIG. 4). Alternatively, the timestamp of the file currently stored as the most recent version of the file can be the recorded timestamp locally stored at the server 206 (similar to step 504 in FIG. 5).
[00471 At step 606, the server 206 determines whether the tirnestamp of the updated file is more recent than the timestamp of the file currently stored as the most recent version of the file. If the timestamp of the received file is older than the timestamp of the file currently stored as the most recent version of the file, server 206 ignores the received file at step 608.
100481 If the timestamp of the received file is later than the timestamp of the file currently stored as the most recent version of the file, server 206 requests the updated file from the client 204 or from the remote storage medium 208/2 10 at step 610. The request can be formatted as XML, Google Protobuf, HTTP, JSON, or any other formats suitable for data communication. Upon receiving the updated file, the server stores the updated file as the most recent version of the file at step 612. The server 206 can save the updated file at its local storage medium and/or at one or more of the remote storage media 208/2 10. The server 206 can also update its record with the timestamp of the updated file as the file currently stored as the most recent.
IOO9I FIG. 7 illustrates a block diagram of a server in accordance with certain embodiments of thc disclosed subject matter. The server 206 can include at least a processor 702, at least one memory 704, a clock synchronization module 706, a version control module 708, and an error control module 710.
[00501 A clock synchronization module 706 is configured to provide clock synchronization between the server 206 and one or more of the client 204 and/or remote storage medium 208/210. The clock synchronization module 706 can be configured to ensure the accuracy of the timestamps for files so that the file with the most recent timestamp is stored as the most recent version of the file. The clock synchronization module 706 can be configured to perform synchronization once, at periodic intervals, at random intervals, in response to the server 206 receiving a data file, in response to the server 206 receiving a notification ofan update to a data file, or at any other suitable time or combination of times.
[00511 An error control module 710 is configured to perform error control on the timestamps of data files. The error control module 710 can be configured to check the timestamps of incoming files and/or stored files. The error control module 710 can be further configured to correct and/or reject those files having a timestamp that is set to a future time or invalid time.
[00521 A version control module 708 is configured to synchronize the files that it receives from one or more of the client 204 and/or remote storage medium 208/210 so that the most recent version of the file is always stored. The version control module 708 is further configured to perform the processing steps shown and described in connection with FIGS. 3-6. The version control module 708 can include a record of the timestamps for the data files stored at the server 206's local storage medium andior remote storage media 208/2 10. The version control module 708 can communicate with the clock synchronization module 706 and the error control module 710 to ensure the accuracy of the timestamps that are being compared and of the data files being synchronized.
[00531 The clock synchronization module 706, the version control module 708, and the error control module 710 can be implemented in software, which may be stored in memory 704. FIG. 7 shows server 206 having separate modules 706, 708, and 710 that perform the above-described operations in accordance with certain embodimcnts of' the disclosed subject matter. In other embodiments of the invention, server 206 can include additional modules, less modules, or any other suitable combination of modules that perform any suitable operation or combination of operations. The memory 704 can be a non-transitory computer readable medium, flash memory, a magnetic disk drive, an optical drive, a programmable read-only memory (PROM), a read-only memory (ROM), or any other memory or combination of memories. Thc software runs on a processor 702 capable of executing computer instructions or computer code. The processor 702 might also be implemented in hardware using an application specific integrated circuit (ASIC), programmable logic array (PLA), field programmable gate array (FPGA), or any other integrated circuit.
[00541 An interface 712 provides an input and/or output mechanism to communicate over a network. The interface 712 enables communication with clients 204, as well as other network nodes in the communication network 202. The interface 712 also enables communications with storage media 210 over the communication network 202 and with storage media 208. The interface 712 is implemented in hardware to send and receive signals in a variety of mediunis, such as optical, copper, and wireless, and in a number of different protocols some of which may be non-transient.
[00551 The server 206 can be configured with one or more processors 702 that process instructions and run software that may be stored in the memory 704. The processor 702 also communicates with the memory and interfaces to communicate with other devices. The processor 702 can be any applicable processor such as a system-on-a-chip that combines a CPU, an application processor, and flash memory.
[00561 The server 206 can operate using an operating system (OS) software. In some embodiments, the OS software is based on a Linux software kernel and runs specific applications in the server such as monitoring tasks and providing protocol stacks. The OS software allows server resources to be allocated separately for control and data paths. For example, certain packet accelerator cards and packet services cards are dedicated to perfonning routing or security control ifinctions, while other packet accelerator cards/packet services cards are dedicated to processing user session traffic. As network requirements change, hardware resources can be dynamically deployed to meet the requirements in some cmbodimcnts.
100571 The server's software can be divided into a series of tasks that perform specific functions. These tasks conmiunicate with each other as needed to share control and data information throughout the server 206. A task can be a software process that performs a specific function related to system connol or session processing. Three types of tasks operate within the server 206 in some embodiments: critical tasks, controller tasks, and manager tasks. The critical tasks control ftmctions that relate to the server's ability to process calls such as server initia'ization, error detection, and recovery tasks. The controller tasks can mask the distributed nature of the software from the user and perform tasks such as monitoring the state of subordinate manager(s), providing for intra-manager communication within the same subsystem, and enabling inter-subsystem communication by communicating wifh controller(s) belonging to ofhcr subsystems. The manager tasks can control system resources and maintain logical mappings between system resources.
[00581 Individual tasks that run on processors in the application cards can be divided into subsystems. A subsystem is a software element that either performs a specific task or is a culmination of multiple other tasks. A single subsystem includes critical tasks, controller tasks, and manager tasks. Some of the subsystems that run on the server 206 include a system initiation task subsystem, a high availability task subsystem, a shared configuration task subsystem, and a resource management subsystem.
[0059J The system initiation task subsystem is responsible for starting a set of initial tasks at system startup and providing individual tasks as needed. The high availability task subsystem works in conjunction \vith the recovery control task subsystem to maintain the operational state of the server 206 by monitoring the various software and hardware components of the server 206. Recovery control task subsystem is responsible for executing a recovery action for failures that occur in the server 206 and receives recovery actions from the high availability task subsystem. Processing tasks are distributed into multiple instances running in parallel so if an unrecoverable soffivare fault occurs, the entire processing capabilities for that task are not lost. User session processes can be sub-grouped into collections of sessions so that if a problem is encountered in one sub-group users in another sub-group will not be affected by that problem.
100601 Shared configuration task subsystem can provide the server 206 with an ability to set, retrieve, and receive notification of server configuration parameter changes and is responsible for storing configuration data for the applications running within the server 206.
A resource management subsystem is responsible for assigning resources (e.g., processor and memory capabilities) to tasks and for monitoring the task's use of the resources.
[00611 In some embodiments, the server 206 can reside in a data center and form a node in a cloud computing infrastructure. The server 206 can also provide services on demand. A module hosting a client is capable of migrating from one server to another server seamlessly, without causing program faults or system breakdown. The server 206 on the cloud can be managed using a management system.
[00621 The client 204 can include user equipment of a cellular network. The user equipment communicates with one or more radio access networks and with wired communication networks. The user equipment can be a cellular phone having phonetic communication capabilities. The user equipment can also be a smart phone providing services such as word processing, web browsing, gaming, c-book capabilities, an operating system, and a frill keyboard. The user equipment can also be a tablet computer providing network access and most of the services provided by a smart phone. The user equipment operates using an operating system such as Symbian OS, iPhone OS, RIM's Blackberry, Windows Mobile, Linux, HP WebOS, and Android. The screen might be a touch screen that is used to input data to the mobile device, in which case the screen can be used instead of the full keyboard. The user equipment can also keep global positioning coordinates, profile information, or other location information.
[00631 The client 204 also includes any platforms capable of computations and communication. Non-limiting examples can include televisions (TY5), video projectors, set-top boxes or set-top units, digital video recorders (DVR), computers, netbooks, laptops, and any other audio/visual equipment with computation capabilities.
[00641 It is to be understood that the disclosed subject matter is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of dcscription and should not bc regarded as limiting.
[00651 As such, those skilled in the art will appreciate that the conception, upon which this disclosure is based, may readily be utilized as a basis for the desiing of other structures, methods, and systems for carrying out the several purposes of the disclosed subject matter. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the disclosed subject matter.
[00661 Although the disclosed subject matter has been described and illustrated in the foregoing exemplary embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the disclosed subject matter may be made without departing from the spirit and scope of the disclosed subject mattcr, which is limited only by the claims which follow.

Claims (26)

  1. CLAIMS: 1. A computer readable medium having executable instructions operable to cause a server to: store a file received from a client over a communication network in a storage medium, wherein the file is stored as a master version and has associated with it a first tirnestamp; reccive a notification of an updatc to the file, wherein the notification has associated with it a second timestamp for the updated file; compare the first tirnestamp to the second timestamp; and when the second tirnestamp is later than the first timestamp: send a request for the updated file, and receive and store the updated file in the storage medium, wherein the updated file is stored as the master version.
  2. 2. The computer readable medium of claim I, further comprising executable instructions operable to cause the server to receive a request for the file from the client and to send the updated file to the client in response to the request.
  3. 3. The computer readable medium of claim 1 or 2, wherein the executable instructions operable to cause the server to compare the first timestamp to the second timestamp is further operable to cause the server to send a request to the storage medium for the first timestamp and to receive the first timestamp from the storage medium in response to the request.
  4. 4. The computer readable medium of claim 1 or 2, wherein the executable instructions operable to cause the server to compare the first timestamp to the second timestamp is fUrther operable to cause the server to retrieve the first timestamp from a record of timestamps for all files stored in the storage medium.
  5. 5. The computer readable medium of claim 4, further comprising executable instructions operable to cause the server to updatc the record of timestamps by replacing first timestamp with the second timestamp for the updated file.
  6. 6. The computer readable medium of any preceding claim, wherein the first timestamp comprises a date and time when the file was last updated and the second timestamp comprises a data and time when the updated file was last updated.
  7. 7. An apparatus comprising: one or more interfaces configured to provide communication with a client via a communication network; and a processor, in conmiunication with the one or more interfaces, and configured to run a module stored in memory that is configured: to store a file received from a client over a communication network in a storage medium, wherein the file is stored as a master version and has associated with it a first timestamp; to receive a notification of an update to the file, wherein the notification has associated with it a second timestamp for the updated file; to compare the first timestamp to the second timestamp; and when the second timestamp is later than the first timestamp: to send a request for the updated file, and to receive and store the updated file in the storage medium, wherein the updated file is stored as the master version.
  8. 8. The apparatus of claim 7, wherein the module is further configured to receive a request for the file from the client and to send the updated file to the client in response to the request.
  9. 9. The apparatus of claim 7 or 8, wherein the module is further configured to send a request to the storage medium for the first timestamp and to receive the first timestamp from the storage medium in response to the request.
  10. 10. The apparatus of claim 7 or 8, wherein the module is further configured to retrieve the first timestamp from a record of timestamps for all files stored in the storage medium, wherein the record of timestamps is stored in the memory.
  11. 11. The apparatus of claim 10, wherein the module is ftirther configured to update the record of timestamps by replacing first timestamp with the second timestamp for the updated file.
  12. 12. The apparatus of any of claims 7 to I I, wherein the first tirnestamp comprises a date and time when the file was last updated and the second timestamp comprises a data and time when the updated file was last updated.
  13. 13. The apparatus of any of claims 7 to 12, wherein the module is further configured to receive the notification of the update to the file from, and to send the request for the updated file to, the client.
  14. 14. The apparatus of any of claims 7 to 12, wherein the module is further configured to receive the notification of the update to the file from, and to send the request for the updated file to, a second storage medium.
  15. 15. A method comprising: storing a file received from a client over a eonmmnieation network in a storage medium, wherein the file is stored as a master version and has associated with it a first timestamp; receiving a notification of an update to the file, wherein the notification has associated with it a second timestamp for the updated file; comparing the first timestamp to the second timestamp; and when the second timestamp is later than the first timestamp: sending a request for the updated file, and receiving and storing the updated file in the storage medium, wherein the updated file is stored as the master version.
  16. 16. The method of claim 15, further comprising receiving a request for the file from the client and sending the updated file to the client in response to the request.
  17. 17. The method of claim 15 or 16, further comprising sending a request to the storage medium for the first timestamp and receiving the first timestamp from the storage medium in response to the request.
  18. 18. The method of claim 15 or 16, further comprising retrieving the first timcstamp from a record of timcstamps for all files stored in the storage medium.
  19. 19. The method of claim 18, further comprising updating the record of timestamps by replacing first timestamp with the second timestamp for the updated file.
  20. 20. The method of any of claims 15 to 19, wherein the first timestamp comprises a date and time when the file was last updated and the second timestamp comprises a data and time when the updated file was last updated.
  21. 21. The method of any of claims 15 to 20, comprising: receiving the notification of the update to the file from, and sending the request for the updated file to, the client.
  22. 22. The method of any of claims 15 to 20, comprising: receiving the notification of the update to the file from, and sending the request for the updated file to, a second storage medium.
  23. 23. Computer software which, when executed by a computer, is arranged to perform a method according to any of claims 15 to 22.
  24. 24. A computcr readable medium substantially as dcscribcd hcrcinbcforc with rcfcrcncc to the accompanying drawings.
  25. 25. An apparatus substantially as described hereinbefore with reference to the accompanying drawings.
  26. 26. A method substantially as described hereinbefore with reference to the accompanying drawings.
GB1303927.6A 2012-03-12 2013-03-05 File synchronization using timestamp data Withdrawn GB2502408A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/418,090 US20130238552A1 (en) 2012-03-12 2012-03-12 Systems and methods for synchronizing files in a networked communication system

Publications (2)

Publication Number Publication Date
GB201303927D0 GB201303927D0 (en) 2013-04-17
GB2502408A true GB2502408A (en) 2013-11-27

Family

ID=48142447

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1303927.6A Withdrawn GB2502408A (en) 2012-03-12 2013-03-05 File synchronization using timestamp data

Country Status (2)

Country Link
US (1) US20130238552A1 (en)
GB (1) GB2502408A (en)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130123482A (en) * 2012-05-03 2013-11-13 삼성전자주식회사 Time stamp management method for data synchronizing and terminal thereof
JP6064529B2 (en) * 2012-11-07 2017-01-25 株式会社リコー Information processing device
US20140258373A1 (en) * 2013-03-11 2014-09-11 Say Media, Inc. Systems and Methods for Managing and Publishing Managed Content
US10635638B2 (en) 2013-03-13 2020-04-28 Ivanti Us Llc Systems, methods and media for deferred synchronization of files in cloud storage client device
JP2014229244A (en) * 2013-05-27 2014-12-08 株式会社東芝 Network system, management server and update notification method
CN104426955B (en) * 2013-08-28 2018-05-04 北大方正集团有限公司 The processing method and cloud storage service device of shared file
US10536560B2 (en) 2013-09-13 2020-01-14 John Wason System and method for implementing augmented object members for remote procedure call
US10938960B2 (en) 2013-09-13 2021-03-02 John Wason System and method for implementing augmented object members for remote procedure call
US20150081774A1 (en) * 2013-09-13 2015-03-19 John Wason System and method for implementing augmented object members for remote procedure call
US9274783B2 (en) * 2013-12-25 2016-03-01 Sap Se Dynamic delivery and integration of static content into cloud
US10838983B2 (en) 2015-01-25 2020-11-17 Richard Banister Method of integrating remote databases by parallel update requests over a communications network
US10440089B2 (en) 2015-04-06 2019-10-08 Richard Banister Method to replicate complex data structures using multiple queries
US9792108B2 (en) * 2015-08-12 2017-10-17 Comcast Cable Communications, Llc Scheme for managing last-modified information
US10657123B2 (en) 2015-09-16 2020-05-19 Sesame Software Method and system for reducing time-out incidence by scoping date time stamp value ranges of succeeding record update requests in view of previous responses
US10990586B2 (en) 2015-09-16 2021-04-27 Richard Banister System and method for revising record keys to coordinate record key changes within at least two databases
US10838827B2 (en) 2015-09-16 2020-11-17 Richard Banister System and method for time parameter based database restoration
US10540237B2 (en) 2015-09-16 2020-01-21 Sesame Software, Inc. System and method for procedure for point-in-time recovery of cloud or database data and records in whole or in part
CN106411481B (en) * 2016-11-17 2019-03-08 河海大学常州校区 Joint Error Control and clock synchronizing method and system in the sound communication of ocean
US10387383B2 (en) * 2017-02-15 2019-08-20 Google Llc Systems and methods for providing access to a data file stored at a data storage system
US10467424B2 (en) * 2017-10-12 2019-11-05 International Business Machines Corporation File system content based security
CN109101381A (en) * 2018-08-02 2018-12-28 Oppo(重庆)智能科技有限公司 Configuration file update method, system, electronic equipment and storage medium
CN109379215A (en) * 2018-09-26 2019-02-22 郑州云海信息技术有限公司 A kind of network interface card firmware update, device and equipment
CN110113187B (en) * 2019-04-19 2022-03-04 北京奇艺世纪科技有限公司 Configuration updating method and device, configuration server and configuration system
US11194769B2 (en) 2020-04-27 2021-12-07 Richard Banister System and method for re-synchronizing a portion of or an entire source database and a target database
TWI792717B (en) * 2021-11-25 2023-02-11 凌華科技股份有限公司 Data synchronization system and method and non-transitory recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2384589A (en) * 2001-11-26 2003-07-30 Cognima Ltd Method of replicating sata between wireless computing devices
EP1681652A2 (en) * 2005-01-14 2006-07-19 Microsoft Corporation Method nad system for synchronizing multiple user revisions to a shared object

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132564A (en) * 2000-10-30 2002-05-10 Nec Corp System and method for distribution of master file
US7228319B1 (en) * 2002-12-30 2007-06-05 Sap Aktiengesellschaft File comparison of locally synched files
US7526516B1 (en) * 2006-05-26 2009-04-28 Kaspersky Lab, Zao System and method for file integrity monitoring using timestamps

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2384589A (en) * 2001-11-26 2003-07-30 Cognima Ltd Method of replicating sata between wireless computing devices
EP1681652A2 (en) * 2005-01-14 2006-07-19 Microsoft Corporation Method nad system for synchronizing multiple user revisions to a shared object

Also Published As

Publication number Publication date
GB201303927D0 (en) 2013-04-17
US20130238552A1 (en) 2013-09-12

Similar Documents

Publication Publication Date Title
GB2502408A (en) File synchronization using timestamp data
US10073747B2 (en) Reducing recovery time in disaster recovery/replication setup with multitier backend storage
US20130232187A1 (en) Systems and methods for managing data in a networked communication system
US10732861B2 (en) Generating and providing low-latency cached content
EP2954403B1 (en) Cloud-based streaming data receiver and persister
US10069942B2 (en) Method and apparatus for changing configurations
US20140149352A1 (en) High availability for cloud servers
US9537974B2 (en) Systems, methods and media for collaborative caching of files in cloud storage
US20200026786A1 (en) Management and synchronization of batch workloads with active/active sites using proxy replication engines
US10826812B2 (en) Multiple quorum witness
US10474696B2 (en) Replication groups for content libraries
US20130275546A1 (en) Systems and methods for the automated migration from enterprise to cloud storage
US10880347B1 (en) Media players for digital display devices using proxy services for offline capability
US20160062661A1 (en) Generating Initial Copy in Replication Initialization
US20150189019A1 (en) Managing network attached storage
US10776134B2 (en) Management of application properties
US11782880B2 (en) Synchronizing log data within a cluster
CN113472638A (en) Edge gateway control method, system, device, electronic equipment and storage medium
US10476947B1 (en) Methods for managing web applications and devices thereof
CN111596933A (en) File processing method and device, electronic equipment and computer readable storage medium
US10235331B1 (en) Event-based synchronization in a file sharing environment
CN114513524B (en) Resource synchronization method and device, electronic equipment and storage medium
CN111310043B (en) Method and device for pushing information
CN112307013A (en) Method, apparatus and computer program product for managing application systems
CN116483928A (en) Container mirror cascade synchronization method, device, equipment and medium

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20160602 AND 20160608

732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20190523 AND 20190529

WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)