Click here to Skip to main content
16,016,134 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello Architects/Experts,

I need your suggestions in designing a Java/J2EE web based application. Here are its characteristics:

1. Purely database oriented application (with 10 tables). The database is Oracle.
2. Three different types of interfaces/screens:
2.1 WebSphere Portlets (6 Interfaces/Screens)
2.2 Handheld Device (5 Interfaces/Screens)
2.3 Web Application (17 Interfaces/Screens)
3. Few of the screens are just report which will be built using Crystal Reports.
4. There isn't much business logic involved.

Now my concerns are:

1. Which architecture should I go for 2 tier or 3 tier?
2. Which frameworks should I use struts/jsf (MVC)? If any? Or should I go for simple POJO based programming without any framework.
3. The biggest concern is packaging, I mean I don't want to replicate the business and database layer for each three different types of interfaces I want to develop. Do you think EJB will be good option to expose DB/Business layer? How should I handle this?
4. Should I use any specific framework like sitemash for presentation layer?
5. Should I use any specific framework for database layer JPA/Hibernate or should I use simple JDBC?

Any comments/suggestions are welcome...

BR
SC
Posted

1 solution

While designing the architecture always keep in mind Cohesion and coupling. Higher be the cohesion and lower the coupling. The dependency between the UI and access layer(s) should be minimal.
Remember, 3 tier and 3 layer are two different things. 3tier is physical separation of layers that are deployed on different servers, whereas 3 layer are logical separation of project (UI, DAL, and BAL).

As per your details, you have trivial business logic, you can go for 2 layered architecture. In can you have 2 separate server, go for 2 tier architecture.

MVC is definitely a great concept of separating UI from its Model but is little complex to code. Plan an design method that will be easier for maintenance.

Rest Java developers will tell you as I am a .NET developer :)
 
Share this answer
 
Comments
SmoothCriminel 18-Dec-10 13:06pm    
Thanks Amit.
Yup layer is the right word as compared to tier...

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900