pluggable, extendable, scalable, and maintainable goals...

Web-Application Model

A graphic representation of this model is depicted in Figure 1 below.

Figure 1 - Web-Application Architecture

  1. Browser - The presentation devices supported are: Microsoft Internet Explorer and Mozilla based (including Netscape) browsers. The minimum requirements are IE5.5+ on Windows 98/NT4+, IE5.2+ on Max OS/X 10.1.5+, Netscape 7+ on any supported platform and Mozilla 1.1+ on any supported platform.
  2. Controller - Built using the Struts MVC framework and therefore present a single controller to the presentation device/client.
  3. Actions/JSPs - The Struts framework passes contextual information to the view rendering JSPs via user specified scope-state containers. In an effort to facilitate the extendability and maintainability of the JSPs, the interaction between Actions and JSPs has been further refined. Instead of allowing Actions to push various data into scope for JSP access, A ViewDelegate is used to expose a well-defined API to the templating services (JSPs) that render the view. Adhering to this design pattern results in consistent methods of data retrieval across the entire view layer.

    It should be noted that Struts allows JSPs to pull their corresponding Forms from sco pe, and in the interest of compatability, we have not disabled this access right. However, developers are strongly encouraged to pull the Form from the retrieval methods of the ViewDelegate instead of the context directly.
  4. Managers - The business delegate pattern is modeled by Managers within the framework. These Managers provide a barrier separating the view from the model. Managers translate front-end view requests to the appropriate back-end requests and interact with the model accordingly.
  5. Business Objects - (BO's) encapsulate transactional business logic. Where the BO layer is divided into coarse and fine-grained components (as in EJBs), the Manager that interacts with the coarse-grained component may act as a simple proxy for many method implementations. However, this proxy is required for consistency in tiering and transaction support.
  6. Data Transfer Objects - VO's and Forms are "dumb" data transfer objects used to transfer data between layers. Forms come from the Struts framework and facilitate HTTP to Object translation. VOs are used to reduce the number of necessary remote method invocations across tierable layers.