Microsoft Provisioning System (MPS) in contains various components that you install and configure with the MPS Deployment Tool. This section describes the functions of each of these components and the architecture in which they exist.

MPS includes a variety of components that support provisioning in the service provider environment, including the following:

  • Namespaces
  • Procedures
  • Provisioning Engine
  • Providers
  • Databases
  • Several facilities for calling into MPS

The following figure shows MPS component architecture.

Figure: Microsoft Provisioning System architecture

To initiate the provisioning of hosted services, you provide XML requests as input to MPS. MPS then converts the specified XML into API calls to external applications such as Microsoft Active Directory, DNS, Internet Information Services (IIS), and Microsoft SQL Server, where the appropriate provisioning tasks are actually performed. MPS has a transactional Provisioning Engine that allows any failed transactions to be rolled back or compensated for. MPS can also log provisioning transactions for historical reference and troubleshooting. In addition, MPS provides queuing facilities for submitting batch XML requests that can run later.

MPS components

MPS components provide a robust provisioning environment with an extensible architecture that allows you to provision a wide variety of applications and services. In Microsoft hosting solutions, all the MPS components are deployed and configured with a single installation application:

  • Namespaces and Procedures - Namespaces are XML definitions that contain collections of one or more procedures and are stored in the MPS Configuration database. Procedures are also XML definitions and are used to invoke the functionality of either an underlying provider or other namespace procedures.
  • MPF Client Components - MPF Client components consist of the following:
    • MPF Client - The MPF Client is a Component Object Model (COM) object that receives XML requests containing namespace procedures and forwards them to the Provisioning Engine. After the provisioning system executes the request, an MPF Client method returns the results to the requester in XML format.
    • MPS .NET Client Wrapper - The MPS .NET Client Wrapper is a .NET assembly that allows .NET applications to generate base XML requests that can be submitted into MPS by means of the MPF COM Client object.
  • Provisioning Engine - The Provisioning Engine is a COM+ service that receives XML requests from the MPF COM Client and performs a series of predefined or improvised provisioning actions under the context of a specific security identity.
  • Providers - Providers are dynamic-link library (DLL) components containing the programmatic procedures that make API calls to external applications that implement the low-level tasks initiated by provisioning requests. MPS comes with a core set of providers that allow you to quickly begin using the capabilities and benefits of MPS.
  • Databases - MPS databases include the Configuration database, Transaction log, Audit and Recovery Service, and Audit log. In addition, MPS provides a database that allows you to provision predefined customer service plans and track provisioning events to facilitate billing functions.
  • Provisioning Manager - Provisioning Manager is a Microsoft Management Console (MMC) snap-in for managing most MPS components such as server components, namespaces, procedures, and each of their properties.
  • Resource Manager - Resource Manager tracks the availability and usage of resources such as disk space allocated to SQL Server databases or IP addresses for Microsoft Internet Information Services (IIS) Web and File Transfer Protocol (FTP) sites. The Resource Manager is included with MPS, but is not covered in service provisioning.
    See the MPS Operations Guide "Resource Manager" topic for more information about the Resource Manager. You can locate the MPS Operations Guide on Microsoft Hosting Solutions for Service Providers at: \Service Provisioning\MPS\MPF\help\opsguide.chm.
  • Non-Provider Namespaces - Non-Provider (managed) namespaces are predefined sets of provisioning actions that come with MPS. These namespaces focus on the implementation of common sets of provisioning tasks that are customized by Microsoft for the service provider environment.

More details on the MPS SQL Server databases

  • Configuration Database (MPFConfig) - MPS uses this SQL Server database to maintain records of all provisioning servers, credentials, and namespaces (and their procedures) installed with MPS.
  • Transaction Log Database (MPFTranLogData) - MPS uses this SQL Server database to maintain short-term information about each MPS transaction. If a transaction fails to complete, information from the database can be used to successfully roll back the transaction. You can specify whether to delete data for a completed and failed transaction or to log the data in the audit log database. The Auditing and Recovery Service is installed with the transaction log component.
  • Audit Log Database (MPFAudit) - MPS uses this database to maintain records of the transactions that are marked for audit in each procedure. This is the only database that can be accessed directly from SQL Server.
  • Resource Manager Database - MPS uses this SQL Server database to maintain the records of resources available for allocation to MPS, in addition to records of how resources are currently allocated. The CoreRMO and BlockModelRMO namespaces provide the procedures required to manage this database.

With MPS components, you can implement the provisioning of hosted services in the service provider environment.

Microsoft Provisioning System SDK

This software development kit (SDK) simplifies the development of providers and namespaces by using the MPS Provider wizard and the Microsoft IntelliSense for MPS XML feature. You can develop new providers in the Microsoft Visual C# .NET, C++, or Microsoft Visual Basic 6.0 languages. This tool also includes the MPS .NET Client Wrapper, which allows you to integrate ASP.NET or other .NET applications with MPS. Go to Microsoft Provisioning System SDK to download this kit.