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:
- Provisioning Engine
- 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 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
- 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
- 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.
- 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
- 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.