×

Subscription-Notification mechanisms for synchronization of distributed states

  • US 8,635,373 B1
  • Filed: 09/22/2012
  • Issued: 01/21/2014
  • Est. Priority Date: 09/22/2012
  • Status: Active Grant
First Claim
Patent Images

1. A method of synchronizing data between a client device and a remote server, the client device storing a plurality of buckets of information each including a plurality of field-value pairs, the remote server storing a plurality of buckets of information each including a plurality of field-value pairs, the method comprising:

  • at the client device, transmitting a subscription request to the remote server, the subscription request subscribing the client device to a subset of the plurality of buckets at the remote server that correspond respectively to a subset of the plurality of buckets at the client device and for which synchronization is to be established and/or maintained;

    upon a generation by the client device of an update to at least one field-value pair of one of the buckets at the client device resulting in an updated field-value pair included in an updated bucket of information at the client device, the updated bucket of information corresponding to one of the subscribed buckets at the remote server, carrying out the steps of;

    communicating the updated field-value pair to the remote server;

    receiving a response from the remote server including a new timestamp, a new version identifier, at least one replacement field-value pair, and/or other information; and

    reconciling, based on the received response, the updated bucket of information at the client device with the corresponding subscribed bucket at the remote server, said reconciling comprising;

    determining whether the response from the remote server includes a new timestamp and/or version identifier;

    overwriting, if it is determined that the response from the remote server includes a new timestamp and/or version identifier for the corresponding subscribed bucket at the remote server, an existing timestamp and/or version identifier for the updated bucket of information at the client device with the new timestamp and/or version identifier;

    determining whether the response from the remote server includes at least one replacement field-value pair; and

    overwriting, if it is determined that the response from the remote server includes at least one replacement field-value pair, the value of the updated at least one field-value pair with the value of the at least one replacement field-value pair; and

    upon a receipt by the client device of a notification communication from the remote server that notifies the client device regarding an update by the remote server to one of the subset of buckets at the remote server subscribed to by the subscription request and provides therewith updated bucket information for the updated one of the subset of buckets at the remote server subscribed to by the subscription request, at least partially overwriting at least some information of the bucket at the client device corresponding to the updated one of the subset of buckets at the remote server subscribed to by the subscription request with at least some information of the received updated bucket information.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×