IP Library › Granted Patent US 9,477,535
Granted Patent B2
US 9,477,535 · App. 13/765,529 · Granted Oct 25, 2016

Connection pool for accessing a backend processing system

Inventor: James Crawford (Dublin, IE)
Assignee: Business Objects Software Ltd.
G06F9/54H04L29/06319H04L29/08576H04L67/42G06F2209/5011
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,477,535
App. No.
13/765,529
Granted
Oct 25, 2016
Kind
B2
Abstract

Example systems and methods of providing a connection with a backend processing system are presented. In one example, a request for a connection between the backend processing system and a user of an application is received. One of a plurality of connections with the backend processing system is selected. Each of the plurality of connections is bound with a corresponding generic user session in the backend processing system. In response to the request, the selected connection is unbound from a generic user session and bound with a user session corresponding to the user of the application. Access to the selected connection is provided to the user of the application.

Claims (68)

1. A method of providing a connection with a backend processing system, the method comprising:

receiving, from an application, a request for a connection between the backend processing system and a user of the application;

selecting one of a plurality of connections with the backend processing system, each of the plurality of connections bound with a corresponding generic user session in the backend processing system;

unbinding, at the backend processing system, in response to receiving the request, the one of the plurality of connections from a generic user session bound with the one of the plurality of connections;

binding, at the backend processing system, a user session corresponding to the user of the application with the one of the plurality of connections;

returning, after the unbinding of the generic user session from the one of the plurality of connections, the generic user session to a generic user session cache, in the backend processing system, that stores a number of generic user sessions equal to the number of bound user sessions; and

providing, to the user of the application, in response to the binding of the user session corresponding to the user of the application, access to the one of the plurality of connections.

2. The method of claim 1 , further comprising:

determining whether a user session corresponding to the user of the application exists; and

creating, in response to a determination that a user session corresponding to the user of the application does not exist, the user session corresponding to the user of the application.

3. The method of claim 1 , further comprising: retrieving, prior to the binding of the user session corresponding to the user of the application with the one of the plurality of connections, the user session corresponding to the user of the application from a user session cache in the backend processing system.

4. The method of claim 1 , further comprising:

receiving, from the application, a second request for a second connection between the backend processing system and the user of the application;

unbinding, at the backend processing system, in response to receiving the second request, a second one of the plurality of connections from a second generic user session bound with the second one of the plurality of connections;

binding, at the backend processing system, a second user session corresponding to the user of the application with the second one of the plurality of connections; and

providing, to the user of the application, in response to the binding of the second user session corresponding to the user of the application, access to the second one of the plurality of connections.

5. The method of claim 1 , further comprising:

receiving, from the application, a second request for a second connection between the backend processing system and a second user of the application;

unbinding, at the backend processing system, in response to receiving the second request, a second one of the plurality of connections from a second generic user session bound with the second one of the plurality of connections;

binding, at the backend processing system, a second user session corresponding to the second user of the application with the second one of the plurality of connections; and

providing, to the second user of the application, in response to the binding of the second user session corresponding to the second user of the application, access to the second one of the plurality of connections.

6. The method of claim 1 , further comprising:

determining, in response to receiving the request, whether the user of the application has been granted access to the backend processing system; and

returning, in response to determining that the user of the application has not been granted access to the backend processing system, an indication to the user that a connection is unavailable.

7. The method of claim 1 , further comprising: tracking, at the backend processing system, usage of the backend processing system over the one of the plurality of connections by the user of the application.

8. The method of claim 1 , further comprising:

determining, in response to receiving the request, whether one of the plurality of connections is currently bound with a generic user session;

the unbinding of the one of the plurality of connections being in response to determining that the one of the plurality of connections is bound with a generic user session.

9. The method of claim 8 , further comprising:

determining, based on a determination that none of the plurality of connections are currently bound with a generic user session, whether a maximum number of connections exists; and

returning, based on determining that the maximum number of connections exists, to the user of the application, in response to the request, an indication that a connection is unavailable.

