IP Library Granted Patent US 10,594,802
Granted Patent B1
US 10,594,802 · App. 14/248,215 · Granted Mar 17, 2020

System and method for sharing stateful information

Inventors: Xilang Yan (Zhuhai, CN); Yinghua Qin (Zhuhai, CN)
Assignee: QUEST SOFTWARE INC.
H04L67/142H04L67/02
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 10,594,802
App. No.
14/248,215
Granted
Mar 17, 2020
Kind
B1
Abstract

In one embodiment, a method includes receiving a HTTP request from a client device, the HTTP request initiating a user session. The method further includes dispatching the HTTP request to a selected application server of a set of application servers. In addition, the method includes servicing the request. Moreover, the method includes storing stateful information as at least one object in a central object store, wherein each of the at least one object is accessible via a lookup key. Also, the method includes generating a cookie. Further, the method includes encrypting into the cookie each lookup key for the at least one object. In addition, the method includes transmitting a response to the client device, the response comprising the cookie.

Claims (62)

1. A method comprising, on a computer system comprising a web server and a set of application servers:

receiving, at the web server, a hypertext transfer protocol (HTTP) request from a client device, the HTTP request initiating a user session;

the web server dispatching the HTTP request to a first selected application server of the set of application servers based, at least in part, on a load-balancing scheme;

the first selected application server servicing the request;

responsive to the servicing, the first selected application server storing stateful information for the user session as at least one object in a central object store that is shared across the set of application servers, wherein each of the at least one object is accessible via a lookup key;

the first selected application server generating a cookie;

the first selected application server encrypting into the cookie each lookup key for the at least one object;

the web server transmitting a response to the client device, the response comprising the cookie;

the web server receiving a subsequent request in relation to the user session from the client device, the subsequent request comprising the cookie;

the web server dispatching the subsequent request to a second selected application server of the set of application servers based, at least in part, on the load-balancing scheme, wherein the second selected application server is different from the first selected application server, wherein each lookup key for the at least one object is decrypted from the cookie; and

using each decrypted lookup key, the second selected application server retrieving the stateful information from the central object store.

2. The method of claim 1 , comprising:

the second selected application server servicing the subsequent request;

the second selected application server storing additional stateful information for the user session in the central object store;

the second selected application server generating an updated cookie;

the second selected application server encrypting into the updated cookie one or more lookup keys for the additional stateful information; and

the web server transmitting a second response to the client device, the second response comprising the updated cookie.

3. The method of claim 1 , wherein each lookup key of the at least one lookup key comprises a session-independent lookup key that identifies a particular object of the central object store.

4. The method of claim 3 , wherein the at least one lookup key comprises a plurality of session-independent lookup keys, each session-independent lookup key identifying a particular object of the central object store.

5. The method of claim 1 , wherein the encrypting comprises utilizing a security key that is common across the set of application servers.

6. The method of claim 1 , comprising performing the method for each of a plurality of client devices.

7. An information handling system comprising a web server and a set of application servers, wherein the web server in combination with the set of application servers are operable to implement a method comprising:

receiving, at the web server, a hypertext transfer protocol (HTTP) request from a client device, the HTTP request initiating a user session;

the web server dispatching the HTTP request to a first selected application server of the set of application servers based, at least in part, on a load-balancing scheme;

the first selected application server servicing the request;

responsive to the servicing, the first selected application server storing stateful information for the user session as at least one object in a central object store that is shared across the set of application servers, wherein each of the at least one object is accessible via a lookup key;

the first selected application server generating a cookie;

the first selected application server encrypting into the cookie each lookup key for the at least one object;

the web server transmitting a response to the client device, the response comprising the cookie;

the web server receiving a subsequent request in relation to the user session from the client device, the subsequent request comprising the cookie;

the web server dispatching the subsequent request to a second selected application server of the set of application servers based, at least in part, on the load-balancing scheme, wherein the second selected application server is different from the first selected application server, wherein each lookup key for the at least one object is decrypted from the cookie; and

using each decrypted lookup key, the second selected application server retrieving the stateful information from the central object store.

8. The information handling system of claim 7 , wherein the method comprises:

the second selected application server servicing the subsequent request;

the second selected application server storing additional stateful information for the user session in the central object store;

the second selected application server generating an updated cookie;

the second selected application server encrypting into the updated cookie one or more lookup keys for the additional stateful information; and

the web server transmitting a second response to the client device, the second response comprising the updated cookie.

9. The information handling system of claim 7 , wherein each lookup key of the at least one lookup key comprises a session-independent lookup key that identifies a particular object of the central object store.

10. The information handling system of claim 9 , wherein the at least one lookup key comprises a plurality of session-independent lookup keys, each session-independent lookup key identifying a particular object of the central object store.

11. The information handling system of claim 7 , wherein the encrypting comprises utilizing a security key that is common across the set of application servers.

12. The information handling system of claim 7 , the method comprising performing the method for each of a plurality of client devices.

13. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:

receiving, at a web server, a hypertext transfer protocol (HTTP) request from a client device, the HTTP request initiating a user session;

the web server dispatching the HTTP request to a first selected application server of a set of application servers based, at least in part, on a load-balancing scheme;

the first selected application server servicing the request;

responsive to the servicing, the first selected application server storing stateful information for the user session as at least one object in a central object store that is shared across the set of application servers, wherein each of the at least one object is accessible via a lookup key;

the first selected application server generating a cookie;

the first selected application server encrypting into the cookie each lookup key for the at least one object;

the web server transmitting a response to the client device, the response comprising the cookie;

the web server receiving a subsequent request in relation to the user session from the client device, the subsequent request comprising the cookie;

the web server dispatching the subsequent request to a second selected application server of the set of application servers based, at least in part, on the load-balancing scheme, wherein the second selected application server is different from the first selected application server, wherein each lookup key for the at least one object is decrypted from the cookie; and

using each decrypted lookup key, the second selected application server retrieving the stateful information from the central object store.

14. The computer-program product of claim 13 , wherein the method comprises:

the second selected application server servicing the subsequent request;

the second selected application server storing additional stateful information for the user session in the central object store;

the second selected application server generating an updated cookie;

the second selected application server encrypting into the updated cookie one or more lookup keys for the additional stateful information; and

the web server transmitting a second response to the client device, the second response comprising the updated cookie.

15. The computer-program product of claim 13 , wherein each lookup key of the at least one lookup key comprises a session-independent lookup key that identifies a particular object of the central object store.

16. The computer-program product of claim 15 , wherein the at least one lookup key comprises a plurality of session-independent lookup keys, each session-independent lookup key identifying a particular object of the central object store.

17. The computer-program product of claim 13 , wherein the encrypting comprises utilizing a security key that is common across the set of application servers.

Assignments (26)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044719/0565 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 033625 FRAME 0748 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0050 →
RELEASE OF REEL 033625 FRAME 0688 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040027/0757 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 033625 FRAME 0711 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.
Reel/Frame 040016/0903 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033625/0748 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033625/0711 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2014
From: COMPELLENT TECHNOLOGIES, INC.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 033625/0688 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2014
From: YAN, XILANG; QIN, YINGHUA
To: DELL SOFTWARE INC.
Reel/Frame 032636/0899 →
Cited By (1)
US 12,531,923