I've done some small scale, web-based J2EE development in the past (2001). I'm back now designing a multi-tier app. I'm considering the following architecture: - Swing client (mandated by users due to very robust/feature-rich interface needs. Ajax won't cut it). - JEE middle tier. Primarily stateless session beans & mdbs handling the client/server communications. - Pojo domain model to do most of the business logic - DAO pattern (currently leveraging hibernate) to handle persistence
I know these questions are huge, and it's hard to give answers on a Bulletin Board, but I appreciate any help: 1) What's a good way to structure the source code? I'm looking at: http://java.sun.com/blueprints/code/projectconventions.html and the Sun JEE examples, they seem to implement one project with multiple sub-projects (1 for ejb, 1 for war, 1 for client). In that model, where would the domain model and DAO code live? In the ejb project? Should it all just be 1 big project with the package structure reflecting the breakdown and differing build targets for client & server? 2) All of the JEE/EJB3.0 examples I've seen are using the new entity beans. Due to my existing Hibernate DAO codebase, I'd prefer to point Session Beans to objects that use the existing DAO layer (no entity beans). Is that simple to do? Does anyone have any good links on articles about that? 3) I've worked with Spring a bit, but found sole JEE a better fit due to: - need for app server redundancy and horizontal scalability - distaste for so much xml - I'm not looking for a flame war, but I really didn't like the overwhelming amount of xml configuration necessary - JEE can do everything I need
Again, I know this is a huge question, so I appreciate any help at all (even just links to good articles would be great).