You can use EJBs as it provides both a business logic layer and a persistence layer.
Struts is a good choice for your presentation layer.
Using a persistence layer like what EJBs provide you, you can freely choose any RDBMS system you like.
SCJP 5.0, SCWCD 1.4, SCJA 1.0
Joined: Sep 26, 2005
Thanks for the reply. However it woud be great if you can provide some more information. I am looking for J2EE components that neeed to identified. Do i need to create a Notification Service, Exception Handlining component, Connection pooling, ? How to handle SSO across the enterprise in J2ee framework?
I would like to know these Data Access Layer and services layer components. As all the applications would be developed in J2EE environment, will EJBs be required?
I would appreciate if you can provide the above mentioned information that I am looking for.
Joined: Mar 08, 2007
EJBs are not required. As a matter of fact you can use the Spring framework, it can provide you with all the services you are asking for.
Man, If you want to produce a good presentation tier, use Wicket. Believe me, i have played with Struts (and other action based frameworks) and things like JSF and tapestry to know that Wicket is best and most easy to use. Should you need help in that respect, let me know.
For business Tier, you could go for Spring, but I'd say stay away from it, unless you plan to use its feature sets extensively. If you are an AOP fan, try Plexus. I would use Spring (I am in the Spring camp off and on ) only when the project scope is large enough (not being specific on purpose).
For Data access tier duh! no brainer : Hibernate, PERIOD!
Use common J2EE design patterns that make sense, like Presentation Tier elements ---> using Business Delegate ---> Service Locator (or DI for locating business services) ---> Session Facade --> BO (if using EJBs, if not skip it) ---> DAO.
For DAO, use Generic DAO pattern to model your stuff. (You can make a Generic DAO come closer to "Actual Generic DAO" if you are not using Java 5+).
Thanks for the reply. It was very helpful. However I have a few queries. These are listed below:
1) Is it true that Hibernate is used only when larege no. of database transactions are required? There won't be much of database transactions for collaborative applications. So is Hibernate required? 2)Apart from the components in data access tier, business tier and presentation tier, what will be the components in Services/Utilities tier? e.g. Notification Servcie.
I would appreciate if you can answer the above mentioned queries.