views:

3174

answers:

3

I come from a background of MoM. I think I understand ESB conceptually. However, I'm not too sure about the practical differences between the two when it comes to making a choice architecturally.

Here is what I want to know

1) Any good links online which can help me in this regard.

2) Can someone tell me where it makes sense to use one over the other.

Any help would be useful.

A: 

An ESB is typically a layer that routes, logs, transforms, and performs other 'technical' (i.e. non-business) functions on messages. It could process messages from a messaging system (such as something JMS-based), or it could work with other types of message (such as SOAP-based web services). In that respect, it's more general than MoM.

Disclaimer: I am an IBM WebSphere consultant - although I am not contributing here in an official capacity.

Andrew Ferrier
+15  A: 

Messaging tends to concentrate on the reliable exchange of messages around a network; using queues as a reliable load balancer and topics to implement publish and subscribe.

An ESB typically tends to add different features above and beyond messaging such as orchestration, routing, transformation and mediation.

I'd recommend reading about the Enterprise Integration Patterns which gives an overview of common patterns you'll tend to use in integration problems which are all based above a message bus (though can be used with other networking technologies too).

For example using open source; Apache ActiveMQ provides a loosely coupled reliable exchange of messages. Then you can use Apache Camel to implement the Enterprise Integration Patterns for smart routing, transformation, orchestration, working with other technologies and so forth.

James Strachan
A: 

ESB with web services in its true form provides Application loose coupling by sending the data through one the elements of the message.

MOM provides not only Application Loose coupling but process loose coupling along.

ESB comes with additional features supporting Governance centric approach.

Both can be used independently or together depending upon the scenario.