Table 1-1 is slightly altered based on the current state of Java EE. The Data Transfer
Object pattern, for instance, no longer finds its place in the catalog and therefore is not
listed. This pattern was used transfer data across layer and was especially useful if you
used remote entity bean persistence components. But with the new Java Persistence API
(part of the Java EE 5 platform) and general trend for plain old Java object (POJO) pro-
gramming models, this pattern is no longer relevant.
This table is far from complete. Certain patterns can be applied across tiers. Security
design patterns, for example, can be applied in the presentation layer to restrict access to
web resources such as JSPs. Similarly, security patterns can be used to control method
invocation on business layer EJB components. Transactional patterns, for example, can
be applied at both the business and integration layers. These patterns are classified as
cross-cutting patterns. I will explore cross-cutting patterns in detail in Chapter 6.
Java EE Architecture and Design with UML
Most modern-day applications are developed iteratively. The system grows gradually as
more and more requirements become available. The core of such systems is a high-level
design and architecture that evolves through iterations. It is also imperative that design
and architecture are documented in both text and visual forms for the benefit of the
development and maintenance teams. The visual representation is immensely useful
because it helps developers understand runtime interactions and compile-time depend-
UML is a graphical language used for modeling and visualizing architecture and
detailed design in complex enterprise systems. It is based on a specification developed by
Object Management Group (OMG). I will use UML 2.0 notations (which is the latest ver-
sion) available at http://www.uml.org / . However, UML is not limited to architecture and
design but can be used in all phases of software development. UML provides a rich set of
notation to depict the classes and objects and various relationship and interactions.
Modern UML modeling tools such as IBM Rational XDE, Visual Paradigm, Sparx Systems
Enterprise Architect, and so on, allow design patterns and best practices to be applied
during system design. Moreover, with these tools, the design model can be used to gener-
ate significant portions of the application source code.
There are several kinds of UML diagram. But for analysis of Java EE design patterns, I
will concentrate primarily on class and sequence diagrams and a simple extension mech-
anism called stereotypes . If you are new to UML or eager to know more, the best UML
reference is UML Distilled Third Edition by Martin Fowler (Addison Wesley, 2005).