IP Library Granted Patent US 6,947,982
Granted Patent B1
US 6,947,982 · App. 09/686,470 · Granted Sep 20, 2005

Distributed session services

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 6,947,982
App. No.
09/686,470
Granted
Sep 20, 2005
Kind
B1
Abstract

A remote session server, or bank of remote session servers, is provided to a bank of web servers. Each web server maintains a cache that contains all of the session information for all sessions being serviced by that server. The web server utilizes its local cache to perform all session services. The remote session server maintains a copy of all session information from all caches, and is updated whenever changes are made on each web server. If a web server should go down, an ongoing session can be transferred to a different web server. In such event, the new web server is able to obtain the previous status of the session from the remote web server and continues serving the session in a transparent manner.

Claims (60)

1. A system for providing web services, comprising:

a plurality of web servers capable of hosting web browsing sessions, each session having session data associated therewith, each web server operable to:

store all of the session data for each session hosted by the web server; and

host each session without accessing session data from a remote location unless the web server is hosting the session for another web server that has failed;

a local director connected to a communications link and to the web servers, wherein the local director routes requests, each associated with a session, from remote browsers to a web server hosting the associated session; and

at least two remote session servers, each connected to a corresponding one or more of the plurality of web servers and operable to store a copy of the session data that is stored on its corresponding one or more web servers such that the session data for its corresponding one or more web servers is backed up on the remote session server;

the system operable to, when a particular one of the at least two remote session servers goes down, for each session for which a copy of its session data was stored on the particular remote session server, copy the session data for that session from the web server hosting that session to another remote session server of the at least two remote session servers such that the session data for that session will continue to be backed up on a functioning remote session server.

2. The system of claim 1 , wherein each web server has a local cache of session data for all sessions hosted on that web server.

3. The system of claim 1 , wherein each separate remote session server in the at least two remote sessions servers stores session data for a subset of sessions that does not overlap the subset of any other separate remote session server in the at least two remote session servers.

4. The system of claim 1 , wherein at least one of the separate remote session servers in the at least two remote session servers is operable to store a copy of session data of sessions that is also stored on at least one other remote session server in the at least two remote session servers such that the copies of the session data on the at least two remote session servers overlap.

5. The system of claim 1 , wherein a particular web server is operable to:

receive, substantially simultaneously, a plurality of updates to session data stored on the particular web server for a particular session hosted by the particular web server;

queue the plurality of substantially simultaneously received updates;

lock the session data for the particular session while updating the session data with each update in the plurality of updates such that the updates are made serially; and

communicate a copy of the updated session data stored on the particular web server to the remote session server corresponding to the particular web server only after all pending updates to the session data have been made.

6. A method for providing web session services, comprising:

connecting each of a plurality of web sessions to a corresponding one of a plurality of web servers, each web server hosting a plurality of the web sessions;

on each web server, caching all session data for each session hosted on that web server and hosting each session without accessing the session data from a remote location unless the web server is hosting the session for another web server that has failed;

copying the cached session data on each web server to one or more of at least two remote session servers, each remote session server corresponding to one or more of the plurality of web servers and storing a copy of the session data that is cached on its corresponding one or more web servers such that the session data for its corresponding one or more web servers is backed up on the remote session server; and

copying, when a particular one of the at least two remote session servers goes down, for each session for which a copy of its session data was stored on the particular remote session server, the session data for that session from the web server hosting that session to another remote session server of the at least two remote session servers such that the session data for that session will continue to be backed up on a functioning remote session server.

7. The method of claim 6 , further comprising:

when a web server goes down, transferring the sessions that such web server was hosting to others of the web servers; and

for each transferred session, copying session data for that session from the remote session server to a web server to which the session was transferred.

8. The method of claim 6 , wherein the session data for each of the plurality of sessions is copied to at least two different separate remote session servers such that the copies of the session data stored on the at least two remote session servers overlap.

9. The system of claim 1 , wherein:

