IP Library Granted Patent US 7,721,289
Granted Patent B2
US 7,721,289 · App. 10/652,274 · Granted May 18, 2010

System and method for dynamic allocation of computers in response to requests

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,721,289
App. No.
10/652,274
Granted
May 18, 2010
Kind
B2
Abstract

A mechanism dynamically allocates physical machines (computers) for satisfying requests for the machines, such as in the context of assigning test machines for running test cases. Each request specifies one or more logical machine sets it needs, and each logical machine set has specified requirements. The physical machines are organized into a hierarchical structure that includes groups and subgroups of machines. An allocation engine performs the function of allocating available machines from a selected group in the hierarchy for a request based on the requirements of each logical machine set of the request. A group or subgroup of machines may be marked as “allocate as one unit” and all machines in it will be reserved for one request. A job corresponding to a request may have sub-jobs, and machines allocated for the sub-job are selected from the machines allocated for the parent job.

Claims (24)

1. A computer-readable medium having computer-executable instructions for performing steps for designating computers in a computer pool to execute a test job comprising a set of programmed instructions, the steps comprising:

organizing the computers in the computer pool into one or more logical groups, at least one of the logical groups comprising one or more logical subgroups of computers, each computer in the one or more logical groups and subgroups satisfying at least one criterion;

receiving a request for computers to execute a test job, the request specifying a plurality of logical machine sets and, for each logical machine set, (1) a quantity of required computers in the logical machine set, the quantity being specified as a range between a minimum and a maximum, the minimum being greater than two, and (2) requirements, for the required computers, including but not limited to a configuration characteristic needed to perform the test job;

identifying a target group of computers to satisfy the requirements from among the one or more groups of computers in the computer pool, the target group comprising a first subgroup of computers to be allocated as a unit, the first subgroup comprising at least three computers;

selecting, from the target group, computers to comprise each logical machine set; and

designating the selected computers to perform the test job;

wherein the test job comprises a sub-job, and wherein the designating comprises designating the first subgroup to perform the sub-job.

2. A computer-readable medium as in claim 1 , wherein the step of selecting includes referencing a data structure containing up-to-date information about availability and configurations of the computers in the target group for determining whether the computers meet the requirements of the logical machine set.

3. A computer-readable medium as in claim 2 , having further computer-executable instructions for performing the step of updating the information in the data structure.

4. A computer-readable medium as in claim 1 , having further computer-executable instructions for determining whether a schedule start time for the request has elapsed.

5. A system comprising:

a computer pool having a plurality of computers organized into one or more logical groups, at least one of the logical groups comprising one or more logical subgroups of computers, each computer in the one or more logical groups and subgroups satisfying at least one criterion;

an allocation engine for designating computers in the computer pool to execute a test job comprising a set of programmed instructions in response to a request to use computers in the computer pool, the request specifying a plurality of logical machine sets and, for each logical machine set, (1) a quantity of required computers in the logical machine set, the quantity being specified as a range between a minimum and a maximum, the minimum being greater than two, and (2) requirements, for the required computers, including but not limited to a configuration characteristic needed to perform the test job, the allocation engine being programmed to identify a target group of computers, comprising a first subgroup of computers to be allocated as a unit, the first subgroup comprising at least three computers, to satisfy the requirements from among the one or more groups of computers in the computer pool to select from the target group computers to comprise each logical machine set, and to designate the selected computers to perform the test job, wherein the test job comprises a sub-job, and wherein the designating comprises designating the first subgroup to perform the sub-job.

6. A system in claim 5 , further including a data structure containing up-to-date information of availability and configurations of the computers in the target group, and wherein the allocation engine accesses the data structure for determining whether the computers in the target group meet the requirements of the logical machine set.

7. A method of designating computers in a computer pool to execute a test job comprising a set of programmed instructions, comprising:

organizing the computers in the computer pool into one or more logical groups, at least one of the logical groups comprising one or more logical subgroups of computers, each computer in the one or more logical groups and subgroups satisfying at least one criterion;

receiving a request for computers to execute a test job, the request specifying a plurality of logical machine sets and, for each logical machine set, (1) a quantity of required computers in the logical machine set, the quantity being specified as a range between a minimum and a maximum, the minimum being greater than two, and (2) requirements, for the required computers, including but not limited to a configuration characteristic needed to perform the test job;

identifying a target group of computers to satisfy the requirements from among the one or more groups of computers in the computer pool, the target group comprising a first subgroup of computers to be allocated as a unit, the first subgroup comprising at least three computers;

selecting, from the target group computers to comprise each logical machine set; and

designating the selected computers to perform the test job;

wherein the test job comprises a sub-job, and wherein the designating comprises designating the first subgroup to perform the sub-job.

8. A method as in claim 7 , wherein the step of selecting including referencing a data structure containing up-to-date information about availability and configurations of the computers in the target group for determining whether the computers meet the requirements of the logical machine set.

9. A method as in claim 8 , further including the step of updating the information in the data structure.

10. A method as in claim 7 , further including the step of determining whether a schedule start time for the request has elapsed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →