Dynamic adjustment of boxcarring of action requests from component-driven cloud applications
First Claim
1. A system, comprising a user device, coupled in communication with a server device, wherein the user device includes a first processor configured to:
- receive action requests from a data consuming application running on the user device;
batch the action requests into a boxcar;
dispatch the boxcar of the batched action requests to the server device;
receive a responsive boxcar of completed responses from the server device responsive to the action requests;
receive a server processing time from the server device for the responsive boxcar of the completed responses;
dynamically calculate network communication latency as dispatch-to-completed response time minus the server processing time; and
dynamically adjust an inter-boxcar interval used to dispatch a subsequent boxcar of the batched action requests based on at least a quantity of connections supported between the user device and the server device and the calculated network communication latency; and
wherein the server device includes a second processor, running at least one application program, configured to;
receive the boxcar of the batched action requests;
forward the batched action requests to the at least one application program;
receive the completed responses from the at least one application program;
return the responsive boxcar of the completed responses to the user device;
calculate the server processing time as a difference between the receive time of the boxcar of the batched action requests and a time that the responsive boxcar of the completed responses is ready to be returned; and
report the calculated server processing time to the user device.
1 Assignment
0 Petitions
Accused Products
Abstract
Performance of web pages and mobile device applications with multiple components rendered on a user device is dynamically speeded up, including dynamically measuring network communication latency, adjusting inter-boxcar intervals used to dispatch batches of action requests from the user device to a production server, and dispatching boxcarred requests to the server. Adjustments to the boxcar intervals are based on the dynamically measured network communication latency and a number of connections supported between the user device and the server. The measured network communication latency is calculated as dispatch-to-completed response time minus server processing time and the server processing time is received from the server for a boxcar of completed responses. The system adjusts according to feedback received, as a browser or mobile device changes network connections or the network conditions change, and adapting over time for a particular user. Inter-boxcar intervals are tunable and programmatically changeable, with values learned from experience.
171 Citations
21 Claims
-
1. A system, comprising a user device, coupled in communication with a server device, wherein the user device includes a first processor configured to:
receive action requests from a data consuming application running on the user device;
batch the action requests into a boxcar;
dispatch the boxcar of the batched action requests to the server device;
receive a responsive boxcar of completed responses from the server device responsive to the action requests;
receive a server processing time from the server device for the responsive boxcar of the completed responses;
dynamically calculate network communication latency as dispatch-to-completed response time minus the server processing time; and
dynamically adjust an inter-boxcar interval used to dispatch a subsequent boxcar of the batched action requests based on at least a quantity of connections supported between the user device and the server device and the calculated network communication latency; and
wherein the server device includes a second processor, running at least one application program, configured to;
receive the boxcar of the batched action requests;
forward the batched action requests to the at least one application program;
receive the completed responses from the at least one application program;
return the responsive boxcar of the completed responses to the user device;
calculate the server processing time as a difference between the receive time of the boxcar of the batched action requests and a time that the responsive boxcar of the completed responses is ready to be returned; and
report the calculated server processing time to the user device.- View Dependent Claims (2, 3, 4, 5)
-
6. A user device comprising:
- a memory including a middleware application, a data consuming application coupled in communication with the middleware application, and a browser or an app running on the user device, wherein the browser or the app is coupled in communication with a server, and at least one processor coupled to the memory and configured to;
dynamically calculate network communication latency, wherein to calculate the network communication latency, the at least one processor is further configured to;
measure dispatch-to-completed response time of a boxcar of completed responses;
receive server processing time from the server for the boxcar of completed responses; and
calculate the network communication latency as the dispatch-to-completed response time minus the server processing time;
receive action requests from the data consuming application;
dynamically adjust an inter-boxcar interval based on at least a quantity of connections supported between the user device and the server and the calculated network communication latency;
batch the action requests into subsequent boxcars;
dispatch to the server the subsequent boxcars of batched action requests at the inter-boxcar interval; and
receive from the server data responsive to the batched action requests and an updated server processing time. - View Dependent Claims (7, 8, 9, 10)
- a memory including a middleware application, a data consuming application coupled in communication with the middleware application, and a browser or an app running on the user device, wherein the browser or the app is coupled in communication with a server, and at least one processor coupled to the memory and configured to;
-
11. A server device, comprising:
-
a memory including; a dispatcher coupled in communication with a plurality of middleware applications each running on a respective user device; at least one application program; and at least one processor coupled to the memory and configured to; receive, by the dispatcher, boxcarred batches of action requests from the plurality of middleware applications; forward the boxcarred batches of action requests to the at least one application program; return responsive boxcars of completed responses; calculate a server processing time as a difference between when a particular boxcar of the boxcarred batches of action requests is received and when a respective boxcar of the responsive boxcars of completed responses is ready to be returned; and send the calculated server processing time back to a respective middleware application of the plurality of middleware applications for the respective boxcar of the responsive boxcars of completed responses. - View Dependent Claims (12, 13)
-
-
14. A method, comprising:
-
receiving, by a user device, action requests from a data consuming application running on the user device; batching, by the user device, the action requests into a boxcar; dispatching, by the user device, the boxcar of batched action requests to at least one server device; returning, by the at least one server device, a responsive boxcar of completed responses responsive to the action requests and a server processing time; receiving, by the user device, the responsive boxcar of completed responses and the server processing time; dynamically calculating, by the user device, network communication latency as dispatch-to-completed response time minus the server processing time; dynamically adjusting, by the user device, an inter-boxcar interval used to dispatch a subsequent boxcar of the batched action requests, wherein the inter-boxcar interval is based on at least a quantity of connections supported between the user device and the at least one server and the network communication latency. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A method that conserves connections between a browser or an app of a user device of a set of user devices and at least one server, wherein the at least one server includes:
-
a dispatcher coupled in communication with a plurality of middleware applications, each middleware application running on a respective user device of the set of user devices, and at least one application program, wherein the method comprises; receiving, by the dispatcher, boxcarred batches of action requests from the plurality of middleware applications; forwarding, by the dispatcher, the boxcarred batches of action requests to the at least one application program; returning, by the dispatcher, responsive boxcars of completed responses; calculating, by the dispatcher, a server processing time as a difference between when a particular boxcar of the boxcarred batches of action requests is received and when a respective boxcar of the responsive boxcars of completed responses is ready to be returned; and sending, by the dispatcher, the calculated server processing time back to a respective middleware application of the plurality of middleware applications for the respective boxcar of the responsive boxcars of completed responses. - View Dependent Claims (20, 21)
-
Specification