EXECUTING PROGRAMS BASED ON USER-SPECIFIED CONSTRAINTS
First Claim
1. A method for a computing system of a program execution service to execute programs in locations selected in accordance with user-specified constraints, the program execution service using a plurality of host computing systems in multiple geographic areas to execute programs, the plurality of host computing systems being connected at multiple hierarchical levels that are each associated with a distinct degree of proximity such that computing systems of a group at a first hierarchical level are physically proximate and share a common group data exchange medium that is specific to that group and such that each successive higher hierarchical level includes computing system that are less proximate and connected via one or more other data exchange mediums, the method comprising:
- receiving an indication from a user of the program execution service to execute an indicated quantity of copies of an indicated program in such a manner as to satisfy one or more indicated execution constraints, the one or more execution constraints for use by the program execution service in selecting one or more of the plurality of host computing systems to execute the indicated quantity of indicated program copies, the one or more execution constraints specifying one or more degrees of proximity of the selected one or more host computing systems to one or more indicated other target computing systems;
automatically determining one or more of the hierarchical levels whose associated degrees of proximity correspond to the one or more degrees of proximity specified by the one or more execution constraints;
automatically determining one or more candidate host computing systems that are available to execute the indicated quantity of indicated program copies in accordance with the one or more execution constraints, the candidate host computing systems being connected to the indicated target computing systems at one or more of the determined hierarchical levels;
automatically selecting from the candidate host computing systems the one or more host computing systems to execute the indicated quantity of indicated program copies, such that each of the selected one or more host computing systems is to execute at least one of the indicated program copies; and
initiating executing of the indicated quantity of indicated program copies on the selected one or more host computing systems.
1 Assignment
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.
67 Citations
25 Claims
-
1. A method for a computing system of a program execution service to execute programs in locations selected in accordance with user-specified constraints, the program execution service using a plurality of host computing systems in multiple geographic areas to execute programs, the plurality of host computing systems being connected at multiple hierarchical levels that are each associated with a distinct degree of proximity such that computing systems of a group at a first hierarchical level are physically proximate and share a common group data exchange medium that is specific to that group and such that each successive higher hierarchical level includes computing system that are less proximate and connected via one or more other data exchange mediums, the method comprising:
-
receiving an indication from a user of the program execution service to execute an indicated quantity of copies of an indicated program in such a manner as to satisfy one or more indicated execution constraints, the one or more execution constraints for use by the program execution service in selecting one or more of the plurality of host computing systems to execute the indicated quantity of indicated program copies, the one or more execution constraints specifying one or more degrees of proximity of the selected one or more host computing systems to one or more indicated other target computing systems;
automatically determining one or more of the hierarchical levels whose associated degrees of proximity correspond to the one or more degrees of proximity specified by the one or more execution constraints;
automatically determining one or more candidate host computing systems that are available to execute the indicated quantity of indicated program copies in accordance with the one or more execution constraints, the candidate host computing systems being connected to the indicated target computing systems at one or more of the determined hierarchical levels;
automatically selecting from the candidate host computing systems the one or more host computing systems to execute the indicated quantity of indicated program copies, such that each of the selected one or more host computing systems is to execute at least one of the indicated program copies; and
initiating executing of the indicated quantity of indicated program copies on the selected one or more host computing systems. - View Dependent Claims (2)
-
-
3. A computer-implemented method for executing programs 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 program, 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;
automatically determining one or more candidate host computing systems that are available to execute the one or more program copies in accordance with the one or more execution constraints, the candidate host computing systems being selected from a predefined group of multiple distributed computing systems for use in executing programs of users of a program execution service;
automatically selecting the one or more host computing systems to execute the one or more program copies from the candidate host computing systems, such that each of the selected one or more host computing systems is to execute at least one of the one or more program copies; and
initiating execution of the one or more program copies on the selected one or more host computing systems. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer-readable medium whose contents enable a computing system to execute programs 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 program, the one or more host computing systems to be selected from a predefined group of multiple computing systems that are for use in executing user programs, the one or more execution constraints being based at least in part 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 program copies, and of costs related to the one or more computing systems executing the one or more program copies;
automatically selecting the one or more computing systems from the multiple computing systems to execute the one or more program copies, the selecting being based at least in part on the selected one or more computing systems satisfying the one or more execution constraints; and
providing an indication to initiate executing of the one or more program copies on the selected at least one computing system. - View Dependent Claims (19, 20, 21)
-
-
22. A system configured to execute programs in accordance with specified constraints, comprising:
-
one or more memories; and
a system manager component configured to, in response to a determination to execute one or more copies of a program on one or more computing systems for a user in accordance with one or more execution constraints, the one or more execution constraints indicating relative locations of the one or more host computing systems with respect to one or more indicated target computing resources, the one or more host computing systems to be selected from a predefined group of multiple computing systems;
automatically select the one or more computing systems to execute the one or more program copies, the one or more computing systems being selecting from a predefined group of multiple computing systems for use in executing programs for a program execution service, such that the selected one or more computing systems satisfy the one or more execution constraints; and
initiate execution of the one or more program copies on the selected one or more computing systems. - View Dependent Claims (23, 24, 25)
-
Specification