System and method for progressively installing a software application
View Patent ↗Described is a mechanism for enabling an application operating as a web application to transition to a client-side application without impacting a user's interaction with the application. The progressive installation transitions through three states: a start-up state, a demand state, and an install state. During the start-up state, a subset of components associated with the application is downloaded and stored in a local data store. The subset is sufficient to allow execution of the application in a manner similar to a web application. During the demand state, additional resources associated with the application are downloaded. Transitioning from the demand state to the installed state occurs without impacting a user's interaction with the application. The transition may occur autonomously based on the number of additional resources stored in the local data store or upon an external trigger.
1. A computer-readable storage medium encoded with computer-executable instructions configured to perform a computer-implemented method, comprising:
Identifying an application package associated with an application, the application package including sufficient resources to enable user interaction with the application;
downloading content of the application package to a local store, the content being less than the full application;
upon receiving a request for one of a plurality of additional resources associated with the application, downloading the additional resource, the request for one of a plurality of additional resources being made without corresponding user action; and
upon receiving a request to transition the application to a client-side full application, downloading remaining resources to the local store, the request to transition the application to a client-side full application being made without corresponding user action.
2. The computer-readable storage medium of claim 1 , wherein identifying of the application package comprises activating a hyperlink associated with the application.
3. The computer-readable storage medium of claim 1 , wherein identifying of the application package further comprises initiating retrieval of a deployment manifest that identifies the application package.
4. The computer-readable storage medium of claim 1 , wherein a subset of components is identified by the application package.
5. The computer-readable storage medium of claim 1 , wherein the application package comprises an application manifest and code.
6. The computer-readable storage medium of claim 1 , wherein the application package is in an executable format.
7. The computer-readable storage medium of claim 1 , the computer-implemented method further comprising downloading an additional resource associated with the application upon activation of a hyperlink on a Web page associated with the application.
8. The computer-readable storage medium of claim 7 , wherein the additional resource comprises an on demand resource.
9. The computer-readable storage medium of claim 8 , the computer-implemented method further comprising storing the on demand resource to the local data store.
10. The computer-readable storage medium of claim 7 , wherein the additional resource comprises an online resource.
11. The computer-readable storage medium of claim 10 , the computer-implemented method further comprising storing the online resource in a transient cache.
12. The computer-readable storage medium of claim 11 , wherein transitioning the application to the installed full application comprises storing the online resource in the local data store.
13. The computer-readable storage medium of claim 1 , wherein transitioning the application to the installed full application comprises downloading a plurality of remaining resources to the local data store, the plurality of remaining resources being components that are not currently in the local data store.
14. The computer-readable storage medium of claim 1 , wherein transitioning the application to the installed full application comprises transferring a state associated with the application to the installed full application in a manner such that when the installed full application is launched offline, execution of the installed full application resumes at the state associated with the application.
15. The computer-readable storage medium of claim 14 , wherein the state information is stored in an application object associated with the application.
16. A computer-executable method for transitioning a web application to a client-side full application, comprising:
identifying an application package associated with an application, the application package including sufficient resources to enable user interaction with the application;
downloading content of the application package to a local store, the content being less than the full application;
upon receiving a request for one of a plurality of additional resources associated with the application, downloading the additional resource, the request for one of a plurality of additional resources being made without corresponding user action; and
upon receiving a request to transition the application to a client-side full application, downloading remaining resources to the local store, the request to transition the application to a client-side full application being made without corresponding user action.
17. The computer-executable method of claim 16 , wherein the request to transition the application to the client-side full application is based on the number of additional resources currently stored in the local store.
18. The computer-executable method of claim 17 , wherein the request to transition the application occurs autonomously.
19. The computer-executable method of claim 16 , wherein the application package includes an application manifest and code, the application manifest uniquely identifying a subset of resources associated with the application.
20. The computer-executable method of claim 19 , wherein the application comprises the subset of resources and the plurality of additional resources.
21. The computer-executable method of claim 20 , wherein downloading the additional resource further comprises storing the additional resource in the local store if the additional resource comprises an on demand resource, and storing the additional resource in a transient cache if the additional resource comprises an online resource.
22. The computer-executable method of claim 16 , further comprising determining whether the additional resource is available locally, and if so, using the local additional resource rather than downloading the additional resource.
23. The computer-executable method of claim 16 , wherein the remaining resources are an additional subset out of the plurality of additional resources that are not currently stored in the local store.
24. The computer-executable method of claim 16 , wherein transitioning the application to the client-side full application comprises transferring a state associated with the application to the client-side full application in a manner such that when the client-side full application is launched offline, execution of the client-side full application resumes at the state associated with the application when transitioned.
25. The computer-executable method of claim 16 , wherein the state information is stored in an application object associated with the application.