IP Library Granted Patent US 11,720,566
Granted Patent B2
US 11,720,566 · App. 17/340,706 · Granted Aug 8, 2023

Mobile data synchronization framework

Inventors: Nabil Enayet (Jersey City, NJ); Tao Ye (Jersey City, NJ); Tejas Yadav (West Haven, CT); Asim Rizvi (Howell, NJ)
Assignee: Nuvolo Technologies Corporation
G06F16/2455G06F16/178
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 11,720,566
App. No.
17/340,706
Granted
Aug 8, 2023
Kind
B2
Abstract

Methods, systems, apparatus, including computer programs encoded on computer storage media, for fast download of a portion of an enterprise database. In one aspect, the method includes actions of receiving an enterprise database access request, determining a portion of the enterprise database that is accessible to a user that originated the access request, and determining that the received request is a first occurrence of a request for access. Responsive to the first request for access, the operations may also include (i) retrieving each record of the portion of the enterprise database for storage in a synchronization queue, (ii) receiving a download request based on a determination that a first record of the portion of the enterprise database has been placed in the synchronization queue, and (iii) providing the first record to a user device while the server continues to transfer other records of the enterprise database to the synchronization queue.

Claims (69)

1. A computer-implemented method comprising:

receiving, by a server device and from a user device, a request to access a portion of an enterprise database, wherein the portion of the enterprise database comprises a data package comprising a plurality of records;

determining, by the server device, that the request is a first occurrence of a request for access to the portion of the enterprise database; and

in response to determining:

(i) initiating, by the server device, a retrieval process that retrieves each record of the plurality of records of the data package for storage in a synchronization queue; and

(ii) providing, by the server device to the user device, a first record of the plurality of records of the data package, while the server device continues, in parallel to providing the first record to be downloaded by the user device, to identify and to transfer one or more other records of the plurality of records of the data package to the synchronization queue.

2. The method of claim 1 , further comprising:

continuing to provide, by the server device, a remainder of the plurality of records that have been transferred to the synchronization queue until each of the plurality of records transferred to the synchronization queue have been provided to the user device.

3. The method of claim 1 , further comprising:

determining, by the server device while providing, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) a first time stamp indicating a point in time when the user device synchronized records with the enterprise database and (ii) a respective second time stamp, for each record of the plurality of records, indicating a point in time that each respective record of the plurality of records was last updated.

4. The method of claim 3 , wherein determining, by the server device, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) the first time stamp and (ii) the second respective time stamp, for each record of the plurality of records, comprises:

determining, by the server device, that the second respective time stamp occurs at a point in time after the first time stamp.

5. The method of claim 4 , further comprising:

obtaining, by the server device, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp; and

initiating, by the server device, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue.

6. The method of with claim 1 , further comprising:

in response to determining, by the server device, that the request is different from a first occurrence of a request for access to the portion of the enterprise database by the user device:

initiating, by the server device, a delta synchronization process that is configured to determine whether one or more of the plurality of records of the portion of the enterprise database are associated with a second respective time stamp indicating a point in time that each respective record of the plurality of records was last updated that occurs at a point in time that is later than a first time stamp indicating a point in time when the user device synchronized records with the enterprise database;

obtaining, by the server device, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp;

initiating, by the server device, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue;

receiving, by the server device, a download request from a user device, wherein the download request from the user device is received responsive to a determination by the user device that a first record of the plurality of records has been placed in the synchronization queue by the server device; and

providing, by the server device and responsive to the download request, the first record of the plurality of records while the server device continues to transfer one or more other records of the plurality of records to the synchronization queue.

7. The method of claim 1 , wherein the request that is different from the first occurrence of a request for access to the portion of the enterprise database by the user device comprises a periodic request for an update to the portion of the enterprise database that is stored on the user device.

8. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by one or more computers, to cause the one or more computers to perform operations comprising:

receiving, by a server device and from a user device, a request to access a portion of an enterprise database, wherein the portion of the enterprise database comprises a data package comprising a plurality of records;

determining, by the server device, that the request is a first occurrence of a request for access to the portion of the enterprise database; and

in response to determining:

(i) initiating, by the server device, a retrieval process that retrieves each record of the plurality of records of the data package for storage in a synchronization queue; and

(ii) providing, by the server device to the user device, a first record of the plurality of records of the data package, while the server device continues, in parallel to providing the first record to be downloaded by the user device, to identify and to transfer one or more other records of the plurality of records of the data package to the synchronization queue.

9. The system of claim 8 , wherein the operations further comprise:

continuing to provide, by the server device, a remainder of the plurality of records that have been transferred to the synchronization queue until each of the plurality of records transferred to the synchronization queue have been provided to the user device.

10. The system of claim 8 , wherein the operations further comprise:

determining, by the server device while providing, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) a first time stamp indicating a point in time when the user device synchronized records with the enterprise database and (ii) a respective second time stamp, for each record of the plurality of records, indicating a point in time that each respective record of the plurality of records was last updated.

11. The system of claim 10 , wherein determining, by the server device, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) the first time stamp and (ii) the second respective time stamp, for each record of the plurality of records, comprises:

