ESB vs EAI
ESB (Enterprise Service Bus) is a piece of infrastructure software that provides a software architecture construct for providing basic services for complex architectures. EAI (Enterprise Application Integration) is an integration framework that can be used to integrate a set of computer systems. EAI is a broad concept that describes patterns of integration and ESB is a technology that enables EAI.
What is ESB?
ESB is a piece of infrastructure software that provides a software architecture construct for providing basic services for complex architectures. However, there is a considerable argument over whether to call ESB an architectural style, or a software product, or even a group of products. It provides the services through event driven and standards based engine for messaging (which is actually the service bus). On top of this messaging engine, a layer of abstraction is provided to allow architects to exploit the facilities offered by the bus, without writing any actual code. ESB is usually implemented through standards based middleware infrastructures.
The use of the term “bus” in ESB is due to the fact that ESB does provide a very similar function to the physical computer bus, but at a much higher level of abstraction. One of the main advantages of having an ESB is the ability to reduce the number of point-of-contacts, thus making the adaptation to the changes much easier. ESB can be used as a platform on which SOA (Service-oriented architecture) is realized. The concepts of transformation / routing (flow related) can be brought to SOA by ESB. Furthermore, by proving the abstraction for endpoints of SOA, ESB promotes loose coupling between services.
What is EAI?
EAI is an integration framework that can be used to integrate a set of computer systems. It defines a set of principles for integration and provides a middleware (composed of a combination of technologies and services) that accommodates the integration of multiple systems. EAI deals with linking enterprise applications such as Supply chain management, customer relationship management, BI (Business Intelligence) tools, human resource management and health care, which do not typically comminute with each other. Therefore, EAI can solve the inefficiencies caused by this lack of communication among these applications. EAI can be used mainly for three different purposes. They are integration of data for maintaining consistency (also known as Enterprise Information Integration or EII), enforcing vendor independence and as a common façade for a cluster of applications.
What is the difference between ESB and EAI?
There are some key differences between ESB and EAI. ESB is a piece of infrastructure software that helps developers to develop services and communicate between services through suitable APIs, while EAI is an integration framework for computer applications across the enterprise. In other words, ESB acts as a broker between services, while EAI is the hub-and-spoke model for integration. EAI is a concept that describes all types of integration patterns, but ESB is only an instance of technology that enables EAI. In simple terms, EAI is abroad concept and ESB is an implementation.