Welcome to MSDN Blogs Sign in | Join | Help

Developing a Provider for MPS

Hello Everyone,

I get asked every now and then how to create a custom provider to extend the functionality of MPS. Well here is the details on how  to go about it.

Before we start on this endevour let me go through a couple of prerequesites and common myths out there.

Myth 1: There is no SDK for MPS

somewhat BUSTED: Well while it is true that we do not have installable SDK that works with Visual Studio 2005 and .NET Framework 2.0 there is some help for devolpers available. When you start out searching for the SDK it might happen that you will  find the MPFSDK on some older distribution of MPF. Take my advice do not use it - if you have a desire to install VB6 and try it out be my guest though :-)

Later versions of MPF shipped a set of development tools which were designed to somewhat integrate with Visual Studio 2003 and provide some basic starter information for developers.

We are working on an update of the SDK tool set for Visual Studio 2005 and .NET 2.0 and that will be available later this year. If you are interested in getting added to the official preview list and get a peek at what we are doing there drop me a line with your e-mail address, company name and address so I can put you into our database of potential beta testers.

Myth 2: Microsoft does not support custom provider development for MPS

BUSTED: we encourage everyone to go ahead and expand on what MPS does so it fits their needs. Microsoft Customer Support Services will not support your own code but will provide you with all the support needed for running MPS in the Solution Environment.

So now that we have dealt with this on  to preparing your environment for MPS Development.

What you will need

  • Windows Server 2003 SP1 Machine
  • MPS Distribution from Windows Based Hosting 3.5 or Hosted Messaging and Collaboration 3.5
  • SQL Server 2000 SP4 install media
  • Visual Studio 2003 install media
  • A Domain Controller you have administrative access to (can be a Virtual Server)
  • A server running the service you are creating a provider for and which you can use to try out your provider (can be a Virtual Server)

Getting started

  • Install the OS on all machines (if not already done) + the latest Service Pack and Hotfixes
  • Join all machines to the domain
  • Install SQL Server 2000 and SQL Server 2000 SP4 on your development server
  • Install Visual Studio 2003 on your development server
  • Install MPS on your development server using the MPF.MSI following the Install Wizard and installing all components except the ISAPI Filter
  • Reboot the Development Server
  • If you need the other providers and Namespaces shipped with the solutions you can install the respective MSIs on the MPS Engine Server from the Solution Distribution.
    • Note: The MSIs will tell you that they can only be installed by the Deployment Tool. To get around this use this command line without the quotes "msiexec /i msiname.msi ENABLEUI=YES" (the parameter is case sensitive.

NOTE: Do NOT use this for a production system these instructions are for Development systems only!!!

  • Now that this is done let's set up the environment variables on the Development Server
    • Open the computer properties and on the Advanced Tab add the following path to the Path Variable C:\Program Files\Microsoft Provisioning\Tools
    • Add the Domain\MPFServiceAccts Group to the local Administrators Group
    • Restart the MPF Engine COM+ Application using the Component management MMC Snapin (dcomcnfg.exe).
  • open a Command Prompt and type provtest.exe /X3 "C:\Program Files\Microsoft Provisioning\Samples\Simple.xml"
    • You should get a response that is formated XML in green and blue looking like this

    <response>
       <data>
          <organizations>
             <organization name="tailspintoys.com"/>
          </organizations>
       </data>
    </response>

If the response is a error in yellow and red like this (Error Message might be different.

<response>
  <errorContext description="No provisioning engines are available to process the request." code="0xc2201908"/>

</response>

make sure that all the environment settings are done correctly. If in doubt please post questions on the Microsoft Provisioning Forum (Link is in the Links section of the Blog)

OK now you are almost ready to start developing. As kind of a warm up and to familiarize yourself with the MPS Architecture, how providers and named procedures work and how the named procedure XML schema works have a look at the MPFSDK.CHM file which has been installed in C:\Program Files\Microsoft Provisioning\Help on your development server.

Last but not least download and unzip the Visual Studio 2003 Preliminiary SDK Components to C:\MPSSDK, this will get you the neccesarry Interop DLLs and a couple of Samples how to get started. If your Visual Studio 2003 is not installed on the C:\ Drive make sure to adapt the install.cmd in the C:\MPSSDK\Installer Folder before you run it.The MPS SDK is available from downloads.microsft.com now.

Also note that these components are not production ready yet they are Alpha code so to speak. The interfaces though are fairly complete. If you develop a provider using them you should update to the release version of them once we ship them and there might be some changes between now and then but they will be small and in general the provider should work the same.

The next Post will deal with creating a simple provider and go into detail how to hook that provider into MPS and test it, so stay tuned, as well as have an update on where we are with the SDK Development effort and when to expect the Beta Release.

Until then

Mike

Published Thursday, March 02, 2006 2:30 PM by mkostersitz

Comments

# Microsoft Provisioning System (MPS): Overview

Thursday, March 29, 2007 10:30 PM by Ariel Schapiro

These days I've benn investigating on what Microsoft Hosting Solutions and Microsoft Provisioning System

# Ariel Schapiro&#8217;s Blog &raquo; Blog Archive &raquo; Microsoft Provisioning System (MPS): Overview

Anonymous comments are disabled
 
Page view tracker