| Overview | | | | Communication architectures |
| Enterprise Application Integration is an integration | | | | Currently, there are many variations of thought on |
| framework composed of a collection of technologies | | | | what constitutes the best infrastructure, component |
| and services which form a middleware to enable | | | | model, and standards structure for Enterprise |
| integration of systems and applications across the | | | | Application Integration. There seems to be consensus |
| enterprise. | | | | that four components are essential for a modern |
| Supply chain management applications (for managing | | | | enterprise application integration architecture: |
| inventory and shipping), customer relationship | | | | A centralized broker that handles security, access, and |
| management applications (for managing current and | | | | communication. This can be accomplished through |
| potential customers), business intelligence applications | | | | integration servers (like the School Interoperability |
| (for finding patterns from existing data from | | | | Framework (SIF) Zone Integration Servers) or through |
| operations), and other types of applications (for | | | | similar software like the Enterprise service bus (ESB) |
| managing data such as human resources data, health | | | | model that acts as a SOAP-oriented services |
| care, internal communications, etc) typically cannot | | | | manager. |
| communicate with one another in order to share data | | | | An independent data model based on a standard data |
| or business rules. For this reason, such applications are | | | | structure. It appears that XML and the use of XML |
| sometimes referred to as islands of automation or | | | | style sheets has become the de facto and in some |
| information silos. This lack of communication leads to | | | | cases de jure standard. |
| inefficiencies, wherein identical data are stored in | | | | A connector, or agent model where each vendor, |
| multiple locations, or straightforward processes are | | | | application, or interface can build a single component |
| unable to be automated. | | | | that can speak natively to that application and |
| Enterprise application integration (EAI) is the process of | | | | communicate with the centralized broker. |
| linking such applications within a single organization | | | | A system model that defines the APIs, data flow and |
| together in order to simplify and automate business | | | | rules of engagement to the system such that |
| processes to the greatest extent possible, while at the | | | | components can be built to interface with it in a |
| same time avoiding having to make sweeping changes | | | | standardized way. |
| to the existing applications or data structures. In the | | | | Although other approaches like connecting at the |
| words of the Gartner Group, EAI is the nrestricted | | | | database or user-interface level have been explored, |
| sharing of data and business processes among any | | | | they have not been found to scale or be able to |
| connected application or data sources in the | | | | adjust. Individual applications can publish messages to |
| enterprise.1] | | | | the centralized broker and subscribe to receive certain |
| One large challenge of EAI is that the various systems | | | | messages from that broker. Each application only |
| that need to be linked together often reside on | | | | requires one connection to the broker. This central |
| different operating systems, use different database | | | | control approach can be extremely scalable and highly |
| solutions and different computer languages, and in | | | | evolvable. |
| some cases are legacy systems that are no longer | | | | Enterprise Application Integration is related to |
| supported by the vendor who originally created them. | | | | middleware technologies such as message-oriented |
| In some cases, such systems are dubbed "stovepipe | | | | middleware (MOM), and data representation |
| systems" because they consist of components that | | | | technologies such as XML. Other EAI technologies |
| have been jammed together in a way that makes it | | | | involve using web services as part of service-oriented |
| very hard to modify them in any way. | | | | architecture as a means of integration. Enterprise |
| Improving connectivity | | | | Application Integration tends to be data centric. In the |
| If integration is applied without following a structured | | | | near future, it will come to include content integration |
| EAI approach, point-to-point connections grow across | | | | and business processes. |
| an organization. Dependencies are added on an | | | | EAI Implementation Pitfalls |
| impromptu basis, resulting in a tangled mess that is | | | | In 2003 it was reported that 70% of all EAI projects |
| difficult to maintain. This is commonly referred to as | | | | fail. Most of these failures are not due to the software |
| spaghetti, an allusion to the programming equivalent of | | | | itself or technical difficulties, but due to management |
| spaghetti code. For example: | | | | issues. Integration Consortium European Chairman |
| The number of connections needed to have a fully | | | | Steve Craggs has outlined the seven main pitfalls |
| meshed point-to-point connections, with n points, is | | | | undertaken by companies using EAI systems and |
| given by . Thus, for ten applications to be fully | | | | explains solutions to these problems. |
| integrated point-to-point, , or 45 point-to-point | | | | Constant change |
| connections are needed. | | | | The very nature of EAI is dynamic and requires |
| However, EAI is not just about sharing data between | | | | dynamic project managers to manage their |
| applications; it focuses on sharing both business data | | | | implementation. |
| and business process. Middleware Analysts attending | | | | Shortage of EAI experts |
| to EAI involves looking at the system of systems, | | | | EAI requires knowledge of many issues and technical |
| which involves large scale inter-disciplinary problems | | | | aspects. |
| with multiple, heterogeneous, distributed systems that | | | | Competing standards |
| are embedded in networks at multiple levels. | | | | Within the EAI field, the paradox is that EAI standards |
| Purposes of EAI | | | | themselves are not universal. |
| EAI can be used for different purposes: | | | | EAI is a tool paradigm |
| Data (information) Integration: Ensuring that information | | | | EAI is not a tool, but rather a system and should be |
| in multiple systems is kept consistent. This is also | | | | implemented as such. |
| known as EII (Enterprise Information Integration). | | | | Building interfaces is an art |
| Vendor independence: Extracting business policies or | | | | Engineering the solution is not sufficient. Solutions need |
| rules from applications and implementing them in the | | | | to be negotiated with user departments to reach a |
| EAI system, so that even if one of the business | | | | common consensus on the final outcome. A lack of |
| applications is replaced with a different vendor's | | | | consensus on interface designs leads to excessive |
| application, the business rules do not have to be | | | | effort to map between various systems data |
| re-implemented. | | | | requirements. |
| Common Facade: An EAI system could front-end a | | | | Loss of detail |
| cluster of applications, providing a single consistent | | | | Information that seemed unimportant at an earlier |
| access interface to these applications and shielding | | | | stage may become crucial later. |
| users from having to learn to interact with different | | | | Accountability |
| software packages. | | | | Since so many departments have many conflicting |
| EAI patterns | | | | requirements, there should be clear accountability for |
| Integration patterns | | | | the system's final structure. |
| There are two patterns that EAI systems implement: | | | | Other potential problems may arise in these areas: |
| Mediation | | | | Emerging Requirements |
| Here, the EAI system acts as the go-between or | | | | EAI implementations should be extensible and modular |
| broker between (interface or communicating) multiple | | | | to allow for future changes. |
| applications. Whenever an interesting event occurs in | | | | Protectionism |
| an application (e. g., new information created, new | | | | The applications whose data is being integrated often |
| transaction completed, etc.) an integration module in the | | | | belong to different departments that have technical, |
| EAI system is notified. The module then propagates | | | | cultural, and political reasons for not wanting to share |
| the changes to other relevant applications. | | | | their data with other departments |
| Federation | | | | Advantages and Disadvantages |
| In this case, the EAI system acts as the overarching | | | | Advantages |
| facade across multiple applications. All from the | | | | Real time information access among systems |
| 'outside world' to any of the applications are | | | | Streamlines business processes and helps raise |
| front-ended by the EAI system. The EAI system is | | | | organizational efficiency |
| configured to expose only the relevant information and | | | | Maintains information integrity across multiple systems |
| interfaces of the underlying applications to the outside | | | | Ease of development and maintenance |
| world, and performs all interactions with the underlying | | | | Disadvantages |
| applications on behalf of the requester. | | | | High initial development costs, especially for small and |
| Both patterns are often used concurrently. The same | | | | mid-sized businesses (SMBs) |
| EAI system could be keeping multiple applications in | | | | Require a fair amount of up front business design, |
| sync (mediation), while servicing requests from external | | | | which many managers are not able to envision or not |
| users against these applications (federation). | | | | willing to invest in. Most EAI projects usually start off |
| Access patterns | | | | as point-to-point efforts, very soon becoming |
| EAI supports both asynchronous and synchronous | | | | unmanageable as the number of applications increase |
| access patterns, the former being typical in the | | | | The Future of EAI |
| mediation case and the latter in the federation case. | | | | EAI technologies are still being developed and there still |
| Lifetime patterns | | | | is no consensus on the ideal approach or the correct |
| An integration operation could be short-lived (e. g., | | | | group of technologies a company should use. A |
| keeping data in sync across two applications could be | | | | common pitfall is to use other proprietary technologies |
| completed within a second) or long-lived (e. g., one of | | | | that claim to be open and extensible but create vendor |
| the steps could involve the EAI system interacting with | | | | lock-in. |
| a human work flow application for approval of a loan | | | | See also |
| that takes hours or days to complete). | | | | Business semantics management |
| EAI topologies | | | | Comparison of business integration software |
| There are two major topologies: hub-and-spoke, and | | | | Data integration |
| bus. Each has its own advantages and disadvantages. | | | | Enterprise Information Integration |
| In the hub-and-spoke model, the EAI system is at the | | | | Enterprise integration |
| center (the hub), and interacts with the applications via | | | | Enterprise Integration Patterns |
| the spokes. In the bus model, the EAI system is the | | | | Enterprise service bus |
| bus (or is implemented as a resident module in an | | | | Generalised Enterprise Reference Architecture and |
| already existing message bus or message-oriented | | | | Methodology |
| middleware). | | | | Integration appliance |
| Technologies | | | | Integration Competency Center |
| Multiple technologies are used in implementing each of | | | | Integration platform |
| the components of the EAI system: | | | | Straight Through Processing |
| Bus/hub | | | | System integration |
| This is usually implemented by enhancing standard | | | | Initiatives and organizations |
| middleware products (application server, message bus) | | | | Health Level 7 |
| or implemented as a stand-alone program (i. e., does | | | | Open Knowledge Initiative |
| not use any middleware), acting as its own | | | | OSS through Java |
| middleware. | | | | Schools Interoperability Framework (SIF) |
| Application connectivity | | | | Commercial solutions |
| The bus/hub connects to applications through a set of | | | | Avolution |
| adapters (also referred to as connectors). These are | | | | Axway |
| programs that know how to interact with an underlying | | | | FRENDS Iron - "FRENDS Iron Page on Frends |
| business application. The adapter performs two-way | | | | Technology" |
| communication, performing requests from the hub | | | | IBM WebSphere Message BrokeriBOLT |
| against the application, and notifying the hub when an | | | | Integration Objects |
| event of interest occurs in the application (a new | | | | Interwoven |
| record inserted, a transaction completed, etc.). | | | | IONA Technologies Artix ESB |
| Adapters can be specific to an application (e. g., built | | | | Microsoft BizTalk Server - "BizTalk Server Page on |
| against the application vendor's client libraries) or | | | | Microsoft" |
| specific to a class of applications (e. g., can interact | | | | MOND Technologies |
| with any application through a standard communication | | | | Oracle Service Bus (formerly BEA AquaLogic Service |
| protocol, such as SOAP or SMTP). The adapter could | | | | Bus) |
| reside in the same process space as the bus/hub or | | | | Oracle BPEL Process Manager |
| execute in a remote location and interact with the hub | | | | Pervasive Software |
| bus through industry standard protocols such as | | | | Progress Software |
| message queues, web services, or even use a | | | | Reconfigurable Computing Environment |
| proprietary protocol. In the Java world, standards such | | | | Software AG webMethods |
| as JCA allow adapters to be created in a | | | | Softshare |
| vendor-neutral manner. | | | | Sterling Commerce |
| Data format and transformation | | | | Sun Java CAPS |
| To avoid every adapter having to convert data to | | | | TIBCO |
| from every other applications' formats, EAI systems | | | | Open-source projects |
| usually stipulate an application-independent (or | | | | Apache ActiveMQ |
| common) data format. The EAI system usually | | | | Apache Camel |
| provides a data transformation service as well to help | | | | Apache ServiceMix |
| convert between application-specific and common | | | | Apache Synapse |
| formats. This is done in two steps: the adapter | | | | FUSE ESB (enterprise ServiceMix) |
| converts information from the application's format to | | | | FUSE Mediation Router (enterprise Camel) |
| the bus's common format. Then, semantic | | | | FUSE Message Broker (enterprise ActiveMQ) |
| transformations are applied on this (converting zip | | | | Jitterbit Integration Server |
| codes to city names, splitting/merging objects from | | | | MuleSource |
| one application into objects in the other applications, | | | | Openadaptor |
| and so on). | | | | OpenESB |
| Integration modules | | | | PEtALS ESB |
| An EAI system could be participating in multiple | | | | Spring Integration |
| concurrent integration operations at any given time, | | | | Talend |
| each type of integration being processed by a | | | | Virtuoso Universal Server |
| different integration module. Integration modules | | | | References |
| subscribe to events of specific types and process | | | | ^ In its April 2001 report for AIIM International, |
| notifications that they receive when these events | | | | "Enterprise Applications: Adoption of E-Business and |
| occur. These modules could be implemented in | | | | Document Technologies, 2000-2001: Worldwide |
| different ways: on Java-based EAI systems, these | | | | Industry Study," Gartner defines EAI as "the |
| could be web applications or EJBs or even POJOs | | | | unrestricted sharing of data and business processes |
| that conform to the EAI system's specifications. | | | | among any connected applications and data sources |
| Support for transactions | | | | in the enterprise." |
| When used for process integration, the EAI system | | | | Gable, Julie (March/April 2002). "Enterprise application |
| also provides transactional consistency across | | | | integration". Information Management Journal. Retrieved |
| applications by executing all integration operations | | | | 2008-01-22. |
| across all applications in a single overarching distributed | | | | ^ Trotta, Gian (2003-12-15). "Dancing Around EAI 'Bear |
| transaction (using two-phase commit protocols or | | | | Traps'". Retrieved 2006-06-27. |
| compensating transactions). | | | | |