Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between SOA and ESB

Tags:

soa

esb

I am confused in these web service terminologies SOA, ESB.

Anybody please explain.

like image 886
Gagan Avatar asked Feb 14 '13 09:02

Gagan


People also ask

What is the role of ESB in SOA?

The Enterprise Service Bus (ESB) is a software architecture which connects all the services together over a bus like infrastructure. It acts as communication center in the SOA by allowing linking multiple systems, applications and data and connects multiple systems with no disruption.

Is ESB part of SOA?

In this guide, learn more about the ESB (an essential component of SOA), the benefits it offers, and how it relates to microservices architecture.

What is SOA EAI and ESB?

Simply put, an ESB is one model of SOA implementation and SOA is one way to achieve EAI. The relationship between these three concepts has been described as a Russian stacking doll, with EAI as the outer doll, SOA as the middle doll and ESB as the inner doll.

What is the difference between API and ESB?

There are two stark differences between the world of APIs and the world of ESBs: APIs are consumption-centric, whereas services exposed through ESBs are exposure/reuse focused.


3 Answers

SOA is service oriented architecture. In SOA services are decoupled and can interact with each other irrespective of the service type. Meaning a particular service can be platform or protocol specific but SOA enables such services to interact and exchange data. This data is essentially exchanged via ESB (Enterprise service bus) which forms the backbone of any SOA architecture.

Let me go ahead and give specific example to help understand this better. One way ESB could be implemented us by using JMS servers and using XML/XSD as means of transferring data between various services. So various service will register or connect to these JMS servers and exchange data using XML format. Generally SOA suite comes bundles with so called adapters that help transforming messages to and from format understood by service and XML.

For example consider shares trading system. Messages from stock exchange come in FIX protocol. You may have build an application that expects JSON. To make these both systems work you will use SOA - FIX Adapter will convert FIX message to XML, then this xml will be transferred to JSON Adapter over ESB which will then convert to JSON as required by your system endpoint.

Finally hoping following picture makes it very clear.

enter image description here

like image 54
Aniket Thakur Avatar answered Oct 30 '22 18:10

Aniket Thakur


SOA is an architectural approach where you expose and encapsulate 'services' in a coarse-grained manner. It does not prescribe any technical mechanism or implementation. SOA is more related to boundary / integration interaction between systems. So if system A exposes services using a SOA I can interact with those services from system B.

An ESB on the other hand is a technical implementation that aids in delivering a SOA.

like image 23
Eben Roux Avatar answered Oct 30 '22 16:10

Eben Roux


SOA :- Basically In SOA, On one side we have the Producer/Provider and on the other side we have the Consumer, separated by a Bridge(which is network) where the two sides communicate. So focus is on how two parties interact(produce/consume) services

ESB:- ESB is architectural pattern which how multiple applications/components/system can communicate/interact with each other following SOA principles, though here there is no direct producer/consumer. HSo here we focus how multiple heterogeneous application going to interact with each other and achieve business objective.

Also,ESB gives API which can be used to develop services and makes services interact with each other reliably. Technically ESB is a messaging broker which does protocol conversion, message format transformation, routing, accept and deliver messages from various services and application which are linked to ESB.

like image 25
M Sach Avatar answered Oct 30 '22 18:10

M Sach