Constrained execution of background application code on mobile devices
First Claim
1. In a computing environment, a method performed at least in part on at least one processor, comprising:
- receiving, from an application, a reservation request that requests device resources for background code;
determining prior to scheduling the reservation request whether policy criteria is met for the reservation request, including that sufficient resources are available to ensure that the background code is able to have priority use of the device resources being requested, wherein said determining comprises determining for at least some of the device resources whether those requested device resources are within constraint limits for a type of background code corresponding to the reservation request, and if not, failing the reservation request or revising requirements of the requested device resources;
if the policy criteria is met, reserving the device resources for use by the background code to allow the background code to run as background code and use the device resources, wherein a request for an additional resource is denied for the background code while running the background code; and
managing a lifecycle of the background code, including launching a background agent corresponding to at least part of the background code into an active state in which the background agent executes, and moving the background agent between an inactive state, in which the background agent does not execute, and the active state, wherein the background agent executes the background code after the application is closed.
2 Assignments
0 Petitions
Accused Products
Abstract
The subject disclosure is directed towards a technology by which background application code (e.g., provided by third-party developers) runs on a mobile device in a way that is constrained with respect to resource usage. A resource manager processes a resource reservation request for background code, to determine whether the requested resources meet constraint criteria for that type of background code. If the criteria are met and the resources are available, the resources are reserved, whereby the background code is ensured priority access to its reserved resources. As a result, a properly coded background application that executes within its constraints will not experience glitches or other problems (e.g., unexpected termination) and thereby provide a good user experience.
-
Citations
20 Claims
-
1. In a computing environment, a method performed at least in part on at least one processor, comprising:
-
receiving, from an application, a reservation request that requests device resources for background code; determining prior to scheduling the reservation request whether policy criteria is met for the reservation request, including that sufficient resources are available to ensure that the background code is able to have priority use of the device resources being requested, wherein said determining comprises determining for at least some of the device resources whether those requested device resources are within constraint limits for a type of background code corresponding to the reservation request, and if not, failing the reservation request or revising requirements of the requested device resources; if the policy criteria is met, reserving the device resources for use by the background code to allow the background code to run as background code and use the device resources, wherein a request for an additional resource is denied for the background code while running the background code; and managing a lifecycle of the background code, including launching a background agent corresponding to at least part of the background code into an active state in which the background agent executes, and moving the background agent between an inactive state, in which the background agent does not execute, and the active state, wherein the background agent executes the background code after the application is closed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a computing environment, a system comprising:
-
memory; at least one processor; the at least one processor and memory configured to execute a resource manager, the resource manager configured to constrain resource usage by running background code, including by evaluating policy criteria and resource availability against a resource reservation request, received from an application, to determine whether to reserve requested resources for the background code; and
if the policy criteria is met and the resources are available, the resource manager reserving the resources for the background code and indicating that the reservation request is successful, and if not, the resource manager failing the resource reservation request or revising requirements of the requested resources; and
further wherein the resource manager denies a request for an additional resource for the background code while running the background code; andan application instance manager configured to manage a lifecycle of the background code, including launching a background agent corresponding to at least part of the background code into an active state in which the background agent executes, and moving at least part of the background code between an active state in which the background code executes and an inactive state in which the background code does not execute, wherein the background agent executes the background code after the application is closed. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. One or more computer-readable storage media having computer-executable instructions, which when executed perform steps, comprising:
-
receiving, from an application, a reservation request that requests device resources for background code; determining prior to scheduling the reservation request whether policy criteria is met for the reservation request, including that sufficient resources are available to ensure that the background code is able to have priority use of the device resources being requested, wherein said determining comprises determining for at least some of the device resources whether those requested device resources are within constraint limits for a type of background code corresponding to the reservation request, and if not, failing the reservation request or revising requirements of the requested device resources; if the policy criteria is met, reserving the device resources for use by the background code to allow the background code to run as background code and use the device resources, wherein a request for an additional resource is denied for the background code while running the background code; and managing a lifecycle of the background code, including launching a background agent corresponding to at least part of the background code into an active state in which the background agent executes, and moving the background agent between an inactive state, in which the background agent does not execute, and the active state, wherein the background agent executes the background code after the application is closed. - View Dependent Claims (17, 18, 19, 20)
-
Specification