Book Reviews

The following book reviews are the copyright of their respective authors and no part should be reproduced without the express permission of the author. Publishers and Authors of the books reviewed may reproduce the whole or extracts of a review for their book. To request copyright permission please email webmaster@birmingham.pm.org.

All the reviews herein are the opinions of the reviewer and are not necessarily the views of Birmingham Perl Mongers and its members. If you feel a review or comment has been made in error, please contact webmaster@birmingham.pm.org to rectify the situation.

Other Books

Static Link: http://birmingham.pm.org/reviews/50

 
Jabber Developer's Handbook
Title:Jabber Developer's Handbook
Author(s):Dana Moore & William Wright
ISBN:0-672-32536-5
Publisher:Sams
Reviewer:Richard Dawe

Before reading this book, I thought that Jabber was an instant messaging system. Jabber Developer's Handbook (JDH) quickly explains to you that it was designed as much more than that: Jabber is an extensible XML-based messaging bus.

The first third of JDH starts off with a nice overview of the basics of Jabber and its architecture, including some basic code, which will please those eager to get their hands dirty. It continues by detailed chapters on setting up Jabber software (servers and clients), the Jabber protocol from the perspective of the client and the server architecture. I particularly liked the detailed walk-throughs of the protocol and the interactions between the various components in the server architecture, which were both very well explained.

The middle third of the book contains examples of how to extend the Jabber server, offering real-world examples such as a database look-up service and a custom authentication method. These seemed like good examples of how to get started building your own services with Jabber.

The last third of the book covers integrating Web Services (XML-RPC and SOAP) into Jabber, a Jabber chatbot, using Jabber for monitoring (e.g.: sending alerts as Jabber messages), integrating Jabber with JXTA (Sun's peer-to-peer technology that hasn't taken off) and Jabber libraries. I found the chapters on the Jabber chatbot and JXTA were weak and didn't really add anything to the book. The chapter on Jabber libraries is interesting, to compare how the various language bindings differ.

There are also some brief appendices, one on XML. I doubt very much that this will help, if you've never encountered XML before - reading O'Reilly's "XML in a Nutshell" is probably a better bet.

The authors have a friendly, conversational style, which makes it easy to read.

The code examples in the book are in a variety of languages: Python, Java and some Ruby. Perl is only discussed in the chapter on Jabber libraries, but you should have no trouble with the Net::Jabber Perl module, if you can follow the examples in other languages.

I do have some criticisms. The authors state that some parts of the protocol are optional, which I'd expect to cause interoperability problems, but none are discussed - it would be useful for the authors to share their experience. I felt the description of dial-back for weak authentication was little weak. Finally, some typos make the book feel a little rushed.

Overall, I enjoyed reading this book, particularly the protocol and architectural discussions. Since Jabber is the basis for the IETF's instant messaging protocols, you may find this book a good way to get your head around them.

- Richard Dawe, © 2nd May 2004