Chapter 9. JSF front-end scenario 243
can even accelerate the implementation through the use of tooling. Rational
Software Architect for instance, supports an extensive library of commonly
used patterns, which can be easily applied to design models, and even
automatically generate code.
򐂰 Design should favor industry-standard technology.
It is often tempting to use unproven, or vendor-specific technology. For
instance, a particular vendor might offer a proprietary package that perfectly
fits the customer requirements. This solution might very well be cheaper and
faster to purchase. There might also be a new open source framework, which
appears to address many of our design goals.
There are times when taking either of these approaches is a valid option, but
the risks need to be well understood. Proprietary packages will generally limit
the flexibility of your environment to change, because you will be dependent
on the availability of new versions from the provider. New technology might
sound appealing, but without careful analysis you can find yourself in the
proverbial
bleeding edge. New technology tends to evolve. Applications
written using early versions can quickly become deprecated. In either
scenario, staffing becomes an issue as well, because it might be difficult to
quickly attain resources familiar with new or vendor-specific technologies.
Therefore, all things being the same (not always an easy determination), we
recommend the use of established industry-standard technology.
For the ITSOMart front-end application in particular, there is no need of any
new or specialized technology. Therefore, our design approach should rely on
industry standard, preferably open standards, technology.
9.2.2 Component model
Now that we have discussed the various principles guiding our design process,
we will discuss the different aspects of the design approach we selected. The
component model will describe the overall structure of our application, in terms of
its high level components.
Component diagram
The component diagram in Figure 9-2 on page 244 depicts the different software
components which make up the front-end of the ITSOMart application. The
following sections elaborate on the different components.
244 Patterns: Implementing Self-Service in an SOA Environment
Figure 9-2 ITSOMart front-end component model
Model-View-Controller architectural pattern
Our component model is based on the Model-View-Controller (MVC)
architectural pattern, widely used in user interface applications for many years. It
is particularly well-suited for Web-based applications, making it an overwhelming
choice across the industry. 7.2.1, “Model-View-Controller design pattern” on
page 141, discusses the MVC pattern in detail, therefore we do not repeat it
here. We simply review the main points so we can show how it is realized in the
ITSOMart application. The MVC pattern divides the application in three
components, indicated by differently shaded areas in Figure 9-2:
򐂰 The Model represents the data of the application, as well as the business
rules and logic that govern the processing of the data. In the ITSOMart
front-end, the Model is implemented through EJB classes that interact with
the database and back-end.
򐂰 The View is a visual representation of the model. Multiple Views can exist
simultaneously for the same Model. In the ITSOMart application, the View is
implemented using JSF and JSP Web pages.

Get Patterns: Implementing Self-Service in an SOA Environment now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.