Over the years, enterprises have built or licensed many different systems to serve specific business needs. And, in order to best leverage these systems, point-to-point integration architecture was built, which facilitated distributed systems to exchange data between them and with external systems. However, as the number of these systems grew, the architecture could not scale up.
To address this need, Enterprise Integration Frameworks were developed. These frameworks enable enterprises to integrate legacy and newer systems built using different technologies, on premise and cloud applications, as well as address scalability challenges. Enterprises are increasingly gravitating towards integration frameworks as they potentially bring down the cost and timeframe of the integration projects significantly. However, choosing the right framework which befits your organizational need is of paramount importance.
Below, I have listed a few parameters which should be considered while choosing the integration framework.
- Current Integration Needs
Before choosing the framework, enterprises need to list down different types of transport models such as JMS, HTTP, FTP, SOAP, and REST that are required for integration. In addition, they should also consider the need for integration with external systems such as Social networks, ERP systems, databases, BI applications, trouble ticketing systems, file systems. - Out of Box Connectors
While comparing frameworks, enterprises should analyze their need for out of box connectors. Many integration frameworks already come with an array of out of box connectors for ERP systems, databases, CRM systems, FTP, E-commerce products, social networks, etc. These connectors come in handy for accelerating the integration. - Future Integration Needs
A good integration framework is one which not only addresses current integration needs, but also arms enterprises to tackle future integration needs. The frameworks should provide good SDKs to develop new connectors with minimum efforts. - Integrated Development Environment (IDE)
For developing the integration flows, evaluating the IDE of the framework is quintessential. Some frameworks have very intuitive IDE, making the development and deployment very simple. However, some frameworks need the user to configure the complex URIs and parameters making the integration process longer and more complex. - Open Source or Commercial Product
Enterprises need to choose between open source and commercial products. Both have their own share of pros and cons. Open source products have the cost advantage, can be customized easily and they often have enterprise editions. The commercial frameworks on other hand, provide many connectors, have published performance numbers and provide supports based on SLA levels. However, customization of commercial frameworks is not easy.
Comparing Popular Frameworks
There are a lot of open source and commercial integration frameworks. Some of the leading ERP vendors like Oracle have their own integration frameworks like Oracle SOA and have in-built connectors for their ERP products. Popular open source frameworks include Mule ESB, Apache Camel and Spring Integration. Pervasive is a commercial product but it has a lot of connectors. I will be comparing these frameworks, to illustrate the process to select the right framework.
All of the above four frameworks are highly scalable and Mule ESB and Pervasive have cloud based versions as well. For simple integration needs, either an in-house framework can be built or spring integration can be a good choice. For complex integration and data transformation, Mule ESB or Pervasive are better choices, however Pervasive only has commercial edition.
The decision to choose the right integration framework is not trivial and requires careful deliberation of the above parameters.
Did I miss any parameters that enterprises need to consider before choosing an integration framework? Let me know.
Find more content about
Apache Camel and Spring Integration (1) Enterprise Integration Fraemework (1) Mule ESB (1) Pervasive (1)