AppFabric and WAS 1 Windows Service 0

We recently received a proposal from a supplier for their integration into our backend stock control system. A requirement of the solution is asynchronous communication in both directions so MSMQ was recommended as expected. However, I was surprised to see the implementation their side for processing messages was a Windows Service. The platform is entirely Windows Server 2008 and .NET 4.0 so the choice of a Windows Service which carries with it all of the responsibilities of appropriate application management is in my opinion the wrong choice.

The “better” solution in the absence of a full Service Bus (Biztalk etc) would be implemented using Windows Activation Service (WAS) hosted WCF/WF Services enriched by AppFabric. This feature set provides so many functional and operational benefits; I struggle to see where a valid use case exists for implementing any messaging solution via a Windows Service. That’s a broad statement that can’t hold true for all requirements but I believe architecturally when the discussion turns to a Windows Service we should be asking the question “Why shouldn’t we do this in IIS/WAS and AppFabric?” rather than “Why should we?”

Below are some of the benefits (not just limited to message queuing) of WAS and AppFabric you can leverage without writing a line of additional code

  1. Leverage common deployment practices through MSDeploy
  2. WAS alone (via the IIS Process Model) will provide significantly enhanced Process Management through built in and easily configurable:
  • Recycling
  • Throttling
  • Security
  • Scalability (shared worker process where appropriate)

 

  1. AppFabric will provide (again through easy configuration):
  • IIS Management Console integration giving visibility into configurable searchable metrics via the AppFabric dashboard.
  • Workflow Persistence including idle time management
  • Caching Services (additional install)
  • Configurable Service Auto Start (requires Server 2008 R2)
  • WCF Endpoint Management
  • Easy configuration of WCF/WF Event Tracing
  • Easier integration of custom monitoring services (i.e. a custom system reporting website)
  • Pluggable tracking/tracing profiles
  • Easier integration for reporting into SCOM (additional install pack)

Significantly, AppFabric Server will also provide you with a head start (albeit a small one) into the runtime framework of Azure AppFabric as the two offerings begin to converge over the next few years.

I hope this post has proven useful to someone looking at delivering application services that might otherwise have considered a Windows Service to be their only option. AppFabric is available through the Web Platform Installer and further information on Windows Server AppFabric can be found here.

Advertisement

About Darren

I’m a Software Developer from Birmingham in the UK. I work primarily with Microsoft technologies which for pretty much everyone nowadays that means .NET. I do however like to step outside the distortion field as often as possible to soak up some of the Open Source goodness. Of late this has been mainly javascript and HTML5 as I'm fascinated by the direction the web will be taking over the next few years with the onslaught of the mobile platforms. Finally the world is catching up. If only more people had enjoyed the goodness that was the HP TC1100 so many years back! Most of my development is done in C# producing bespoke business applications. For the last five years this was for an IT services company but I’m now working in the IT department on some exciting work for a large UK institution. I’m not going to name them here as although the majority of this blog will be about the projects I’m working on and the knowledge I gain (and mistakes I make!) with them they are entirely my own opinions.
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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