Primary Presentation


Diagram in MS Visio format

Element Catalog

Browser store front:Front end for the application. Usually a web browser like Firefox, Opera or Internet Explorer.
EJBActions:"Action classes place no restrictions on J2EE technologies available in each tier."
EJBController:"Interprets and executes events as EJB actions in the EJB tier. Events and EJB actions make it easy to add new business logic while maintaining a clear design".
EJBs:Beans of different types
Event Responses:Responses to the Events by the EJB Actions.
Events:Do not belong to a particular tier, they sit between the web and the EJB tier. They carry information of the events that occurred in the system. They are the output of the HTMLActions and the input for the EJB Controller and the EJBActions.
Front Controller:Receives and processes every HTTP request (except those intercepted by servlet filters). The Front Controller servlet coordinates all other control components to dispatch requests and to select and generate views. Because it is a servlet, it can create content of any type, including binary content types.
HTMLActions:"Action classes place no restrictions on J2EE technologies available in each tier."
:
Request Processor:"Maps request URLs to actions in the Web tier.Web-tier action classes make it easy for developers to addWeb-tier functionality incrementally, while maintaining an easy-to-understand application design."
Screen Flow Manager:"Determines what screen to display after each request is serviced. Screen flow control is defined declaratively in an XML configuration file, so new views and screen flows are easy to add."
Servlet Filters:"May be placed in front of the Front Controller servlet to add functionality that applies to all requests."
Template https://wiki.sei.cmu.edu/confluence/display/SAD/Service:A servlet that "assembles multiple content sources, often JSP pages, into a template that provides a common look and feel to all views. Using JSP pages to create most content makes new views easy to construct."
Web Controller:"Dispatches events to the EJB controller"

Variability Guide

TBD

Other Information

Design Rationale

The choice of HTMLActions and EJBActions allow a developer to choose the most appropriate tier for new functionality.

Here is a sequence diagram that shows how a new user is created in the petstore application:

Diagram in MS Visio format
In the diagram, classes, referred in the static views, interact to create a user following the tier configuration mentioned in the primary presentation.

Reflections on the Manufacturer's Documentation


Source: Figure 11.7 Model-View-Controller Architecture in Sample Application
The boxes in the diagram bring a good amount of useful information. Nevertheless, it can be argued that "Extract Data" component is too broad a generalization of the HTMLAction and Event workflow, but it can be said that from an architect's point of view, the diagram is focused on the interaction of elements (as the architecture should be) and not in the internal workings of the components. On the other hand, the connectors could be more specific on the type of information or actions they are doing. Except for the first connector, it is not clear what type of invocation is used.

Related Views

Back to the Pet Store SAD main page