Present situation: we have three CRM systems, one with a Windows fat client, the two others web-based, the UI layers are consuming services from application servers where the business logic is implemented (well, mostly...). Idealy, the three business logic instances would be consolidated into one, serving all three CRM applications. However, this is a huge undertaking, out of scope for the given question.
Now, we want to add another system which will offer additional services for all three CRM applications. That includes enhancing the UI with rather complex wizard-like GUI logic.
We see two alternatives for integrating that into the given infrastructure:
plug the new business logic into the existing application servers and enhance the existing UIs with the new GUI functionality. The UI would query it's business logic which would in turn query the new application logic residing on a separate application server.
Enhance the existing UI with new GUI functionality where the new GUI functionality directly talks to the new application logic, thus embedding the new application in the existing ones. Implemented e.g. with an ActiveX control for the fat client and frames for the web-based UIs.
We see that 1) would be more costly to implement than 2), due to the need to touch the existing three business logic instances.
What do you see as pros and cons of these alternatives, from an architecture point of view?
Any other suggestions?
Thanks, Bernd