The transaction processing that is required to fulfill a request must have the coordinated support of namespaces and providers. The following example illustrates how a single request might invoke the support of a non-provider namespace, a provider namespace, and a provider.Process flow of a non-provider namespace procedure through MPF
In the example, the Active Directory Provider namespace contains a procedure that adds an object to Active Directory. Managed Active Directory Namespace contains a high-level procedure called CreateUser that works with Active Directory Provider to add a user to Active Directory. These two procedures must work together to successfully implement the request.
The request to create an object (in this example, a user) in Active Directory executes through the CreateUser procedure of the non-provider namespace. The CreateUser procedure, in turn, calls the CreateObject procedure of Active Directory Provider. Active Directory Provider performs the core functionality of adding the object to Active Directory. The namespaces cannot communicate directly to Active Directory, but must go through Active Directory Provider.
As the diagram shows, the process starts with an incoming request. The XML request is submitted to Microsoft Provisioning Framework (MPF), either from Delegated Administration Console or as a direct XML request. Upon receiving the incoming request, MPF expands the request and calls the required procedures from the appropriate namespaces. In this example, the following procedures and namespaces are called:
This non-provider namespace procedure contains the business logic that invokes the procedure of the provider namespace.
This provider namespace procedure invokes the programmatic procedure of the underlying provider.