Priority-driven boxcarring of action requests from component-driven cloud applications
First Claim
1. A system including a user device and a server device, coupled in communication, including:
- the user device configured to;
determine an action request by a data consuming application that consumes data received from the server responsive to the action request, the action request associated with a priority label applied to a display region rendered by the data consuming application;
place, by a middleware application, the action request into a first batch based on the priority label and a predetermined segregation schedule;
manage, by the middleware application, a pool of request objects; and
send, to the server device via a request object from the pool of request objects, the first request batch as a first boxcar ahead of a second request batch based on the priority label; and
the server device configured to;
receive the first boxcar and forward the action request to an application program of the server;
collect a response to the action request from the application program;
send the response in a second boxcar corresponding to the first boxcar, the second boxcar including other responses associated with the first boxcar.
1 Assignment
0 Petitions
Accused Products
Abstract
Improved perceived load time for browser and mobile application pages is achieved by adjusting boxcarring of action requests from coupled data consuming applications on the user device, using the priority level of regions and components in component-driven cloud applications. Priority labels differentiate among display regions rendered by the data consuming application and the priority labels further differentiate among components within respective display regions. The middleware application batches the action requests into batches based at least in part on the priority labels, into boxcars segregated by priority label according to a predetermined segregation schedule, and dispatches the boxcars of batched action requests to the server. Performance is also dynamically speeded up, by adjusting inter-boxcar intervals used to dispatch batches of action requests from the user device to a production server, based on the dynamically measured network communication latency between the user device and the server.
-
Citations
25 Claims
-
1. A system including a user device and a server device, coupled in communication, including:
-
the user device configured to; determine an action request by a data consuming application that consumes data received from the server responsive to the action request, the action request associated with a priority label applied to a display region rendered by the data consuming application; place, by a middleware application, the action request into a first batch based on the priority label and a predetermined segregation schedule; manage, by the middleware application, a pool of request objects; and send, to the server device via a request object from the pool of request objects, the first request batch as a first boxcar ahead of a second request batch based on the priority label; and the server device configured to; receive the first boxcar and forward the action request to an application program of the server; collect a response to the action request from the application program; send the response in a second boxcar corresponding to the first boxcar, the second boxcar including other responses associated with the first boxcar. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A user device comprising:
-
a memory including a middleware application coupled in communication with a data consuming application; and at least one processor coupled to the memory and configured to; receive, by the middleware application, an action request from the data consuming application, the action request associated with a priority label applied to a display region rendered by the data consuming application; place, by the middleware application, the action request into a first batch request based on the priority label and a predetermined segregation schedule; manage, by the middleware application, a pool of request objects; and send, to a server device via a request object of the pool of request objects, the first request batch as a boxcar ahead of a second request batch based on the priority label. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A server device, comprising:
-
a memory including a dispatcher and a plurality of application programs, the dispatcher coupled in communication with a middleware application running on a user device; at least one processor coupled to the memory and configured to; receive, by the dispatcher, a first request boxcar including a priority-based batch of action requests from the middleware application; forward, by the dispatcher, the action requests to the plurality of application programs; send, by the dispatcher, a first response boxcar including responses to the action requests; determine, by the dispatcher, a server processing time based on a difference between when a second request boxcar of action requests is received and when a corresponding second response boxcar of responses is ready to be returned; and send the determined server processing time to the middleware application. - View Dependent Claims (15, 16)
-
-
17. A method that conserves connections between a browser or app running on a user device and at least one server device, comprising:
-
receiving, by a middleware application running on the user device, an action request from a data consuming application, wherein the action request is qualified by a priority label associated with a display region rendered by the data consuming application; placing, by the middleware application, the action request into a first request batch based on the priority label and a predetermined segregation schedule; managing, by the middleware application, a pool of request objects; and sending, to the at least one server device via a request object of the pool of request objects, the first request batch as a request boxcar ahead of a second request batch based on the priority label. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A method that conserves connections between a browser or app running on a user device and at least one server device, the method comprising:
-
receiving, by a dispatcher of the at least one server device, a first request boxcar including a priority-based batch of action requests from a middleware application of the user device; forwarding, by the dispatcher, the action requests to a plurality of application programs executing on the at least one server device; receiving, by the dispatcher, a plurality of responses corresponding to the action requests from the plurality of application programs; sending a first response boxcar including the plurality of responses; determining, by the dispatcher, a server processing time based on a difference between when a second request boxcar of action requests is received and when a second response boxcar of responses is ready to be returned; and sending, by the dispatcher, the determined server processing time to the middleware application. - View Dependent Claims (24, 25)
-
Specification