Managing resources

Resource Manager executes XML requests received from provisioning engines. Usually, these requests are part of a series of requests involving multiple areas of Microsoft Provisioning Framework (MPF). For example, when you provision a new user in Active Directory® using the Active Directory Provider namespace, you might invoke Resource Manager to create and configure the user as a consumer with an allocation for disk space.

Resource Manager includes both an engine and a database. The Resource Manager engine manages the transaction processing required to implement specific resources. The Resource Manager database is an SQL database that contains all of the resource management configuration data for resources and consumers, as well as transaction-handling data.

The two Resource Manager providers, CoreRMO and BlockModelRMO, receive the incoming XML requests. CoreRMO supports add, delete, query, and update operations for consumers and resources, as well as for their respective instances, types, and groups. It also establishes mapping relationships between consumers and resources. BlockModelRMO defines capacity for resource types and manages allocations.

After acting on the XML requests, the two providers pass data to the Resource Manager engine for processing. The engine uses a compensating approach for transaction record locking. The engine breaks up transactions into smaller updates (including the process, prepare, commit, and rollback steps) that execute as the transaction commits or aborts. This approach minimizes the holding period for record locking. This is significant because installations typically have a large number of consumers relative to a small number of shared resources.

For more information about Resource Manager namespaces, see BlockModelRMO and CoreRMO.

The Microsoft Provisioning Framework Software Development Kit (SDK) also contains additional resources and information on namespaces and the Resource Manager component of MPF. For more information on the SDK and how to use it, see Microsoft Provisioning Framework SDK.