when a particular web server fails, the local director is operable to assign the sessions being hosted by the particular web server to one or more different web servers; and

the remote session server is operable provide the session data for the sessions being hosted by the particular web server to the one or more different web servers.

10. The system of claim 9 , wherein the different web server comprises a standby web server operable to handle sessions of web servers that have failed.

11. The method of claim 6 , further comprising:

when a particular web server fails, assigning the sessions being hosted by the particular web server to one or more different web servers; and

providing, from the remote session server, the session data for the sessions being hosted by the particular web server to the one or more different web servers.

12. The method of claim 11 , wherein the different web server comprises a standby web server operable to handle sessions of web servers that have failed.

13. The method of claim 6 , further comprising:

receiving, substantially simultaneously, a plurality of updates to session data stored on a particular web server for a particular session hosted by the particular web server;

queuing the plurality of substantially simultaneously received updates;

locking the session data for the particular session while updating the session data with each update in the plurality of updates such that the updates are made serially; and

communicating a copy of the updated session data stored on the particular web server to the remote session server corresponding to the particular web server only after all pending updates to the session data have been made.

14. Software for providing web session services, the software being embodied in one or more computer-readable media and when executed using a computer system operable to:

connect each of a plurality of web sessions to a corresponding one of a plurality of web servers, each web server hosting a plurality of the web sessions;

on each web server, cache all session data for each session hosted on that web server and host each session without accessing the session data from a remote location unless the web server is hosting the session for another web server that has failed;

copy the cached session data on each web server to one or more of at least two remote session servers, each remote session server corresponding to one or more of the plurality of web servers and storing a copy of the session data that is cached on its corresponding one or more web servers such that the session data for its corresponding one or more web servers is backed up on the remote session server, and

copy, when a particular one of the at least two remote session servers goes down, for each session for which a copy of its session data was stored on the particular remote session server, the session data for that session from the web server hosting that session to another remote session server of the at least two remote session servers such that the session data for that session will continue to be backed up on a functioning remote session server.

15. The software of claim 14 , further operable to:

when a web server goes down, transfer the sessions that such web server was hosting to others of the web servers; and

for each transferred session, copying session data for that session from the remote session server to a web server to which the session was transferred.

16. The software of claim 14 , wherein the session data for each of the plurality of sessions is copied to at least two different separate remote session servers such that the copies of the session data stored on the at least two remote session servers overlap.

17. The software of claim 14 , further operable to:

when a particular web server fails, assign the sessions being hosted by the particular web server to one or more different web servers; and

provide, from the remote session server, the session data for the sessions being hosted by the particular web server to the one or more different web servers.

18. The software of claim 17 , wherein the different web server comprises a standby web server operable to handle sessions of web servers that have failed.

19. The software of claim 14 , further operable to:

receive, substantially simultaneously, a plurality of updates to session data stored on a particular web server for a particular session hosted by the particular web server;

queue the plurality of substantially simultaneously received updates;

lock the session data for the particular session while updating the session data with each update in the plurality of updates such that the updates are made serially; and

communicate a copy of the updated session data stored on the particular web server to the remote session server corresponding to the particular web server only after all pending updates to the session data have been made.

20. A system for providing web services, comprising:

means for connecting each of a plurality of web sessions to a corresponding one of a plurality of web servers, each web server hosting a plurality of the web sessions;

means for, on each web server, caching all session data for each session hosted on that web server and hosting each session without accessing the session data from a remote location unless the web server is hosting the session for another web server that has failed;

means for copying the cached session data on each web server to one or more of at least two remote session servers, each remote session server corresponding to one or more of the plurality of web servers and storing a copy of the session data that is cached on its corresponding one or more web servers such that the session data for its corresponding one or more web servers is backed up on the remote session server; and

means for copying, when a particular one of the at least two remote session servers goes down, for each session for which a copy of its session data was stored on the particular remote session server, the session data for that session from the web servers hosting that session to another remote session server of the at least two remote session servers such that the session data for that session will continue to be backed up on a functioning remote session server.

