IP Library Granted Patent US 11,334,568
Granted Patent B2
US 11,334,568 · App. 15/926,690 · Granted May 17, 2022

Deep caching in the data access layer of an enterprise portal application

Inventor: Vijay Mohan (Nashua, NH)
Assignee: Locus Robotics Corp.
G06F16/24552G06F16/2282G06F16/27
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,334,568
App. No.
15/926,690
Granted
May 17, 2022
Kind
B2
Abstract

A method and system for data retrieval in an enterprise portal application. The method and system include receiving, in a data access layer, a request for object data from a business logic layer. The method and system further includes validating, by a schema layer in communication with the data access layer, that cache data of a cache and data of one or more databases of the enterprise portal application are synchronized. The cache data may include table data and index data of the one or more databases of the enterprise portal application. The method and system further include retrieving, if the cache is validated, table data from the cache, and returning the object data to the business logic layer, the object data corresponding to the retrieved table data.

Claims (54)

1. A method of data retrieval in an enterprise portal application comprising,

receiving, in a data access layer, a request for object data from a business logic layer;

validating, by a schema layer in communication with the data access layer, that cache data of a cache and database data of one or more databases of the enterprise portal application are synchronized, wherein:

the cache data represents database data in a database schema of the database, the cache data comprising table data and index data of the one or more databases of the enterprise portal application,

the schema layer comprises database schema objects for representing the schema of the one or more databases, wherein the database schema objects are created by calling each respective one of the databases directly and retrieving a structure of each respective one of the databases; wherein the design components of the database structure are represented using object-oriented programming; and wherein an instance of each database schema object retrieved fully defines the schema of each respective one of the databases; and

the schema layer is configured to generate the cache data representing the database data in the database schema;

retrieving, if the cache is validated, the cache table data from the cache data; and

returning the object data to the business logic layer, the object data corresponding to the retrieved cache table data.

2. The method of claim 1 , wherein, if validated, the cache data comprises an entirety of the database table data and database index data of the one or more databases.

3. The method of claim 1 , wherein validating the cache comprises comparing a total database row count of the one or more databases with a cache row count.

4. The method of claim 1 , wherein validating the cache comprises comparing a maximum time stamp of one or more database tables of the one or more databases to a maximum time stamp of a corresponding cache table.

5. The method of claim 1 , wherein validating the cache comprises comparing database table data columns and database table data types of the one or more database tables to cache table data columns and cache table data types for a corresponding cache table in the cache data.

6. The method of claim 1 , wherein if the retrieving of the table data from the validated cache returns no data, returning null object data to the business logic layer.

7. The method of claim 1 , wherein the cache index data includes indexes of the one or more databases.

8. The method of claim 7 , wherein retrieving the cache table data from the cache further comprises searching the indexes of the cache index data to locate the cache table data to be retrieved.

9. The method of claim 1 , wherein the validity of the cache is maintained by a schema layer in communication with a change management system, wherein the schema layer is configured to generate the cache data representing the database data in the database schema.

10. The method of claim 9 , further comprising sending, if the cache is invalidated, a message to the change management system to synchronize the cache with the one or more databases.

11. The method of claim 9 , wherein maintaining the cache comprises periodically validating the cache by the change management system; and, if invalidated, synchronizing the cache to the one or more databases.

12. The method of claim 9 , wherein the schema layer in communication with the change management system generates database schema objects that are identical to the database schema objects generated by the schema layer in communication with the data access layer.

13. The method of claim 11 , further comprising retrieving, if the cache is invalidated, a changeset comprising changes to the one or more databases.

14. The method of claim 13 , further comprising:

comparing the schema of the changeset to the database schema objects created by the schema layer from the database to verify that the changeset is compatible with the cache data and the database schema objects, and

at least one of passing the changeset to the cache for updating the cache data or deleting and recreating the corresponding database schema objects in the schema layer.

15. The method of claim 13 , wherein, if the cache is invalidated, waiting a finite time period during a database write operation, and retrieving database table data directly from the one or more databases if the write operation takes more than a configurable period of time.

16. A data retrieval system for an enterprise portal application, comprising:

a cache including cache data representing database data in a database schema, the cache data comprising table data and index data of one or more databases of the enterprise portal application;

a schema layer comprising database schema objects for representing the schema of the one or more databases, wherein:

