What is Enterprise Service Bus (ESB) and a few popular ESBs today

Tram Ho

Introduce

We have heard a lot about e-government now, with the local data as well as the services used by the local governments being centralized and uniformly managed. One of the core technologies applied to centralize the services and data of different ministries and localities to manage and use them as a whole is ESB.

Concept

ESB is a complex middleware software tool that integrates individual components and services into a system and distributes work among those components and services. ESB can also perform many different roles such as protocol conversion, routing, message conversion, logging, etc.

Operation model

The basic way of using ESB to integrate applications is to place an integration axis in between the applications and allow these applications to link and communicate with that integration axis. This will keep the system’s subcomponents from being tied to each other and allow them to communicate with each other via the built-in axis, rather than directly point-to-point. ).

Structure

The ESB is a complex tool, moreover because there is no mandatory standard for ESB, so in practice many ESBs are developed based on different architectures, including different components and providing specific different solutions. However, most of them are composed of the following main modules:

Operations and Management module

This module includes functions that support integrated shaft operation and management. The main functions of this module are:

  • Statistics and status (Statistic & status): This component provides statistics on the integrated services of the ESB such as the number of errors, message processing latency, number of errors …
  • Alert (Alert): Provides a mechanism to send alerts through different channels to facilitate the monitoring of the operation of the integrated axis.
  • Load balancing: An endpoint can exist on many different physical systems, this load balancing component can help to call to this endpoint evenly between the physical endpoints. . This load balancing component is usually implemented according to the weighted Round Robin algorithm.
  • Message Throttling: Limiting the number of messages sent to the server over a period of time is one thing to do to overload the system.
  • Configuration management: Allows to adjust the configuration of the ESB safely on the operating system, in addition it can save the edit history to be able to restore the ESB to the previous state in case of configuration. Inappropriate image causes system error.

Resolution module (Mediation)

We can consider this to be the core module of the ESB, which includes the functions necessary to establish the ESB message flow so that it is consistent with the business problem of the business.

  • Message routing: Message routing to the right service they need based on the header, content and protocol of the message.
  • Message tranformation: Allows converting the message format from one format to another, for example from XML to JSON, from text to binary and vice versa.
  • Protocol Translation: The ability to switch from one communication protocol to another, such as from FTP to HTTP.
  • Message Validation: Having the ability to ensure the message is valid, for example, in the case of a JSON format, we need to ensure that the content of the message is correct with the syntax of this format. .
  • Transaction: Similar to the concept of Transaction of Relational Database Management System, ESB provides us with the integrity of message processing. If, in the message processing thread, a process fails, the whole process will be canceled and restored to its original state.

Security module (Security)

This module supports security at both the message and transport layer with the following components:

  • Authentication: Authenticate users when accessing the service integrated into the ESB.
  • Authorization (Authorization): Provides the function of authorization for setting up the ESB for the administrator or by role of the administrator.
  • Encryption and decryption (Encryption): Provides the function of encoding and decoding messages.

Modulation and transport module (Adapters / Transport)

This module includes adapters that help connect to the services offered by ESB through the Services Hosting module. All incoming and outgoing requests must go through the adapter. Adapters allow the ESB to interact with multiple output mechanisms. Often the ESB will provide adapters available to facilitate connection of services, these adapters can be used for communication with popular applications such as Enterprise Resource Planning (ERP). , Supply Chain Management (SCM) and Customer Relationship Management (CRM) [2], in addition, users or third parties can develop adapters to suit the organization’s business.

A few popular ESBs today

Mule ESB

Is a Java-based ESB developed by Mulesoft. Compared to other ESBs, Mule is very lightweight but it offers high scalability, allowing users to start with small integrations and increase the number over time easily. The main technologies used in Mule ESB:

  • AMQP (Advanced Message Queuing Protocol): Mulesoft custom message queue protocol from RabbitMQ Java Client.
  • Routers: Mule ESB uses routers to edit, organize, evaluate and deliver messages.
  • Anypoint Connectors: Mule’s built-in connectors help connect to popular third-party protocols, databases, public APIs like Salesforces, Google … You can create connectors yourself if needed.
  • Mule Runtime Engine: is the main component of Mule ESB, it helps integrate applications, systems and APIs.
  • Mule Runtime Manager: Allows managing the deployment and monitoring of ESB.

Oracle ESB

An ESB developed by Oracle, the company’s previous product-based version is Retail Integration Bus Essentials. Oracle ESB is optimized to integrate the services provided by Oracle, but it can also integrate other third-party applications. The main technologies used in Oracle ESB:

  • Oracle Message Broker: is a Java message management system that makes it easy to work with message queue systems such as AQ, IBM MQSeries and TIBCo Redezvous.
  • Routing Service: SOA-style routing services allow routing rules to be defined and published in a web service specification language – WSDL (Web Sevice Description Language).
  • Integration Adapter: available adapters that help communicate with databases, message queues and various protocols.
  • ESB server: server to run ESB, it can listen to the changes of ESB to update in real time.
  • ESB control: allows to change and manage ESB, it will interact with ESB server for these changes to take effect in real time.

Red Hat Jboss Fuse

Regarding Red Hat Jboss Fuse (now Red Hat Fuse), it is not really an ESB but an integrated platform based on the open source ESB Apache ServiceMix. Fuse enables distributed integration based on Agile process and provides very powerful deployment capabilities on cloud or on-premise based on Containers technology. In the next part of the thesis we will dive into this integrated platform.

Share the news now

Source : Viblo