METHOD AND SYSTEM FOR SUPPORTING OFF-LINE MODE OF OPERATION AND SYNCHRONIZATION
First Claim
1. In a networked system including a server and a client, wherein the server:
- stores a resource, a method of enabling a client to access the resource, comprising the steps of;
transmitting, from the server to the client, resource state information that represents the state of the resource stored at the server at a selected moment;
transmitting, from the server to the client, a copy of the resource as it exists at the server at the selected moment;
storing the copy of the resource in a local store associated with the client;
modifying the copy of the resource stored in the local store;
transmitting the modified copy and the resource state information from the client to the server;
based on the resource state information transmitted to the server, determining whether the resource stored at the server has changed since the selected moment; and
if it is determined that the resource stored at the server has not changed, replacing the resource stored at the server with the modified copy.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
25 Claims
-
1. In a networked system including a server and a client, wherein the server:
-
stores a resource, a method of enabling a client to access the resource, comprising the steps of; transmitting, from the server to the client, resource state information that represents the state of the resource stored at the server at a selected moment; transmitting, from the server to the client, a copy of the resource as it exists at the server at the selected moment; storing the copy of the resource in a local store associated with the client; modifying the copy of the resource stored in the local store; transmitting the modified copy and the resource state information from the client to the server; based on the resource state information transmitted to the server, determining whether the resource stored at the server has changed since the selected moment; and if it is determined that the resource stored at the server has not changed, replacing the resource stored at the server with the modified copy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a client associated with a networked system that includes a server that stores a resource, a method for accessing the resource and then interacting off-line with the resource in a manner such that it appears, from the standpoint of the client, that the client is on-line, comprising the steps of:
-
while the client is on-line with the server, receiving from the server a copy of the resource and resource state information representing the state of the resource stored at the server at a selected moment; storing the copy of the resource 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 resource while the client is off-line by accessing the copy of the resource in the local store. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. In a client included in a networked system that also includes a server, wherein the client is capable of accessing, modifying and storing a resource on the server, a method of modifying the resource at the client while the client is offline, comprising the steps of:
-
while communication between the client and the server is established, receiving a copy of the resource at the client and storing the copy in a cache associated with the client; while the communication is maintained, making a first modification to the resource, including; transmitting the first modification to the server, where it is applied to the resource stored at the server; and storing in the cache information representing the first modification; terminating the communication without receiving from the server another copy of the resource; and making a second modification to copy of the resource stored in the cache while the client is off-line. - View Dependent Claims (19)
-
-
20. In a server included in a networked system that is associated with a client, the server storing a plurality of resources in a collection, a method for providing to the client a synchronized copy of the resources while avoiding multiple downloads of particular resources, comprising the steps of:
-
while the client is on-line with respect to the server, providing the client access to a first subset of the plurality of resources, wherein the client stores a copy of the first subset in a local store associated with the client; prior to the client going off-line, receiving a request from the client requesting the plurality of resources; determining that the first subset of the resources has been accessed by the client and a mutually exclusive second subset of the resources has not been accessed by the client; and transmitting only the second subset of the resources to the client in response to the request. - View Dependent Claims (21)
-
-
22. 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 resource 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 resource state information 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 resource state information as it exists at the server at the selected moment and a copy of the resource as it exists at the selected moment; program code means for receiving a request to update the resource stored at the server with a modified copy of the resource generated by the first client, the request including the copy of the resource state information; and program code means for determining whether a conflict exists in response to the request by comparing the copy of the resource state information received from the first client with the resource state that represents the current state of the resource stored at the server. - View Dependent Claims (23, 24, 25)
Specification