Synchronization server process
First Claim
1. A method comprising:
- connecting a computer system as a client to a server system;
synchronizing, by the computer system connected as the client to the server system, a data repository hosted by the server system with a data repository hosted by the computer system, wherein the client used by the computer system to synchronize the data repository hosted by the computer system with the data repository of hosted by the server system is a trusted client configured to support a schema defined by the server system for the data repository hosted by the server system;
connecting the computer system as a server with a plurality of devices, wherein at least one device of the plurality of the devices is a trusted client configured to support the schema defined by the server system for the data repository hosted by the server system and supported by the computer system, and at least one device of the plurality of the devices is an untrusted client that is not configured to support the schema;
receiving, by the computer system connected as the server with the plurality of devices, requests from the plurality of devices to synchronize data records stored at the plurality of devices;
selectively identifying, by the computer system connected as the server with the plurality of devices for each device of the plurality of devices, whether the device is a trusted or an untrusted client based on one or more properties of a request received from the device to synchronize data records stored at the device;
synchronizing, by the computer system, the data records stored at the plurality of selectively identified devices with corresponding data records from the data repository hosted by the computer system;
synchronizing, by the computer system connected as the client to the server system, the data repository hosted by the computer system, that has been synchronized with the data records stored at the plurality of devices, with the data repository hosted by the server system;
receiving, from a device identified as an untrusted client, a request including a change of a data record stored at the untrusted client;
in response to determining that the change is invalid against the schema, generating, by the computer system, a synthetic change of the data record that is valid against the schema; and
updating a data record from the data repository hosted by the computer system corresponding to the data record stored at the untrusted client that includes the synthetic change.
0 Assignments
0 Petitions
Accused Products
Abstract
Processing data synchronization sessions includes processing a request to initiate a synchronization session from one or more clients to update one or more data records that include one or more data items. The one or more clients are selectively identified as one of a trusted client and an untrusted client based on one or more properties of the synchronization session, wherein the trusted client is configured to support all data classes defined by the server. The one or more clients are detected as being configured to support field level differencing that sends changed data items only for the one or data records or record level differencing that sends all of the data items included in the one or more data records.
-
Citations
9 Claims
-
1. A method comprising:
-
connecting a computer system as a client to a server system; synchronizing, by the computer system connected as the client to the server system, a data repository hosted by the server system with a data repository hosted by the computer system, wherein the client used by the computer system to synchronize the data repository hosted by the computer system with the data repository of hosted by the server system is a trusted client configured to support a schema defined by the server system for the data repository hosted by the server system; connecting the computer system as a server with a plurality of devices, wherein at least one device of the plurality of the devices is a trusted client configured to support the schema defined by the server system for the data repository hosted by the server system and supported by the computer system, and at least one device of the plurality of the devices is an untrusted client that is not configured to support the schema; receiving, by the computer system connected as the server with the plurality of devices, requests from the plurality of devices to synchronize data records stored at the plurality of devices; selectively identifying, by the computer system connected as the server with the plurality of devices for each device of the plurality of devices, whether the device is a trusted or an untrusted client based on one or more properties of a request received from the device to synchronize data records stored at the device; synchronizing, by the computer system, the data records stored at the plurality of selectively identified devices with corresponding data records from the data repository hosted by the computer system; synchronizing, by the computer system connected as the client to the server system, the data repository hosted by the computer system, that has been synchronized with the data records stored at the plurality of devices, with the data repository hosted by the server system; receiving, from a device identified as an untrusted client, a request including a change of a data record stored at the untrusted client; in response to determining that the change is invalid against the schema, generating, by the computer system, a synthetic change of the data record that is valid against the schema; and updating a data record from the data repository hosted by the computer system corresponding to the data record stored at the untrusted client that includes the synthetic change. - View Dependent Claims (2, 3)
-
-
4. A non-transitory computer readable storage medium encoding instructions that when executed by a computer system cause the computer system to execute operations comprising:
-
connecting the computer system as a client to a server system; synchronizing a data repository hosted by the server system with a data repository hosted by the computer system, wherein the client used by the computer system to synchronize the data repository hosted by the computer system with the data repository of hosted by the server system is a trusted client configured to support a schema defined by the server system for the data repository hosted by the server system; connecting the computer system as a server with a plurality of devices, wherein at least one device of the plurality of the devices is a trusted client configured to support the schema defined by the server system for the data repository hosted by the server system and supported by the computer system, and at least one device of the plurality of the devices is an untrusted client that is not configured to support the schema; receiving requests from the plurality of devices to synchronize data records stored at the plurality of devices; selectively identifying, for each device of the plurality of devices, whether the device is a trusted or an untrusted client based on one or more properties of an associated request received from the device to synchronize data records stored at the device; synchronizing the data records stored at the plurality of selectively identified devices with corresponding data records from the data repository hosted by the computer system; synchronizing the data repository hosted by the computer system, that has been synchronized with the data records stored at the plurality of devices, with the data repository hosted by the server system; receiving a request from a device identified as an untrusted client including a change of a data record stored at the untrusted client; in response to determining that the change is invalid against the schema, generating a synthetic change of the data record that is valid against the schema; and updating a data record from the data repository hosted by the computer system corresponding to the data record stored at the untrusted client that includes the synthetic change. - View Dependent Claims (5, 6)
-
-
7. A computer system comprising:
-
a data processing apparatus communicatively coupled with a plurality of devices and with a server system; and memory configured to store a first data repository and instructions that when executed by the data processing apparatus cause the computer system to execute operations comprising; connecting the computer system as a client to the server system; synchronizing a second data repository hosted by the server system with the first data repository, wherein the client used by the computer system to synchronize the first data repository with the second data repository is a trusted client configured to support a schema defined by the server system for the second data repository; connecting the computer system as a server with the plurality of devices, wherein at least one device of the plurality of the devices is a trusted client configured to support the schema defined by the server system for the second data repository and supported by the computer system, and at least one device of the plurality of the devices is an untrusted client that is not configured to support the schema; receiving requests from the plurality of devices to synchronize data records stored at the plurality of devices; selectively identifying, for each device of the plurality of devices, whether the device is a trusted or an untrusted client based on one or more properties of a request received from the device to synchronize data records stored at the device; synchronizing the data records stored at the plurality of selectively identified devices with corresponding data records from the first data repository; synchronizing the first data repository, that has been synchronized with the data records stored at the plurality of devices, with the second data repository; receiving a request from a device identified as an untrusted client including a change of a data record stored at the untrusted client; in response to determining that the change is invalid against the schema, generating a synthetic change of the data record that is valid against the schema; and updating a data record from the first data repository corresponding to the data record stored at the untrusted client that includes the synthetic change. - View Dependent Claims (8, 9)
-
Specification