When the review copy of this book arrived, I exercised remarkable self-constraint by writing down, before opening it, what I expected it to contain. Looking back on this list now, the book fulfilled a number of my expectations: there are plenty of UML diagrams; there is coverage of both EJB and simple two-tier architectures; and plenty of cross-referencing between patterns. Of course, some things I had hoped for did not materialise. There are no anti-patterns (such as the "magic button"), or methods for marshalling between Java member data and its XML representation. There is little discussion about the alternatives to SOAP, or of the future for Web Services where 'bots' could negotiate for services autonomously.
I also wrote down some things that I hoped weren't in the book: long-winded introductions such as "what is Java?", "what are Web Services?" and so on (this is, after all, a book aimed at professionals); coverage of general patterns that don't apply to Web Services (there are other books for this); or tie-in to a single deployment platform. I am glad to say that the only one of these that was present was the tie-in (to Apache Axis), and I no longer think this is a bad thing, since it has enabled the author to provide real example code that people can easily deploy and experiment with.
In fact, one of the best things about this book is the example code (although I must confess that I haven't tried to run it). The author uses a single case study of the P. T. Monday Coffee Company (based on the company owned by the author's grandfather in the early 1900s) throughout the book. Each example extends the company's capabilities, and the progress towards the final solution develops much the same as it will for someone creating analogous systems for their own company. All of the example code is configured as a project on
SourceForge.net, which is an excellent idea and ensures that it will continue to be maintained and improved upon.
Unfortunately, the language used throughout the book really lets it down - to such an extent that if I had been browsing this title in a bookshop, I would probably have put it back on the shelf. The text isn't always very clear (sometimes I needed to reread a sentence several times before I understood its intent), but this is made much worse by the author's insistence on 'management speak'. The worst example of this is gratuitous use of the word "leverage" - every Web Service must be leveraged, never used or applied or even utilized. The "what you will learn from using this book" section uses the dreaded word three times... and back on the shelf it goes.
What the wording starts in terms of tripping up the reader, the layout finishes. It took me a while to realize that, even though the body text is left aligned, quite a few words are broken across lines. Perhaps this might seem minor, and it probably saved a tree or two, but these unexpected hyphens don't help the beleaguered reader.
The factual content is pretty sound, and covers fifteen patterns: Service-Oriented Architecture, Architecture Adapter, Service Directory, Business Object, Business Object Collection, Business Process Composition, Asynchronous Business Process, Event Monitor, Observer, Publish/Subscribe, Physical Tiers, Faux Implementation, Service Factory, Data Transfer Object, and Partial Population.
There's not much here that you wouldn't find in any other book on Web Services, just organized slightly differently - the author is leveraging the popularity of patterns to facilitate mindshare with the readers!
If you want to fully understand all of the options for designing Web Services then this isn't the best place to start. However, if you know you want to host SOAP-based Web Services running on Apache Axis, want a comprehensive suite of code to get you going, and won't be put off by the style, then this book would be useful.
Recommended with reservations.