Day: January 30, 2008

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.

Versioning

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.

Retiring

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.

Policies

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?