views:

150

answers:

1

Hi,

I am trying to get a further understanding of message buses and one question that keeps coming up in my head is "how does the message get onto the bus?". Now, I assume there is a service (WCF, etc) of some sort that receives messages and puts them onto the bus. So then the other question I have is isn't this service then likely to be a bottleneck? I assume you would architect this service so that it can be easily scaled, such as through load balancing? Or would there be another way?

Also (sorry, it was originally only supposed to be one question), where would the routing tables be held that define where messages should go; in a database? Again, wouldn't this then be a potential bottleneck?

I am trying to look at this from a non product (BizTalk etc) or framework (NServiceBus, Mass Transit, etc) perspective. As if you were going to be writing this kind of thing from scratch. I want to get my head about what you are getting and the potential issues. I guess if you use BizTalk it has the message box for the routing tables, a notorious bottleneck in the past. I also see that you have the concept of "on ramps" with the ESB part of 2009. But as I said, I would like to think beyond a product and how people see it should be architected.

Many thanks for any insight.

+3  A: 

One thing you might want to consider is that a Service Bus is something slightly different than just a Message Bus. In order to understand the difference, we need to look at what is a service in the SOA sense.

A WCF service isn't an SOA service - as it isn't necessarily autonomous (either at runtime, where it can be blocked by other WCF services it calls, or at design time, where it may require versioning when the WCF services it calls change).

Most of the technical questions you raise (scaling, routing, etc) are first and foremost addressed by the autonomy of the service in question. Only then does an ESB begin to make sense.

I understand that this doesn't provide much in the way of guidance, but you can try reading some of the stuff I've written on this topic (for the past 3 years) on my blog and in the articles I've published. Here's a good (and recent) one that can get you started in the right direction:

http://www.udidahan.com/2009/09/29/article-eda-soa-through-the-looking-glass/

Hope that helps in some way.

Udi Dahan
Thanks for the response Udi. In your opinion, how well does BizTalk 2009 ESB Toolkit 2 address the requirements for an ESB?
Jon Archway
*In my opinion* not very. But then again, seeing as there is so much contention as to the definition of what an ESB is, I'm not sure that's the right question to ask. Maybe a better question would be, "is product ABC useful in building systems that are maintainable, scalable, etc? And if so, how?" You can see an answer to that question on this page:http://www.nservicebus.com/InsteadOfBizTalk.aspx
Udi Dahan