by Roman Kropyvnytskyy, IT Consultant, SoftServe Inc.
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 (e.g. 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 a financial sector) is the existence of several independent IT Departments with different goals and poor interaction. Companies receive a set of "automation islands," which 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.
Point to Point Integration for Enterprise Application Integration
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.
Middleware for Enterprise Application Integration
To deal with problems of point to point integration, companies try to create a middleware for centralized integration. This way 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, transactions are usually omitted, which leads to data loss and maintenance issues. Such projects consume a lot of resources, are costly and time consuming. Very often these resources are wasted because eventually faced with restrictions, companies tend to abandon these projects.
Integration Platforms for Enterprise Application Integration
Integration Platforms based on Enterprise Service Bus architecture allows organizations to focus on business processes and avoid technical and architectural issues, which are frequently inherent in systems developed from scratch.
Integration Platforms cover:
- 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 (EAI) project success.
Figure 1. Integration Platform Based on Enterprise Service Bus
Top Anti-patterns for Enterprise Application Integration
What are the typical causes of failure for EAI projects, or anti-patterns? The top five mistakes include:
1. 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.
2. Considering EAI as a tool that solves all IT problems. EAI is not a tool, but rather a system, which 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.
3. 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.
4. 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.
5. 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 EAI systems as a strategic IT direction.
About the Author
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 particularly on Business Process Management, Enterprise Content Management and Enterprise Application Integration.