IP Library Granted Patent US 9,424,329
Granted Patent B2
US 9,424,329 · App. 14/480,424 · Granted Aug 23, 2016

Optimizing data synchronization between mobile clients and database systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,424,329
App. No.
14/480,424
Granted
Aug 23, 2016
Kind
B2
Abstract

Mechanisms and methods are provided for optimizing data synchronization between clients and database systems. These mechanisms and methods provide optimizations for synchronization requests, by either breaking a synchronization request into multiple smaller requests, or by executing different code routines for differing client types, or by pre-caching data that a user is anticipated to want at a future point. Such optimization techniques can enable clients with varying capacities (e.g., mobile client vs. full desktop client) to optimally utilize their respective device capabilities.

Claims (46)

1. A method of synchronizing user data based on client type, the method comprising:

receiving a client request to synchronize the client with updates from a database;

determining a client type based on the request;

selecting, based on the determined client type, a routine from a plurality of routines to retrieve data associated with the update from the database;

invoking the selected routine to retrieve the data from the database;

receiving data from the database via the invoked routine, the data corresponding to the requested updates; and

sending the received data to the client.

2. The method of claim 1 , wherein the invoked routine is selected from a plurality of routines by a component that receives the client request to synchronize.

3. The method of claim 1 , wherein the client type is a mobile client.

4. The method of claim 1 , wherein the invoked routine is a custom routine.

5. The method of claim 1 , wherein the received data is a subset of all the available data for the client.

6. The method of claim 1 , further comprising:

retrieving data from a cache based on the synchronization request; and

sending the data to the requesting user.

7. The method of claim 6 , wherein the synchronization request asks for a subset of synchronization data.

8. A system for synchronizing user data based on client type, the system comprising:

a processor-based application, which when executed on a computer, will cause the processor to:

receive a client request to synchronize the client with updates from a database;

determine a client type based on the request;

select, based on the determined client type, a routine from a plurality of routines to retrieve data associated with the update from the database;

invoke the selected routine to retrieve the data from the database;

receive data from the database via the invoked routine, the data corresponding to the requested updates; and

send the received data to the client.

9. The system of claim 8 , wherein the invoked routine is selected from a plurality of routines by a component that receives the client request to synchronize.

10. The system of claim 8 , wherein the client type is a mobile client.

11. The system of claim 8 , wherein the invoked routine is a custom routine.

12. The system of claim 8 , wherein the received data is a subset of all the available data for the client.

13. The system of claim 8 , wherein the processor-based application, when executed on a computer, will further cause the processor to:

retrieve data from a cache based on the synchronization request; and

send the data to the requesting user.

14. The system of claim 13 , wherein the synchronization request asks for a subset of synchronization data.

15. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:

receive a client request to synchronize the client with updates from a database;

determine a client type based on the request;

select, based on the determined client type, a routine from a plurality of routines to retrieve data associated with the update from the database;

invoke the selected routine to retrieve the data from the database;

receive data from the database via the invoked routine, the data corresponding to the requested updates; and

send the received data to the client.

16. The computer program product of claim 15 , wherein the invoked routine is selected from a plurality of routines by a component that receives the client request to synchronize.

17. The computer program product of claim 15 , wherein the client type is a mobile client.

18. The computer program product of claim 15 , wherein the invoked routine is a custom routine.

19. The computer program product of claim 15 , wherein the received data is a subset of all the available data for the client.

20. The computer program product of claim 15 , wherein the program code includes further instructions to:

retrieve data from a cache based on the synchronization request; and

send the data to the requesting user.

21. The computer program product of claim 20 , wherein the synchronization request asks for a subset of synchronization data.

Assignments (2)
CHANGE OF NAME Recorded Oct 25, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069268/0034 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2014
From: KOTHULE, DEEPAK; MAZYAN, BAGRAT; FORSBERG, ERIK; ZHULINA, ALEKSANDRA; BERGAMO, PIERPAOLO
To: SALESFORCE.COM, INC.
Reel/Frame 034201/0563 →