I am working with an application which is currently running under JBoss 4.2.2 GA, The whole application is deployed as two separate ear. Ear 1 uses EJB2.1, Struts1.1. Ear 2 users Hibernate3.2.4.sp1, JSF1.2. I use the Single Sign-On valve to make sure that the both application works together seamlessly even though they are two separate ears.
The reason there are two ear's is that we are gradually migrating the existing EJB2.1, Struts1.1 app to Hibernate3.2.4 and JSF1.2. Each client hosts this application at their local servers and we supply them with the pre-configured JBoss. Both the application shares a single datasource and this is the configuration
Now that I have described the system somewhat well I would like to come to my problem. The management now wants to host the application within the company and sell this as a service. What will be the best solution for this without doing much of a code re-write. Since because of the tighter regulation each clients should have thier own database. i.e clients will not be allowed to share the database.
I was thinking of configuring the app so that each client can access the app using sub-domians eg: https://client1.myapp.com/context
. One of my problem with this is the sharing of the datasource. Since they have to use separate databases i would have to create datasources dynamically and some how make the same application use different datasource for different clients. I am not even sure whether i am thinking in the right direction.
Please give me some suggestions to achieve this. and what do you all think will be the best practice here.
Thanks in advance for all your time,