IP Library Granted Patent US 7,257,635
Granted Patent B2
US 7,257,635 · App. 11/079,422 · Granted Aug 14, 2007

System and method for describing and automatically managing resources

Assignee: Microsoft Corporation
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,257,635
App. No.
11/079,422
Granted
Aug 14, 2007
Kind
B2
Abstract

A system and method for automatically allocating resources is provided. The system includes one or more components for automatically allocating one or more resources, based at least in part on data associated with the one or more resources, the data including at least one of, type data, instance data, characteristic data, and dynamically modifiable metadata. An alternative aspect of the system provides one or more components for automatically allocating one or more resources distributed on a plurality of resource allocation servers. The one or more components for automatically allocating the one or more resources can improve utilization of the capacity of the one or more resources. In an alternative embodiment the system includes an Application Programming Interface (API) operable to configure and/or control the one or more components for automatically allocating one or more resources.

Claims (41)

1. A system for automatically and dynamically allocating resources, comprising:

one or more allocating components that cooperate to automatically allocate one or more resources, the one or more allocating components determines whether the one or more resources are available for allocation based at least in part on examination of at least one of a resource dependency tree, a resource instance table, resource instances and data associated with the one or more resources, the data including at least one of type data, instance data and modifiable metadata, where at least one of the type data, instance data and modifiable metadata are dynamically modifiable;

one or more storing components that stores data associated with the one or more resources, the data including at least one of type data, instance data and dynamically modifiable metadata, and where data is stored via the one or more storing components until an allocation recluest is received from the one or more allocating components to retrieve the stored data; and

a monitoring component that monitors usage of the one or more resources, interactions between the resources, allocation status of the resources, maintenance status of the resources, load balances between the resources and predicted usage of the resources.

2. The system of claim 1 , further comprising an Application Programming Interface (API) that configures and/or controls the one or more components for automatically allocating the one or more resources.

3. The system of claim 1 , wherein the type data includes at least one of resource identifying data and resource characteristic data.

4. The system of claim 1 , wherein the instance data includes at least one of an instance identifier, availability status, capacity information, allocation statistics, grouping information and dependency on another instance.

5. The system of claim 1 , wherein the metadata is dynamically modifiable and includes at least one of data concerning the instance data, data concerning the type data, dependency relationships between services and resources, dependency relationships between resources and resources and constraint information indicating undesired relationships and preference information indicating affinity relationships.

6. The system of claim 1 , wherein the monitoring component performs at least one of accepting feedback data concerning usage of the one or more resources and producing feedback data concerning usage of the one or more resources.

7. The system of claim 6 , further comprising a reallocating component that reallocates usage of one or more resources, based at least in part on the feedback data concerning usage of the one or more resources.

8. The system of claim 7 , further comprising a discovery component that discovers resources, the discovery component produces discovery data when at least one of a new resource is discovered, the number of resources changes and the type of one or more resources changes.

9. The system of claim 8 , further comprising an Application Programming Interface (API) that facilitates manually allocating one or more resources.

10. The system of claim 9 , further comprising:

an updating component that dynamically updates data concerning a resource, wherein updating the data includes one of adding new resource data, changing existing resource data and removing existing resource data, and where changing existing resource data includes one of changing a resource type, changing a resource characteristic, changing resource relationship data and changing resource dependency data.

11. A method for automatically and dynamically allocating resources, comprising:

noticing a resource allocation initiating event, where the initiating event is associated with resource allocation information;

automatically allocating one or more resources, wherein the one or more resources are associated with at least one of type data, instance data, characteristic data and resource metadata and where it is determined whether the one or more resources are available for allocation based, at least in part on examining at least one of a resource dependency tree, a resource instance table, resource instances and at least one of the type data, instance data, characteristic data and resource metadata;

updating at least one of the type data, instance data, characteristic data and resource metadata in response to the automatic allocation;

monitoring usage of the one or more resources, interactions between the resources, allocation status of the resources, maintenance status of the resources, load balances between the resources and predicted usage of the resources; and

producing feedback data concerning usage of the one or more resources.

12. The method of claim 11 , where the resource allocation initiating event is at least one of receiving a resource allocation request, receiving an interrupt and receiving a signal.

13. The method of claim 12 , further comprising returning a reply related to a resource allocation request.

14. The method of claim 13 , wherein the resources are allocated according to at least one of a provisioning algorithm and one or more allocation rules.

15. A system for automatically and dynamically allocating one or more resources, comprising:

means for noticing a resource allocation initiating event, where data associated with the resource allocation initiating event specifies one or more desired resources to be allocated;

means for storing information concerning one or more resources available to be allocated, the information including at least one of type data, instance data, characteristic data and metadata, and where the information is stored until a resource allocation initiating event occurs reguesting the stored information;

means for resolving one or more dependencies between the one or more available resources;

means for allocating one or more resources based, at least in part, on examining at least one of a resource dependency tree, a resource instance table and resource instances;

means for monitoring usage of the one or more resources, interactions between the resources, allocation status of the resources, maintenance status of the resources, load balances between the resources and predicted usage of the resources; and

means for producing feedback data concerning usage of the one or more resources.

16. The system of claim 15 , further comprising means for resolving one or more affinities between the one or more available resources.

17. The system of claim 16 further comprising means for selecting an algorithm to allocate the one or more available resources.

18. The system of claim 17 further comprising means for selecting one or more chosen resources to allocate in response to the resource allocation requests.

19. The system of claim 18 further comprising means for allocating one or more chosen resources in response to the resource allocation request; and

means for updating the information concerning the one or more available resources, the.

20. A computer readable storage medium tangibly embodying a program of instruction executable by a machine for allocating resources by performing the steps of:

noticing a resource allocation initiating event, where the initiating event is associated with resource allocation information;

automatically allocating one or more resources, wherein the one or more resources are associated with at least one of type data, instance data, characteristic data and resource metadata and where it is determined whether the one or more resources are available for allocation based, at least in part on examining at least one of a resource dependency tree, a resource instance table, resource instances and at least one of the type data, instance data, characteristic data and resource metadata;

updating at least one of the type data, instance data, characteristic data and resource metadata in response to the automatic allocation;

monitoring usage of the one or more resources, interactions between the resources, allocation status of the resources, maintenance status of the resources, load balances between the resources and predicted usage of the resources; and

producing feedback data concerning usage of the one or more resources.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2005
From: CHELLIS, EUGENE C.; BURTON, WILLIAM G.; VANDENBERG, CHRISTOPHER; MOHAN, SIVA; SACHETI, ARUN K.; COLE, JUSTIN
To: MICROSOFT CORPORATION
Reel/Frame 015853/0472 →
Continuity (2)
Continuation 0979628400 · Feb 28, 2001
Related Publication 20050193115A1 · Sep 1, 2005