Enterprise Application Integration in a Nutshell
Today, we live in a digitally connected world. Technology exists almost everywhere - in files, databases, applications, warehouses, big data stores and on-premises. An enterprise application integration platform allows organizations to connect these assets with its partners, customers and employees. Candidate systems that need to be integrated will either be legacy systems, may reside on different operating systems or use different databases and data types. Enterprise softwares such as Enterprise Resource Planning, Client Relationship Management, Human Resource Management System and Business Intelligence applications typically do not communicate with each other to share data and business rules. They consist of components that have been jammed together in a setting that makes any modification quite challenging.
What is Enterprise Application Integration?
Enterprise Application Integration (EAI) refers to the use of architectural principles to allow unrestricted sharing of data and business processes among connected applications and/or data sources within the enterprise ecosystem. The scope of integration mainly covers areas such as system interconnectivity, data interchange/exchange and distributed computing. The flow of integration is always directional; meaning one application provides a function or data and another application consumes it in terms of Service Oriented Architecture (SOA). The consuming application is explicitly aware of the provider application and there can also be more than one consuming application for a single provider.
Various high level approaches to integration are discussed below:
An integrated database acts as a data storage for multiple applications, and thus integrates them. Database changes are largely complex because database provider and integrated applications have to mutually agree. A core benefit of this approach is that data sharing between applications does not require an extra layer of integration services on applications. Any change made to the data base are updated across all applications at the time of database commit - keeping applications' data synchronized and consistent.
Remote Procedure Implementations (such as CORBA):
A remote procedure invocation applies the principle of encapsulation to integrate by allowing the consuming part of an application to directly call the providing part of another application. This approach can only be used if both sides of applications have a shared procedural interaction form. There is no guaranteed delivery i.e. if the remote procedure call fails, it is up to the caller to troubleshoot.
File Based Implementations:
The producing part of the application creates a centralized file that holds meaningful data, asynchronously picked up by the consuming part of an application. This approach is more convenient when applications need to transfer large chunks of data. In case of an operational or data disaster, the file based integration process supports a restart facility.
Messaging, the foundation of Message Oriented Middleware (MOM) provides integration through synchronous or asynchronous message passing. In synchronous communication, both interaction points must be running at the same time. In an asynchronous communication, messages are retained outside an application for later processing. To serve this purpose, Message Queues (MQ) come into play to provide an asynchronous communication protocol that allows the sender and receiver to avoid interaction with the message queue at same time. However, message queues place size limits on data and on the number of messages being retained in a queue. This approach is significantly faster than file based approach and greatly reliable compared to a remote procedure invocation. It also flexible to support different type of transactions like fire and forget, guaranteed delivery, and so on.
Enterprise Application Integration is essential for businesses to stay agile, connected, innovative, and competitive. It equips organizations with insights to make cognizant and intelligent enterprise wide decisions. To serve this purpose, it is vital to have real time and accurate information and data available across various systems, services, and channels.
Disclaimer: The views expressed here are solely those of the author in his private capacity and do not in any way represent the views of Systems Limited, or any other entity related to Systems Limited.