Web client with response latency awareness
AssigneeCitrix Systems, Inc.
InventorsBradley Markus Rowe, Javier Alejandro Figueroa, Jose Daniel Inclan Llanes
Life of this patent
Estimating the term…
Abstract
Methods and systems for handling web requests with latency awareness are described herein. A system may receive a web request from a web client, and determine, based on an exponential moving average of past response times, whether to allow the web request to be sent out to the server. Based on this determination, the system may send the web request to the server. The system may receive a response to the web request and update the exponential moving average based on the response time associated with the received response. The response may be forwarded back to the web client.
Claims19
A method comprising:
- receiving, from a web client at a client device, a first web request;
- determining, at the client device, based on an exponential moving average of a plurality of past response times, whether to allow the first web request, wherein an error response is sent to the web client directly from the client device when the first web request is not allowed, wherein the determining the updated exponential moving average is based on a formula, AU=(R−AC)×C+AC, and wherein AU is the updated exponential moving average, R is the response time, AC is the exponential moving average of the plurality of past response times, and C is a smoothing constant;
- sending, based on the determination, the first web request from the client device to a server;
- receiving, at the client device, from the server, a response to the first web request;
- determining, at the client device, a response time associated with the response;
- determining, at the client device, based on the response time and the exponential moving average of the plurality of past response times, an updated exponential moving average;
- and
- sending the response to the web client at the client device.
An apparatus comprising:
- one or more processors;
- and
- memory storing instructions that, when executed by the one or more processors, cause the apparatus to:
- receive, from a web client at the apparatus, a first web request;
- determine, based on an exponential moving average of a plurality of past response times, whether to allow the first web request, wherein an error response is sent to the web client directly from the apparatus when the first web request is not allowed, wherein the determining the updated exponential moving average is based on a formula, AU=(R−AC)×C+AC, and wherein AU is the updated exponential moving average, R is the response time, AC is the exponential moving average of the plurality of past response times, and C is a smoothing constant;
- send, based on the determination, the first web request to a server;
- receive, from the server, a response to the first web request;
- determine a response time associated with the response;
- determine, based on the response time and the exponential moving average of the plurality of past response times, an updated exponential moving average;
- and
- send the response to the web client.
A non-transitory computer-readable medium storing instructions that, when executed, cause:
- receiving, from a web client at a client device, a first web request;
- determining, at the client device, based on an exponential moving average of a plurality of past response times, whether to allow the first web request, wherein an error response is sent to the web client directly from the client device when the first web request is not allowed, wherein the determining the updated exponential moving average is based on a formula, AU=(R−AC)×C+AC, and wherein AU is the updated exponential moving average, R is the response time, AC is the exponential moving average of the plurality of past response times, and C is a smoothing constant;
- sending, based on the determination, the first web request from the client device to a server;
- receiving, at the client device from the server, a response to the first web request;
- determining, at the client device, a response time associated with the response;
- determining, at the client device, based on the response time and the exponential moving average of the plurality of past response times, an updated exponential moving average;
- and
- sending the response to the web client at the client device.
Dependencies are inferred from the claim text.