In complex enterprises where a large number of heterogeneous systems and applications need to interact with each other in order to fulfill varied business needs; Enterprise Application Integration (EAI) principles and EAI tools & Technologies play a pivotal role.
In this post, I am going to throw some light on different aspects of EAI, key steps involved in EAI and different benefits and challenges associated with EAI technologies.
What is EAI (Enterprise Application Integration)?
EAI deals with the methodologies and principles which are used to integrate heterogeneous complex applications in any enterprise. Integration of various kinds of systems and applications in any enterprise creates business critical and vital linkages between those applications in order to achieve business goals through a synchronized and consolidated data model throughout the organization.
Concepts of SOA and EAI are greatly mingled with each other as EAI has been subsumed into Service Oriented Architecture stack.
Layers of EAI Stack
As stated earlier, the term EAI refers to a set of principles and methodologies for application integration; EAI is divided into a number of layers in a stack. Each layer performs different kind of actions in the process of enterprise application integration.
Below diagram explains different layers of EAI Stack briefly:
Steps of EAI Process
Enterprise Application Integration process is comprised of multiple steps. One need to execute all these steps in order to successfully integrate different applications in any enterprise.
Step 1: Know the Enterprise
This is the primary requirement as you should have a clear idea of all the applications with their interfaces details, protocols used and the business critical nature of all the applications which need to be integrated through EAI approach.
In depth Understanding of all the involved applications is important as you can take best decisions and apply most efficient approaches for the integration of applications only once you have a thorough understanding about those. Knowing about any limitations of the involved applications or systems is also very crucial.
Step 2: Know the data layer
Data is the king in large enterprises where different applications are going to rely on data structures of each other and heavy data transfer is expected. Understanding data models of the applications is critical in order to ensure data consistency, efficient data synchronization and to avoid data redundancy and data mismatches.
Step 3: Make Sense of Processes
In order to ensure efficient integration at process level; understanding of all the key business processes and business flows is very significant. How different processes in multiple applications are executed and how processes in different applications and systems interact with each other to fulfill business needs is quite important to know before stepping ahead in EAI approaches.
Step 4: Identify Interfaces
When you are done with system level and process level understanding of the key business processes; identification of different interfaces of all the applications is the next important step. You should clearly identify for every application what are the interfaces that it exposes to other application and what are the communication protocols which can be utilized for integrating those applications.
E.g. one application can have support for SOAP web services while another application can be supporting only EMS/JMS based communication.
Step 5: Know about different business events
Having a knowledge of different events of interest in the overall enterprise is also crucial for EAI professionals while making integration decisions. E.g. if you have a billing application, a CRM application and an accounting application in your enterprise as candidates for integration; knowledge of different service orders being generated from CRM system which result in a series of events in other applications is important to know. Knowing which events need to be captured, what actions are expected to be performed in different applications specific to an event and how events are going to be synchronized is important to take efficient EAI decisions.
Step 6: Know the transformations
In enterprises where multiple applications are going to talk with each other; a lot of transformations of data from one format to another are needed as every application has its own specific format of data. When going for integration of these applications and systems; you should have a clear idea of all the transformations needed and data mapping approaches to be used. This includes finalizing all the XML Schemas, XSLTs and data mappings.
Step 7: Choose EAI Tool/Technology
There are a number of different EAI tools and products available in the market each boasting to be the best of all. Selecting EAI tools that best server your organizational purpose is the most strategically important decision as one chosen; It won’t be easier for your organization to replace the systems quite often.
When choosing the right EAI product; consider the factors like scalability, performance, cost effectiveness, user-friendliness as well as future support and services offered by the vendor. TIBCO, Oracle Fusion, Microsoft Biztalk, IBM Websphere, Mule are some of the key candidates to be considered when opting for EAI in an organization.
Step 8: Implement Integration Solution
Once you have chosen EAI tool and technology, this is the main design and development step. Do the required steps for gluing the applications and to enable an integrated enterprise architecture of your organization. This involves all the process designing and development for application’s connectivity, message transformations, message filtering etc.
Step 9: Take necessary performance tuning and optimization steps
Once you have done appliction’s integration; critically monitor the solution and perform any required steps to ensure smooth and efficient communication between all the applications, optimize the performance using different optimization approaches and fix any bugs that are affecting overall business flows. This optimization and performance tuning step is in actual a continuous step as needs of performance tuning and bug fixes can arise at any time in an organization.
Goals of EAI
When we talk about goals that are achieved or intended to be achieved through EAI approaches, we can classify them as Short-term goals and Long-term goals.
Short-term goals associated with EAI are:
- Preserve and leverage existing information technology systems.
- Bridge diverse “islands of automation”
- Purchase and integrate “best of breed” offered by independent software vendors
Long-term goals of EAI are:
- Integrate systems by sharing methods (composite applications).
- Provide a change-as-grow go approach.
- Deep integration and management layers offered by vendors.
Benefits of EAI (Enterprise Application Integration)
Companies invest a huge amount of money on EAI Solutions just because Its their need and there are several key benefits associated with EAI approaches.
Some of the key benefits of EAI are listed here:
- Lower development costsOvertime, each additional integration requirement can more easily be addressed
- Lower opportunity costsIntegration is done more quickly through reusable solutions. corresponding cost savings also achieved sooner as cost of maintaining EAI based systems is lower and initial high cost impacts don’t last for long once integrated systems are in stable state. This means an increased agility for the organization and a quicker adaptation to market changes.
- Lower maintenance efforts
By using state of the art packaged solutions for EAI which are quite mature products, maintenance efforts are quite less and hence less number of resources are required to maintain and support the business compared to an organization where systems are not integrated properly and islands of IT systems are sitting in silo.
- Reduced data redundancy
With EAI based gluing of applications, data redundancy is greatly reduced as applications don’t need to duplicate other application’s data for business processes. Instead applications can seamlessly communicate with each other to share the data when and as needed.