Structure of Resource Manager
Components

The Resource Manager consists of two components:

Objects

The Resource Manager uses two basic entities, or objects, to manage resources:

Provider Namespaces

MPF includes the following two Resource Manager provider namespaces that implement resource management functionality:

Architecture

Resource Manager executes XML requests received from the MPF Provisioning Engine. Usually, these requests are part of a series of requests involving multiple areas of MPF. For example, the tasks for provisioning a new Web site include using the IIS provider to create the Web site and using Resource Manager to allocate the necessary disk space.

The following diagram shows Resource Manager architecture.

Figure: Resource Manager architecture

The two Resource Manager provider namespaces, CoreRMO and BlockModelRMO, receive the incoming XML requests. CoreRMO supports add, delete, query, and update operations for consumers and resources, as well as their respective instances, types, and groups. It also establishes mapping relationships between consumers (instances and groups) and resources (instances and groups). BlockModelRMO supports operations to define capacity for resource types and to manage allocations. For a list of procedures grouped by data type (consumers, resources, and so on), see BlockModelRMO and CoreRMO.

After acting on the XML requests, the two provider namespaces pass data to the Resource Manager engine, which manages transaction processing. The engine uses a compensating approach for transaction record locking. That is, the engine breaks up transactions into smaller process, prepare, commit, and rollback updates that are executed as the transaction as a whole commits or aborts. This approach minimizes the holding period for record locking, a significant consideration because installations typically have a large number of consumers relative to a small number of shared resources.

The Resource Manager database is an SQL database that contains all the resource management configuration data for resources and consumers, as well as transaction-handling data.

For more information on using these provider namespaces to implement resource management, see BlockModelRMO and CoreRMO.