Transaction accelerator for client-server communication systems
DC CAFCFirst Claim
1. In a network wherein clients initiate transactions with servers and the network carries transactions including a request message from a client to a servers and a response message from the server 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 between a sender and 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 content of the payload;
for each of the at least one 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 at least one of a segment reference and symbols corresponding to an unreferenced segment;
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; and
providing the reconstructed payload to the receiver as the transported payload.
21 Assignments
Litigations
0 Petitions
Reexamination
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
61 Claims
-
1. In a network wherein clients initiate transactions with servers and the network carries transactions including a request message from a client to a servers and a response message from the server 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 between a sender and 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 content of the payload; for each of the at least one 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 at least one of a segment reference and symbols corresponding to an unreferenced segment; 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; and providing the reconstructed payload to the receiver as the transported payload. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a network wherein clients initiate transactions with servers and the network carries transactions including 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 messages and the response messages contains a payload to be transported over the network between the client and the server, a method of accelerating transactions comprising:
-
terminating a transport connection for traffic between the client and the server at a client-side proxy and at a server-side proxy; receiving a payload from the client at the client-side proxy; segmenting the payload into one or more segments based on content of the payload; replacing at least one segment of the one or more segments with a segment reference to a matching data pattern that is stored in a client-side auxiliary data store, to form a modified payload; sending the modified payload from the client-side proxy to the server-side proxy; receiving the modified payload at the server-side proxy; replacing the segment reference in the modified payload with a matching data pattern retrieved from a server-side auxiliary data store, to form a reconstructed payload; and sending the reconstructed payload from the server-side proxy to the server. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. In a network wherein servers initiate transactions with clients and the network carries transactions including a request message from a server to a client and a response message from the client to the server and wherein at least one of the request messages and the response messages contains a payload to be transported over the network between a server and a client, a method of accelerating transactions comprising:
-
terminating a transport connection for traffic between the client and the server at a client-side proxy and at a server-side proxy; receiving a payload from the server at the server-side proxy; segmenting the payload into one or more segments based on the content of the payload; replacing at least one segment of the one or more segments with a segment reference to a matching data pattern that is stored in a server-side auxiliary data store, to form a modified payload; sending the modified payload from the sewer-side proxy to the client-side proxy; receiving the modified payload at the client-side proxy; replacing the segment reference in the modified payload with a matching data pattern retrieved from a client-side auxiliary data store, to form a reconstructed payload; and sending the reconstructed payload from the client-side proxy to the client. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. In a network wherein nodes initiate transactions with other nodes and the network carries transactions including a request message from a first node to a second node and a response message from the second node to the first node and wherein at least one of the request messages and the response messages contains a payload to be transported over the network between the first node and the second node, a method of accelerating transactions comprising:
-
terminating the transport connection for traffic between the first node and the second node at a first-node proxy and at a second-node proxy; receiving a payload from the first node at the first-node proxy; segmenting the payload into one or more segments based on the content of the payload; replacing at least one segment of the one or more segments with a segment reference to a matching data pattern that is stored in a first-node auxiliary data store, to form a modified payload; sending the modified payload from the first-node proxy to the second-node proxy; receiving the modified payload at the second-node proxy; replacing the segment reference in the modified payload with a matching data pattern retrieved from a second-node auxiliary data store, to form a reconstructed payload; and sending the reconstructed payload from the second-node proxy to the second node. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
-
35. In a network wherein nodes initiate transactions with other nodes and the network carries transactions including a request message from a first node to a second node and a response message from the second node to the first node and wherein at least one of the request messages and the response messages contains a payload to be transported over the network from the first node to the second node, a transaction accelerator comprising:
-
a first-node auxiliary data store associated with the first node that stores segment data and segment references for referenced segments; a transaction transformer for transforming a payload of a message to be sent, comprising; a) a segmenter for segmenting the payload into one or more segments based on the content of the payload; and b) a replacer for replacing at least one segment of the one or more segments with a segment reference to a matching data pattern that is stored in the first-node auxiliary data store; a second-node auxiliary data store associated with the second node that stores segment data and segment references for referenced segments; and an inverse transaction transformer for untransforming an accelerated payload from a transaction transformer of a remote transaction accelerator and sending the untransformed accelerated payload to the second node, comprising; a) a tokenizer that determines where segment references appear in the accelerated payload; and b) a dereferencer for substituting segment data from the second-node auxiliary data store for each segment reference detected by the tokenizer. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. In a network wherein nodes initiate transactions with other nodes and the network carries transactions including a request message from a first node to a second node and a response message from the second node to the first node and wherein at least one of the request messages and the response messages contains a payload to be transported over the network between the first node and the second node, a method of accelerating transactions comprising:
-
terminating the transport connection for traffic between the first node and the second node at a first-node proxy and at a second-node proxy; receiving a payload from the first node at the first-node proxy along a first transport connection; segmenting the payload into one or more segments; replacing at least one segment of the one or more segments with a segment reference to a matching data pattern that is stored in a first-node auxiliary data store, to form a modified payload; sending the modified payload along a second transport connection from the first-node proxy to the second-node proxy; receiving the modified payload at the second-node proxy via the second transport connection; replacing the segment reference in the modified payload with a matching data pattern retrieved from a second-node auxiliary data store, to form a reconstructed payload; and sending the reconstructed payload along a third transport connection from the second-node proxy to the second node. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. For use with a network wherein nodes initiate transactions with other nodes and the network carries transactions including a request message from a first node to a second node and a response message from the second node to the first node and wherein at least one of the request messages and the response messages contains a payload to be transported over the network between the first node and the second node, a transaction accelerator system comprising:
-
a first-node proxy, coupleable with the first node over a first transport connection; a second-node proxy, coupleable with the second node over a second transport connection; a first-node auxiliary data store associated with the first-node proxy that stores segment data and segment references for referenced segments; a transaction transformer for transforming a payload of a message to be sent, comprising; a) a segmenter for segmenting the payload into one or more segments; and b) a replacer for replacing at least one segment of the one or more segments with a segment reference to a matching data pattern that is stored in the first-node auxiliary data store; a second-node auxiliary data store associated with the second-node proxy 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 accelerated payload; and b) a dereferencer for substituting segment data from the second-node auxiliary data store for each segment reference detected by the tokenizer; and means for instantiating a third transport connection between the first-node proxy and the second-node proxy for transporting the accelerated payload therebetween. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61)
-
Specification