The architecture you've just presented is a part of the larger pattern called MVC-2. Struts framework is the sample implementation of this pattern (check: http://jakarta.apache.org/struts/index.html
). The idea beside the pattern is very simple and staightforward (it was first introduced in Smalltalk). Application is based on:
- Model - which in fact is application logic (EJB's etc.)
- Controller - which is responsible for navigation, workflow and communication between presentation and model
- View or Presentation - which contains only look and feel
The basic benefits of using this patterns in J2EE-based applications are:
- Separation of presentation layer - no Java in JSP's (JSP's are for webmasters, graphicians and all tag-oriented people, they are not supposed to know or learn Java)
- Separation of logic layer - components are built to be reused between applications with different look and feel (example: WAP and WWW banking application)
- Separation of web-flow (workflow) - the webmasters are not hardcoding links inside JSP's. They are using symbolic names or "actions". One can easily change navigation without altering web-pages.
There is a lot of information about MVC and MVC-2 on the network. There is also a lot of open source implementations (Struts is only a sample).
MVC-2 is a very good and usefull pattern for large projects, when you deal with a lot of JSP's, components and user platforms (WAP, WWW, call-center etc.).