Handbook, by Paul J. Perrone, Venkata
S.R. "Krishna" R. Chaganti, and Tom Schwenk,
to the web site
modern PC running Windows or Linux, or other hardware platform
(Max OS X and UNIX)
This publication is a handbook for enterprise Java
developers. It's divided into 4 sections on enabling
enterprise services, including data enabling, communication
enabling, web enabling and applications enabling.
The companion CD-ROM contains the entire book in
electronic form plus Adobe Acrobat Reader 5.1, J2SE
1.4.1.02, Ant 1.5.3, Tomcat 4.1.24 and MySQL 4.0.12.
In addition, the CD-ROM contains several appendices
in PDF format, including configurations for all the
servers mentioned in the book. What's more, every
page in those PDF files are included in the book
index. I'm impressed by the thoughtful design of
It's not surprising that this book deals with data
first because data is the center of enterprise computing.
Any enterprise system has a database system that
is usually maintained by a DBA rather than the enterprise
developers. What concerns developers are data access
and transaction control. The book starts with an
overview of enterprise computing, then describes
the enterprise data, database system, data access,
XML, SAX, DOM, XSL transformation, JDBC and transaction
and connection pools. XML stands for eXtended Markup
Language. SAX stands for Simple API for XML. DOM
is a Document Object Model (mainly for XML in this
book). XSL stands for eXtended Style Language and
allows transformation of an XML document into different
presentations. JDBC stands for Java DataBase Connectivity.
The data for enterprise systems can be divided into two
types: the format that is flowing outside of the database
system, and the format that is stored in the database.
Although there is a trend to merge these two types, traditional
relational database systems still keep data in relational
tables and the external data flow has been shifted to XML
formats This book discusses the XML formats in details.
For relational databases, it focuses more on data access.
That's an appropriate approach for developers. In addition,
the book discusses the recent trend of storing objects
in database - the so-called hybrid Object/Relational (O/R)
architecture as well as the O/R mapping.
One feature of enterprise computing is the existence of
multiple servers and their communication in various forms
of services. When it comes to communication between servers,
security becomes an issue. The second part of this book
describes distributed systems, activation services, CORBA
communications, RMI and custom sockets, web services and
SOAP and WSDL and RPC, naming service with JNDI, CORBA
naming, RMI naming, Windows registry naming, directory
service with JNDL and LDAP and DSML, DNS, Microsoft active
directory service, CORBA trading service, JINI as a trading
service, web services lookup with JAXR, transaction services
with JTA and JTS, messaging services with JMS and JAXM,
JavaMail, assurance and security services and cryptography
and SSL, jar signing, JAAS, and CORBA security.
CORBA (Common Object Request Broker Architecture) is a
specification for building distributed object applications.
CORBA is a language and platform-neutral. RMI (Remote Method
Invocation) is a Java- specific communication framework.
SOAP is a Simple Object Access Protocol for web communication
(web services). An IDL (Interface Definition Language)
defines a CORBA interface, whereas a WSDL (Web Service
Description Language) defines a web services interface.
JWSDL is a Java API for WSDL. RPC stands for Remote Procedure
Call. JAX-RPC is a Java API for XML-based RPC. JNDI stands
for Java Naming and Directory Interface, which allows Java
to access other naming systems, including CORBA Naming
Service (CosNaming), file system, RMI Registry and Windows
Registry. Directory service is often interchangeable with
naming service, but it is referred to as a special naming
service for object name lookup in this book. DAP is a Directory
Access Protocol. LDAP is a Lightweight DAP that operates
over TCP/IP. DSML is a Directory Services Markup Language
using XML. DNS stands for Domain Name System. Jini is an
architecture for joining distributed systems together.
JAXR stands for Java API for XML Registries. JTA stands
for Java Transaction API. JTS stands for Java Transaction
Service. JMS stands for Java Message Service. JAXM stands
for Java API for XML Messaging. SSL stands for Secure Socket
Layer. JAAS stands for Java Authentication and Authorization
Although the communication services are full of special
terminology, it is all related to services among distributed
systems with Java approaches or non-Java approaches. Distributed
services require lookup (or discovery in Jini terms) and
name resolution (naming or directory services). The communication
can be purely in text format or in the form of objects.
This book focuses more on the modern communication services.
This part of the book is very resourceful and should be
of great value to developers.
The third part of the book is about web enabling, including
web development, Servlets, JavaServer Pages (JSP), JSP
tags, web components and type mapping. Strictly speaking,
web enabling is no different from the distributed systems.
The Internet, after all, is only a form of public network.
That's why web services have been discussed in the prior
section where communication of distributed systems is the
main topic. For browser-accessible services, the book discusses
two topics: Servlets and JSP. The rest of the web enabling
is about deploying Java components as web components, which
is mainly defining the configuration in XML files.
The last part of the book is about enterprise application
enabling, including application services, EJB (Enterprise
JavaBean), session EJB, entity EJB, message-driven EJB,
EJB assurance services (transaction, clustering, security),
EJB integration, and web services with EJB. Many people
are afraid of EJB because of its complexity. However, it
is actually a package of the services already familiar
to developers. This book provides detailed discussion of
The authors have done a good job in assembling a book
on J2EE development. The topics are very modern, and the
coverage in the book is wider than any other publication
in the market. Each chapter goes into details that warrant
the use of this book as a handbook. I'm sure every Java
developer will want a copy of this one on their bookshelf.
Letters to the Editor are welcome and occasionally abused in public. Send e-mail to: firstname.lastname@example.org