Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
First Claim
1. A method for managing on a client a difference between a rate of consumption of responses received from a server and a rate of production of requests transmitted to the server, the method comprising:
- intercepting, by an acceleration program on the client, a request by an application to access a server, the acceleration program communicating with the server on behalf of the application via a transport layer connection;
receiving, by the acceleration program via the transport layer connection, a plurality of responses from the server;
storing, by the acceleration program, the plurality of received responses from the server in a buffer of the client;
consuming, by the client from the buffer, the plurality of stored received responses at a protocol layer above a transport layer of the transport layer connection;
determining, by the acceleration program, a difference between a rate of consumption of stored received responses from the buffer at the protocol layer and a rate of production of requests transmitted by the client falls below a predetermined threshold;
storing, by the acceleration program, and responsive to the determination, the request in a memory element of the client; and
determining, by the acceleration program, to transmit the stored request based on a change in one of the rate of consumption or the rate of production by the client.
8 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed towards systems and methods for dynamically deploying and executing acceleration functionality on a client to improve the performance and delivery of remotely accessed applications. In one embodiment, the client-side acceleration functionality is provided by an acceleration program that performs a transport layer connection buffering technique for improving performance of communications and delivery of a remotely-accessed application. The acceleration program establishes a transport layer connection from the client to the server and buffers requests of the client based on determining a difference between a rate of consumption of responses received by the client from a server and a rate of production of requests transmitted by the client to the server. As such, the acceleration program can throttle transmissions of the client if the client'"'"'s rate of consumption falls behind the rate of submission of requests.
-
Citations
22 Claims
-
1. A method for managing on a client a difference between a rate of consumption of responses received from a server and a rate of production of requests transmitted to the server, the method comprising:
-
intercepting, by an acceleration program on the client, a request by an application to access a server, the acceleration program communicating with the server on behalf of the application via a transport layer connection; receiving, by the acceleration program via the transport layer connection, a plurality of responses from the server; storing, by the acceleration program, the plurality of received responses from the server in a buffer of the client; consuming, by the client from the buffer, the plurality of stored received responses at a protocol layer above a transport layer of the transport layer connection; determining, by the acceleration program, a difference between a rate of consumption of stored received responses from the buffer at the protocol layer and a rate of production of requests transmitted by the client falls below a predetermined threshold; storing, by the acceleration program, and responsive to the determination, the request in a memory element of the client; and determining, by the acceleration program, to transmit the stored request based on a change in one of the rate of consumption or the rate of production by the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for managing on a client a difference between a rate of consumption of responses received from a server and a rate of production of requests transmitted to the server, the system comprising:
-
means for intercepting, by an acceleration program on the client, a request by an application to access a server, the acceleration program communicating with the server on behalf of the application via a transport layer connection; means for receiving, by the acceleration program via the transport layer connection, a plurality of responses from the server; a buffer for storing, by the acceleration program, the plurality of received responses from the server; means for consuming, by the client from the buffer, the plurality of stored received responses at a protocol layer above a transport layer of the transport layer connection; means for determining, by the acceleration program, a difference between a rate of consumption of stored received responses from the buffer at the protocol layer and a rate of production of requests transmitted by the client falls below a predetermined threshold; means for storing, by the acceleration program, and responsive to the determination, the request in a memory element of the client; and means for determining, by the acceleration program, to transmit the stored request based on a change in one of the rate of consumption or the rate of production by the client. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for managing on a client a difference between a rate of processing responses received from a server and a rate of production of requests transmitted to the server, the method comprising:
-
intercepting, by an acceleration program on the client, a request by an application to access a server, the acceleration program communicating with the server on behalf of the application via a transport layer connection; receiving, by the acceleration program via the transport layer connection, a plurality of responses from the server; providing, by the acceleration program, the plurality of responses to an application via an application layer protocol; consuming, by the application, the plurality of responses; determining, by the acceleration program, a difference between a rate of consumption of responses by the application via the application layer protocol and a rate of production of requests transmitted by the client falls below a predetermined threshold; and buffering, by the acceleration program, and responsive to the determination, the request; determining, by the acceleration program, the difference between the rate of consumption of responses and the rate of production of requests transmitted by the client has risen above a predetermined threshold; and transmitting, by the acceleration program, the buffered request.
-
-
22. A method for managing on a client a difference between a rate of consumption of responses received from a server and a rate of production of requests transmitted to the server, the method comprising:
-
intercepting, by an acceleration program on the client, a request by an application to access a server, the acceleration program communicating with the server on behalf of the application via a transport layer connection; receiving, by the acceleration program via the transport layer connection, a plurality of responses from the server; processing, by the client, the plurality of responses at a protocol layer above a transport layer of the transport layer connection; determining, by the acceleration program, a difference between a rate of processing of responses at the protocol layer and a rate of production of requests transmitted by the client falls below a predetermined threshold; storing, by the acceleration program, and responsive to the determination, the request in a memory element of the client; and determining, by the acceleration program, the difference between the rate of processing of responses and the rate of production of requests transmitted by the client has risen above the predetermined threshold; and transmitting, by the acceleration program, the stored request.
-
Specification