Today, a need for Enterprise Application Integration (EAI) is increasing due to the growing share of standardized solutions implementation. Companies progressively refuse domestic software development in favor of specialized solutions that can be customized with a “no coding” approach (ERP, CRM, ECM systems). Although there are a limited number of enterprise-level solution vendors, currently there is no line of products that would ensure high-quality automation for all enterprise business processes. The number of automated processes is increasing rapidly so the number of IT systems is growing quickly as well.
Companies have a long history of legacy IT systems implementations. These include internal policy issues, CIO rotations, trends and technology hypes, as well as changing business needs. A very common problem for large companies (particularly in the financial sector) is the existence of several independent IT departments with different goals and poor interaction. Companies receive a set of “automation islands” that cannot easily communicate inside or outside the organization.
Let’s look at the widespread ways that companies use to integrate applications and their potential problems.
One of the most common is point-to-point integration, where each application is connected with another one by an individual link. The main advantage of such a “pattern” is its simplicity. At first glance, it is straightforward; however each connection has its own logic, and if you have a dozen applications, you may get something like “spaghetti.”
IT will need to put a lot of effort into maintaining this type of architecture, and an implementation of a new application or change of the business process may become a nightmare. A lot of questions such as management, consistency and security are still open. However, in some rare cases this architecture can be appropriate (for example, to control the information exchange on a low level in poor communication channels).
To deal with problems of point-to-point integration, companies try to create a middleware for centralized integration. This seems quite logical and the right step in the enterprise architecture evolution. But often when such systems are being planned, many aspects are not taken into account, so development stretches over the years. Designers try to create a versatile and flexible system. They use different approaches, but almost every new application or a change of business processes requires coding.
Monitoring, persistence and transactions are usually omitted, which leads to data loss and maintenance issues. Such projects consume a lot of resources and are costly and time consuming. Very often these resources are wasted because eventually, faced with restrictions, companies tend to abandon these projects.
Integration platforms based on Enterprise Service Bus architecture allow organizations to focus on business processes and avoid technical and architectural issues that are frequently inherent in systems developed from scratch.
Integration platforms covers:
- Reliable and rapid transport
- Logging and monitoring
Integration platforms include simple graphic tools for process design as well as a means for simulation, debugging and analysis. There are many out of-the-box adapters for the most popular line-of-business systems. All of the above increases the chances for Enterprise Application Integration project success.
Figure 1 Integration Platform based on Enterprise Service Bus
Top causes of failure or anti-patterns for enterprise application integration
What are the typical causes of failure for EAI projects, or anti-patterns? The top five mistakes include the following.
- Trying to bind different information systems instead of building a unified integrated enterprise system. This may be the biggest mistake. Do not meditate on how to link several information systems. Start from the business strategy and consider the information systems as building blocks instead. The EAI implementation itself should occur incrementally, starting with a pilot/prototype, progressing with two systems and then incrementally adding systems to the mix as required. The rapid change approach can lead to failures due to the size and scope of business and system changes and the inability of organizations to adapt to the new model.
- Considering EAI as a tool that solves all IT problems. EAI is not a tool, but rather a system that plans enterprise architecture, business processes and organizational issues. The main focus should be on business-driven goals, starting with the highest-cost business items or those that are most critical for the business.
- Trying to build or replicate what you do not need. For instance, do not implement real-time integration if it is not absolutely mandatory. The cost and complexity of this integration increases with the migration toward real-time systems or other unnecessary features. Focus on achieving a positive return on investment (ROI) and the integration project being ready to go into production within a realistic timeframe.
- Deliberately divide applications into particles and then integrate. Application integration requires extra efforts for development and maintenance and increases the complexity of the enterprise system. Unnecessary complexity creates points of future errors. Therefore, there is no need to intentionally increase the number of information systems.
- Transform EAI into an enterprise storage and warehouse. Use separate integration logic and data management. Master Data Management (MDM) systems could assist in acquiring, improving and sharing master data and reference data.
EAI solutions enable the automation of business processes by coordinating the sequences of tasks and resources (both systems and people). The best integration system is invisible to the end users and the people who run the business; however it is the single most critical point of failure. Therefore, planning for security, scalability and high availability is extremely important. Take care of your EAI system as a strategic IT direction.
Roman Kropyvnytskyy is IT Consultant at SoftServe Inc., a leading global provider of software development, testing and technology consulting services. With over 10 years of experience in the IT industry, Roman has extensive and effective combination of requirements management and software development processes expertise and has successfully performed numerous ERP/MRP/CRM/Budgeting projects. Roman is currently focused on research and consulting in Enterprise Technologies in particular in Business Process Management, Enterprise Content Management and Enterprise Application Integration.