Transaction accelerator for client-server communication systems
First Claim
1. In a network wherein clients initiate transactions with servers and the network carries request messages from the clients to the servers and response messages from the servers to the client and wherein at least one of the request messages and the response messages contains a payload to be transported over the network from a sender to a receiver, a method of accelerating transactions comprising:
- segmenting the payload into at least one segment according to a segmentation process that is based on the payload content;
for each of the at least one segment, determining whether to send the segment data in the payload as an unreferenced segment or as a referenced segment;
for each of the referenced segments, replacing at least some of the segment data with a reference to the replaced data and storing the replaced reference data associated with its reference;
sending the payload from the sender to the receiver as an accelerated payload comprising at least one of a segment references and symbols corresponding to an unreferenced segment;
receiving the accelerated payload over the network;
identifying the zero or more segment references in the accelerated payload;
replacing the one or more segment references in the accelerated payload with segment data available to the receiver, to form a reconstructed payload;
providing the reconstructed payload to the receiver as the transported payload;
when segment data is to be stored as part of a segment reference, transforming the segment data via an invertible function of the segment data, and storing the results of this transformation;
and when this segment data is to be used in dereferencing a segment, untransforming the stored results using an inverse of the invertible function.
20 Assignments
0 Petitions
Accused Products
Abstract
In a network having transaction acceleration, for an accelerated transaction, a client directs a request to a client-side transaction handler that forwards the request to a server-side transaction handler, which in turn provides the request, or a representation thereof, to a server for responding to the request. The server sends the response to the server-side transaction handler, which forwards the response to the client-side transaction handler, which in turn provides the response to the client. Transactions are accelerated by the transaction handlers by storing segments of data used in the transactions in persistent segment storage accessible to the server-side transaction handler and in persistent segment storage accessible to the client-side transaction handler. When data is to be sent between the transaction handlers, the sending transaction handler compares the segments of the data to be sent with segments stored in its persistent segment storage and replaces segments of data with references to entries in its persistent segment storage that match or closely match the segments of data to be replaced. The receiving transaction store reconstructs the data sent by replacing segment references with corresponding segment data from its persistent segment storage, requesting missing segments from the sender as needed. The transaction accelerators could handle multiple clients and/or multiple servers and the segments stored in the persistent segment stores can relate to different transactions, different clients and/or different servers. Persistent segment stores can be prepopulated with segment data from other transaction accelerators.
-
Citations
24 Claims
-
1. In a network wherein clients initiate transactions with servers and the network carries request messages from the clients to the servers and response messages from the servers to the client and wherein at least one of the request messages and the response messages contains a payload to be transported over the network from a sender to a receiver, a method of accelerating transactions comprising:
-
segmenting the payload into at least one segment according to a segmentation process that is based on the payload content; for each of the at least one segment, determining whether to send the segment data in the payload as an unreferenced segment or as a referenced segment; for each of the referenced segments, replacing at least some of the segment data with a reference to the replaced data and storing the replaced reference data associated with its reference; sending the payload from the sender to the receiver as an accelerated payload comprising at least one of a segment references and symbols corresponding to an unreferenced segment; receiving the accelerated payload over the network; identifying the zero or more segment references in the accelerated payload; replacing the one or more segment references in the accelerated payload with segment data available to the receiver, to form a reconstructed payload; providing the reconstructed payload to the receiver as the transported payload; when segment data is to be stored as part of a segment reference, transforming the segment data via an invertible function of the segment data, and storing the results of this transformation; and when this segment data is to be used in dereferencing a segment, untransforming the stored results using an inverse of the invertible function. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a network wherein clients initiate transactions with servers and the network carries request messages from the clients to the servers and response messages from the servers to the clients and wherein at least one of the request messages and the response messages contains a payload to be transported over the network from a sender to a receiver, a transaction accelerator comprising:
-
a transaction transformer for transforming a payload of a message to be sent, comprising; a) a segmenter for segmenting the payload into at least one segment, according to a segmentation process that is based on the payload content; and b) a replacer for determining whether to represent the segment data of each of the at least one segment as an unreferenced segment or as a referenced segment; a persistent segment store that stores segment data and segment references for referenced segments; an inverse transaction transformer for untransforming an accelerated payload from a transaction transformer of a remote transaction accelerator, comprising; a) a tokenizer that determines where segment references appear in the accelerator payload; and b) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer; a reference resolver for resolving references as needed by the dereferencer when encountering a segment reference to a segment that is not present in the persistent segment store. - View Dependent Claims (7)
-
-
8. In a network wherein clients initiate transactions with servers and the network carries a request message from a client to a server and a response message from the server to the client and wherein at least one of the request message and the response message contains a payload to be transported over the network from a sender to a receiver, an improvement comprising:
-
a client-side transaction accelerator, comprising; a) a proxy coupled to the client for receiving request messages for delivery to servers and for relaying reconstructed response messages from the servers to the client; b) a transaction transformer for transforming a request message received from the proxy, comprising; i) a segmenter for segmenting the request message payload into at least one segment, according to a Segmentation process that is based on the payload content; and ii) a replacer for determining whether to represent the segment data of each of the at least one segment as an unreferenced segment or as a referenced segment; c) a persistent segment store that stores segment data and segment references for referenced segments of the request message payload, wherein segments with distinct segment data have distinct segment references and the distinct segment references can be independent of the transaction in which the segment reference was created; and d) an inverse transaction transformer for untransforming a response message payload into a reconstructed response message when the response message has been accelerated, comprising; i) a tokenizer that determines where segment references appear in the response message payload; and ii) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer; and a server-side transaction accelerator, comprising; a) a proxy coupled to the server for receiving response messages for delivery to clients and for relaying reconstructed request messages from clients to the server; b) a transaction transformer for transforming a response message received from the proxy, comprising; i) a segmenter for segmenting the response message payload into at least one segment, according to a segmentation process that is based on the payload content; and ii) a replacer for determining whether to represent the segment data of each of the at least one segment as an unreferenced segment or as a referenced segment; c) a persistent segment store that stores segment data and segment references for referenced segments of the response message payload, wherein segments with distinct segment data have distinct segment references and the distinct segment references can be independent of the transaction in which the segment reference was created; and d) an inverse transaction transformer for untransforming a request message payload into a reconstructed request message when the request message has been accelerated, comprising; i) a tokenizer that determines where segment references appear in the request message payload; and ii) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer, wherein at least one segment in either the request message payload or a response message payload is sent as a referenced segment. - View Dependent Claims (9, 10, 11, 12)
-
-
13. In a network wherein clients initiate transactions with servers and the network carries request messages from the clients to the servers and response messages from the servers to the clients and wherein at least one of the request messages and the response messages contains a payload comprising one or more segments, segmented according to a segmentation process that is based on the payload content, wherein the payload is to be transported over the network from a sender to a receiver, a method of accelerating transactions comprising:
-
for each of the segments, determining whether to send the segment data in the payload as an unreferenced segment or as a referenced segment; for each of the referenced segment replacing at least some of the segment data with a reference to the replaced data and storing the replaced reference data associated with its reference in a persistent segment store; sending the payload from the sender to the receiver as an accelerated payload; receiving the accelerated payload over the network; identifying segment references, if any, in the accelerated payload; replacing the segment references in the accelerated payload with segment data available to the receiver, to form a reconstructed payload; providing the reconstructed payload to the receiver as the transported payload; when segment data is to be stored as part of a segment reference, transforming the segment data via an invertible function of the segment data, and storing the results of this transformation; and when this segment data is to be used in dereferencing a segment, untransforming the stored results using an inverse of the invertible function.
-
-
14. In a network wherein clients initiate transactions with servers and the network carries request messages from the clients to the servers and response messages from the servers to the, clients and wherein at least one of the request messages and the response messages contains a payload comprising one or more segments, segmented according to a segmentation process that is based on the payload content, wherein the payload is to be transported over the network from a sender to a receiver, a transaction accelerator comprising:
-
a transaction transformer for transforming a payload of a message to be sent, comprising a replacer for determining whether to represent the segment data of each segment as an unreferenced segment or as a referenced segment; a persistent segment store that stores segment data and segment references for referenced segments; an inverse transaction transformer for untransforming an accelerated payload from a transaction transformer of a remote transaction accelerator, comprising; a) a tokenizer that determines where segment references appear in the accelerator payload, and b) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer; and a reference resolver for resolving references as needed by the dereferencer when encountering a segment reference to a segment that is not present in the persistent segment store. - View Dependent Claims (15)
-
-
16. In a network wherein clients initiate transactions with servers and the network carries a request message from a client to a server and a response message from the server to the client and wherein at least one of the request message and the response message contains a payload comprising one or more segments to be transported over the network from a sender to a receiver, an improvement comprising:
-
a client side transaction accelerator, comprising; a) a proxy coupled to the client for receiving request messages for delivery to servers and for relaying reconstructed response messages from the servers to the client; b) a transaction transformer for transforming a request message received from the proxy comprising a replacer for determining whether to represent the segment data of each segment as an unreferenced segment or as a referenced segment; c) a persistent segment store that stores segment data and segment references for referenced segments of the request message payload, wherein segments with distinct segment data have distinct segment references and the distinct segment references can be independent of the transaction in which the segment reference was created; and d) an inverse transaction transformer for untransforming a response message payload into a reconstructed response message when the response message has been accelerated, comprising; i) a tokenizer that determines where segment references appear in the response message payload; and ii) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer; and a server side transaction accelerator, comprising; a) a proxy coupled to the server for receiving response messages for delivery to clients and for relaying reconstructed request messages from clients to the server; b) a transaction transformer for transforming a response message received from the proxy comprising a replacer for determining whether to represent the segment data of each segment as an unreferenced segment or as a referenced segment; c) a persistent segment store that stores segment data and segment references for referenced segments of the response message payload, wherein segments with distinct segment data have distinct segment references and the distinct segment references can be independent of the transaction in which the segment reference was created; and d) an inverse transaction transformer for untransforming a request message payload into a reconstructed request message when the request message has been accelerated, comprising; i) a tokenizer that determines where segment references appear in the request message payload; and ii) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer. - View Dependent Claims (17)
-
-
18. In a network wherein a client initiates connections to a server and the network carries request messages from the client to the server over the connections and the network carries response messages from the server to the client over the connections and wherein the client communicates with a first proxy over a first connection, the server communicates with a second proxy over a second connection, and the first proxy and the second proxy communicate with one another over a third connection, a method of transporting data between the client and the server comprising:
-
receiving payloads from the server at the second proxy over the second connection; for each payload, identifying one or more data segments within the payload according to a segmentation process that is based on the payload content; for each of the one or more data segments, determining whether to send segment data of the data segment in the payload as an unreferenced segment or as a referenced segment; for each of the referenced segments, replacing at least some of the segment data with a reference to the replaced data and storing the replaced reference data associated with its reference in a persistent segment store, to form an accelerated payload;
sending the accelerated payload from the second proxy to the first proxy over the third connection;receiving the accelerated payload over the third connection at the first proxy; identifying segment references, if any, in the accelerated payload;
replacing thesegment references in the accelerated payload with segment data available to either the client or the first proxy, to form a reconstructed payload; providing the reconstructed payload to the client over the first connection from the first proxy as the transported payload; when segment data is to be stored as part of a segment reference, transforming the segment data via an invertible function of the segment data, and storing the results of this transformation; and when this segment data is to be used in dereferencing a segment, untransforming the stored results using an inverse of the invertible function.
-
-
19. In a network wherein a client initiates connections to a server and the network carries request messages from the client to the server over the connections and the network carries response messages from the server to the client over the connections and wherein the client communicates with a first proxy over a first connection, the server communicates with a second proxy over a second connection, and the first proxy and the second proxy communicate with one another over a third connection, a client side transaction accelerator, comprising:
-
a) the first proxy coupled to the client for receiving request messages for delivery to servers over the first connection, for relaying reconstructed-response messages from the servers to the client over the first connection, for sending an accelerated payload to the second proxy over the third connection, and for receiving an accelerated payload from the second proxy over the third connection; b) a transaction transformer for transforming a request message received from the first proxy comprising a replacer for determining whether to represent the segment data of each segment as an unreferenced segment or as a referenced segment; c) a persistent segment store that stores segment data and segment references for referenced segments of the request message payload, wherein segments with distinct segment data have distinct segment references and the distinct segment references can be independent of the transaction in which the segment reference was created; and d) an inverse transaction transformer for untransforming a response message payload into a reconstructed response message when the response message has been accelerated, comprising; i) a tokenizer that determines where segment references appear in the response message payload; and ii) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer. - View Dependent Claims (20)
-
-
21. In a network wherein a client initiates connections to a server and the network carries request messages from the client to the server over the connections and the network carries response messages from the server to the client over the connections and wherein the client communicates with a first proxy over a first connection, the server communicates with a second proxy over a second connection, and the first proxy and the second proxy communicate with one another over a third connection, a server side transaction accelerator, comprising:
-
a) the second proxy coupled to the server for receiving response messages for delivery to clients over the second connection, for relaying reconstructed request messages from clients to the server over the second connection, and for sending an accelerated payload to the first proxy over the third connection, and for receiving an accelerated payload from the first proxy over the third connection; b) a transaction transformer for transforming a response message received from the second proxy comprising a replacer for determining whether to represent the segment data of each segment as an unreferenced segment or as a referenced segment; c) a persistent segment store that stores segment data and segment references for referenced segments of the response message payload, wherein segments with distinct segment data have distinct segment references and the distinct segment references can be independent of the transaction in which the segment reference was created; and d) an inverse transaction transformer for untransforming a request message payload into a reconstructed request message when the request message has been accelerated, comprising; i) a tokenizer that determines where segment references appear in the request message payload; and ii) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer. - View Dependent Claims (22)
-
-
23. In a network wherein a client initiates connections to a server and the network carries request messages from the client to the server over the connections and the network carries response messages from the server to the client over the connections and wherein the client communicates with a first proxy over a first connection, the server communicates with a second proxy over a second connection, and the first proxy and the second proxy communicate with one another over a third connection, an improvement comprising:
-
a client side transaction accelerator, comprising; a) the first proxy coupled to the client for receiving request messages for delivery to servers over the first connection, for relaying reconstructed response messages from the servers to the client over the first connection, for sending an accelerated payload to the second proxy over the third connection, and for receiving an accelerated payload from the second proxy over the third connection; b) a transaction transformer for transforming a request message received from the first proxy comprising a replacer for determining whether to represent the segment data of each segment as an unreferenced segment or as a referenced segment; c) a persistent segment store that stores segment data and segment references for referenced segments of the request message payload, wherein segments with distinct segment data have distinct segment references and the distinct segment references can be independent of the transaction in which the segment reference was created; and d) an inverse transaction transformer for untransforming a response message payload into a reconstructed response message when the response message has been accelerated, comprising; i) a tokenizer that determines where segment references appear in the response message payload; and ii) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer; and a server side transaction accelerator, comprising; a) the second proxy coupled to the server for receiving response-messages for delivery to clients over the second connection, for relaying reconstructed request messages from clients to the server over the second connection, and for sending an accelerated payload to the first proxy over the third connection, and for receiving an accelerated payload from the first proxy over the third connection; b) a transaction transformer for transforming a response message received from the second proxy comprising a replacer for determining whether to represent the segment data of each segment as an unreferenced segment or as a referenced segment; c) a persistent segment store that stores segment data and segment references for referenced segments of the response message payload, wherein segments with distinct segment data have distinct segment references and the distinct segment references can be independent of the transaction in which the segment reference was created; and d) an inverse transaction transformer for untransforming a request message payload into a reconstructed request message when the request message has been accelerated, comprising; i) a tokenizer that determines where segment references appear in the request message payload; and ii) a dereferencer for substituting segment data from the persistent segment store for each segment reference detected by the tokenizer. - View Dependent Claims (24)
-
Specification