An organization, on an average comprises of applications that are part of a legacy system, custom-built, acquired from third party, operating in multiple tiers of different operating systems platforms. In order to provide efficient, reliable and secure data exchange between multiple enterprise applications and to support common business processes, organizations rely on integration of diverse applications. Unfortunately, application integration is no easy task due to lack of industry standards for interoperability.
In my opinion following are four approaches to enterprise integration
- Implement custom point-to-point solution that works for your problem without separating problems into little pieces. It is commonly achieved using Open APIs and in some scenarios through OEM and File Based type of integration.
- This works to generate instant connectivity and is probably the fastest alternative for small use cases.
- It tends to be complex, expensive and difficult to maintain and scale as your business grows.
- Integration Frameworks
- A model for Interaction and communication which uses several Enterprise Integration Patterns (EIP) and helps to integrate applications in a standardized way.
- It enables loosely coupled process orchestration, aggregation or transformation of data between formats and data transportation in a multitude of formats.
- Not suited for complex and very large integrations which require features such as Business Process Management (BPM).
- Enterprise Service Bus (ESB)
- A message oriented middleware platform which under the hood uses an integration framework and packs a powerful tool which offers strong support for deployment, administration and monitoring at runtime as well as the enterprise security.
- It provides graphical editors with drag and drop ability to model the integration logic which results in significant reduction of efforts and complexity.
- Best suited for the use case in which seamless integration within internal products, support for out of the box third party platforms and multiple integration options with multiple communication protocols are involved.
- An extension to ESB the way in which ESB services like integration, orchestration, routing, event processing, monitoring etc. are implemented in service oriented way and not in the centralized way.
- It provides services that are decoupled and scaled in linear fashion across non-specialized hardware. Additionally uses service gateway for security, policy enforcement and exposing services as Open API to external consumers.
There is no best approach to solving integration problems. First we need to identify the exact business scenario, and depending upon the need, decision must be made whether a point-to-point integration/ integration framework/ESB/Microservices approach is sufficient. In case of ESB, one needs to determine if proprietary or open source product is a better choice.
The ESB selection criteria needs to include following parameters:
- Availability and fit of connectors: Are the connectors for the required technologies and required B2B products available? How easy to build your own connector?
- Ease of use: How complex or user friendly is the installation? Is the development environment intuitive?
- Maintainability and Flexibility: Is there a GUI for monitoring services? Can the product functionalities be customized to fit your needs?
- Support: In case of open source – Is the product supported by several companies? Are sufficient tutorials, articles and videos available? In case of proprietary – What support plans are offered? Can the required SLA be guaranteed?
- Licensing: What licensing or subscription model is used? How are the upgrades offered?