TRANSACTION ACCELERATOR FOR CLIENT-SERVER COMMUNICATIONS SYSTEMS
First Claim
1. A system for accelerating protocol interactions over transport connections between a client and a server communicating over a network path, the system comprising:
- a first proxy in proximity to the client;
a second proxy in proximity to the server, wherein the first proxy and the second proxy include logic for determining whether both the first proxy and the second proxy are in the network path from the client to the server; and
a connection interception mechanism that, when the first and second proxies are determined to be in the network path, is configured to (1) transparently terminate, at the first proxy, a client-to-server transport connection, thereby forming a first intercepted connection between the first proxy and the client, (2) transparently terminate, at the second proxy, a server-to-client transport connection, thereby forming a second intercepted connection between the second proxy and the server, and (3) establish a third connection between the first proxy and second proxy,wherein as part of a bandwidth optimization mechanism, the first proxy is configured to;
store data patterns in a first data store, wherein each stored data pattern is associated with a reference;
receive one or more messages from the client over the first intercepted connection;
modify said client messages at least in part by replacing one or more data patterns of the client messages with associated references; and
transmit said modified client messages to the second proxy over the third connection, andthe second proxy is configured to;
store data patterns in a second data store, wherein each stored data pattern is associated with a reference;
receive one or more messages from the server over the second intercepted connection;
modify said server messages at least in part by replacing one or more data patterns of the server messages with associated references; and
transmit said modified server messages to the first proxy over the third connection.
20 Assignments
0 Petitions
Accused Products
Abstract
Self-discovering transaction accelerators improve communications between a client and a server. A client directs a message to a server. A client-side transaction accelerator intercepts the message, terminates the connection with the client, and accelerates the request by replacing segments of data with references. The accelerated request is forwarded to a server-side transaction accelerator through a new connection. The server-side transaction accelerator reconstructs the message by replacing the reference with segment data in a persistent segment store accessible to the server-side transaction accelerator. The reconstructed request is then provided to the server. Accelerations may occur in any direction of communication. Persistent segment stores can be pre-populated with segment data from other transaction accelerators and anticipated transactions. The persistent segment store can store segments that are data segmented based on content of the data and can be independent of transaction protocol, application, and device.
-
Citations
28 Claims
-
1. A system for accelerating protocol interactions over transport connections between a client and a server communicating over a network path, the system comprising:
-
a first proxy in proximity to the client; a second proxy in proximity to the server, wherein the first proxy and the second proxy include logic for determining whether both the first proxy and the second proxy are in the network path from the client to the server; and a connection interception mechanism that, when the first and second proxies are determined to be in the network path, is configured to (1) transparently terminate, at the first proxy, a client-to-server transport connection, thereby forming a first intercepted connection between the first proxy and the client, (2) transparently terminate, at the second proxy, a server-to-client transport connection, thereby forming a second intercepted connection between the second proxy and the server, and (3) establish a third connection between the first proxy and second proxy, wherein as part of a bandwidth optimization mechanism, the first proxy is configured to; store data patterns in a first data store, wherein each stored data pattern is associated with a reference; receive one or more messages from the client over the first intercepted connection; modify said client messages at least in part by replacing one or more data patterns of the client messages with associated references; and transmit said modified client messages to the second proxy over the third connection, and the second proxy is configured to; store data patterns in a second data store, wherein each stored data pattern is associated with a reference; receive one or more messages from the server over the second intercepted connection; modify said server messages at least in part by replacing one or more data patterns of the server messages with associated references; and transmit said modified server messages to the first proxy over the third connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for accelerating protocol interactions over transport connections between a client and a server communicating over a network path, wherein a first proxy is in proximity to the client and a second proxy is in proximity to the server, the method comprising:
-
determining, with the first proxy and the second proxy, whether both the first proxy and the second proxy are in the network path from the client to the server; when the first and second proxies are determined to be in the network path, as part of a connection interception mechanism; (1) transparently terminating, at the first proxy, a client-to-server transport connection, thereby forming a first intercepted connection between the first proxy and the client, (2) transparently terminating, at the second proxy, a server-to-client transport connection, thereby forming a second intercepted connection between the second proxy and the server, and (3) establishing a third connection between the first proxy and second proxy; storing data patterns in a first data store at the first proxy and storing data patterns in a second data store at the second proxy, wherein each stored data pattern is associated with a reference; and transforming data transmissions sent from the client to be received by the server by; receiving, at the first proxy from the client, one or more client messages over the first intercepted connection, modifying said client messages at least in part by replacing one or more data patterns of the client messages with associated references; transmitting, from the first proxy to the second proxy, said modified client messages over the third connection; reconstructing, at the second proxy, the client messages by replacing references with associated data patterns obtained from the second data store, or if no such associated data pattern exists, obtained by sending a resolution request to the first proxy; and transmitting, from the second proxy to the server, the reconstructed client messages over the second intercepted connection. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification