Distributed and Replicated Sessions on Computing Grids
First Claim
1. A method for maintaining session state information in a multiple server architecture, comprising:
- receiving an initial request from a client;
directing the initial request to a first server within a plurality of servers;
creating a session for the client;
storing the client session at a storage device associated with the first server;
transmitting, to the client, a server identifier identifying the first server as the holder of the session;
receiving a subsequent request from the client, the subsequent request comprising the server identifier identifying the first server;
directing the subsequent request to a second server within a plurality of servers;
at the second server, reading the server identifier; and
responding to the request using the session stored at the server identified by the server identifier.
2 Assignments
0 Petitions
Accused Products
Abstract
Distributed and replicated sessions are implemented in a grid architecture. A session including conversational state is stored at a server in the grid. An incoming request is directed to a server via a load balancing mechanism. When a server receives an incoming request, it either a) retrieves the session from the server that currently holds the state, or b) forwards the request to the server that currently holds the session. Each server maintains the session for the requests that it has serviced until relieved of this responsibility by another server. A server holding a session is relieved of responsibility for the state when another server retrieves the session. In one aspect of the invention, each session is replicated among a number of servers, so as to provide additional redundancy and thereby avoid having any single server as a single point of failure for the session which it maintains.
-
Citations
56 Claims
-
1. A method for maintaining session state information in a multiple server architecture, comprising:
-
receiving an initial request from a client;
directing the initial request to a first server within a plurality of servers;
creating a session for the client;
storing the client session at a storage device associated with the first server;
transmitting, to the client, a server identifier identifying the first server as the holder of the session;
receiving a subsequent request from the client, the subsequent request comprising the server identifier identifying the first server;
directing the subsequent request to a second server within a plurality of servers;
at the second server, reading the server identifier; and
responding to the request using the session stored at the server identified by the server identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for storing session state information in a multiple server architecture, comprising:
-
receiving an initial request from a client;
directing the initial request to a selected server within a plurality of servers;
creating a session for the client;
storing the client session at a storage device associated with the selected server;
transmitting, to the client, a server identifier identifying the selected server as the holder of the session. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method for retrieving session state information in a multiple server architecture, comprising:
-
receiving a request from a client, the request comprising a server identifier identifying a first server as a holder of the session;
directing the request to a second server;
at the second server, reading the server identifier; and
responding to the request using the session stored at the identified first server. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method for maintaining session state information in a multiple server architecture, comprising:
-
receiving an initial request from a client;
directing the initial request to a first server within a plurality of servers;
creating a session for the client;
storing the client session at a storage device associated with the first server;
storing a copy of the client session at at least one additional storage device associated with at least one additional server;
transmitting, to the client, a plurality of server identifiers, the server identifiers identifying the first server and the at least one additional server as the holders of the session;
receiving a subsequent request from the client, the subsequent request comprising the server identifiers identifying the first server and the at least one additional server;
directing the subsequent request to a second server within the plurality of servers;
at the second server, reading the server identifiers; and
responding to the request using the session stored at a server identified by one of the server identifiers. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A method for storing session state information in a multiple server architecture, comprising:
-
receiving an initial request from a client;
directing the initial request to a first server within a plurality of servers;
creating a session for the client;
storing the client session at a storage device associated with the first server;
storing, at at least one additional storage device associated with at least one additional server, a copy of the client session;
transmitting, to the client, a plurality of server identifiers, the server identifiers identifying the first server and the at least one additional server as the holders of the session. - View Dependent Claims (40, 41, 42, 43)
-
-
44. A method for retrieving session state information in a multiple server architecture, comprising:
-
receiving a request from a client, the request comprising a plurality of server identifiers identifying a plurality of servers as holders of a session;
directing the request to a server;
at the server, reading the plurality of server identifiers; and
responding to the request using a session stored at one of the identified servers. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. A computer program product for maintaining session state information in a multiple server architecture, comprising:
-
a computer-readable medium; and
computer program code, encoded on the medium, for;
receiving an initial request from a client;
directing the initial request to a first server within a plurality of servers;
creating a session for the client;
storing the client session at a storage device associated with the first server;
transmitting, to the client, a server identifier identifying the first server as the holder of the session;
receiving a subsequent request from the client, the subsequent request comprising the server identifier identifying the first server;
directing the subsequent request to a second server within a plurality of servers;
at the second server, reading the server identifier; and
responding to the request using the session stored at the server identified by the server identifier.
-
-
54. A computer program product for maintaining session state information in a multiple server architecture, comprising:
-
a computer-readable medium; and
computer program code, encoded on the medium, for;
receiving an initial request from a client;
directing the initial request to a first server within a plurality of servers;
creating a session for the client;
storing the client session at a storage device associated with the first server;
storing a copy of the client session at at least one additional storage device associated with at least one additional server;
transmitting, to the client, a plurality of server identifiers, the server identifiers identifying the first server and the at least one additional server as the holders of the session;
receiving a subsequent request from the client, the subsequent request comprising the server identifiers identifying the first server and the at least one additional server;
directing the subsequent request to a second server within the plurality of servers;
at the second server, reading the server identifiers; and
responding to the request using the session stored at a server identified by one of the server identifiers.
-
-
55. A system for maintaining session state information in a multiple server architecture, comprising:
-
a load balancer, for;
receiving an initial request from a client and directing the initial request to a first server within a plurality of servers; and
receiving a subsequent request from the client, the subsequent request comprising the server identifier identifying the first server and directing the subsequent request to a second server within a plurality of servers;
a first server, for creating a session for the client and for transmitting, to the client, a server identifier identifying the first server as the holder of the session;
a storage device associated with the first server, for storing the client session; and
a second server, for reading the server identifier and responding to the request using the session stored at the first server.
-
-
56. A system for maintaining session state information in a multiple server architecture, comprising:
-
a load balancer, for;
receiving an initial request from a client and directing the initial request to a first server within a plurality of servers; and
receiving a subsequent request from the client, the subsequent request comprising the server identifiers identifying the first server and the at least one additional server and directing the subsequent request to a second server within the plurality of servers;
a first server, for creating a session for the client and for transmitting, to the client, a plurality of server identifiers, the server identifiers identifying the first server and at least one additional server as the holders of the session;
a storage device associated with the first server, for storing the client session;
at least one additional storage device associated with at least one additional server, for storing a copy of the client session; and
a second server for reading the server identifiers responding to the request using the session stored at a server identified by one of the server identifiers.
-
Specification