SOA is the service-oriented architecture used to link together seemingly disparate
applications or programs, into one seamless system whose components work together for a
specific purpose. Before, SOA developers were content with simply doing just that and
nothing more. However, in this more demanding environment, SOA now also has to be reliable,
secure and great on performance.
This is where ESB comes in. ESB stands for Enterprise Service Bus, which is a system within
the SOA system. The ESB permits different transport layers to be consistently interconnected
within the SOA environment. ESB also allows for data transformation so that SOA components
that are not based on the XML system will have their messages changed into XML first before
being communicated to the other parts of the SOA.
ESB also has to be founded on a reliable message layer so that messages being sent through
the ESB system are both traceable and dependable. This is accomplished when the ESB uses a
JMS implementation, or if protocols are superimposed by the ESB on unreliable transport
layers. Security is also assured by the ESB if a policy document is used for ESB
configuration in the areas of security provision and enforcement.
In addition, ESB can perform asynchronous messaging management if it relies on certain
protocols or when certain languages are correlated with one another.
Certain software developers are averse to using ESB because they claim they can work in the
functions of the ESB themselves into the SOA solution without depending on ESB. But others
welcome use of ESB because it may reduce the time spent developing those functions and
integrating them into the SOA.