Re.Mark

My Life As A Blog

The Service Bus

leave a comment »

In any reading or discussion about Service Oriented Architecture, it’s nearly impossible to avoid the concept of the Enterprise Service Bus.  First off, it has a great name – sounds like something Captain Kirk uses to get to work.  Secondly, it seems to be the Answer.  It connects everything together and routes and mediates and adapts and does other stuff like that.  In addition, some of these ESBs have automatic deployment and built-in development tools.

Of course, no-one can quite agree what an Enterprise Service Bus is.  Nicholas Allen, in a post about various definitions, notes:

“When I first read about ESBs in 2003, I didn’t expect to still be trying to understand them more than four years later. In comparison, there have been other technologies that in the same time frame were introduced, developed, matured, and obsolete.”

I’ve even read Enterprise Service Bus – which explains what an ESB could be in a java-centric way – and, yet, there’s this nagging doubt.  The first problem is the lack of consensus on what an ESB is or should be.  The second problem is the sheer scope of the included functionality.  I don’t like TVs that have integrated DVD players so I’m going to need some convincing that bundling the routing, transport, adapting, mediating, deployment and development into one piece of (often proprietary) software is a good idea.

Another problem with the ESB concept is the startling lack of ESBs in the .NET space.  There’s plenty in Javaland, but few, if any, in .NET.  At first, it’s easy to take this apparent gap as Microsoft missing something.  However, I’ve come to think that there may not be one in .NET because you don’t need one.  You do need transport.  You may need routing and mediating.  You might even need all the rest of the functionality of an ESB.  But you can get what you need and plug it together.  Doing so allows you to build as much infrastructure as you need when you need it, which means you can focus on delivering some useful software instead of an expensive infrastructure project.  There’s plenty of technologies you can use to implement this sort of approach (think WCF, MSMQ or JMS, BizTalk.)  There’s even guidance from Microsoft about building an ESB or you could look at Udi Dahan‘s NServiceBus project.

This modular approach has a lot to recommend it.  But it doesn’t have a cool name.  Now, if we can sort that out, it might just catch on.

Advertisements

Written by remark

October 1, 2007 at 10:54 pm

Posted in .NET, Architecture, c#, Design, Development, Java

Tagged with , , ,

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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: