Hi there. I've been doing J2EE development for a while. On past projects we have always used the three tier approach - web container for presentation logic, application server for business logic and oracle/sql server as our data storage layer. My current project entails setting up a J2EE architecture for casting votes in an election. It must support multiple access methods like SMS, IVR, web, idtv, kiosk. After alot of research on the web there seems to be a trend towards not always deploying an application server in your setup. The business logic in our application is not too complex so we were thinking of going with apache, tomcat, struts, hibernate as ADO layer, and sql server as the database (this tie in is historical otherwise we would go with Oracle). We plan to separate the layers into xslt/xml presentation, business logic, xml handling, hibernate handling. Apparantly, this setup should be enough. What are your thoughts? I know alot people are against using ejbs just cause they were used in the past. Transaction handling,security, scalibility would be the factors I would be most concerned with. There is a possiblity in the future that other applications may be integrated with this one so that may move us in the direction of using an application server. I just don't want to deploy one unless there is good reason for. Everyone seems divided in the forums. Opinions please??

Thanks in advance.