Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Message Oriented Middleware (MoM) Vs. Enterprise Service Bus (ESB)

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.

like image 443
a-sak Avatar asked Nov 21 '08 16:11

a-sak


People also ask

What is difference between ESB and middleware?

Compared to other forms of middleware architecture, an ESB is characterized because it supports both request and response communication as well as one-way communication. This means that the best ESBs have very high error tolerance and scalability, as well as advanced data storage and forwarding capabilities.

What is difference between SOA and ESB?

To put it simply, in concept, both SOA and ESB are software architectures, but when you take that into practice, SOA becomes the goal, while the ESB becomes the tool through which software application integration can be possible and components can be used to deliver services and increase agility in the software ...

Is enterprise service bus a middleware?

An ESB is a middleware solution that uses the service-oriented model to promote and enable interoperability between heterogeneous environments.


2 Answers

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.

like image 126
James Strachan Avatar answered Sep 20 '22 22:09

James Strachan


I put MOM solutions and ESB solutions on two distinct planes.

I consider MOM a building block for ESB solutions. In fact, ESB solutions reach their own loose coupling and asynchronous communication capabilities, just using the paradigm offered by the specific MOM implementation.

Therefore, MOMs represent solutions for data/events distribution at customized level of QoSs (according to the specific vendor implementation), instead ESBs represent solutions providing capabilities to realize complex orchestrations in a SOA scenario (where we have multiple providers offering their services, and multiple consumers interested in consuming the services offered by the first ones).

Complex orchestrations imply communication between legacy systems, everyone of these with its own data domain representation (rules and services on specific data) and its own communication paradigm (one consumer interact with the ESB using CORBA, another one using WS, and so on).

It is clear that ESB represents a more complex architectural solution aimed to provide the abstraction of data-bus (such as the electronic buses that everyone have in his own pc), able to connect a plethora of service providers to a not well specified plethora of service consumers, hiding heterogeneity in (i) data representation and (ii) communication.

Sorry for the long post, but the concepts are complex and it is very difficult to be effective and efficient in a short statement.

like image 33
Paolo Maresca Avatar answered Sep 16 '22 22:09

Paolo Maresca