Method and system for supporting off-line mode of operation and synchronization
Abstract
Systems and methods for synchronizing multiple copies of data in a network environment that includes servers and clients so that incremental changes made to one copy of the data can be identified, transferred, and incorporated into all other copies of the data. The synchronization can be accomplished regardless of whether modifications to the data have been made by a client while the client is in an on-line or off-line mode of operation. The clients cache data locally as data are modified and downloaded. The caching enables the clients to access the data and allows the synchronization to be performed without transmitting a particular version more than once between a client and a server. Such elimination of redundant data transmission results in an efficient use of time and network bandwidth.
Claims
exact text as granted — not AI-modified1 . (canceled)
2 . In a networked system including a server and a client, wherein the server stores a collection, a method of enabling a client to access the collection, the method comprising:
transmitting, from the server to the client, an identifier that represents the state of the collection stored at the server at a selected moment; transmitting, from the server to the client, a copy of the collection as the collection exists in the at the selected moment; storing the copy of the collection in a local store associated with the client; modifying the copy of the collection stored in the local store; transmitting the modified copy and the identifier from the client to the server; based on the identifier transmitted to the server, determining whether the collection stored at the server has changed since the selected moment; and if it is determined that the collection stored at the server has not changed, replacing the collection stored at the server with the modified copy.
3 . The method as recited in claim 2 , wherein the local store is a nonvolatile storage device that is used as a cache.
4 . The method as recited in claim 2 , wherein modifying the collection is conducted by the client while the client is off-line with respect to the server.
5 . The method as recited in claim 2 , further comprising, after replacing the collection stored at the server with the modified copy, transmitting a new identifier to the client.
6 . The method as recited in claim 2 , wherein transmitting the modified copy comprises storing the modified copy at the local store without transmitting the modified copy from the server to the client.
7 . The method as recited in claim 2 , wherein determining whether the collection stored at the server has changed since the selected moment comprises comparing, at the server, the identifier transmitted to the server with a current identifier, wherein the current identifier represents the state of the collection stored at the server at the time of comparing.
8 . The method as recited in claim 7 , wherein comparing results in a determination that the identifier transmitted to the server and the current identifier are the same, thereby determining that the collection stored at the server has not changed.
9 . The method as recited in claim 7 , wherein comparing results in a determination that the identifier transmitted to the server and the current identifier are different, thereby determining that the collection stored at the server has changed, and wherein the method further comprises performing a conflict resolution operation in response to the collection stored at the server having changed.
10 . The method as recited in claim 2 , further comprising storing, in the local store, the identifier.
11 . The method as recited in claim 2 , wherein transmitting the copy of the collection from the server to the client is performed only once.
12 . In a client associated with a networked system that includes a server that stores a collection, a method for accessing the collection and then interacting off-line with the collection in a manner such that it appears, from the standpoint of the client, that the client is on-line, the method comprising:
while the client is on-line with the server, receiving from the server a copy of the collection and an identifier representing the state of the collection stored at the server at a selected moment; storing the copy of the collection in a local store associated with the client; placing the client in an off-line condition with respect to the server; and performing a data operation on the copy of the collection while the client is off-line by accessing the copy of the collection in the local store, the data operation resulting in a modified copy of the collection; and synchronizing the collection stored at the server with the modified copy of the collection while the client is subsequently on-line after performing the data operation, the synchronization being performed at least in part by transmitting to the server the copy or the collection stored at the client, and the identifier.
13 . The method as recited in claim 12 , further comprising:
determining whether the collection stored at the server has changed since the selected moment based on the identifier transmitted to the server; and if it is determined that the collection stored at the server has not changed, replacing the collection stored at the server with the modified copy.
14 . The method as recited in claim 12 , wherein the data operation includes a read operation.
15 . The method as recited in claim 12 , wherein the data operation includes a write operation.
16 . The method as recited in claim 12 , wherein the data operation includes a delete operation.
17 . A computer program product for implementing, in a server included in a network that also includes at least a first client and a second client, a method for synchronizing multiple copies of a collection that are stored at various locations in the network, the computer program product comprising:
a computer-readable medium carrying computer-executable instructions for implementing the method, the computer-executable instructions comprising: program code means for generating an identifier that represents the current state of a collection at the server; program code means for transmitting, from the server to the first client, a copy of the identifier as it exists at the server at the selected moment and a copy of the collection as it exists at the selected moment; program code means for receiving a request to update the collection stored at the server with a modified copy of the collection generated by the first client, the request including the copy of the identifier; program code means for determining whether a conflict exists in response to the request by comparing the copy of the identifier received from the first client with the identifier that represents the current state of the collection stored at the server; and program code means for replacing the collection stored at the server with the modified copy if it is determined that no conflict exists.
18 . The computer-readable medium as recited in claim 17 , wherein the computer-executable instructions further comprise program code means for performing conflict resolution if it is determined that a conflict exists.
19 . The computer-readable medium as recited in claim 17 , wherein the request to update the collection is encoded in an XML language.
20 . A computer program product for implementing, in a server included in a network that also includes at least a first client and a second client, a method for synchronizing multiple copies of a collection that are stored at various locations in the network, the computer program product comprising:
a computer-readable medium carrying computer-executable instructions for implementing the method, the computer-executable instructions comprising: program code means for generating an identifier that represents the current state of a resource stored at the server; program code means for transmitting, from the server to the first client, a copy of the identifier as it exists at the server at the selected moment and a copy of the collection as it exists at the selected moment; program code means for receiving a request to update the collection stored at the server with a modified copy of the collection generated by the first client, the request including the copy of the identifier; program code means for determining whether a conflict exists in response to the request by comparing the copy of the identifier received from the first client with the identifier that represents the current state of the collection stored at the server; and program code means for performing conflict resolution if it is determined that a conflict exists.
21 . The computer-readable medium as recited in claim 20 , wherein the request to update the collection is encoded in an XML language.Join the waitlist — get patent alerts
Track US2014250064A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.