- Hmm, not sure but you can add layers as you go. Why stop at 3 levels when you can have 5!
- Makes your code look like it came from Spring Framework
- Same as always
Apply humor as required.
Thanx for your answer. But I need a more descriptive answer.
Seam imposes very little restrictions as to how you architect your application. You can add levels of DAOs and services and inject them as you see fit. You can have an EAR and have service layers if you feel like it and it won't make the packaging etc any different from your regular EAR.
I'm sorry, what I meant was 3 physical separate tier. Like a machine with a web tie, a machine with a business tier and a machine with a data tier
People have different definitions of what three tier architecture means (the term feels very 90's now). From your final comment it appear that you want to put the database on one server, business logic on another (Application Server) and then finally serve the static content on a final web server. This model easily achievable with Seam.
If you were meaning the more old fashioned view of three tier. Separation of presentation logic from business logic onto separate physical machines then this model is from what I understand less suited Seam as you would lose much of your ability to leverage hibernate. However Seam does allow you to have clear separation of your model and services from your presentation logic but still have it deployed in same deployment as Nicklas has pointed.
It would be helpful to describe the type of application you are trying to write when asking these types of questions as it helps put the question into context.
We are evaluating if we can adopt Seam framework in our applications.
In our current architecture, we use Struts2 and EJB3 and running on JBoss AP servers.
But in our deployment, we separate WEB and EJB tier in different physical servers.
The system architecture is:
The static pages, JSP and Struts2 actions are deployed in WEB tier.
The EJB with business logic is deployed in EJB tier.
Is it possible to replace the Struts2 with Seam in WEB tier and keep WEB tier and EJB tier in two different servers?
Separation between EJB tier and Database Server is easy, right?
Install the database in a different machine and configure your ejb tier to access it.
Nothing special regarding seam must be done here.
Physical separation between Web tier and EJB tier will require extra work to configure Seam.
I lately opened a topic on that subject:
Maybe it can help you.
There are different ways of acomplishing this.
One very know way is to integrate Spring and Seam, and then use a spring components to get the remote ejbs.