the schema layer comprises database schema objects for representing the schema of the one or more databases, wherein the database schema objects are created by calling each respective one of the databases directly and retrieving a structure of each respective one of the databases; wherein the design components of the database structure are represented using object-oriented programming; and wherein an instance of each database schema object retrieved fully defines the schema of each respective one of the databases; and

the schema layer is configured to generate the cache data representing the database data in the database schema; and

a data access layer in communication with a business logic layer, the cache, the schema layer, and the one or more databases, the data access layer including:

one or more cache access modules for providing communication between the data access layer and the cache,

one or more database access modules for providing communication between the data access layer and the one or more databases, and

a gatekeeper module configured to retrieve cache table data from the cache via the cache access modules in response to validation of the cache and further configured to retrieve database table data from the one or more databases via the database access modules in response to invalidation of the cache,

wherein the data access layer is configured to:

receive a request for object data from a business logic layer,

validate, by the schema layer, that the cache data of the cache and database data of the one or more databases are synchronized,

retrieve, by the gatekeeper module, if the cache is validated, the cache table data from the cache data, and

return the object data to the business logic layer, the object data corresponding to the retrieved cache table data.

17. The system of claim 16 , the gatekeeper module further configured to:

retrieve, if the cache is invalidated, a changeset comprising changes to the one or more databases;

compare the schema of the changeset to the database schema objects created by the schema layer from the database to verify that the changeset is compatible with the cache data and the database schema objects, and

at least one of pass the changeset to the cache for updating the cache data or delete and recreate the corresponding database schema objects in the schema layer.

18. The system of claim 16 , wherein the validity of the cache is maintained by a schema layer in communication with a change management system, wherein the schema layer is configured to generate the cache data representing the database data in the database schema.

19. The system of claim 18 , wherein maintaining the cache comprises periodically validating the cache by the change management system; and, if invalidated, synchronizing the cache to the one or more databases.

20. The system of claim 18 , wherein the schema layer in communication with the data access layer and the schema layer in communication with the change management system generate identical database schema objects.

21. The system of claim 20 , wherein the schema layer in communication with the data access layer and the schema layer in communication with the change management system are instances of identical schema layers.

22. A non-transitory computer readable medium including program instructions for execution by a processor of an enterprise portal application, the instructions causing the processor to:

receive, in a data access layer, a request for object data from a business logic layer;

validate, by a schema layer in communication with the data access layer, that cache data of a cache and database data of one or more databases of the enterprise portal application are synchronized, wherein:

the cache data represents database data in a database schema of the database, the cache data comprising table data and index data of the one or more databases of the enterprise portal application, and

the schema layer comprises database schema objects for representing the schema of the one or more databases, wherein the database schema objects are created by calling each respective one of the databases directly and retrieving a structure of each respective one of the databases; wherein the design components of the database structure are represented using object-oriented programming; and wherein an instance of each database schema object retrieved fully defines the schema of each respective one of the databases; and

the schema layer is configured to generate the cache data representing the database data in the database schema;

retrieve, if the cache is validated, the cache table data from the cache data; and

return the object data to the business logic layer, the object data corresponding to the retrieved cache table data.

Assignments (7)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT REEL 007759, FRAME 0295 Recorded Dec 19, 2024
From: LOCUS ROBOTICS CORP.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 069743/0206 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT REEL 007759, FRAME 0314 Recorded Dec 19, 2024
From: LOCUS ROBOTICS CORP.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 069743/0192 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE RECEIVING PARTY DATA PREVIOUSLY RECORDED ON REEL 69386 FRAME 647. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Dec 11, 2024
From: LOCUS ROBOTICS CORP.
To: HERCULES CAPITAL, INC.
Reel/Frame 069589/0575 →
SECURITY INTEREST Recorded Nov 19, 2024
From: LOCUS ROBOTICS CORP.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 069386/0647 →
SECURITY INTEREST Recorded Jun 22, 2022
From: LOCUS ROBOTIC CORP.
To: SILICON VALLEY BANK
Reel/Frame 060402/0874 →
SECURITY INTEREST Recorded Jun 22, 2022
From: LOCUS ROBOTIC CORP.
To: SILICON VALLEY BANK
Reel/Frame 060402/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2019
From: MOHAN, VIJAY
To: LOCUS ROBOTICS CORP.
Reel/Frame 050814/0254 →
Continuity (1)
Related Publication 20190294688A1 · Sep 26, 2019