Transaction accelerator for client-server communications systems
DCFirst Claim
1. In a network in which clients initiate transactions with servers, the network carries data representing those transactions, and a transaction includes at least one request message from a client to a server and at least one response message from the server to the client, and wherein at least one request message or response message contains a payload to be transported over a connection of the network between a client and a server as a sender and a receiver in the connection, a method of accelerating transactions over the connection 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;
for each of the segments for which data is replaced, storing replaced reference data associated with its reference into an electronic storage element accessible by one or more clients and/or one or more process each of which performs segmentation for a specific network connection; and
sending the payload from the sender towards the receiver over the connection as an accelerated payload, wherein the accelerated payload comprises at least one of a segment reference and symbols corresponding to an unreferenced segment.
22 Assignments
Litigations
1 Petition
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.
73 Citations
14 Claims
-
1. In a network in which clients initiate transactions with servers, the network carries data representing those transactions, and a transaction includes at least one request message from a client to a server and at least one response message from the server to the client, and wherein at least one request message or response message contains a payload to be transported over a connection of the network between a client and a server as a sender and a receiver in the connection, a method of accelerating transactions over the connection 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; for each of the segments for which data is replaced, storing replaced reference data associated with its reference into an electronic storage element accessible by one or more clients and/or one or more process each of which performs segmentation for a specific network connection; and sending the payload from the sender towards the receiver over the connection as an accelerated payload, wherein the accelerated payload comprises at least one of a segment reference and symbols corresponding to an unreferenced segment. - View Dependent Claims (2, 3, 4, 5)
-
-
6. 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 over a transport connection of the network, a method of accelerating transactions over the transport connection 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, wherein the first-node auxiliary data store is accessible by one or more first-node proxies for storing and/or retrieving segments; 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, wherein the second-node auxiliary data store is accessible by one or more second-node proxies for storing and/or retrieving segments; and sending the reconstructed payload from the second-node proxy to the second node.
-
-
7. Non-transitory computer readable medium having stored thereon computer-readable instructions including:
-
program code for a first node of a network to initiate a transaction with a second node of the network, the transaction comprising movement of a payload from the first node to the second node using a network transport connection for traffic between the first node and the second node; program code for terminating the network transport connection at a first-node proxy; program code for receiving the payload from the first node at the first-node proxy; program code for segmenting the payload into one or more segments based on the content of the payload; program code 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 a first-node auxiliary data store, to form a modified payload, wherein the first-node auxiliary data store is accessible by one or more first-node proxies for storing and/or retrieving segments; and program code for sending the modified payload from the first-node proxy toward the second proxy. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
Specification