Patent ID: 7865469

Claim:
A computer-implemented method implemented in a server device included in a networked system, the networked system being associated with a client device, the server device storing a plurality of resources in a collection, the method providing to the client device a synchronized copy of the resources while avoiding multiple downloads of each particular resource in the collection, the method comprising the steps of: establishing a connection between the server device and the client device, the connection allowing the client device online access to the plurality of resources, the plurality of resources stored on the server device in the collection; while the client device is on-line with respect to the server device, transmitting, by the server device, resources in the collection to the client device, the client device configured to store, in a local store associated with the client device, copies of the resources transmitted to the client device; prior to the client device going off-line, receiving, at the server device, a synchronization request from the client device, the synchronization request requesting all resources in the collection, wherein receiving the synchronization request comprises receiving a client state indicating resource state identifiers of all of the resources stored in the local store, wherein for each resource stored in the local store, the resource state identifier of the resource identifies a version of the resource; in response to the synchronization request, identifying, at the server device, any new resources and any modified resources, the new resources being resources in the collection that have not been stored in the local store by the client device and the modified resources being resources in the collection that have changed on the server device relative to the resources stored in the local store, wherein identifying any new resources and any modified resources comprises comparing the client state to a server state, the server state indicating a resource state identifier of each resource in the collection, wherein for each resource in the collection, the resource state identifier of the resource identifies a version of the resource; after identifying the new resources and the modified resources, transmitting only the new resources and the modified resources from the server device to the client device without transmitting resources in the collection that are not new resources or modified resources; and after identifying the new resources and the modified resources, transmitting a list of resource state information, the list of resource state information being transmitted from the server device to the client device, the list of resource state information uniquely identifying the resource state identifiers of each of the new resources and each of the modified resources, the resource state identifiers in the list of resource state information identifying current versions of the new resources and the modified resources.