Subscription-Notification mechanisms for synchronization of distributed states
First Claim
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.
3 Assignments
0 Petitions
Accused Products
Abstract
Apparatus, systems, methods, and related computer program products for synchronizing distributed states amongst a plurality of entities and authenticating devices to access information and/or services provided by a remote server. Synchronization techniques include client devices and remote servers storing buckets of information. The client device sends a subscription request to the remote serve identifying a bucket of information and, when that bucket changes, the remote server sends the change to the client device. Authentication techniques include client devices including unique default credentials that, when presented to a remote server, provide limited access to the server. The client device may obtain assigned credentials that, when presented to the remote server, provide less limited access to the server.
-
Citations
22 Claims
-
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 Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A client device, comprising:
-
a storage element for storing a plurality of buckets of information each including a plurality of field-value pairs, the buckets of information corresponding to a plurality of buckets of information at a remote server each including a plurality of field-value pairs; and a reconciliation module coupled to the storage element and operable to; transmit 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; communicate the updated field-value pair to the remote server; receive 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 reconcile, based on the received response, the updated bucket of information at the client device with the corresponding subscribed bucket at the remote server, wherein being operable to reconcile includes being operable to; determine whether the response from the remote server includes a new timestamp and/or version identifier; overwrite, 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; determine whether the response from the remote server includes at least one replacement field-value pair; and overwrite, 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 Dependent Claims (12, 13, 14, 15)
-
-
16. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by one or more computer processors, cause the one or more computer processors to perform operations comprising:
-
at a client device, transmitting a subscription request to 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 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 Dependent Claims (17, 18, 19, 20, 21, 22)
-
Specification