| This page gives a brief overview about the user interface layer design recommendations and tools.
Architectural Requirements and Design Decisions at the User Interface Layer
Not all the requirements given below are applicable for all projects. The list below is a useful checklist of elements you need to consider when designing the UI layer.
| Requirement |
Design/Architectural Decisions |
| Maintainability |
An MVC framework to provide clear seperation between the user interface and the business components
Templating - the word "templating" is often used interchangeably to describe two distinct types of requirements
- Templating as in having a "view" that contain variables to represent dynamic objects and a mechanism to replace those variables at runtime- such mechanisms include JSP, Velocity, FreeMarker, XML/XSL etc. - basically choices for the view layer.
- The second idea is to have a mechanism for introducing a uniform view assemby structure (head, body, footer, navigation bar etc.) across multiple pages. There are two primary options to achieve this:
- Change all the pages to have JSP includes or
- Use SiteMesh to introduce these sections dynamically by manipulating the output.
The latter approach is far better as changes to the layout won't require changes to all the pages. Read the comparison between Tiles and SiteMesh.
Have a clearly defined exception handling strategy that considers requirements for internationalization |
| i18n |
Internationalization can be supported using different strategies and is support by most MVC frameworks- some strategies are not scalable for supporting a large number of languages (compare Maverick strategy vs. Struts/Webwork). |
| Portal Requirements |
Java open-source portal frameworks |
| Support multiple formats and devices |
This may also be supported to varying degrees by the MVC framework you chose. |
| Security - ability to bind pages or regions to the concept of capabilities or priviledges |
Hooks (taglibs/API) to the security layer and a predefined uniform strategy of integrating the security layer with the user interface layer. |
| Reporting and Charting |
It's important select a good reporting framework for your requirements .
JasperReports and JFreeChart are good options.
Java Open Source Reporting and Charting Solutions |
| Caching |
Caching web pages or web-page components can make a big difference to overall application performance and scalability. For caching web pages, web page regions or application objects (reference data), OSCache is a good option.
J2EE Object Caching Frameworks - Article on JavaWorld |
| |
|
| |
|
Go back to the Architecture Page
|
|