Offline execution of web based applications
First Claim
1. At a computer system connected to a network, the computer system including a Web browser and a plurality of Web browser application components for corresponding Web based applications, the Web browser for executing Web browser application components to access resources from Web server application components of the corresponding Web based applications respectively, a method for storing local content for offline use by a Web browser application component, the method comprising:
- an act of determining that the Web based application is enabled for offline execution;
an act of detecting that a Web based server component for the Web based application is available via network communication at a Web site in a specified domain;
an act of sending a request to the Web based server component for resources to facilitate offline execution of the Web based application in response to detecting that the Web based server component for the Web based application is available via network communication, the request including;
a request for content corresponding to the Web based application, a request for executable application code for the Web based application, and a request for database data from a database corresponding to the Web based application;
prior to receiving the resources from the Web based server component, an act of receiving a manifest that specifies a collection of resources the Web based server component is to send to the computer system for local storage and that specifies the storage requirements for storing the collection of resources, the manifest also specifying;
the executable code module that is to be executed locally at the computer system when the Web server is unavailable, and a synchronization module that is to be executed locally at the computer system when there exists network communication with the Web based server component for synchronizing the locally-stored collection of resources with the Web based application at the Web based server; and
an act of determining whether the storage requirements specified in the manifest exceed a quota and upon determining that the storage requirements exceed the quota, prompting the user to authorize the increase of the quota to an amount sufficient to store the collection of resources;
an act of receiving the collection of resources for the Web based application from the Web based server component via network communication subsequent to sending the request, the collection of resources collectively representing a locally-executable copy of at least a portion of the Web site that was torn off from the specified domain for offline execution at the computer system, the collection of resources including;
content corresponding to the Web based application;
executable code for the Web based application, including an executable module that is to be executed locally at the computer system when the Web server is unavailable, the executable code module for receiving requests from the Web browser and generating corresponding responses; and
at least a portion of database data from the database corresponding to the Web based application;
an act of locally storing the received collection of resources at the computer system, the locally stored content and executable code for the Web based application stored in a Web browser cache and the locally stored database data stored in a separate local store that is separate from the browser cache, the content and database data accessible to the executable code module without requiring network communication with the Web based server component, such that the content, the executable code module, and the database data can be used to generate a response to a subsequent request from the Web browser to access the torn off portion of the Web site when it is detected that the Web based server component is not available via network communication;
an act of receiving a request from the Web browser to access a portion of the Web site at the specified domain;
upon determining that communication with the specified domain is unavailable, an act of the Web browser locally loading the executable module from the Web browser cache to satisfy the request while one or more other Web browser applications continue to execute via network communication; and
an act of overriding the default cache reclamation settings of the Web browser to extend when the content and the executable code for the Web based application expire from the Web browser cache.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for offline execution of Web based applications. Embodiments of the present invention facilitate the local storage of Web based executable instructions and data at a computer system. The Web based executable instructions and data can be used to locally fulfill requests (directed to a domain that sent the executable instructions and data for storage) from modules associated with a Web browser at the computer system. Accordingly, locally stored Web based executable instructions and data can be used at a computer system to simulate communication with Web site when the Web site is otherwise unavailable.
79 Citations
14 Claims
-
1. At a computer system connected to a network, the computer system including a Web browser and a plurality of Web browser application components for corresponding Web based applications, the Web browser for executing Web browser application components to access resources from Web server application components of the corresponding Web based applications respectively, a method for storing local content for offline use by a Web browser application component, the method comprising:
-
an act of determining that the Web based application is enabled for offline execution; an act of detecting that a Web based server component for the Web based application is available via network communication at a Web site in a specified domain; an act of sending a request to the Web based server component for resources to facilitate offline execution of the Web based application in response to detecting that the Web based server component for the Web based application is available via network communication, the request including;
a request for content corresponding to the Web based application, a request for executable application code for the Web based application, and a request for database data from a database corresponding to the Web based application;prior to receiving the resources from the Web based server component, an act of receiving a manifest that specifies a collection of resources the Web based server component is to send to the computer system for local storage and that specifies the storage requirements for storing the collection of resources, the manifest also specifying;
the executable code module that is to be executed locally at the computer system when the Web server is unavailable, and a synchronization module that is to be executed locally at the computer system when there exists network communication with the Web based server component for synchronizing the locally-stored collection of resources with the Web based application at the Web based server; andan act of determining whether the storage requirements specified in the manifest exceed a quota and upon determining that the storage requirements exceed the quota, prompting the user to authorize the increase of the quota to an amount sufficient to store the collection of resources;
an act of receiving the collection of resources for the Web based application from the Web based server component via network communication subsequent to sending the request, the collection of resources collectively representing a locally-executable copy of at least a portion of the Web site that was torn off from the specified domain for offline execution at the computer system, the collection of resources including;content corresponding to the Web based application; executable code for the Web based application, including an executable module that is to be executed locally at the computer system when the Web server is unavailable, the executable code module for receiving requests from the Web browser and generating corresponding responses; and at least a portion of database data from the database corresponding to the Web based application; an act of locally storing the received collection of resources at the computer system, the locally stored content and executable code for the Web based application stored in a Web browser cache and the locally stored database data stored in a separate local store that is separate from the browser cache, the content and database data accessible to the executable code module without requiring network communication with the Web based server component, such that the content, the executable code module, and the database data can be used to generate a response to a subsequent request from the Web browser to access the torn off portion of the Web site when it is detected that the Web based server component is not available via network communication; an act of receiving a request from the Web browser to access a portion of the Web site at the specified domain; upon determining that communication with the specified domain is unavailable, an act of the Web browser locally loading the executable module from the Web browser cache to satisfy the request while one or more other Web browser applications continue to execute via network communication; and an act of overriding the default cache reclamation settings of the Web browser to extend when the content and the executable code for the Web based application expire from the Web browser cache. - View Dependent Claims (2, 3, 4, 5)
-
-
6. At a computer system connected to a network, the computer system including a Web browser and a plurality of Web browser application components for corresponding Web based applications, the Web browser for executing Web browser application components to access resources from Web server application components of the corresponding Web based applications respectively, a method for running a Web based application offline, the method comprising:
-
an act of a receiving a request from a Web browser to access a portion of a Web site at a specified domain, the request originating from a Web browser application component for a Web based application attempting to communicate with a corresponding Web server application component for the Web based application, the Web server application component accessible at the portion of the Web site in the specified domain; an act of detecting that communication with the specified domain is not available over the network subsequent to receiving the request; an act of determining that the Web based application is enabled for offline execution; an act of accessing a locally stored manifest that specifies a collection of resources and storage requirements for storing the collection of resources, the collection of resources comprising a locally-executable copy of the Web based application, the collection of resources including; content corresponding to the Web based application; executable code for the Web based application; and at least a portion of database data from a database corresponding to the Web based application; the manifest also specifying;
an executable code module, which is included in the collection of resources, that is to be executed locally at the computer system when the Web server is unavailable for receiving requests from the Web browser and generating corresponding responses, and a synchronization module that is to be executed locally at the computer system when there exists network communication with the Web based server component for synchronizing the locally-stored collection of resources with the Web based application at the Web based server;an act of determining whether the storage requirements specified in the manifest exceed a quota and upon determining that the storage requirements exceed the quota, prompting the user to authorize the increase of the quota to an amount sufficient to store the collection of resources; an act of locally accessing the locally-executable copy of the portion of the Web site at the computer system by executing the executable code module specified in the manifest, in response to determining that the Web based application is enabled for offline execution; an act of the Web browser interacting with the locally-executable copy of the portion of the Web site to identify one or more resources, from among the collection of resources, responsive to the request while one or more other Web browser applications continue to execute via network communication, the Web browser interacting with the locally-executable copy of the portion of the Web site comprising locally loading the executable module from the Web browser cache; and an act of the executable code module serving the one or more resources from the Web browser cache and the separate local store to the Web browser application component in response to the request and without taking the Web browser offline, comprising the executable code module accessing the content and the executable code for the Web based application from a Web browser cache and the database data from a separate local store that is separate from the browser cache such that the requested Web based application resources are served to the Web browser application component without any network communication occurring subsequent to receiving the request; and an act of overriding the default cache reclamation settings of the Web browser to extend when the content and the executable code for the Web based application expire from the Web browser cache. - View Dependent Claims (7, 8, 9)
-
-
10. A computer system, comprising:
-
one or more processors; system memory; and one or more physical computer-readable media disposed locally at the computer system, the one or more physical computer-readable media having stored thereon computer-executable instructions that, when executed at a processor, cause the computer system to perform a method for configuring local content for offline use by a Web browser application component of a Web based application, including performing the following; determining that the Web based application is enabled for offline execution; detecting that a Web based server component for the Web based application is available via network communication at a Web site in a specified domain; sending a request to the Web based server component for resources to facilitate offline execution of the Web based application in response to detecting that the Web based server component for the Web based application is available via network communication, the request including;
a request for content corresponding to the Web based application, a request for executable application code for the Web based application, and a request for database data from a database corresponding to the Web based application;prior to receiving the resources from the Web based server component, an act of receiving a manifest that specifies a collection of resources the Web based server component is to send to the computer system for local storage and that specifies the storage requirements for storing the collection of resources, the manifest also specifying;
the executable code module that is to be executed locally at the computer system when the Web server is unavailable, and a synchronization module that is to be executed locally at the computer system when there exists network communication with the Web based server component for synchronizing the locally-stored collection of resources with the Web based application at the Web based server; andan act of determining whether the storage requirements specified in the manifest exceed a quota and upon determining that the storage requirements exceed the quota, prompting the user to authorize the increase of the quota to an amount sufficient to store the collection of resources; receiving the collection of resources for the Web based application from the Web based server component via network communication subsequent to sending the request, the collection of resources collectively representing a locally-executable copy of at least a portion of the Web site that was torn off from the specified domain for offline execution at the computer system, the collection of resources including; content corresponding to the Web based application; executable code for the Web based application, including an executable module that is to be executed locally at the computer system when the Web server is unavailable, the executable code module for receiving requests from the Web browser and generating corresponding responses; and at least a portion of database data from the database corresponding to the Web based application; locally storing the received collection of resources at the computer system, the locally stored content and executable code for the Web based application stored in a Web browser cache and the locally stored database data stored in a separate local store that is separate from the browser cache, the content and database data accessible to the executable code module without requiring network communication with the Web based server component, such that the content, the executable code module, and the database data can be used to fulfill a subsequent request from the Web browser to access the torn off portion of the Web site when it is detected that the Web based server component is not available via network communication; and overriding the default cache reclamation settings of the Web browser to extend when the content and the executable code for the Web based application expire from the Web browser cache; and the one or more physical computer-readable media having stored thereon computer-executable instructions that, when executed at a processor, cause the computer system to perform a method for running the Web based application offline, including performing the following; receiving a request from a Web browser to access a portion of a Web site at a specified domain, the request originating from a the Web browser application component for the Web based application attempting to communicate with a corresponding the Web server application component for the Web based application, the Web server application component accessible at the portion of the Web site in the specified domain; detecting that communication with the specified domain is not available over the network subsequent to receiving the request; determining that the Web based application is enabled for offline execution; locally accessing a locally-executable copy of the portion of the Web site at the computer system in response to determining that the Web based application is enabled for offline execution, the locally-executable copy having previously been torn off from the specified domain for local execution at the computer system, the locally-executable copy of the portion of the Web site including a collection of resources locally stored at the computer system, the collection of resources including; content corresponding to the Web based application; executable code for the Web based application, including an executable code module that is executed locally at the computer system when the Web server is unavailable, the executable code module for receiving requests from the Web browser and generating corresponding responses; and at least a portion of database data from the database corresponding to the Web based application; the Web browser interacting with the locally-executable copy of the portion of the Web site to identify one or more resources, from among the collection of resources, responsive to the request while one or more other Web browser applications continue to execute via network communication, the Web browser interacting with the locally-executable copy of the portion of the Web site comprising locally loading the executable module from the Web browser cache; and the executable code module serving the one or more resources from the Web browser cache and the separate local store to the Web browser application component in response to the request and without taking the Web browser offline, comprising the executable code module accessing the content and the executable code for the Web based application from a Web browser cache and the database data from a separate local store that is separate from the browser cache such that the requested Web based application resources are served to the Web browser application component without any network communication occurring subsequent to receiving the request. - View Dependent Claims (11, 12, 13, 14)
-
Specification