Provider Architecture

A provider invokes the functionality of an external program or component, such as Active Directory directory service.

What a Provider Is

In Microsoft Provisioning Framework (MPF), a provider is the source of all functionality required to support provisioning services. MPF uses providers to execute requests. A provider is a COM object with one or more procedures that provides the functional interface to an external component, such as Active Directory. Each provider recognizes a set of defined procedures that are necessary to provision a resource or a distinct set of services. The provider is implemented as a .DLL file with a corresponding provider namespace registered in the configuration database.

Providers perform the core functionality of provisioning. Several standard providers are installed with MPF, including the Active Directory Provider. Several additional providers are also available in Microsoft Provisioning System. For example, if you use Microsoft Exchange Server 2003 you can use the Exchange Provider to provision messaging services for your organization or your customers. Using the Exchange Provider, you can also manage Simple Mail Transfer Protocol (SMTP) domains, create mailboxes, and complete other Exchange administration tasks.

How a Provider Works

Each provider namespace directly calls the functionality of a single underlying provider. These providers and their namespaces support a range of provisioning functionality. This functionality, described in the following list, is available through Microsoft Provisioning Framework (MPF):

Provider Implementation in Microsoft Provisioning System

Several providers are included in Microsoft Provisioning System. Most of these are installed by default when you install Microsoft Provisioning Framework (MPF). You install the other providers, as required. To implement the full functionality of Delegated Administration Console, you must use all of the providers included with Microsoft Provisioning System.

Installing any of the providers included in Microsoft Provisioning System automatically installs the corresponding namespace and registers the namespace in MPF. In Provisioning Manager, the Microsoft Management Console (MMC) snap-in for MPF, the namespace properties specify the name of the provider that is called by that namespace.

MPF supports the development of custom providers in Microsoft C#.Net, Microsoft Visual Basic.NET which is supported by the Microsoft Provisioning System (MPS) Software Development Kit (SDK). The MPS SDK contains templates for both C#.NET and Visual Basic.NET that automatically generate the basic structures of provider objects and procedures. See Visual Studio 2005 Tools for more information.

After creating a provider and its associated namespace, you can use regasm.exe /codebase to register the provider on every computer that has a provisioning engine. After registering the provider, you register the namespace by using Provisioning Manager to import it.