IP Library Granted Patent US 7,680,797
Granted Patent B1
US 7,680,797 · App. 10/897,744 · Granted Mar 16, 2010

Methods and systems for providing a data access layer

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 7,680,797
App. No.
10/897,744
Granted
Mar 16, 2010
Kind
B1
Abstract

A preferred system for providing data access comprises an application program interface configured to delegate a request to at least one service providers also included in the system. The service providers may include a synchronization manager configured to maintain, based upon the request, data consistency between a first server containing the service providers and a second server and a cache manager configured to cache, based upon the request, a portion of a database query. In addition, the service providers may include a pre-fetch service configured to anticipate a database query, perform the anticipated query, and cache the results of the anticipated query, and a security manager configured to determine a restriction on the request based upon a role of a user associated with the request.

Claims (61)

1. A system for providing a re-usable data access framework, the system comprising:

first and second application modules generating requests for information; and

a data access layer, including a first server that includes an application program interface and a plurality of service providers, the application program interface configured to:

receive a request from the first application module, and

delegate the request to at least one of the plurality of service providers to manage data associated with the request,

wherein the plurality of service providers comprise:

a synchronization manager configured to:

maintain, in response to a determination that the request is an update shared data request for updating the shared data, data consistency for shared data held in a memory of the first server and a memory of a second server and

send information associated with the update shared data request to the second application module from a first message service provider located in the first server to a second message service provider located in the second server;

a cache manager configured to:

cache results of a first database query in response to the request being a database access request, and

provide a portion of the results of the first database query to one of the first or second application modules in response to receipt of a second database query from one of the first or the second application modules;

a pre-fetch service configured to cause the cache manager to:

perform a third database query in response to the first or the second application module predicting a user action,

cache results of the third database query, and

provide the results of the third database query to the application program interface when the user action is received by the one of the first or the second application modules; and

a security manager configured to determine a restriction on the request based upon a role of a user associated with the request.

2. The system of claim 1 , wherein at least one of the first or second application modules executes instructions using the Java programming environment.

3. The system of claim 1 , wherein the pre-fetch service causes the data to be pre-fetched from the database and stored in cache for future requests.

4. The system of claim 1 , wherein the cache manager causes the portion of the database query results that resides in the cache to expire after a first period of time.

5. The system of claim 1 , wherein the user action sends data from a hyperlink identified in the request.

6. The system of claim 1 , wherein the restriction comprises one of a granted request, a declined request, and a revised request.

7. The system of claim 1 , wherein the plurality of service providers further comprise a monitoring service, the monitoring service being configured to:

monitor a plurality of connections between the first server and the database and

close a first connection within the plurality of connections if the first connection is idle for greater than a second period of time.

8. The system of claim 1 , further comprising a database utility configured to provide database access to the service providers.

9. The system of claim 1 , wherein the system comprises a layer, located between an application server and a database server, which centralizes data access and management-related activities.

10. A method for providing a re-usable data access framework, the method comprising:

receiving a request from at least one of first and second application modules by a data access layer having an application program interface located in a first server;

delegating the request to at least one of a plurality of service providers, located in the first server, to manage data associated with the request;

maintaining, using at least one of the plurality of service providers in response to a determination that the request is an update shared data request for updating the shared data, data consistency for shared data held in a memory of the first server and a memory of a second server;

sending information associated with the request to the second application module from a first message service provider located in the first server to a second message service provider located in the second server;

caching results of a first database query, using at using at least one of the plurality of service providers, in response to a determination that the request is a database access request for updating;

providing a portion of the results of the first database query to one of the first or second application module in response to receiving a second database query from one of the first or the second application module;

causing at least one of the plurality of service providers to:

perform a third database query in response to the first or the second application module predicting a user action,

cache results of the third database query, and

provide the results of the third database query to the application program interface when the user action is received by one of the first or the second application module; and

determining a restriction on the request based upon a role of a user associated with the request if the request is received by a third service provider of the plurality of service providers.

11. The method of claim 10 , wherein at least one of the first or second application modules executes instructions using the Java programming environment.

12. The method of claim 10 , wherein the pre-fetch service causes data to be pre-fetched from the database and stored in cache for future requests.

13. The method of claim 10 , wherein the cache manager causes the portion of the database query results that resides in the cache to expire after a first period of time.

14. The method of claim 10 , wherein the user action sends data from a hyperlink identified in the request.

15. The method of claim 10 , wherein the restriction comprises one of a granted request, a declined quest, and a revised request.

16. The method of claim 10 , further comprising:

monitoring a plurality of connections between the first server and the database; and

closing a first connection within the plurality of connections if the first connection is idle for greater than a second period of time.

17. The method of claim 10 , further comprising providing database access through a database utility.

18. The method of claim 10 , wherein the method provides a layer, located between an application server and a database server, which centralizes data access and management-related activities.

19. A computer-readable storage medium on which is stored a set of instructions for providing a re-usable data access framework, which when executed, perform stages comprising:

receiving a request from at least one of first and second application modules by a data access layer having an application program interface located in a first server;

delegating the request to at least one of a plurality of service providers, located in the first server, to manage data associated with the request;

maintaining, using at least one of the plurality of service providers in response to a determination that the request is an update shared data request for updating the shared data, data consistency for shared data held in a memory of the first server and a memory of a second server;

sending information associated with the request to the second application module from a first message service provider located in the first server to a second message service provider located in the second server;

caching results of a first database query, using at using at least one of the plurality of service providers, in response to a determination that the request is a database access request for updating;

providing a portion of the results of the first database query to one of the first or second application module in response to receiving a second database query from one of the first or the second application module;

causing at least one of the plurality of service providers to:

perform a third database query in response to the first or the second application module predicting a user action,

cache results of the third database query, and

provide the results of the third database query to the application program interface when the user action is received by one of the first or the second application module; and

determining a restriction on the request based upon a role of a user associated with the request if the request is received by a third service provider of the plurality of service providers.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2014
From: VERIZON DATA SERVICES LLC
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 033428/0643 →
CHANGE OF NAME Recorded Jan 25, 2010
From: VERIZON DATA SERVICES INC.
To: VERIZON DATA SERVICES LLC
Reel/Frame 023843/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2007
From: JAIN, AKASH
To: VERIZON DATA SERVICES INC.
Reel/Frame 019909/0285 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2007
From: SINGH, AMIT; YANG, TAO; EBRAHIMI, FARIBORZ; AZZAM, MOHAMMAD
To: VERIZON DATA SERVICES INC.
Reel/Frame 019835/0715 →