Methods, systems and computer program products for kernel based transaction processing
First Claim
1. A method of transferring a Transmission Control Protocol (TCP) connection with a client device between data processing systems in a cluster of data processing systems, the method comprising:
- establishing a connection between the client device and a routing node coupled to the cluster of data processing systems utilizing a communication protocol stack at the routing node, the protocol stack having associated state information;
wherein an operating system kernel of the routing node carries out the following;
obtaining application level information from an initial transaction received from the client over the connection, the transaction including at least one request;
selecting a target application at a first data processing system of the cluster of data processing systems for transfer of the connection based on the obtained information; and
transferring the connection to a target communication protocol stack on the first data processing system associated with the selected target application including providing the associated state information of the communication protocol stack of the routing node; and
wherein the target communication protocol stack carries out the following;
accepting the connection from the routing node based on the provided associated state information of the communication protocol stack of the routing node so as to, transparently to the client, establish communications between the client and the target application;
receiving a notification of completion of the transaction from the target application; and
making the connection available to a routing device for selection of a next target application to receive the connection responsive to receipt of the notification of completion of the transaction.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, systems and computer program products are provided for transferring a Transmission Control Protocol (TCP) connection with a client device between data processing systems in a cluster of data processing systems. An operating system kernel of a first data processing system obtains application level information from a transaction received from the client over the connection. In addition, application state information associated with the connection may be obtained from the first application. A second application at a second data processing system is selected for transfer of the connection based on the obtained information and the connection is transferred to the second data processing system. The transfer includes providing to the second data processing system the associated state information of the first communication protocol stack and, optionally, the obtained application state information associated with the connection from the first application. Selection operations for transfers may be initiated responsive to a notification from the first application of completion of a transaction.
62 Citations
54 Claims
-
1. A method of transferring a Transmission Control Protocol (TCP) connection with a client device between data processing systems in a cluster of data processing systems, the method comprising:
-
establishing a connection between the client device and a routing node coupled to the cluster of data processing systems utilizing a communication protocol stack at the routing node, the protocol stack having associated state information;
wherein an operating system kernel of the routing node carries out the following;
obtaining application level information from an initial transaction received from the client over the connection, the transaction including at least one request;
selecting a target application at a first data processing system of the cluster of data processing systems for transfer of the connection based on the obtained information; and
transferring the connection to a target communication protocol stack on the first data processing system associated with the selected target application including providing the associated state information of the communication protocol stack of the routing node; and
wherein the target communication protocol stack carries out the following;
accepting the connection from the routing node based on the provided associated state information of the communication protocol stack of the routing node so as to, transparently to the client, establish communications between the client and the target application;
receiving a notification of completion of the transaction from the target application; and
making the connection available to a routing device for selection of a next target application to receive the connection responsive to receipt of the notification of completion of the transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of transferring a Transmission Control Protocol (TCP) connection with a client device between data processing systems in a cluster of data processing systems, the method comprising:
-
establishing a connection between the client device and a first application at a first data processing system of the cluster of data processing systems utilizing a first communication protocol stack associated with the first application, the first communication protocol stack having associated state information;
wherein an operating system kernel of the first data processing system carries out the following;
obtaining application level information from a transaction received from the client over the connection, the transaction including at least one request;
obtaining application state information associated with the connection from the first application;
selecting a second application at a second data processing system of the cluster of data processing systems for transfer of the connection based on the obtained application level information; and
transferring the connection to a second communication protocol stack on the second data processing system associated with the selected second application including providing to the second data processing system the associated state information of the first communication protocol stack and the obtained application state information associated with the connection from the first application. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A system for transferring a Transmission Control Protocol (TCP) connection with a client device between data processing systems in a cluster of data processing systems, the system comprising:
-
means for establishing a connection between the client device and a routing node coupled to the cluster of data processing systems utilizing a communication protocol stack at the routing node, the protocol stack having associated state information;
an operating system kernel of the routing node, the operating system kernel of the routing node comprising;
means for obtaining application level information from an initial transaction received from the client over the connection, the transaction including at least one request;
means for selecting a target application at a first data processing system of the cluster of data processing systems for transfer of the connection based on the obtained information; and
means for transferring the connection to a target communication protocol stack on the first data processing system associated with the selected target application including providing the associated state information of the communication protocol stack of the routing node;
wherein the target communication protocol stack comprises;
means for accepting the connection from the routing node based on the provided associated state information of the communication protocol stack of the routing node so as to, transparently to the client, establish communications between the client and the target application;
means for receiving a notification of completion of the transaction from the target application; and
means for making the connection available to a routing device for selection of a next target application to receive the connection responsive to receipt of the notification of completion of the transaction. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
-
-
34. A system for transferring a Transmission Control Protocol (TCP) connection with a client device between data processing systems in a cluster of data processing systems, the system comprising:
-
means for establishing a connection between the client device and a first application at a first data processing system of the cluster of data processing systems utilizing a first communication protocol stack associated with the first application, the first communication protocol stack having associated state information;
an operating system kernel of the first data processing system, the operating system kernel of the first data processing system further comprising;
means for obtaining application level information from a transaction received from the client over the connection, the transaction including at least one request;
means for obtaining application state information associated with the connection from the first application;
means for selecting a second application at a second data processing system of the cluster of data processing systems for transfer of the connection based on the obtained application level information; and
means for transferring the connection to a second communication protocol stack on the second data processing system associated with the selected second application including providing to the second data processing system the associated state information of the first communication protocol stack and the obtained application state information associated with the connection from the first application. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A computer program product for transferring a Transmission Control Protocol (TCP) connection with a client device between data processing systems in a cluster of data processing systems, comprising:
-
a computer-readable storage medium having computer-readable program code embodied in said medium, said computer-readable program code comprising;
computer-readable program code which establishes a connection between the client device and a routing node coupled to the cluster of data processing systems utilizing a communication protocol stack at the routing node, the protocol stack having associated state information;
computer-readable program code for execution in an operating system kernel of the routing node which obtains application level information from an initial transaction received from the client over the connection, the transaction including at least one request;
computer-readable program code for execution in an operating system kernel of the routing node which selects a target application at a first data processing system of the cluster of data processing systems for transfer of the connection based on the obtained information;
computer-readable program code for execution in an operating system kernel of the routing node which transfers the connection to a target communication protocol stack on the first data processing system associated with the selected target application including providing the associated state information of the communication protocol stack of the routing node;
computer-readable program code which accepts the connection from the routing node based on the provided associated state information of the communication protocol stack of the routing node so as to, transparently to the client, establish communications between the client and the target application;
computer-readable program code which receives a notification of completion of the transaction from the target application; and
computer-readable program code which makes the connection available to a routing device for selection of a next target application to receive the connection responsive to receipt of the notification of completion of the transaction. - View Dependent Claims (44, 45, 46, 47, 48)
-
-
49. A computer program product for transferring a Transmission Control Protocol (TCP) connection with a client device between data processing systems in a cluster of data processing systems, comprising:
a computer-readable storage medium having computer-readable program code embodied in said medium, said computer-readable program code comprising;
computer-readable program code which establishes a connection between the client device and a first application at a first data processing system of the cluster of data processing systems utilizing a first communication protocol stack associated with the first application, the first communication protocol stack having associated state information;
computer-readable program code for execution in an operating system kernel of the routing node which obtains application level information from a transaction received from the client over the connection, the transaction including at least one request;
computer-readable program code for execution in an operating system kernel of the routing node which obtains application state information associated with the connection from the first application;
computer-readable program code for execution in an operating system kernel of the routing node which selects a second application at a second data processing system of the cluster of data processing systems for transfer of the connection based on the obtained application level information; and
computer-readable program code for execution in an operating system kernel of the routing node which transfers the connection to a second communication protocol stack on the second data processing system associated with the selected second application including providing to the second data processing system the associated state information of the first communication protocol stack and the obtained application state information associated with the connection from the first application. - View Dependent Claims (50, 51, 52, 53, 54)
Specification