Skip to main content

How to select an integration solution(ESB) for your enterprise IT

If you are an IT architect responsible for designing your enterprise IT system, you may have already experienced this topic. Modern IT systems consists of so many different systems developed by different vendors with different technology stacks. Even though those are developed independently, those systems should interact with each other to provide a seamless business experience to your stake holders. This is where the challenge of integration comes into the picture. Integrating heterogenous systems is a very complex task and you need to consider so many things before choosing a proper solution. With this blog post, I am going to discuss about the things which you need to consider when choosing an integration solution for your enterprise. I have grabbed some ideas from the following blog post[1] which also describes a similar topic.

[1] http://www.infoq.com/articles/ESB-Integration

Mainly, there are 2 streams of product categories available in the market.


  1. Open source software
  2. Proprietary software
Following table describes the capabilities of these 2 different streams of products with respect to the facts which we need to consider when choosing an integration solution.




Fact to be considered
Open Source
Proprietary



Usability
Easy to install in few minutes
Complex installations sometimes require consultants to install

Supports most operating systems
Good documentation

Easy to play around and explore features
High memory footprint and considerable learning curve

Low memory footprint




Maintainability and Monitoring
Administration and Monitoring capabilities are not up to the level of proprietary solutions
Powerful visual tools for admin and monitoring which are integrated to the solution



Community
Open source community around respective projects 
Less or zero free community

Own community with lot of free information in terms of blogs, articles, tutorials
Buy support and you get access to forums and other information



Enterprise support
Most of the open source companies earn money by providing support
Pay more and get good support

Support is provided by engineers who develop the code (WSO2)
If you pay less, then you have to do most of the things by going through forums

Quick and customer friendly support




Flexibility
Provide customizations pretty quickly
Hard to get features and take more time (even years)

Quick bug fixes
If you pay more, you have a chance of getting earlier



Functionality
May lack some features
Concrete set of features

Always improving and improving quickly
Stable releases with fixed road maps



Extensibility
Easy to extend with clear extension points
Do it yourself or pay more and get new components/products

Your custom code has same privileges as internal code (WSO2)




Connectors
Fully or partially free connectors
Full set of connectors which you need to buy ($$$)

Supports most of the important applications




Costs
Low and decent pricing
More and more. May increase when the project goes on



Licensing
Business friendly (Apache2) and transparent licensing
Complex price list which is hard to understand till you are charged

Pay for what you want 


No hidden fees




Vendors
WSO2, Fuse ESB, Mule ESB, Talend ESB, AdroitLogic ESB, Apache ServiceMix
Oracle ESB, IBM Websphere, Tibco, Microsoft BizTalk, SAP NetWeaver PI, Progress Sonic

According to your requirements and budget, you can go for either open source or proprietary solutions. 

Comments

  1. Thanks for sharing this blog.The article you provided here about"How to select an integration solution(ESB) for your enterprise IT" gives lot of information.
    Mulesoft Online Training
    Mulesoft Training in Hyderabad

    ReplyDelete

Post a Comment

Popular posts from this blog

How to configure timeouts in WSO2 ESB to get rid of client timeout errors

WSO2 ESB has defined some configuration parameters which controls the timeout of a particular request which is going out of ESB. In a particular  scneario, your client sends a request to ESB, and then ESB sends a request to another endpoint to serve the request. CLIENT->WSO2 ESB->BACKEND The reason for clients getting timeout is that ESB timeout is larger than client's timeout. This can be solved by either increasing the timeout at client side or by decreasing the timeout in ESB side. In any of the case, you can control the timeout in ESB using the below properties. 1) Global timeout defined in synapse.properties (ESB_HOME\repository\conf\) file. This will decide the maximum time that a callback is waiting in the ESB for a response for a particular request. If ESB does not get any response from Back End, it will drop the message and clears out the call back. This is a global level parameter which affects all the endpoints configured in ESB. synapse.global_timeout_inte

Understanding Threads created in WSO2 ESB

WSO2 ESB is an asynchronous high performing messaging engine which uses Java NIO technology for its internal implementations. You can find more information about the implementation details about the WSO2 ESB’s high performing http transport known as Pass-Through Transport (PTT) from the links given below. [1] http://soatutorials.blogspot.com/2015/05/understanding-wso2-esb-pass-through.html [2] http://wso2.com/library/articles/2013/12/demystifying-wso2-esb-pass-through-transport-part-i/ From this tutorial, I am going to discuss about various threads created when you start the ESB and start processing requests with that. This would help you to troubleshoot critical ESB server issues with the usage of a thread dump. You can monitor the threads created by using a monitoring tool like Jconsole or java mission control (java 1.7.40 upwards). Given below is a list of important threads and their stack traces from an active ESB server.  PassThroughHTTPSSender ( 1 Thread )

How puppet works in your IT infrstructure

What is Puppet? Puppet is IT automation software that helps system administrators manage infrastructure throughout its lifecycle, from provisioning and configuration to orchestration and reporting. Using Puppet, you can easily automate repetitive tasks, quickly deploy critical applications, and proactively manage change, scaling from 10s of servers to 1000s, on-premise or in the cloud. How the puppet works? It works like this..Puppet agent is a daemon that runs on all the client servers(the servers where you require some configuration, or the servers which are going to be managed using puppet.) All the clients which are to be managed will have puppet agent installed on them, and are called nodes in puppet. Puppet Master: This machine contains all the configuration for different hosts. Puppet master will run as a daemon on this master server. Puppet Agent: This is the daemon that will run on all the servers, which are to be managed using p