Assignments (17)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053383/0117) Recorded Nov 3, 2021
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BLUE YONDER GROUP, INC.
Reel/Frame 058794/0776 →
RELEASE OF SECURITY INTEREST Recorded Sep 16, 2021
From: JPMORGAN CHASE BANK, N.A.
To: BLUE YONDER GROUP, INC.; BLUE YONDER, INC.; JDA SOFTWARE SERVICES, INC.; I2 TECHNOLOGIES INTERNATIONAL SERVICES, LLC; MANUGISTICS SERVICES, INC.; MANUGISTICS HOLDINGS DELAWARE II, INC.; REDPRAIRIE COLLABORATIVE FLOWCASTING GROUP, LLC; JDA SOFTWARE RUSSIA HOLDINGS, INC.; REDPRAIRIE SERVICES CORPORATION; BY BOND FINANCE, INC.; BY NETHERLANDS HOLDING, INC.; BY BENELUX HOLDING, INC.
Reel/Frame 057724/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REEL 026468 FRAME NUMBER FROM 0199 TO 0119 PREVIOUSLY RECORDED ON REEL 055136 FRAME 0623. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTION ASSIGNMENT. Recorded Apr 19, 2021
From: I2 TECHNOLOGIES US, INC.
To: JDA TECHNOLOGIES US, INC.
Reel/Frame 056813/0110 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING AND RECEIVING PARTIES TO INCLUDE A PERIOD AFTER THE TERM INC PREVIOUSLY RECORDED AT REEL: 026740 FRAME: 0676. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 8, 2021
From: JDA TECHNOLOGIES US, INC.
To: JDA SOFTWARE GROUP, INC.
Reel/Frame 055257/0747 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING AND RECEIVING PARTIES TO INCLUDE A PERIOD AFTER THE TERM INC PREVIOUSLY RECORDED ON REEL 026468 FRAME 0199. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME FROM I2 TECHNOLOGIES US, INC. TO JDA TECHNOLOGIES US, INC.. Recorded Dec 12, 2020
From: I2 TECHNOLOGIES US, INC.
To: JDA TECHNOLOGIES US, INC.
Reel/Frame 055136/0623 →
SECURITY AGREEMENT Recorded Aug 3, 2020
From: BLUE YONDER GROUP, INC.
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 053383/0117 →
CHANGE OF NAME Recorded Apr 14, 2020
From: JDA SOFTWARE GROUP, INC.
To: BLUE YONDER GROUP, INC.
Reel/Frame 052392/0760 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 29556/0697 Recorded Oct 12, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: JDA SOFTWARE GROUP, INC.
Reel/Frame 040337/0053 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 29556/0809 Recorded Oct 12, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: JDA SOFTWARE GROUP, INC.
Reel/Frame 040337/0356 →
SECURITY AGREEMENT Recorded Oct 12, 2016
From: RP CROWN PARENT, LLC; RP CROWN HOLDING LLC; JDA SOFTWARE GROUP, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 040326/0449 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 2, 2013
From: JDA SOFTWARE GROUP, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 029556/0809 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 2, 2013
From: JDA SOFTWARE GROUP, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 029556/0697 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Dec 21, 2012
From: WELLS FARGO CAPITAL FINANCE, LLC
To: JDA TECHNOLOGIES US, INC.
Reel/Frame 029529/0812 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2011
From: JDA TECHNOLOGIES US, INC.
To: JDA SOFTWARE GROUP, INC.
Reel/Frame 026740/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2011
From: I2 TECHNOLOGIES US, INC
To: JDA TECHNOLOGIES US, INC
Reel/Frame 026468/0119 →
PATENT SECURITY AGREEMENT Recorded Apr 4, 2011
From: JDA TECHNOLOGIES US, INC.
To: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
Reel/Frame 026072/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2001
From: I2 TECHNOLOGIES, INC.
To: I2 TECHNOLOGIES US, INC.
Reel/Frame 012037/0607 →