Enterprise Service Bus and Service Oriented Architecture

Definition:

Enterprise Service Bus often well known as ESB is a Software development architecture model that is used as a mediating layer, for communication between applications running in different subsystems based on Service Oriented Architecture.

Overview and Use Case

In today’s world most of the successful businesses are all service based, meaning that they operate by providing services to consumers who are you and me. As the days pass by, we are becoming more and more dependent on technology as we want services not only to be best in quality but also on time. Technology especially information technology has enabled big organizations to reduce this time by significant amounts. Every day technology evolves to provide these services more faster and better. Complex tasks that are quite routine can be handled more efficiently by a computer than by a human being. Clearly computers are beating humans in their own game.

It is not possible for a single system to perform all the complex tasks, therefor the task is broken down into different sub tasks and dedicated systems are delegated to perform specific tasks. Each system specializes in something, like a mathematician will be best in solving equations but may not be best in solving chemical equations. All these systems now need to talk to each other to accomplish a common goal. But these systems may talk in different ways, like the mathematician may speak English but the chemist may speak Japanese. Therefore an interpreter is needed who understands both these languages and can make sense out of it. This job of communicating between different systems that are specialists in their own domains is done by an ESB or Enterprise Service bus.

Communication between different systems can be achieved by many ways like  web services , JMS queues or even through File transfer. The usage of any of these communication mechanisms depends on the use case. If in-case the data being communicated between systems is very important and failure rates need to be very low then persistent JMS queues can be used, while if the requirement is to provide a communication mechanism that involves instantaneous request-responses then a synchronous web service may be used. If the information that is being transferred between systems is huge and cant be handle by a web service or a queue, then a file transfer using FTP protocol can be done.

An enterprise service bus is a box ( Container ) that has many technologies bundled in it that can handle all these ways of data communication, can transform messages, can start and stop flow of messages as and when required. FUSE ESB or JBOSS ESB is one such enterprise service bus that is commercially used in a service oriented software development model.

More information on FUSE and its technologies will be provided in the subsequent posts.

Till then, enjoy reading ….