Patterns for EAI/EII
Three basic patterns are used for the implementation of EAI and EII platforms:
Direct connection
Broker
Router
Direct connection
Direct connection represents the simplest type of interaction between two applications and is based on a 1: N topology, in other words, an individual point-to-point connection. It allows a pair of applications within an organization to communicate directly. Interactions between the source and the target applications can be as complex as necessary. Additional connection rules are defined for more complex point-to-point connections. Examples of connection rules include data mapping rules, security rules, and availability rules.
The direct connection pattern can be broken down into the following logical components:
The source applications consist of one or more applications, which want to initiate interaction with the target applications.
The connection is the line between the source and the target application, and represents a point-to-point connection between the two applications.
Connection rules are the business rules which relate to the connection, such as data mapping and security rules.
The target application is a new or existing (modified or unmodified) application, which provides the necessary business services.
The advantages and disadvantages of the direct connection pattern are shown in the following table:
Advantages |
Disadvantages |
---|---|
|
|
Uses
Direct connection is used for the following purposes:
Reducing the latency of business events
Supporting the structured exchange of information within an organization
Supporting real-time one-way message flows
Supporting real-time request/reply message flows
Continued use of legacy investments
Broker
The broker pattern is based on the direct connection pattern, and extends it to a 1: N topology. It allows an individual request from a source application to be routed to several target applications, which reduces the number of 1:1 connections required. The connection rules take the form of broker rules. This allows the distribution rules to be kept separate from the application logic (Separation of Concerns principle or SoC). The broker is also responsible for the composition and decomposition of interactions. The broker pattern uses the direct connection pattern for the connection between the applications. The broker pattern forms the base for the publish/subscribe message flow:
The broker pattern can be broken down into the following logical components:
The source applications consist of one or more applications which want to interact with the target applications.
The broker component keeps the number of direct connections to a minimum. It also supports message routing, message enhancement, and the transformation, decomposition, and re-composition of messages.
The target applications consist of both new and existing (modified or unmodified) applications. These applications are responsible for implementing the necessary business services.
The advantages and disadvantages of the broker pattern are shown in the following table:
Advantages |
Disadvantages |
---|---|
|
|
Uses
Broker is used for the following purposes:
An individual application should be able to interact with one or more target applications.
A hub-and-spoke architecture reduces complexity when compared with a point-to-point architecture.
The externalization of the routing, decomposition, and re-composition rules increases maintainability and flexibility.
Broker pattern is important when a request is processed from a source application and results in several interactions with the target systems.
The source system is decoupled from the target applications, and there is no dependency on the interfaces of these target applications.
Router
The router pattern is a variant of the broker pattern with several potential target applications, in which the message is always routed to only one target application. The router decides which target application will receive the interaction. While the broker pattern supports 1:N connections, the router pattern only allows 1:1 connections, as the router rules determine the target application in each case.
The router pattern as shown in the diagram can be broken down into the following logical components:
The source applications consist of one or more applications that want to interact with the target applications.
The router component provides all the business rules needed for processing the message, such as routing and transformation. It receives requests from several source applications, and routes them intelligently to the correct target application. The resulting integration is, in fact, a point-to-point connection between the source and the target.
The target applications consist of both new and existing (modified or unmodified) applications. These applications are responsible for implementing the necessary business services.
The advantages and disadvantages of the router pattern are shown in the following table:
Advantages |
Disadvantages |
---|---|
|
|
Uses
Router is used for the following purposes:
An individual application should be able to interact with one of several target applications
A hub-and-spoke architecture reduces complexity when compared with a point-to-point architecture
The externalization of the routing, decomposition, and re-composition rules increases maintainability and flexibility
Router pattern is important when a request is processed from a source application and results in an interaction with only one of several potential target systems
As with the Broker pattern, the source system is also decoupled from the target applications, and has no dependency on the interfaces of these applications