The history of software engineering is, in effect, the history of abstraction. As complexity
rises, we respond by raising the level of abstraction in our programming languages and in our
methods. Thus, we have seen the move from C to Java, from structured methods to
object-oriented design, and from classes to design patterns to architectural frameworks.
J2EE, the Java 2 Platform, Enterprise Edition, is such a framework. J2EE is a comprehensive
platform for deploying complex systems. It raises the level of abstraction for the
development team by offering a set of mechanisms (JSP, Enterprise JavaBeans, servlets) and
services (JDBC, JNDI, JMS, and RMI to name a few), enabling the team to focus on its core
business value instead of building infrastructure.
As good as J2EE is, however, there is a large semantic gap between what J2EE provides and
what must be crafted for the business. Bridging that gap can only be achieved given a strong,
foundational understanding of J2EE together with a sound architecture for the
domain-specific system. The Unified Modeling Language (UML) comes into play here, for the
UML is essentially the language of blueprints for software. Visualizing, specifying,
constructing, and documenting the key elements of a system are essential as complexity
rises, and this is the very reason for the UML’s existence.
Khawar and Cary bring all of these elements together in this book to help you bridge that
semantic gap. Not only do they cover all of the essential pieces of J2EE thus helping you build
a foundational understanding, they also explain how best to use J2EE’s mechanisms and
services. This book will also guide you in applying the UML to model your systems built upon
J2EE, thus enabling you to better reason about and communicate the analysis and design
decisions your team must make in building quality software.
The authors have a deep understanding of J2EE and the UML and a strong sense of the best
practices that can lead you to the effective use of both. Their experience in building
production systems comes through in their writing, and especially in their comprehensive
There is an essential complexity in building enterprise systems; this book will help you master
much of that complexity.