What is an Enterprise Service Bus (ESB)

What is an Enterprise Service Bus ESB

Enterprise Service Bus (ESB) is an enterprise architecture developed using agreed enterprise principles and best practices for integrating the different business applications in an enterprise.

In this article, I shall brief about basic aspects of Enterprise Service Bus covering the below points,

Information Architecture standards talk about the seamless integration of information across enterprises and ESB helps to solve the most type of integration and message communication problems like overcoming challenges around transport (Ex. HTTP, TCP, SOAP), Message Exchange format (Ex. XML, JSON), message routing, security standards, etc.

Let’s talk about each basic core ESB functionality in detail and understand them,

ESB Functionalities

Below are very high-level ESB functionalities explained,

Orchestration

What is ESB

Orchestration is techniques of orchestrating business workflow(composite service) using a fine-grained individual component.

If the organization is already following microservice architecture then orchestrate (composite service) will compose business workflow using multiple single responsibility services to achieve functionality.

ESB Point to Point Vs Orchestration
Point to Point Vs Orchestration

In the above example, the left diagram depicts a point-to-point integration showing an application overloaded with complex logic of integration with multiple dependencies.

The right diagram depicts the orchestration where microservice 1 or 2 may not know that they are being orchestrated. Orchestrate service knows the business workflow and the messaging sequence required.

Orchestration can even be implemented using SOA architecture but ESB product helps better manage discipline, best practices, and granular control on integration.

Choreography in Microservices

What is Choreography in Microservices

“Dancers dance following a global scenario without a single point of control” –Wikipedia

Choreography is a technique of service composition based on Event-Driven Architecture.

Applications or Processes are engineered together by a rich event mechanism connecting multiple components or endpoints together (based on business rules and agreements.).

Many use this middleware architecture as a recommended approach for microservice communication to create scalable, decoupled, and highly available systems.

Choreography can handle both simple to very complex event handling mechanisms. As shown below each service know its responsibility and wait for its turn to exchange message based on the business event.

Point to Point Vs Orchestration ESB

Today’s advanced ESB, if capable of doing Choreography and Orchestration then it would be a great advantage. However, some might think Orchestration or Choreography should belong to the BPMS or BPMI category.

Any ESB supporting an effective event management system could be a great feature.

Data Transformation

blank

The ability of the ESB to transform messages to several other formats as required by consuming application.

ESB Data Transformation

Data Transportation

blank

The ability of the ESB to negotiate multiple protocols for communicating between consumers and providers. including HTTP, TCP, UDP protocols.

ESB Data Transportation

ESB should have the capability to support multiple protocols and any updated specifications, standards, and guidelines around their usage.

Routing

blank

The ability of the ESB to determine publishers or consumers of messages based on pre-configured rules. Ex. Content-based routing, Policy-based Routing, or static routing.

Bringing ESB to make it responsible for handling resources, and communications in the enterprise based on the policy, gateway, roles configured, etc.

Mediation

blank


The ability of the ESB to support multiple interfaces for the same component thereby increasing reusable solution building blocks (SBB).

Bringing ESB to make it responsible for handling resources in an optimized way leveraging both services, components including broad ABB (Architecture building blocks) and SBB (Solution building blocks) within the enterprise.

Governance

blank

The ability of ESB to apply business rules uniformly, monitoring and reporting and ability to keep track of systems-wide message exchange.


Scalability 

blank

The ability of ESB to scale up or scale down as needed.

ESB is mainly about scalability. ESB should be able to let you scale in any direction based on enterprise business architecture.

There are many ESB COTS ( Commercial of the shelf) products available in the market like Mule, JBoss, Apache, Biz talk, APIGEE, and IBM Connect which can be looked at for addressing multiple enterprise needs.

ESB is a very huge subject and in this article, I tried to highlight the basic functionalities of Enterprise Service Bus. Hope you liked this article.

Other References:

Do you have any comments or ideas or any better suggestions to share?

Please sound off your comments below.

Happy Coding !!

Summary

Today’s modern organization’s manifesto has a run for “Speed to the Market”. To achieve business objectives ESB could play a big role. An organization consisting of a mix of modern and legacy systems always faces challenges around application integration. The best that can be done is to integrate different systems effectively using mature ESB (COTS products) to overcome Transport, Legacy system, Message exchanges, or Security related challenges.



Please bookmark this page and share it with your friends. Please Subscribe to the blog to receive notifications on freshly published(2024) best practices and guidelines for software design and development.



Leave a Reply

Your email address will not be published. Required fields are marked *