Friday, October 14, 2011

Book Review for "JBoss ESB Beginners Guide" in RAW Format

An easy introduction to the popular JBoss ESB.

*Disclaimer* I work for Red Hat as a JBoss support engineer and work with JBoss ESB every day. This will allow me to make an informed review of this book, but you should be aware that I work often with the book's authors. Still, you can expect an honest review here.

Primer: What's an ESB? An ESB (Enterprise Service Bus) is a runtime environment that lets the user define services, consume services and route and transform messages. The user can wire together modular services to define desired functionality. ESBs are often used to mediate web service calls-- they stand in between the caller of a service and the provider of the service. From this man-in-the-middle position they are able to transform messages, manage security concerns, enrich messages, and audit activities. ESBs are also often used with JMS. In this context they are transactional, so they can string together a series of actions (including database inserts) that are transactional and can be initiated by a fire-and-forget client. ESBs offer great utility, but usually at a significant technological cost.

This book is the first book offered for JBoss ESB, and is currently offered in "RAW" format, which means it is incomplete and subject to editing as the authors continue to enhance it. The authors are all key contributors to the project, so the knowledge is first-rate. Presentation is also surprisingly good, probably because at least one of the authors is a prolific blogger and thus in good practice. The overall quality of the book is high.

So what's covered in this book? Here's what I would consider the highlights:

- Download and installation of JBossESB.
- Configuration of JBDS (an Eclipse-based IDE for use with JBoss products)
- Introduction to the JBoss ESB quickstarts. This is very important! This is an introduction to literally dozens of minimal, functional examples for JBoss ESB. (Think of them like "Hello World" examples for using different parts of the ESB.)
- Services, including the necessary configuration parts.
- Writing your own functionality for the ESB (Custom Actions). These can be implemented in Java, Groovy, etc.
- Messages. What they are made of, how to validate them, how they are carried on the ESB.
- Message Exchange Patterns (MEP). This is an important concept in ESBs, it determines if your client gets a response or not.
- Passing messages in memory for performance.
- The packaged Services that come with JBoss ESB. Like the quickstarts, this is a huge gateway to lots of functionality just waiting to be picked up and used.

The book's title includes "Beginner's Guide", which is partly truthful. It is a gentle enough introduction that a newbie will be able to make use of the book. But it also includes plenty of coverage of what I'd consider "Advanced Topics". (Remember, I answer support questions on this software every working day, so I think I have a fair idea of what's easy to do and what's not.)

Since this is a RAW book, it's not complete yet. At least one other chapter is promised, on Gateways. A Gateway is a component that accepts messages from sources other than the ESB itself, i.e. external JMS providers, HTTP, SQL, and so on. This should be another good chapter.

Who is this book good for? I'd say any user of JBoss ESB. If you're not yet a user of JBoss ESB, but think you might like an ESB, then I'd recommend this book for you, too.

If you think you'd like this book, I'd suggest you move fast. For the month of October, Packt is offering any Open Source eBook for only $10.99. That's hard to beat.

The book can be found here.

Happy JB-ESBing!

No comments: