I am working on a product(enterprise-level application) which is built using GWT, Struts 2 and Hibernate 3. This will be deployed to n different clients. I need to separate web tier and business tier servers. I am in process of finalizing whether to use EJB/Spring or Web services to separate Web tier server and business tier server. So there is possibility that these server will be on different networks or there may be on same network also, due to vary nature of each deployment. I need to finalize on one solution which will be best overall.
I want to know how costly it is to use web services when these servers are on the same network. In which case, EJB could solve the problem. What additional (I mean additional to EJB/Spring) non-functional requirement and development effort cost would be there?