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 zero or more segments and zero or more symbols of unsegmented data;
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 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 zero or more segment references and zero or more symbols of unreferenced data;
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; and
providing the reconstructed payload to the receiver as the transported payload.
21 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.
146 Citations
10 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 zero or more segments and zero or more symbols of unsegmented data;
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 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 zero or more segment references and zero or more symbols of unreferenced data;
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; and
providing the reconstructed payload to the receiver as the transported payload. - 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 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 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 zero or more segments and zero or more symbols of unsegmented data; and
b) 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;
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.
-
-
7. 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 relating 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 zero or more segments and zero or more symbols of unsegmented data; and
ii) 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;
i) a segmenter for segmenting the response message payload into zero or more segments and zero or more symbols of unsegmented data; and
ii) 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, 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 (8, 9, 10)
-
Specification