What is all the buzz about XML? Isn't it just HTML with content-based
tags? Why are XML-based web services and application servers thought
to be the power houses of the next generation Internet? How does XML
web services tie into J2EE application servers?
Too many "J2EE and XML" books dive into specific Java APIs for XML
processing without addressing those important questions. Kurt Gabrick
and David Weiss's new book "J2EE and XML Development" (Manning 2002)
is different and it gives us a refreshing look at the big picture: XML
is promising because it can provide a robust integration layer between
applications and between components inside an application. Together
with cross platform J2EE technology, they allow us to create
heterogeneous, flexible, implementation independent and scalable back
end server networks. The book, of course, is more than application
integration. It discusses a variety of architecture and design issues
of J2EE XML applications.
In the book, the authors discuss general concepts and approaches of
various XML-based system integration techniques in the context of J2EE
server side applications. Those approaches include message and RPC
driven web services, and relational database-driven application
servers in the middle/back tier; and MVC-based architecture to
separate tiers. The authors explain the relative merits of different
solutions. XML technologies and their Java handling tools covered in
this book include
* Basic XML validation tools such as DTD and Schema;
* XML to Java data binding tools;
* DAO objects to bridge relational data and Java XML objects;
* XML parsing APIs such as SAX, DOM and JDOM;
* XML query and transformation tools such as XPath, XQuery and XSLT;
* Java APIs to support web services specific XML protocols;
* XML native and XML enabled relational database for persistence.
Background knowledge in distributed computing, J2EE components (such
as EJB. JMS, JSP), specifications of various XML messaging protocols
and XML tools are required to understand most of the examples in the
book. The target audience of this book is mainly senior developers
and system architects. However, beginners can also benefit from the
book by learning the big pictures and general concepts. This book is
written in plain, easy English terms. It is very easy and informative
to read if you do not plan to go into details of the examples and case
studies. (I read it in a relaxing afternoon).
For an excellent example of technology comparison and discussions, you
can read the first part of chapter 4, in which the authors compared
four types integration techniques:
* Data level;
* Message level;
* Procedure level and
* Object level.
The authors went on to explain how different XML technologies can fit
into those four integration scenarios.
Although I enjoyed the book very much, as a developer, I felt
unsatisfied by the level of implementation details given in the book.
The authors try to give short and concise code segment listings
throughout the book to illustrate the most important concepts. But for
readers who are not J2EE experts, it is difficult to see how things
relate to each other without more detailed explanations. The readers
could get in-depth understanding of the techniques if they could study
the source code along with the text. The complete and commented
source code for the examples in each section and the case study are
available on Manning's web site.
Also, most popular relational databases vendors have developed XML
storage extensions to their flagship database products and those
extensions have been widely adopted in favor of native XML databases.
It would be nice if the authors could compare those technologies
against each other and offer their insights of future XML storage
solutions.
Overall, I recommend this book especially to architects and advanced
developers who are interested in adapting their J2EE skills to the new
world of XML based web services. It is also a great book for beginners
who want to see the big pictures and understand why J2EE/XML is a
platform that is worth investing their time and effort.