Figure 1-15. Optional return value in a sequence diagram
Developing distributed multitier applications is a daunting task. The Java EE platform
looks to simplify this task by defining a container-based architecture. It defines a specifi-
cation of the runtime environment for the application code and the low-level system
services that it should provide. This allows the application developers to focus on writing
business logic. The Java EE application architecture is based on the core platform archi-
tecture and established MVC principle. With this, you can clearly define specialized
component layers in each tier. The web tier, for example, hosts the presentation layer of
an application, whereas the business and data access layers generally reside on the appli-
cation server tier.
Java EE design, on the other hand, is an extended object design. The Java EE design
patterns catalog provides guidance and best practices in composing the objects and their
interaction within and across the layers and tiers. The design patterns catalog documents
the years of experience of designers and developers in delivering successful Java EE
applications. The Java EE design and architecture can be documented using UML nota-
tions. These are graphical notations that help provide a pictorial view of the static
structures and dynamic interactions of the domain objects.
In the next chapter, I'll show how the Spring Framework further simplifies Java EE
application design and architecture. If you have experience with the Spring Framework
already, you can jump straight to Chapter 3.