What’s an Enterprise Service Bus (ESB)? How does it work? What’s it for? When can it be used? Why do you need an ESB? What can an ESB offer to you?
These are the questions that the curious users of this middleware ask themselves to know whether this is an useful tool for their businesses.
In this article, I will try to answer these questions and to clarify, in the simplest way, the following points:
- What’s an ESb;
- What are the basic characteristics and functions of an Enterprise Service Bus.
- Which benefits are brought by the use of this too.
WHEN WAS THE ENTERPRISE SERVICE BUS BORN AND WHAT IS IT?
The origin of the term “Enterprise Service bus” is still being debated. A Oracle article attributes it to Gartner, others ascribe it to Roy W. Schulte and, consequently, to the Gartner group. In an interview release to CBR online Schulte himself admits that it is difficult to establish who first invented the base concept of an ESB and that that the first to use and sell a product with this name was Sonic Software. Since the subject is still being debated, I’ll just say that the term was introduced in the IT world at the beginning of the twentieth century.
At the moment, it is far more important to understand what an Enterprise Bus Service is.
ESB is an architecture, a series of rules and principles which integrate various applications on a bus framework. This middleware (a software that unifies existing and complex programs) has the duty of connecting applications and miscellaneous services of a Service-Oriented Architecture. The ESB is important to transfer, transform and send messages (data that the system sends to the user or to the provider to update them on the status of an operation or on errors regarding that operation or even other circumstances) to the provider of the most relevant service. This wat, the duties of the user and of the provider are slimmed down. As a matter of fact, this middleware unifies the different methods used by the different components to send informations to other programs.
- Essentially, a service associates non iterative and non autonomous programs, that communicate with others through message exchange services.
- A bus is the transmission route where signals are inserted or obtained by every device connected to the channel.
ENTERPRISE SERVICE BUS CHARACTERISTICS
There are no standard features that make an architecture into a ESB. Nevertheless, any type of ESB will have to serve as a router and work as a “converter”, together with possessing most, if not all, of the following characteristics:
- disregard the operating system type together with encoding language, since it should allow for interoperability between different applications like JAVA and .NET;
- use XML and the more recent REST as standard communication languages;
keep the web services standard;
- work as a converter to integrate older systems;
- own a standard security model that can authorize, authenticate and control the use of ESB;
- simplify the conversion of formats and data value and of the services that the application sends and receives;
- certify the reception and the dispatch of messages;
- evenly apply the rules of business;
- enrich messages coming from other sources;
- divide or combine more messages and manage exceptions;
- transport and transform messages, without a centralized procedure;
- queue and block messages if particular bus applications are momentarily unavailable.
The whole of these features are transformed into a middleware with different functions and will be only talking about some of them in this article.
Routing: provides to the framework the possibility to sort a request to the specific provider by using deterministic and probabilistic criteria.
Transformation: to convert the structure and payload of the client request into a manageable form for the service provider.
Message Enhancement: add, modify or delete an information contained in a message in order to make it compatible with the service provider. For instance, with this feature the bus can convert the format of the date or add informations that were not inserted in the original.
Service Orchestration: the ESB works as a centralized coordinator (broker) that checks the involved services and coordinates the execution of the various operations. This feature uses the standard BPEL (Business Process Execution Language), but there’s also the possibility to use the Business Process modeling Notation (BPMN) or the WEB Service Conversation Language (WSCL).
Transaction Management: treats a service business request like a single work unit.
Security: provides the possibility to protect services from non-authorized log-in. Therefore: authentication, authorization, auditing and administration are mandatory.
THE BENEFITS OF AN ESB
Using an ESB in an Enterprise Service Architecture means that the core applications will communicate with each other through the bus. This lowers the number of point-to-point connection necessary to allow communication between applications. Doing so, eases the analysis of simple softwares.
The main benefits of ESB are:
- cheaper and faster agreements of existing systems;
- more flexibility, since it becomes easier to make changes when there are requirements modifications;
- provide a standardised platform for system integration;
- scalability: a passage from point-to-point solutions to a standardised level of business communication between application (an allocated bus);
- provide standard, ready to use, services;
- higher configuration instead of integration encoding;
- no central regulation system or moderator;
- accumulative patching with zero inactivity rate, allowing firm refactoring.
As can be seen from the aforementioned list, the main advantages linked to the use of ESB are closely connected to how it can be used, rather than its features.
Finally, a Enterprise Service Bus implements a communication system between mixed softwares that interact with each other in a Framework Service Oriented.
There are some specific features and reliabilities that make a framework into a Bus and this is mostly associated with mediation, routing and transformation concepts.
Esb is an efficient scaling system, as it removes application interdependence.