Enterprise application integration is an integration framework composed of a collection of technologies and services which form a middleware or "middleware framework" to enable integration of systems and applications across an enterprise.2
Many types of business software such as supply chain management applications, ERP systems, CRM applications for managing customers, business intelligence applications, payroll, and human resources systems typically cannot communicate with one another in order to share data or business rules. For this reason, such applications are sometimes referred to as islands of automation or information silos. This lack of communication leads to inefficiencies, wherein identical data are stored in multiple locations, or straightforward processes are unable to be automated.
Enterprise application integration is the process of linking such applications within a single organization together in order to simplify and automate business processes to the greatest extent possible, while at the same time avoiding having to make sweeping changes to the existing applications or data structures. Applications can be linked either at the back-end via APIs or (seldom) the front-end (GUI).
In the words of research firm Gartner: "[EAI is] the unrestricted sharing of data and business processes among any connected application or data sources in the enterprise."3
The various systems that need to be linked together may reside on different operating systems, use different database solutions or computer languages, or different date and time formats, or could be legacy systems that are no longer supported by the vendor who originally created them. In some cases, such systems are dubbed "stovepipe systems" because they consist of components that have been jammed together in a way that makes it very hard to modify them in any way.
If integration is applied without following a structured EAI approach, point-to-point connections grow across an organization. Dependencies are added on an impromptu basis, resulting in a complex structure that is difficult to maintain. This is commonly referred to as spaghetti, an allusion to the programming equivalent of spaghetti code.
For example, the number of connections needed to have fully meshed point-to-point connections, with n points, is given by ( n 2 ) = n ( n − 1 ) 2 {\displaystyle {\tbinom {n}{2}}={\tfrac {n(n-1)}{2}}} (see binomial coefficient). Thus, for ten applications to be fully integrated point-to-point, 10 × 9 2 = 45 {\displaystyle {\tfrac {10\times 9}{2}}=45} point-to-point connections are needed, following a quadratic growth pattern.
However, the number of connections within organizations does not necessarily grow according to the square of the number of points. In general, the number of connections to any point is only limited by the number of other points in an organization, but can be significantly smaller in principle. EAI can also increase coupling between systems and therefore increase management overhead and costs.
EAI is not just about sharing data between applications but also focuses on sharing both business data and business processes. A middleware analyst attending to EAI will often look at the system of systems.
EAI can be used for different purposes:
This section describes common design patterns for implementing EAI, including integration, access and lifetime patterns. These are abstract patterns and can be implemented in many different ways. There are many other patterns commonly used in the industry, ranging from high-level abstract design patterns to highly specific implementation patterns.4
EAI systems implement two patterns:5
Both patterns are often used concurrently. The same EAI system could be keeping multiple applications in sync (mediation), while servicing requests from external users against these applications (federation).
EAI supports both asynchronous (fire and forget) and synchronous access patterns, the former being typical in the mediation case and the latter in the federation case.
An integration operation could be short-lived (e.g., keeping data in sync across two applications could be completed within a second) or long-lived (e.g., one of the steps could involve the EAI system interacting with a human work flow application for approval of a loan that takes hours or days to complete).
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).
Most large enterprises use zoned networks to create a layered defense against network oriented threats. For example, an enterprise typically has a credit card processing (PCI-compliant) zone, a non-PCI zone, a data zone, a DMZ zone to proxy external user access, and an IWZ zone to proxy internal user access. Applications need to integrate across multiple zones. The Hub and spoke model would work better in this case.
Multiple technologies are used in implementing each of the components of the EAI system:
Currently, there are many variations of thought on what constitutes the best infrastructure, component model, and standards structure for Enterprise Application Integration. There seems to be a consensus that four components are essential for a modern enterprise application integration architecture:
Although other approaches like connecting at the database or user-interface level have been explored, they have not been found to scale or be able to adjust. Individual applications can publish messages to the centralized broker and subscribe to receive certain messages from that broker. Each application only requires one connection to the broker. This central control approach can be extremely scalable and highly evolvable.
Enterprise Application Integration is related to middleware technologies such as message-oriented middleware (MOM), and data representation technologies such as XML or JSON. Other EAI technologies involve using web services as part of service-oriented architecture as a means of integration. Enterprise Application Integration tends to be data centric. In the near future, it will come to include content integration and business processes.
In 2003 it was reported that 70% of all EAI projects fail. Most of these failures are not due to the software itself or technical difficulties, but due to management issues. Integration Consortium European Chairman Steve Craggs has outlined the seven main pitfalls undertaken by companies using EAI systems and explains solutions to these problems.6
Other potential problems may arise in these areas:
7. CloudLeap, Inc., Enterprise Resource Planning (ERP) Seamlessly integrate with any ERP Systems and technologies, streamlining parcel shipping process.
Linthicum, David S. (2000). Enterprise Application Integration. Addison-Wesley Professional. ISBN 978-0-201-61583-8. 978-0-201-61583-8 ↩
In its April 2001 report for AIIM International, "Enterprise Applications: Adoption of E-Business and Document Technologies, 2000–2001: Worldwide Industry Study," Gartner defines EAI as "the unrestricted sharing of data and business processes among any connected applications and data sources in the enterprise."Gable, Julie (March–April 2002). "Enterprise application integration" (PDF). Information Management Journal. Retrieved 2008-01-22. http://www.techstreet.com/direct/ExSum_EU.pdf ↩
Hohpe, Gregor; Woolf, Bobby (2015). "Messaging Patterns Overview". Enterpriseintergationpatterns.com and Addison-Wesley. Retrieved 2016-05-19. http://www.enterpriseintegrationpatterns.com/patterns/messaging/ ↩
MSquare Systems (2014-05-21). "Types of EAI". Archived on 2014-05-21 at https://web.archive.org/web/20140521124430/http://www.msquaresystems.com/enterprise-application-2/eai. MSquare Systems Retrieved on 2014-05-28 from http://www.msquaresystems.com/enterprise-application-2/eai. https://web.archive.org/web/20140521124430/http://www.msquaresystems.com/enterprise-application-2/eai ↩
Trotta, Gian (2003-12-15). "Dancing Around EAI 'Bear Traps'". Retrieved 2006-06-27. http://www.ebizq.net/topics/int_sbp/features/3463.html ↩
Toivanen, Antti (2013-10-25). "Avoiding Pitfalls of Integration Competency Centers". Archived from the original on 2017-07-30. Retrieved 2013-10-26. https://web.archive.org/web/20170730052826/https://integrationwarstories.com/2013/10/25/avoiding-pitfalls-of-integration-competency-centers/ ↩