What is enterprise application integration (EAI)?
Learn how enterprise application integration can connect, transform, and orchestrate your disparate systems to enable seamless data flow and automated workflows across your entire organization.
Learn how enterprise application integration can connect, transform, and orchestrate your disparate systems to enable seamless data flow and automated workflows across your entire organization.
Enterprise application integration (EAI) is the process of connecting business applications, systems, and data across an organization using integration software to enable seamless data flow and unified operations.
The shift from rigid, point-to-point connections to agile, distributed architectures has redefined how modern enterprises manage data. Yet, as EAI technology evolves to meet skyrocketing demand, the marketplace has become crowded with proprietary jargon and conflicting methodologies.
Starting with a brief history of the origins of EAI, we'll walk through all the major developments in EAI architecture, and show how traditional "hub and spoke" broker-based EAI systems are now being replaced by agile, distributed, standards-based Enterprise Service Bus architectures.
Enterprise Application Integration, or EAI, has existed as a technical term since the early 2000s, but the central problem that it attempts to solve is much older. In a nutshell, 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.
However, to gain the benefits of this kind of distributed, modular system, an organization must implement technologies that deal with the problems presented by this architecture:
Prior to the development of EAI-type approaches, the problems of integration were largely handled using point-to-point integration. In a point-to-point integration model, a unique connector component is implemented for each pair of applications or systems that must communicate. This connector handles all data transformation, integration, and any other messaging related services that must take place between only the specific pair of components it is designed to integrate.
When used with small infrastructures, where only two or three systems must be integrated, this model can work quite well, providing a lightweight integration solution tailor-made to the needs of the infrastructure. However, as additional components are added to an infrastructure, the number of point-to-point connections required to create a comprehensive integration architecture begins to increase exponentially.
A three-component infrastructure requires only three point-to-point connections to be considered fully integrated. By comparison, the addition of just two more components increases this number to 10 connectors. This is already approaching an unmanageable level of complexity, and once an infrastructure includes 8 or 9 component systems, and the number of connections jumps into the 30s, point-to-point integration is no longer a viable option.
Remember that each of these connectors must be separately developed and maintained across system version changes, scalability changes, and more (or, in some cases, even purchased at high cost from a vendor), and the unsuitability of point-to-point integration for complex enterprise scenarios becomes painfully clear.
To avoid the complexity and fallibility of integrating complex infrastructures using a point to point approach, EAI solutions use various models of middleware to centralize and standardize integration practices across an entire infrastructure.
Rather than each application requiring a separate connector to connect to every other connector, components in an EAI-based infrastructure use standardized methods to connect to a common system that is responsible for providing integration, message brokering, and reliability functionalities to the entire network.
In other words, EAI solves the problem of integrating modular systems by treating integration as a task for a system, like any other task, rather than a snarled mess of brittle connections. EAI systems bundle together adapters for connectivity, data transformation engines to convert data to an appropriate format for use by the consumer, modular integration engines to handle many different complex routing scenarios simultaneously, and other components to present a unified integration solution.
EAI loosens the tightly coupled connections of point-to-point integration. An application can send a message without any knowledge of the consumer's location, data requirements, or use for the message - all of this information can be handled by the EAI implementation. This allows for a more flexible architecture, where new parts can be added and removed as needed, simply by changing the configuration of the EAI provider, and simplified modular development, where a single service can be re-used by multiple applications.
Many modern EAI approaches also take advantage of the opportunity presented by adding a central integration mechanism to further consolidate messaging tasks. In addition to data integration, a modern EAI may also include functionalities such as network administration, security, acceleration, and scalability.
The first EAI solutions on the market took the idea of unifying integration literally, and incorporated all the functionality required for integration into central hubs, called brokers.
In this section, we'll look at the advantages and disadvantages of this model, and learn why it is being abandoned in favor of ESB architecture.
In a broker approach to EAI, a central integration engine, called the broker, resides in the middle of the network, and provides all message transformation, routing, and any other inter-application functionality. All communication between applications must flow through the hub, allowing the hub to maintain data concurrency for the entire network.
Typically, implementations of the broker model also provide monitoring and auditing tools that allow users to access information about the flow of messages through their systems, as well as tools to speed up the complicated task of configuring mapping and routing between large numbers of systems and applications.
Like all EAI approaches to integration, the broker model allows loose coupling between applications.
This means that applications are able to communicate asynchronously, sending messages and continuing work without waiting for a response from the recipient, knowing exactly how the message will get to its endpoint, or in some cases, even knowing the endpoint of the message.
A broker approach also allows all integration configuration to be accomplished within a central repository, which means less repetitive configuration.
Like any other architecture model that uses a central engine, is that the broker can become a single point of failure for the network. Since the broker is responsible for all concurrency between application's data sets and states, all messages between applicants must pass through it.
Under heavy load, the broker can become a bottleneck for messages. A single central destination for all messages also makes it difficult to use the broker model successfully across large geographical distances.
Lastly, implementations of the broker model are often heavyweight, proprietary products, aimed at supporting a specific vendor's subset of technology. This can present problems if your integration scenario involves products from several vendors, internally developed systems, or legacy products that are no longer supported by the vendor.
The broker model of EAI was successfully implemented by some companies, but the vast majority of integration projects using this model ultimately failed. The lack of clear standards for EAI architecture and the fact that most early solutions were proprietary meant that early EAI products were expensive, heavyweight, and sometimes did not work as intended unless a system was fairly homogenous.
The effects of these problems were amplified by the fact that the broker model made the EAI system a single point of failure for the network. A malfunctioning component meant total failure for the entire network. In 2003, one study estimated that as many as 70 percent of integration projects ultimately failed due to the flaws in early broker solutions.
In an attempt to move away from the problems caused by a brokered hub and spoke EAI approach, a new EAI model emerged - the bus. While it still used a central routing component to pass messages from system to system, the bus architecture sought to lessen the burden of functionality placed on a single component by distributing some of the integration tasks to other parts of the network.
These components could then be grouped in various configurations via configuration files to handle any integration scenario in the most efficient way possible, and could be hosted anywhere within the infrastructure, or duplicated for scalability across large geographic regions.
As bus-based EAI evolved, a number of other necessary functionalities were identified, such as security transaction processing, error handling, and more. Rather than requiring hard-coding these features into the central integration logic, as would have been required by a broker architecture, the bus architecture allowed these functions to be enclosed in separate components.
The ultimate result - lightweight, tailor-made integration solutions with guaranteed reliability, that are fully abstracted from the application layer, follow a consistent pattern, and can be designed and configured with minimal additional code with no modification to the systems that need to be integrated.
This mature version of the bus-based EAI model eventually came to be known as the Enterprise Service Bus, or ESB.
There are a number of different ESB products available on the market today. Some, such as WebSphere Message Broker or TIBCO BusinessWorks, are traditional EAI products that have been re-factored to offer ESB-like functionality, but still function in a broker-like manner.
Others, such as MuleSoft's Mule as an ESB, are designed from the ground up using open messaging and integration standards to implement the ESB model.
Despite their differences, most ESBs include all or most of the following core features, or "services":
Here's a look at the advantages offered by an ESB approach to application integration:
All integration solutions have strengths and weaknesses, which are often dependent on the environment in which they are deployed. For this reason, making informed decisions about your EAI strategy and selecting the best enterprise integration for your specific environment is vital to the success of your integration initiative.
In order for your EAI and SOA efforts to be successful, you don't just need the "best" technology around - you need hard facts about the product's intended use scenario, performance under load, maturity, and a deep understanding of the present and future integration challenges your organization must overcome.
Before you make a decision about EAI, it's important to have a good idea of how you would answer questions like these:
Want to know more about the future of Mule as an ESB?
The Mule development team has released new Development features to the platform, including:
Try MuleSoft Anypoint Platform free for 30 days. No credit card, no installations.
Tell us a bit more so the right person can reach out faster.
Get the latest news about integration, automation, API management, and AI.