determining, by the server device, that the second respective time stamp occurs at a point in time after the first time stamp.

12. The system of claim 11 , wherein the operations further comprise:

obtaining, by the server device, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp; and

initiating, by the server device, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue.

13. The system of claim 8 , wherein the operations further comprise:

in response to determining, by the server device, that the request is different from a first occurrence of a request for access to the portion of the enterprise database by the user device:

initiating, by the server device, a delta synchronization process that is configured to determine whether one or more of the plurality of records of the portion of the enterprise database are associated with a second respective time stamp indicating a point in time that each respective record of the plurality of records was last updated that occurs at a point in time that is later than a first time stamp indicating a point in time when the user device synchronized records with the enterprise database;

obtaining, by the server device, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp;

initiating, by the server device, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue;

receiving a download request from a user device, wherein the download request from the user device is received responsive to a determination by the user device that a first record of the plurality of records has been placed in the synchronization queue by the server device; and

providing, by the server device and responsive to the download request, the first record of the plurality of records while the server device continues to transfer one or more other records of the plurality of records to the synchronization queue.

14. The system of claim 8 , wherein the request that is different from the first occurrence of a request for access to the portion of the enterprise database by the user device comprises a periodic request for an update to the portion of the enterprise database that is stored on the user device.

15. A computer-readable medium encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

receiving, by a server device and from a user device, a request to access a portion of an enterprise database, wherein the portion of the enterprise database comprises a data package comprising a plurality of records;

determining, by the server device, that the request is a first occurrence of a request for access to the portion of the enterprise database; and

in response to determining:

(i) initiating, by the server device, a retrieval process that retrieves each record of the plurality of records of the data package for storage in a synchronization queue; and

(ii) providing, by the server device to the user device, a first record of the plurality of records of the data package, while the server device continues, in parallel to providing the first record to be downloaded by the user device, to identify and to transfer one or more other records of the plurality of records of the data package to the synchronization queue.

16. The computer-readable medium of claim 15 , wherein the operations further comprise:

continuing to provide, by the server device, a remainder of the plurality of records that have been transferred to the synchronization queue until each of the plurality of records transferred to the synchronization queue have been provided to the user device.

17. The computer-readable medium of claim 15 , wherein the operations further comprise:

determining, by the server device while providing, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) a first time stamp indicating a point in time when the user device synchronized records with the enterprise database and (ii) a respective second time stamp, for each record of the plurality of records, indicating a point in time that each respective record of the plurality of records was last updated.

18. The computer-readable medium of claim 17 , wherein determining, by the server device, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) the first time stamp and (ii) the second respective time stamp, for each record of the plurality of records, comprises:

determining, by the server device, that the second respective time stamp occurs at a point in time after the first time stamp.

19. The computer-readable medium of claim 18 , wherein the operations further comprise:

obtaining, by the server device, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp; and

initiating, by the server device, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue.

20. The computer-readable medium of claim 15 , wherein the operations further comprise:

in response to determining, by the server device, that the request is different from a first occurrence of a request for access to the portion of the enterprise database by the user device:

initiating, by the server device, a delta synchronization process that is configured to determine whether one or more of the plurality of records of the portion of the enterprise database are associated with a second respective time stamp indicating a point in time that each respective record of the plurality of records was last updated that occurs at a point in time that is later than a first time stamp indicating a point in time when the user device synchronized records with the enterprise database;

obtaining, by the server device, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp;

initiating, by the server device, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue;

receiving a download request from a user device, wherein the download request from the user device is received responsive to a determination by the user device that a first record of the plurality of records has been placed in the synchronization queue by the server device; and

providing, by the server device and responsive to the download request, the first record of the plurality of records while the server device continues to transfer one or more other records of the plurality of records to the synchronization queue.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2023
From: PACIFIC WESTERN BANK
To: NUVOLO TECHNOLOGIES CORPORATION
Reel/Frame 065445/0445 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE SECOND INVENTOR'S NAME PREVIOUSLY RECORDED AT REEL: 061317 FRAME: 0513. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 3, 2023
From: ENAYET, NABIL; YE, TAO; YADAV, TEJAS; RIZVI, ASIM
To: NUVOLO TECHNOLOGIES CORPORATION
Reel/Frame 063499/0957 →
SECURITY INTEREST Recorded Oct 11, 2022
From: NUVOLO TECHNOLOGIES CORPORATION
To: PACIFIC WESTERN BANK
Reel/Frame 061381/0408 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2022
From: ENAYET, NABIL; YE, JAKE; YADAV, TEJAS; RIZVI, ASIM
To: NUVOLO TECHNOLOGIES CORPORATION
Reel/Frame 061317/0513 →
SECURITY INTEREST Recorded Feb 18, 2022
From: NUVOLO TECHNOLOGIES CORPORATION
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 059042/0332 →
Continuity (3)
Continuation 16566303 · Sep 10, 2019
Provisional Application 62729387 · Sep 10, 2018
Related Publication 20220035804A1 · Feb 3, 2022
Cited By (2)
US 12,332,898 US 12,581,019