Table of Contents
Enterprise Application Integration
Enterprise Application Integration and Services [ EAI ] Oriented Architecture are principles that help to make an organization more agile and efficient.
EAI and SOA affect the business needs as well as the whole IT department, including testing, infrastructure and security, and represent a complex architecture change and process improvement that are very beneficial but only when implemented correctly.
Adoptions of EAI and SOA elements are beneficial in cases if:
- Introducing new business ideas takes too long and there is a long time to market
- Unpredictable and changing business processes spread across different systems (build on top of different technologies)
- There is a huge gap between IT and business departments
- We have silo-based and isolated application environments.
Enterprise application integration, as the name suggests is the process of integrating various applications to support a number of Business and IT processes.
Enterprise application integration is defined as “the process of tying together multiple applications to support the flow of information across multiple business units and IT systems”. EAI is an integration framework composed of a collection of technologies and services which form a middleware to enable integration of systems and applications across the enterprise.
Various applications like Customer Relationship Management application (for managing customers), Business Intelligence Applications (for finding data from operations), applications for managing inventory and other applications such as human resource, health care etc cannot communicate with one another in order to share data or business rules. This lack of communication leads to inefficiencies, identical data were needed to be stored in multiple locations and simple straightforward processes are unable to be automated. To overcome these issues EAI (Enterprise Application Integration) came into picture.
- EAI is related to middleware technologies. Enterprise application integration (EAI) is the use of technologies and services across an enterprise to enable the integration of software applications and hardware systems.
- EAI is an approach, or more accurately, a general category of approaches, to providing interoperability between the multiple disparate systems that make up a typical enterprise infrastructure.
- Enterprise architectures, by their nature, tend to consist of many systems and applications, which provide the various services the company relies upon to conduct their day to day business. A single organization might use separate systems, either developed in-house or licensed from a third party vendor, to manage their supply chain, customer relationships, employee information, and business logic. This modularization is often desirable. In theory, breaking the task of running a business into multiple smaller functionalities allows for easy implementation of the best and newest technological advancements in each area, and quick adaptation to changing business needs.
EAI Topologies
There are two major topologies: hub-and-spoke and bus. Each has its own advantages and disadvantages.
- In the hub-and-spoke model, the EAI system is at the center (the hub), and interacts with the applications via the spokes.
- In the bus model, the EAI system is the bus (or is implemented as a resident module in an already existing message bus or message-oriented middleware)
Components of EAI System
Multiple technologies are used in implementing each of the components of the EAI System:
Bus/Hub: This is usually implemented by enhancing standard middleware products (application server, message bus) or implemented as a stand-alone program (i. e., does not use any middleware), acting as its own middleware.
Application connectivity:
The bus/hub connects to applications through a set of adapters (also referred to as connectors).
These are programs that know how to interact with an underlying business application. The adapter performs two-way communication, performing requests from the hub against the application, and notifying the hub when an event of interest occurs in the application (a new record inserted, a transaction completed, etc.). Adapters can be specific to an application (e. g., built against the application vendor’s client libraries) or specific to a class of applications. The adapter could reside in the same process space as the bus/hub or execute in a remote location and interact with the hub/bus through industry standard protocols such as message queues, web services, or even use a proprietary protocol.
Integration modules:
An EAI system could be participating in multiple concurrent integration operations at any given time, each type of integration being processed by a different integration module. Integration modules subscribe to events of specific types and process notifications that they receive when these events occur. These modules could be implemented in different ways: on Java-based EAI systems, these could be web applications or EJBs.
Support for transactions :
When used for process integration, the EAI system also provides transactional consistency across applications by executing all integration operations across all applications in a single overarching distributed transaction using two-phase commit protocols or compensating transactions.
Advantages of EAI
- Real-time information access
- Streamlining processes
- Accessing information more efficiently
- Transferring data and information across multiple platforms
- Easy development and maintenance
Disadvantages of EAI
- Constant change: The very nature of EAI is dynamic and requires dynamic project managers to manage their implementation.
- Lack of EAI experts: EAI requires knowledge of many issues and technical aspects.
- Competing standards: Within the EAI field, the paradox is that EAI standards themselves are not universal.
- EAI is a tool paradigm: EAI is not a tool, but rather a system and should be implemented as such.
- Prohibitively high development costs, especially for small and mid-sized businesses (SMBs).
- EAI implementations are very time consuming, and need a lot of resources.
- Require a fair amount of up front design, which many managers are not able to envision or not willing to invest in. Most EAI projects usually start off as point-to-point efforts, very soon becoming unmanageable as the number of applications increase.
- Loss of detail: Information that seemed unimportant at an earlier stage may become crucial later