Executing Programs Based on User-Specified Constraints
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described for managing execution of programs on multiple computing systems, such as based at least in part of user-specified constraints. For example, constraints related to execution of a program may be based on a desired relative location of a host computing system to execute a copy of the program with respect to an indicated target (e.g., computing systems executing other copies of the program or copies of another indicated program), on particular geographic locations, and/or on factors not based on location (e.g., cost of use of a particular computing system, capabilities available from a particular computing system, etc.). Some or all of the multiple computing systems may be part of a program execution service for executing multiple programs on behalf of multiple users, and each may provide multiple virtual machines that are each capable of executing one or more programs for one or more users.
88 Citations
62 Claims
-
1-25. -25. (canceled)
-
26. A computer-implemented method for executing programs for users in accordance with user-specified constraints, the method comprising:
-
receiving a request from a user to execute one or more copies of a program specified by the user, the request including an indication of one or more execution constraints for use in selecting one or more host computing systems to execute the one or more specified program copies for the user, the one or more execution constraints being based on at least one of locations of the one or more computing systems and of capabilities of the one or more computing systems related to executing the one or more program copies; in response to the received request, automatically determining at least one candidate host computing system that is available to execute the one or more specified program copies for the user in accordance with the one or more execution constraints, the determined at least one candidate host computing systems being selected from multiple computing systems that are each configurable to execute any of a plurality of programs indicated by users of a program execution service, the automatic determining being performed by a configured computing device; automatically selecting the one or more host computing systems from the determined at least one candidate host computing systems to execute the one or more specified program copies for the user, such that each of the selected one or more host computing systems is to execute at least one of the one or more specified program copies, the automatic selecting being performed by the configured computing device; and automatically configuring each of the selected one or more host computing systems to execute the specified program, the automatic configuring being initiated by the configured computing device and including dynamically loading a copy of the specified program onto at least one of the selected one or more host computing systems, and initiating execution of the one or more specified program copies for the user on the selected configured one or more host computing systems. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A non-transitory computer-readable medium whose stored contents configure a computing device to execute programs for users in accordance with user-specified constraints, by performing a method comprising:
-
receiving an indication from a user of one or more execution constraints for use in selecting one or more computing systems to execute one or more copies of a specified program on behalf of the user, the one or more computing systems to be selected from multiple computing systems that are configurable to execute any of a plurality of user programs, the one or more execution constraints being based on at least one of locations of the one or more computing systems, of capabilities of the one or more computing systems related to executing the one or more specified program copies, and of costs related to the one or more computing systems executing the one or more specified program copies; automatically selecting the one or more computing systems from the multiple computing systems to execute the one or more specified program copies on behalf of the user, the automatic selecting being performed by the configured computing device and being based at least in part on the selected one or more computing systems satisfying the one or more execution constraints; and providing one or more indications to initiate configuring of the selected one or more computing systems for the specified program and to initiate executing of the one or more program copies on the selected configured one or more computing systems. - View Dependent Claims (41, 42, 43)
-
-
44. A system configured to execute programs for users in accordance with user-specified constraints, comprising:
-
one or more processors; and a system manager component configured to, when executed by at least one of the one or more processors, and in response to a determination to execute one or more copies of a program specified by a user on one or more computing systems for the user in accordance with one or more user-specified execution constraints, the one or more execution constraints indicating relative locations of the one or more computing systems with respect to one or more indicated target computing resources; automatically select the one or more computing systems to execute the one or more specified program copies, the one or more computing systems being selected from a group of multiple computing systems that are for use in executing programs for a program execution service and that are configurable to execute any of a plurality of user programs, the selected one or more computing systems satisfying the one or more execution constraints; and initiate execution of the one or more specified program copies on the selected one or more computing systems. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. A computer-implemented method for executing programs for users in accordance with user-specified constraints, the method comprising:
-
receiving an indication from a user of one or more execution constraints for use in selecting one or more host computing systems to execute one or more copies of a specified program for the user, the one or more execution constraints being based on specified relative locations of the one or more host computing systems with respect to one or more indicated target computing resources; automatically determining at least one candidate host computing system that is available to execute the one or more specified program copies for the user in accordance with the one or more execution constraints based at least in part on each of the determined at least one candidate host computing systems having a location that satisfies the specified relative location with respect to the one or more indicated target computing resources, the determined at least one candidate host computing systems being selected from multiple computing systems that are each configurable to execute one of a plurality of programs indicated by users of a program execution service, the automatic determining being performed by a configured computing device of the program execution service; automatically selecting the one or more host computing systems from the determined at least one candidate host computing systems to execute the one or more specified program copies for the user, each of the selected one or more host computing systems being for use in executing at least one of the one or more specified program copies, the automatic selecting being performed by the configured computing device; and automatically configuring each of the selected one or more host computing systems to execute the specified program, the automatic configuring being initiated by the configured computing device, and initiating execution of the one or more specified program copies for the user on the selected configured one or more host computing systems. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62)
-
Specification