Microsoft Managed Services Engine

I’m trying to work out why the Microsoft Managed Services Engine project isn’t getting more attention.

The short answer (I guess) is that the concept is pretty dry unless you are an architect who has encountered these sorts of problems 🙂

It is a great tool for virtualizing your web services. One previous project I worked on had an internal IT cost of around $40,000 to open a new port in their firewall for a new version of their client. This is an issue that MSE would have solved easily.


MSE allows you to host multiple services with the same names on a single endpoint.

It uses the format of the request to decide which version of the web service is appropriate for which service.


When you decide that you do not want to maintain an older service, you can deactivate it from the managment console.

Furthermore, you can redirect requests to the retired service to another by providing an XSLT transformation.


I admit that I don’t fully understand the capability of this feature. I know you can apply a ‘policy’ to a service such as running a RegEx expression against its output. There is also a policy to ‘throttle’ a WCF service, which could be useful if you want to give priority to the newer one. It seems to be straightforward to define new policies.. I can think of some security policies that might work well.

Reading around, it seems this was actually developed by Microsoft for some customers and they decided to release as an open source CTP project.

The team do not seem to have a blog or anything around this, so it is hard to know where it is going. Nevertheless, I hope it gets a formal roadmap soon since this is something I’d like to consider using on customer projects.

Some questions I have that I will endeavor to answer myself over the coming weeks:

  1. Do virtualized services perform as well as ‘real’ ones?
  2. Are there ‘best practice’ guidelines?
  3. How can load balancing be applied?

2 thoughts on “Microsoft Managed Services Engine

  1. I think you are right on why we don’t get more attention. Plus, the MSE is really an infrastructure solution and not necessarily a development tool. This doesn’t get the dev community that excited. To answer your questions:

    1) Virtual services add an overhead of 10-20 ms, not accounting for additional validation or policy execution, which will vary.
    2) There are best practices, but nothing publically documented.
    3) Catalog Servers and Runtime Servers are both completely stateless. Therefore, you can load balance them as you would any other web service. Services can have complex load balancing schemes through development of a custom channel that will deliver the message to the proper implementation. We have an implementation of this that hasn’t been publically released.

    Make sure you grab the MSE June 2008 CTP on CodePlex. 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s