Transparent client-server transaction accelerator
DC CAFCFirst Claim
1. A network transaction accelerator for accelerating transactions involving data transfer between at least one client and at least one server over a network, wherein a transaction involves a request and at least one response in response to the request, the network transaction accelerator comprising:
- a client-side engine coupled to a client;
a server-side engine, coupled to the server;
a transaction predictor that is configured to synthesize, based on past transactions, one or more predicted transactions, wherein transactions comprise sets of steps that result in data moving from one place to another;
a transaction mapper that replaces transaction identifiers of predicted transactions with corresponding transaction identifiers of actual transactions;
wherein the client-side engine comprises;
a) an input for receiving indications of requests from the client;
b) a transaction buffer for storing results of the predicted transactions received from the server or the server-side engine ahead of receipt of a corresponding request; and
c) a collator for collating the requests from the client with the stored results or received results, wherein a request and a response that are matched by the collator are identified and the matched response is provided to the client in response to the matched request; and
wherein the server-side engine comprises;
a) an input for receiving indications of transactions including received requests and received responses; and
b) an output for conveying requests to the server in response to actual transactions or predicted transactions.
19 Assignments
Litigations
0 Petitions
Accused Products
Abstract
In a network that conveys requests from clients to servers and responses from servers to clients, a network transaction accelerator for accelerating transactions involving data transfer between at least one client and at least one server over a network comprising a client-side engine, a server-side engine and a transaction predictor configured to predict, based on past transactions, which transactions are likely to occur in the future between the client and server. The transaction predictor might be in the server-side engine, the client-side engine, or both. The client-side engine receives indications of requests from the client, a transaction buffer for storing results of predicted transactions received from the server or the server-side engine ahead of receipt of a corresponding request, and a collator for collating the requests from the client with the stored results or received results, wherein a request and a response that are matched by the collator are identified and the matched response is provided to the client in response to the matched request. The server-side engine receives indications of transactions including requests and responses and conveys requests to the server in response to actual transactions or predicted transactions.
163 Citations
33 Claims
-
1. A network transaction accelerator for accelerating transactions involving data transfer between at least one client and at least one server over a network, wherein a transaction involves a request and at least one response in response to the request, the network transaction accelerator comprising:
-
a client-side engine coupled to a client; a server-side engine, coupled to the server; a transaction predictor that is configured to synthesize, based on past transactions, one or more predicted transactions, wherein transactions comprise sets of steps that result in data moving from one place to another; a transaction mapper that replaces transaction identifiers of predicted transactions with corresponding transaction identifiers of actual transactions; wherein the client-side engine comprises; a) an input for receiving indications of requests from the client; b) a transaction buffer for storing results of the predicted transactions received from the server or the server-side engine ahead of receipt of a corresponding request; and c) a collator for collating the requests from the client with the stored results or received results, wherein a request and a response that are matched by the collator are identified and the matched response is provided to the client in response to the matched request; and wherein the server-side engine comprises; a) an input for receiving indications of transactions including received requests and received responses; and b) an output for conveying requests to the server in response to actual transactions or predicted transactions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. In a network wherein a client sends messages over a transport connection to a server and receives messages over the transport connection from the server, wherein a network transaction involves a request message and at least one response message in response to the request, a method of accelerating network transactions comprising:
-
a) terminating the transport connection at a client-side proxy and at a server-side proxy, the client-side proxy coupled to the client and the server-side proxy coupled to the server; b) receiving a request message at the server-side proxy from the client-side proxy and forwarding the request message to the server; c) transmitting a predicted request to the server from the server-side proxy, wherein the predicted request is based at least in part on past transactions; d) receiving a corresponding response to the predicted request at the server-side proxy from the server; e) transmitting the corresponding response, from the server-side proxy to the client-side proxy; f) receiving a client request at the client-side proxy from the client that can be satisfied by the corresponding response; and g) transmitting the corresponding response to the client from the client-side proxy in response to the client request, wherein said transmitting involves replacing a transaction identifier of the corresponding response with a transaction identifier of the client request. - View Dependent Claims (17, 18, 19, 20)
-
-
21. In a network wherein a client sends messages over a transport connection to a server and receives messages over the transport connection from the server, wherein a network transaction involves a request message and at least one response message in response to the request, a method of accelerating network transactions comprising:
-
a) terminating the transport connection at a client-side proxy and at a server-side proxy, the client-side proxy coupled to the client and the server-side proxy coupled to the server; b) receiving a plurality of messages at the server-side proxy; c) transmitting a predicted request to the server from the server-side proxy, for each of some or all of the plurality of messages, wherein the predicted request is based at least in part on a pattern among the contents of the corresponding messages; d) receiving a corresponding response to the predicted request at the server-side proxy from the server for each of some or all of the predicted requests; e) transmitting the corresponding responses, from the server-side proxy to the client-side proxy; f) receiving client requests at the client-side proxy from the client some of which can be satisfied by one or more of the corresponding responses; and g) transmitting the satisfying corresponding responses to the client from the client-side proxy in response to their corresponding client requests, wherein said transmitting involves replacing transaction identifiers of the satisfying corresponding responses with transaction identifiers of their corresponding client requests. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. In a network wherein a client sends messages over a transport connection to a server and receives messages over the transport connection from the server, wherein a network transaction involves a request message and at least one response message in response to the request, a method of accelerating network transactions comprising:
-
a) terminating the transport connection at a proxy, the proxy coupling the client to the server for at least some of the traffic between the client and server; b) receiving a request message at the proxy and forwarding the request message toward the server; c) transmitting a predicted request to the server from the proxy, wherein the predicted request is based at least on past transactions; d) receiving a corresponding response to the predicted request at the proxy from the server; e) buffering, at the proxy, the corresponding response in anticipation of a client request corresponding to the predicted request; f) receiving a client request at the proxy from the client that can be satisfied by the corresponding response; and g) transmitting the corresponding response to the client from the proxy in response to the client request, wherein said transmitting involves replacing a transaction identifier of the corresponding response with a transaction identifier of the client request. - View Dependent Claims (28, 29, 30, 31, 32, 33)
-
Specification