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
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.
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
“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.
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
The ability of the ESB to transform messages to several other formats as required by consuming application.
Data Transportation
The ability of the ESB to negotiate multiple protocols for communicating between consumers and providers. including HTTP, TCP, UDP protocols.
ESB should have the capability to support multiple protocols and any updated specifications, standards, and guidelines around their usage.
Routing
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
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
The ability of ESB to apply business rules uniformly, monitoring and reporting and ability to keep track of systems-wide message exchange.
Scalability
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.