10. The method of claim 9 , further comprising:

creating, based on determining that the maximum number of connections does not exist, an additional connection with the backend processing system;

creating an additional generic user session; and

binding the additional connection to the additional generic user session.

11. The method of claim 1 , further comprising:

receiving, from the application, a second request to close the one of the plurality of connections between the backend processing system and the user of the application;

unbinding, at the backend processing system, in response to receiving the second request, the one of the plurality of connections from the user session corresponding to the user of the application; and

binding, at the backend processing system, a generic user session from the generic user session cache with the one of the plurality of connections.

12. The method of claim 11 , further comprising:

returning, after the unbinding of the one of the plurality of connections from the user session corresponding to the user of the application, the user session corresponding to the user of the application to a user session cache in the backend processing system; and

retrieving, prior to the binding of the generic user session with the one of the plurality of connections, the generic user session from the generic user session cache in the backend processing system.

13. A backend processing system comprising:

at least one processor; and

memory comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

receiving, from an application, a request for a connection between the backend processing system and a user of the application;

selecting one of a plurality of connections with the backend processing system, each of the plurality of connections bound with a corresponding generic user session in the backend processing system;

unbinding, in response to receiving the request, one of the plurality of connections from a generic user session bound with the one of the plurality of connections;

binding a user session corresponding to the user of the application with the one of the plurality of connections;

returning, after the unbinding of the generic user session from the one of the plurality of connections, the generic user session to a generic user session cache, in the backend processing system, that stores a number of generic user sessions equal to the number of bound user sessions; and

providing, to the user of the application, in response to the binding of the user session corresponding to the user of the application, access to the one of the plurality of connections.

14. The backend processing system of claim 13 , the operations further comprising: retrieving, prior to the binding of the user session corresponding to the user of the application with the one of the plurality of connections, the user session corresponding to the user of the application from a user session cache in the backend processing system.

15. The backend processing system of claim 13 , the operations further comprising at least one of:

determining, in response to receiving the request, whether the user of the application has been granted access to the backend processing system; and

tracking usage of the backend processing system over the one of the plurality of connections by the user of the application.

16. The backend processing system of claim 13 , the backend processing system comprising a database system.

17. The backend processing system of claim 13 , the operations further comprising:

receiving, from the application, a second request to close the one of the plurality of connections between the backend processing system and the user of the application;

unbinding, in response to receiving the second request, the one of the plurality of connections from the user session corresponding to the user of the application; and

binding a generic user session with the one of the plurality of connections.

18. The backend processing system of claim 17 , the operations further comprising:

returning, after the unbinding of the one of the plurality of connections from the user session corresponding to the user of the application, the user session corresponding to the user of the application to a user session cache in the backend processing system; and

retrieving, prior to the binding of the generic user session with the one of the plurality of connections, the generic user session from the generic user session cache in the backend processing system.

19. A non-transitory computer-readable storage medium comprising instructions that, when executed by at least one processor of a machine, cause the machine to perform operations comprising:

maintaining a plurality of unused connections, each of the plurality of unused connections bound with a generic user session in a backend processing system;

maintaining a plurality of used connections, each of the plurality of used connections employed by a user of an application to access the backend processing system, each of the plurality of used connections bound with a user session in the backend processing system, the user session of an associated used connection corresponding to the user of the application accessing the backend processing system via the associated used connection; and

supplying a generic user session cache, in the backend processing system, comprising generic user sessions available for binding with an unused connection, the generic user session cache comprising a number of generic user sessions equal to the number of bound user sessions.

20. The computer-readable storage medium of claim 19 , the operations further comprising: supplying a user session cache in the backend processing system, the user session cache comprising at least one user session associated with a first user of the application, at least one user session available for binding with a used connection to facilitate access to the backend processing system by the first user of the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2013
From: CRAWFORD, JAMES
To: BUSINESS OBJECTS SOFTWARE LTD.
Reel/Frame 029800/0048 →
Continuity (1)
Related Publication 20140229525A1 · Aug 14, 2014