IP Library Granted Patent US 11,042,547
Granted Patent B2
US 11,042,547 · App. 16/566,303 · Granted Jun 22, 2021

Mobile data synchronization framework

Inventors: Nabil Enayet (Jersey City, NJ); Jake 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,042,547
App. No.
16/566,303
Granted
Jun 22, 2021
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 (75)

1. A method comprising:

receiving, by a server device and from a user device, a request to access at least a portion of an enterprise database, wherein the portion of the enterprise database includes a plurality of records;

determining, by the server device based on the request and one or more roles associated with a user of the user device, a portion of the enterprise database that is determined to be accessible to the user of the user device;

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

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

(i) initiating, by the server, a retrieval process that is configured to retrieve each record of the plurality of records for storage in a synchronization queue that are (a) responsive to the user request and (b) determined to be accessible to the user;

(ii) 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; and

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

2. The method of claim 1 , the method further comprising:

continuing to provide, by the server, 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 , the method further comprising:

determining, by the server 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, 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, that one or more of the second respective time stamps occur at a point in time after the first time stamp.

5. The method of claim 4 , the method further comprising:

obtaining, by the server, 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, 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 claim 1 , the method further comprising:

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

initiating, by the server, 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, 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, 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; and

providing, by the server and responsive to the received download request, the first record of the plurality of records while the server 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 received request that is not 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 the operations comprising:

receiving, by a server device and from a user device, a request to access at least a portion of an enterprise database, wherein the portion of the enterprise database includes a plurality of records;

determining, by the server device based on the request and one or more roles associated with a user of the user device, a portion of the enterprise database that is determined to be accessible to the user of the user device;

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

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

(i) initiating, by the server, a retrieval process that is configured to retrieve each record of the plurality of records for storage in a synchronization queue that are (a) responsive to the user request and (b) determined to be accessible to the user;

(ii) 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; and

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

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

continuing to provide, by the server, 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 , the operations further comprising:

determining, by the server 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, 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, that one or more of the second respective time stamps occur at a point in time after the first time stamp.

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

obtaining, by the server, 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, 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 , the operations further comprising:

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

initiating, by the server, 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, 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, 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; and

providing, by the server and responsive to the received download request, the first record of the plurality of records while the server 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 received request that is not 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 or more computers, cause the one or more computers to perform the operations comprising:

receiving, by a server device and from a user device, a request to access at least a portion of an enterprise database, wherein the portion of the enterprise database includes a plurality of records;

determining, by the server device based on the request and one or more roles associated with a user of the user device, a portion of the enterprise database that is determined to be accessible to the user of the user device;

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

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

(i) initiating, by the server, a retrieval process that is configured to retrieve each record of the plurality of records for storage in a synchronization queue that are (a) responsive to the user request and (b) determined to be accessible to the user;

(ii) 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; and

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

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

continuing to provide, by the server, 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 , the operations further comprising:

determining, by the server 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, 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, that one or more of the second respective time stamps occur at a point in time after the first time stamp.

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

obtaining, by the server, 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, 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 , the operations further comprising:

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

initiating, by the server, 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, 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, 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; and

providing, by the server and responsive to the received download request, the first record of the plurality of records while the server 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: 052625 FRAME: 0990. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 1, 2023
From: ENAYET, NABIL; YE, TAO; YADAV, TEJAS; RIZVI, ASIM
To: NUVOLO TECHNOLOGIES CORPORATION
Reel/Frame 063500/0946 →
SECURITY INTEREST Recorded Feb 18, 2022
From: NUVOLO TECHNOLOGIES CORPORATION
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 059042/0332 →
SECURITY INTEREST Recorded Jul 15, 2021
From: NUVOLO TECHNOLOGIES CORPORATION
To: PACIFIC WESTERN BANK
Reel/Frame 056873/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2020
From: ENAYET, NABIL; YE, JAKE; YADAV, TEJAS; RIZVI, ASIM
To: NUVOLO TECHNOLOGIES CORPORATION
Reel/Frame 052625/0990 →
Continuity (2)
Provisional Application 62729387 · Sep 10, 2018
Related Publication 20200081888A1 · Mar 12, 2020
Cited By (1)
US 12,332,898