These days IT-based organizations and enterprises are growing faster than ever. You can see software everywhere in your daily life. Banking systems, shopping, entertainment, transportation, or every single modern company that interacts with technology have used software in their systems. So we have lots of products and software owned by these companies and organizations.
One of the most important things to consider is the software architecture. Choosing the right architecture for your IT-based system can lead you to succeed and increase the chance of winning in this competitive game.
There are many software architectures out there that you can use, but in this article, we want to take a look at one of the most important of them called Enterprise Application Integration shortly EAI.
So, let’s talk about the concept of enterprise application integration.
What is enterprise application integration?
Each organization may consist of several components, it may have a series of standalone software that each one is responsible to do its own duty. But with the growth of the system these components have to communicate together or in another scenario each component may have to establish a connection to an external software of another organization. There have to be some channels to be able to exchange data between these different components. Also, by the growth of the organization more components may be added to the system, so the system has to be expandable.
Here, the architecture enterprise application integration is to help us figure out how to manage this situation.
The idea of enterprise application integration is to make a way to exchange the right data at the right time between components of an IT-based system. In another word, integration of application is a technique to enable data sharing and business process automation. Actually, it acts like a middle-ware between data producer and data consumer. With the help of this architecture, it is possible to integrate the different systems and business processes throughout the enterprise.
- Reduce the cost of implementing, running, and managing infrastructures.
- Convert the system to a manageable, maintainable, and flexible system.
- Provides loose coupling between different components of a system.
- Ease of control over the system and provide more efficiency.
- Make organizations and IT-based systems easy to expand.
Let’s take a look at a real-world example
We discussed enterprise application integration basic concepts, so to better understand let’s have a look at the banking system example.
In traditional banking, there was only one channel to link the customers to the bank. Banks used to offer their services only through their own branches. So transactions by customers were only
Possible physically, which means that customers had to physically visit one of the branches to use financial operations such as card balance, withdrawal, deposit and etc.
But with the growth of technology, banks moved to become multi-channel. What I mean by multi-channel is that customers are linked to the bank and can use financial services throughout multiple channels such as ATM, mobile bank, internet bank and etc.
Core banking provides services for each of these channels. Consider card balance transactions. The bank must provide this financial operation for each channel individually. All of the channels are operating the same financial service but with different links to the customer. So it causes duplicate implementation that is not really needed.
Here the enterprise application integration will help us solve this mess.
Enterprise application integration will act as a middle-ware between bank and channels. So now the bank will only have one implementation and the enterprise application integration layer will handle and manage requests.
The result of this architecture is
- Less cost
- Less implementation
- More control over the system
Note: Except single-channel and multi-channel we also have some other strategies like Omni-channel that we will discuss later in an individual article.
Frameworks to implement enterprise application integration
I will create an article about Spring Integration including sample implementation later.
Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf.
This book provide integration patterns and messaging solutions with real-world examples and help you design better systems for your enterprise.
Each software architecture has its advantages and disadvantages, you have to investigate your business and all the important points then choose the best architecture that fits your business.
Author: Danial Eskandari