AUTOMATED CODE SPLITTING AND PRE-FETCHING FOR IMPROVING RESPONSIVENESS OF BROWSER-BASED APPLICATIONS
First Claim
1. A method for automatically rewriting a web application to improve perceived application performance, comprising steps for:
- receiving a web application that is designed to be executed within a browser-type application on a client computing device (“
client”
);
decomposing structural code units of the web application into a set of stubs and a set of corresponding bodies;
determining a clustering of structural code units within the web application;
constructing a new application by rewriting the web application based on the clustering, wherein stubs are used to replace corresponding structural code units in the application to reduce a total size of code that that must be transferred to the client; and
wherein each stub retrieves the corresponding body when the stub is executed within the browser-type application on the client.
2 Assignments
0 Petitions
Accused Products
Abstract
A “code splitting tool” provides various techniques for automatically analyzing and rewriting existing browser-based applications to introduce dynamic code loading into those applications thereby improving perceived application responsiveness. Structural elements of application code (including functions, classes, etc.) are broken into small “stubs” with corresponding bodies. Rewritten applications then initially transfer only the portion of the code (including some combination of stubs and bodies) to the client as necessary for initial application execution. Additional stubs and/or bodies are then transferred either on-demand at runtime or in the background. Automated code rewriting proceeds without requiring any application-specific knowledge or changes to existing code prior to code rewriting. Further, the code splitting tool can tailor code rewriting to specific computing devices (computers, PDA'"'"'s, cell phones, etc.), specific network conditions, and/or specific users, through an automated training process that creates clusters that control code downloads to optimize perceived application responsiveness.
-
Citations
20 Claims
-
1. A method for automatically rewriting a web application to improve perceived application performance, comprising steps for:
-
receiving a web application that is designed to be executed within a browser-type application on a client computing device (“
client”
);decomposing structural code units of the web application into a set of stubs and a set of corresponding bodies; determining a clustering of structural code units within the web application; constructing a new application by rewriting the web application based on the clustering, wherein stubs are used to replace corresponding structural code units in the application to reduce a total size of code that that must be transferred to the client; and wherein each stub retrieves the corresponding body when the stub is executed within the browser-type application on the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for automatically decomposing and rewriting a web application for execution within a browser-type application, comprising:
-
a device for receiving a web application; a device for learning a unique access profile for each of a plurality of unique groups of one or more clients, each access profile including an identification of first execution times for each structural code unit of the web application within the browser-type application of each client in each unique group; a device for decomposing the web application to generate a set of stubs and a set of corresponding bodies for structural code units, wherein each stub is designed to call its corresponding body when the stub is executed; a device for generating a corresponding clustering of stubs from each unique access profile; and a device for constructing a separate new application for each unique access profile by rewriting the web application based on the corresponding clustering of stubs associated with each access profile to reduce a total size of code that that must be transferred to the client prior to initial execution of the new application. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computer-readable medium having computer executable instructions stored therein for rewriting web applications to improve perceived application responsiveness within a browser application, said instructions comprising:
-
receiving a web application, said web application designed to be delivered from a server to a client for execution within a browser application running on the client when the client directs the browser application to a website hosted by the server, said website including the web application; performing an automated training phase to construct a unique access profile for each of a plurality of unique groups of one or more clients, each access profile including an identification of first execution times for each structural code unit of the web application within the browser-type application of one or more of the clients in each unique group; generating a set of stubs and a set of corresponding bodies for each structural code unit comprising the web application; processing each unique access profile to identify clustering parameters for generating a corresponding clustering of stubs from each unique access profile; and constructing a separate new application for each unique access profile by rewriting the web application based on the corresponding clustering of stubs associated with each unique access profile. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification