Question

I have a web application which needs to interact with all the major CRM and ERP systems in order to send and receive data.

What according to you will be a better approach.

  1. Design this whole logic inside the web application,maybe a component for each interface
  2. Use a ESB.

Please suggest what will be the best approach to implement this, any other workarounds,designs are also welcome.

Was it helpful?

Solution

Web services were pretty much tailor-made to address the issue of communication and integration among many disparate systems, so it seems like that would be the most logical solution.

If you require ordered messaging, guaranteed message delivery, etc then an ESB is probably your best bet. Otherwise your web application should be able to integrate directly with the other systems via web services.

Finally, you will probably want to create components in your web application anyway to encapsulate the logic of each system (doing this now will help to ensure minimal changes are necessary if/when you replace one of the external systems). For example, for a recent integration with an accounting system I created interfaces and abstract classes to generalize the functions inherent to all accounting systems, and then created concrete classes that implemented that functionality for the specific accounting system I was integrating with at the time. The benefit to this is that if my client ever changes accounting systems in the future all I will need to do is create another concrete implementation - I will not need to rewrite the code in my client application.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top