Well-Enabled Services Technical Overview

Each of the Well-Enabled Services (WES) described in this kit exposes an interface for applications using the Connected Services Framework (CSF) to communicate with Value-added Services (VAS) made available through the Microsoft Solutions for Hosters. The Microsoft Solution for Hosted Messaging and Collaboration, the Microsoft Solution for Windows-based Hosting, and IPTV are all VASes made available to service providers and solution integrators by Microsoft.

Developers interested in learning more about how to design and develop a Well-Enabled Service (WES) to interoperate with CSF should download the CSF 3.0 SDK and the CSF 3.0 Developer Guide available at Connected Services Framework 3.0. In particular, the following topics in the CSF 3.0 Developer Guide provide additional information:

The WES API for each VAS implements the following common functions:

Invoking WES Methods

The following code snippet provides an example invoking WES methods from a calling application using the Microsoft Connected Services Framework SDK:

//Addressing Headers
AddressingHeaders addressingHeaders = new AddressingHeaders(SENDERURI, null, null);
addressingHeaders.To = RECEIVERURI;
Header header = new Header();
if (addressingHeaders != null) header.Addressing = addressingHeaders;
MessageSender messageSender = new MessageSender();
Message message = Message.CreateMessage(header, null, SoapProtocolVersion.Soap12);
//Set SOAP Action
message.Header.Addressing.Action = Microsoft.Provisioning.WellEnabledService.HostedExchange.Constants.CREATEMAILBOXACTION;
//Populate CreatePlanRequest with data.
CreateMailboxRequest request = new CreateMailboxRequest();
request.Username = Username;
request.Password = Password;
request.Data = new CreateMailboxRequestData(); 	
request.Data.preferredDomainController = preferredDomainController;
request.Data.path = "LDAP://CN=johnc@alpineskihouse.com,OU=AlpineSkiHouse,OU=ConsolidatedMessenger,OU=Hosting,DC=Fabrikam,DC=Com";
request.Data.planName = "BaseMail";
request.Data.customerTypeName = "BusinessUser";
message.Body = request;
//Send request and Handle Response
CreateMailboxResponse response = messageSender.SendSync<CreateMailboxResponse>(message);

WES Message Schema

Method signatures for Health and Provisioning methods utilize data classes for the method input and return values. For example:

[Operation(Name="CreateMailbox", Action=Constants.CREATEMAILBOXACTION)]
		public CreateMailboxResponse CreateMailbox(CreateMailboxRequest request) {

These "Request" and "Response" classes are generated from XML Schema Definition (XSD) documents that are shipped with each WES described in this kit. These documents can be found by looking at the root of the installed WES virtual directory. For example, to find the schema for the Hosted Exchange WES, use the following URL on the server on which the WES was installed:

http://localhost/HostedExchange/CreateMailboxRequest.xsd

Note

You can also view the entire Web Service Description Language (WSDL) for the service with the URL to the service HTTP Handler:

http://localhost/HostedExchange/Service.ashx