For other uses, see Enterprise integration. 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. Many types of eai design patterns pdf 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. In the words of the Gartner Group, EAI is the “unrestricted sharing of data and business processes among any connected application or data sources in the enterprise.
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 may 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. 45 point-to-point connections are needed. However the number of connections within organizations does not grow according to the square of the number points. In general, the number of connections to any point is independent of the number of other points in an organization.
Thought experiment: if an additional point is added to your organization, are you aware of it? Does it increase the number of connections other unrelated points have? There are a small number of “collection” points for which this does not apply, but these do not require EAI patterns to manage. EAI can also increase coupling between systems and therefore increase management overhead and costs.
A middleware analyst attending to EAI may also look at the system of systems. Data integration: Ensures that information in multiple systems is kept consistent. Vendor independence: Extracts business policies or rules from applications and implements them in the EAI system, so that even if one of the business applications is replaced with a different vendor’s application, the business rules do not have to be re-implemented.
Common facade: An EAI system can front-end a cluster of applications, providing a single consistent access interface to these applications and shielding users from having to learn to use different software packages. 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. Here, the EAI system acts as the go-between or broker between multiple applications. The module then propagates the changes to other relevant applications.
In this case, the EAI system acts as the overarching facade across multiple applications. All event calls from the ‘outside world’ to any of the applications are front-ended by the EAI system.