This book has arguably unreasonable goals. Its title alone invites raised eyebrows. Enterprise application development, on any platform, involves a wide array of tools to solve an equally wide array of issues and to manage several levels of complexity. How can you possibly hope to cover Java enterprise development tools in a single work, let alone in a nutshell?
Our approach to this lofty goal is simple. We have selected the key tools and APIs that enterprise architects and developers have found invaluable when working in the Java environment. Some of these are part of the core Java 2 Standard Edition (J2SE) environment; many of them are part of the larger Java 2 Enterprise Edition (J2EE) environment; many of them fall outside the Java standards but are useful and popular de facto standards within the Java community. For all of the tools covered, we provide a short but effective tutorial while also striving to cover enough critical detail that the material can serve as a quick reference as well. Along the way, in keeping with the “nutshell” concept of this series, we’ve had to edit brutally. Only tools and APIs that are proven in the industry while also being critical to success made the cut. Some things, useful and otherwise, had to be left by the wayside. But we hope that sifting effort alone will benefit you, since the book also serves as a guide through the sometimes confusing swirl of competing APIs, tools, and frameworks that make enterprise development daunting at times.
We’ve divided the material in the book into two main sections: tools that are part of the Java and J2EE standards and are managed under the auspices of the Java Community Process and tools that are not part of these standards but have been proven in practice and are de facto standards in the Java development community. Before we summarize the contents of these sections of the book, let’s make it clear what we mean by “enterprise computing .”
The term “enterprise computing” raises many different images in people’s minds: big, sterile-looking corporate data centers filled with humming servers ; complex financial systems stretching across the globe; elaborate multilevel software systems running a stupefying amount of code distributed across many servers, locations, companies, countries, even (in the case of NASA’s Mars Rover project) planets.
All of these images are true, to a degree. But they’re all imprecise to a degree as well. Enterprise computing can be done on a single student’s laptop as well as in a big corporate data center. It can be used in a small mom and pop business with a single storefront as well as in a huge multinational. It can be done just as effectively with a very small amount of code as it can with huge code repositories.
At its heart, enterprise computing is all about combining separate applications, services, and processes into a unified system that is greater than the sum of its parts. The rest is context that determines how you go about accomplishing this basic goal.
Anyone can write enterprise applications, not only because of the generalized nature of enterprise computing but also because the tools and techniques for developing enterprise systems have matured to the point that this domain is accessible to a much broader group of software developers. Many of the arcane details have been smoothed over by standards, well-defined APIs, and really powerful tools. This has made enterprise computing less scary and a lot more fun.
 Sun recently announced a new naming scheme for the various Java platform editions. In the future, the standard edition, J2SE, will be referred to simply as “Java SE,” and the enterprise edition, J2EE, will be called “Java EE.” We’ve chosen to stick with the current nomenclature of “J2SE” (or just “Java”) for the standard edition and “J2EE” for the enterprise edition. If the new naming scheme takes hold in the community, we’re sure our readers are smart enough to make the translation. If you’ve been working in the Java environment for very long, you’ve already had a lot of practice in this regard.