Technique for sending TCP messages through HTTP systems
AssigneeInternational Business Machines Corporation
InventorDonald J. Boulia
Life of this patent
Estimating the term…
Abstract
The present invention provides a method, system, and computer program product for facilitating end-user access to remote applications based on TCP (Transmission Control Protocol). TCP traffic is packaged into the body of HTTP (HyperText Transfer Protocol) messages, enabling the TCP traffic to be transmitted through HTTP systems in an application-independent manner as if it were native HTTP traffic. TCP traffic therefore flows through firewall systems without requiring access to an external TCP port, and flows through HTTP proxy servers as well. The disclosed technique enables mapping bi-directional TCP messages to HTTP, which is designed for client-initiated message traffic only.
Claims31
A computer program product for sending Transmission Control Protocol (TCP) messages through HyperText Transfer Protocol (HTTP) systems, the computer program product embodied on one or more computer-readable media and comprising:
- computer-readable program code means for establishing a send channel from a first component on a client side of a network, through one or more HTTP-based systems, to a second component on a remote side of the network;
- computer-readable program code means for establishing a receive channel from the first component, through the one or more HTTP-based systems, to the second component, wherein the receive channel is distinct from the send channel;
- computer-readable program code means for establishing a first TCP connection from a client on the client side to the first component;
- computer-readable program code means for establishing a second TCP connection from the second component to a target server on the remote side;
- computer-readable program code means for transmitting client-initiated TCP requests from the client to the target server by packaging the client-initiated TCP requests into HTTP messages which are transmitted on the send channel;
- and
- computer-readable program code means for transmitting server-initiated TCP requests from the target server to the client by packaging the server-initiated TCP requests into HTTP messages which are transmitted on the receive channel.
A system for sending Transmission Control Protocol (TCP) messages through HyperText Transfer Protocol (HTTP) systems, comprising:
- means for establishing a send channel from a first component on a client side of a network, through one or more HTTP-based systems, to a second component on a remote side of the network;
- means for establishing a receive channel from the first component, through the one or more HTTP-based systems, to the second component, wherein the receive channel is distinct from the send channel;
- means for establishing a first TCP connection from a client on the client side to the first component;
- means for establishing a second TCP connection from the second component to a target server on the remote side;
- means for transmitting client-initiated TCP requests from the client to the target server by packaging the client-initiated requests into HTTP messages which are transmitted on the send channel;
- and
- means for transmitting server-initiated TCP requests from the target server to the client by packaging the server-initiated requests into HTTP messages which are transmitted on the receive channel.
A method for sending Transmission Control Protocol (TCP) messages through HyperText Transfer Protocol (HTTP) systems, comprising the steps of:
- establishing a send channel from a first component on a client side of a network, through one or more HTTP-based systems, to a second component on a remote side of the network;
- establishing a receive channel from the first component, through the one or more HTTP-based systems, to the second component, wherein the receive channel is distinct from the send channel;
- establishing a first TCP connection from a client on the client side to the first component;
- establishing a second TCP connection from the second component to a target server on the remote side;
- transmitting client-initiated TCP requests from the client to the target server by packaging the client-initiated requests into HTTP messages which are transmitted on the send channel;
- and
- transmitting server-initiated TCP requests from the target server to the client by packaging the server-initiated requests into HTTP messages which are transmitted on the receive channel.
A method for transporting bi-directional protocol traffic through uni-directional protocol systems, comprising the steps of:
- establishing a send channel from a first component on a client side of a network connection, through one or more uni-directional protocol-based systems, to a second component on a remote side of the network connection;
- establishing a receive channel from the first component, through the one or more uni-directional protocol-based systems, to the second component, wherein the receive channel is distinct from the send channel;
- establishing a first bi-directional protocol connection from a client on the client side to the first component;
- establishing a second bi-directional protocol connection from the second component to a target server on the remote side;
- transmitting client-initiated bi-directional protocol requests from the client to the target server by packaging the client-initiated bi-directional protocol requests into uni-directional protocol messages which are transmitted on the send channel;
- and
- transmitting server-initiated bi-directional protocol requests from the target server to the client by packaging the server-initiated bi-directional protocol requests into uni-directional protocol messages which are transmitted on the receive channel.
A system for providing bi-directional messaging over uni-directional protocol systems, comprising:
- a send channel established from a first component on a client side of a network connection, through at least one uni-directional protocol-based system, to a second component on a remote side of the network connection;
- a receive channel established from the first component, through the at least one uni-directional protocol-based system, to the second component, wherein the receive channel is distinct from the send channel;
- a first bi-directional protocol connection established between a client on the client side and the first component;
- and
- a second bi-directional protocol connection established between the second component and a server on the remote side;
- wherein the first component packages client-initiated bi-directional protocol requests, which are sent from the client on the first bi-directional protocol connection and received at the first component, into uni-directional protocol messages and forwards the packaged client-initiated protocol requests to the second component using the send channel and upon receipt of the forwarded client-initiated requests, the second component extracts the client-initiated bi-directional protocol requests and forwards the extracted client-initiated bi-directional protocol requests to the server on the second bi-directional protocol connection, thereby providing client-to-server messaging through the at least one uni-directional protocol-based system;
- and
- wherein the second component packages server-initiated bi-directional protocol requests, which are sent from the server on the second bi-directional protocol connection and received at the second component, into uni-directional protocol messages and forwards the packaged server-initiated protocol requests to the first component using the receive channel and upon receipt of the forwarded server-initiated requests, the first component extracts the server-initiated bi-directional protocol requests and forwards the extracted server-initiated bi-directional protocol requests to the client on the first bi-direction protocol connection, thereby providing server-to-client messaging through the at least one uni-directional protocol-based system.
Dependencies are inferred from the claim text.