This book is divided into a number of parts. Each part is a self−contained area that focuses on just one piece
of the enterprise puzzle. Within each part, each chapter will stand alone if you know the underlying
Our approach is to cover all the parts of developing an enterprise application. That is, we don't follow just the
Java APIs, but introduce the fundamentals of the technology that Java operates on. We believe that for you to
be the best developer, you must have a solid understanding of the foundations. In fact, many of the enterprise
APIs demand it. If you don't understand how an XML document is structured, and the terms involved, you
will find it very hard to use the XML−parsing APIs, or to define how to load Enterprise Java Beans on your
We recommend reading the parts of the book that are useful for what you need to do now. There is no need to
read it from cover to cover. If you haven't written an enterprise application before then we highly recommend
you look at Part I of the book. After that, feel free to roam to the sections that best suit your needs. If we need
another part of the book to help explain a piece of technology, we'll give you a cross reference to the
This book is comprised of six parts that lead you from the front end of the system to the back end. Each part
covers a number of topics. We can summarize these parts as follows.
Part I: Getting Started
The introductory parts show you around the enterprise space and the various parts of the J2EE specification:
why you would want to use it, what constitutes an "enterprise" application, and some examples. The advanced
user can skip this part and head into the more specific chapters.
Part II: Delivering Content
Here we focus on the APIs that are used to deal with an external user — receiving input and sending output
back. It is all about presentation. Rarely is there application logic in these parts. They are more about
assembling pieces of pre−built logic into some correct order and then presenting the output to the user. More
often than not, the output is presented in a Web page, but (as you will see) there is more to this part than just
making a pretty Web site.
Part III: Finding Things with Databases and Searches
At the heart of every enterprise system is a database. In that database is a lot of information. In fact, so much,
that without having some form of search capability, you would find it almost impossible to do in anything else
with your application. The database has many forms other than the Oracle or MS Access that you are used to.
Specialized databases exist for many different purposes, and sometimes using Oracle alone is the wrong
Part IV: Communicating Between Systems with XML
As e−commerce systems become more and more complex, the ability to seamlessly talk between systems
becomes more important. It will be an extremely rare situation when you as the developer have to build the
complete end−to−end system. It is almost guaranteed that you will need to integrate third−party software into
the end product. The technology most commonly used for this purpose is XML. As a text−based structured
data format, it works wonderfully well for this. However, to make the most out of XML requires an awful lot
of knowledge, and so we devote an entire part of the book to learning everything about XML.
Part V: Abstracting the System
When system complexity or load grow high enough, a simple two−tier application will no longer handle your
demands. To help alleviate this problem, a range of different technologies have been introduced over the years
to allow you to abstract the raw data sources into collections of business logic. These collections can be used
in many different forms to present a range of applications to the end user.
Part VI: Building Big Systems
Moving up to the really huge systems that you might see in a site like Amazon.com demands even more of
your application. The skills and knowledge needed to implement these solutions is often very specialized.
How often will you get a complete system failure today? Most likely never, so you have to know how to build
applications that can deal with partial failures and still continue to operate normally. This part is devoted to
the Java technologies needed to deal with such applications.
While code and examples are extremely useful, there are many other pieces of information that you need to
know. The appendices cover Sun's Reference Implementation of the J2EE specification, listings of products
and vendors of J2EE systems, and also a glossary of terms to help you through all those acronyms.