Subscription-notification mechanisms for synchronization of distributed states
First Claim
1. A method of synchronizing data between a first client device, a second client device, and a remote server, the method comprising:
- receiving, at the remote server from the first client device, a device type of the first client device;
allocating, after receiving the device type, a first plurality of buckets of information at the remote server for the first client device, wherein;
a configuration of the first plurality of buckets is determined based on the device type; and
the first plurality of buckets of information corresponds to an already existing second plurality of buckets of information stored on the first client device;
receiving, from the first client device, content with which to populate the first plurality of buckets of information;
receiving, at the remote server and from the second client device after receiving the device type, a subscription request identifying at least a first bucket of information in the first plurality of buckets of information provided for the first client device and stored on the remote server, the first bucket of information corresponding to a second bucket of information stored at the second client device;
receiving, at the remote server, a change to the first bucket of information in the first plurality of buckets of information stored at the remote server;
determining, by the remote server, that there is a difference between the first bucket of information stored at the remote server and the second bucket of information stored at the second client device; and
sending, in response to a determination of the difference between the first bucket of information stored at the remote server and the second bucket of information stored at the second client device, a notification of the difference to the second client device.
2 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.
74 Citations
20 Claims
-
1. A method of synchronizing data between a first client device, a second client device, and a remote server, the method comprising:
-
receiving, at the remote server from the first client device, a device type of the first client device; allocating, after receiving the device type, a first plurality of buckets of information at the remote server for the first client device, wherein; a configuration of the first plurality of buckets is determined based on the device type; and the first plurality of buckets of information corresponds to an already existing second plurality of buckets of information stored on the first client device; receiving, from the first client device, content with which to populate the first plurality of buckets of information; receiving, at the remote server and from the second client device after receiving the device type, a subscription request identifying at least a first bucket of information in the first plurality of buckets of information provided for the first client device and stored on the remote server, the first bucket of information corresponding to a second bucket of information stored at the second client device; receiving, at the remote server, a change to the first bucket of information in the first plurality of buckets of information stored at the remote server; determining, by the remote server, that there is a difference between the first bucket of information stored at the remote server and the second bucket of information stored at the second client device; and sending, in response to a determination of the difference between the first bucket of information stored at the remote server and the second bucket of information stored at the second client device, a notification of the difference to the second client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system, comprising:
-
a storage element; and a remote server coupled to the storage element and comprising one or more processors and one or more memory devices, the one of more memory devices comprising instructions that, when executed by the one or more processors, cause the one or more processor to perform operations comprising; receiving, from a first client device, a device type of the first client device; allocating, after receiving the device type, a first plurality of buckets of information at the remote server for the first client device, wherein; a configuration of the first plurality of buckets is determined based on the device type; and the first plurality of buckets of information corresponds to an already existing second plurality of buckets of information stored on the first client device; receiving, from the first client device, content with which to populate the first plurality of buckets of information; receiving, at the remote server and from a second client device after receiving the device type, a subscription request identifying at least a first bucket of information in the first plurality of buckets of information provided for the first client device and stored on the remote server, the first bucket of information corresponding to a second bucket of information stored at the second client device; receiving a change to the first bucket of information in the first plurality of buckets of information; determining that there is a difference between the first bucket of information stored at the storage element and the second bucket of information stored at the second client device; and sending, in response to a determination of the difference between the first bucket of information stored at the storage element and the second bucket of information stored at the second client device, a notification of the difference to the second client device. - 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 including:
-
receiving, from a first client device, a device type of the first client device; allocating, after receiving the device type, a first plurality of buckets of information at a remote server for the first client device, wherein; a configuration of the first plurality of buckets is determined based on the device type; and the first plurality of buckets of information corresponds to an already existing second plurality of buckets of information stored on the first client device; receiving, from the first client device, content with which to populate the first plurality of buckets of information; receiving, at the remote server and from a second client device after receiving the device type, a subscription request identifying at least a first bucket of information in the first plurality of buckets of information provided for the first client device and stored on the remote server, the first bucket of information corresponding to a second bucket of information stored at the second client device; receiving a change to the first bucket of information in the first plurality of buckets of information; determining that there is a difference between the first bucket of information and the second bucket of information stored at the second client device; and sending, in response to a determination of the difference between the first bucket of information and the second bucket of information stored at the second client device, a notification of the difference to the second client device. - View Dependent Claims (17, 18, 19, 20)
-
Specification