jBPM is a mature and popular process management framework. This book can help you get beyond the basics so you can write useful real-world applications.
jBPM is a well established process management framework. BPM (Business Process Management) is a software discipline that allows a developer to build applications as a series of steps. Under ideal circumstances, designers drag and drop pictures onto a graph that later become a business process definition. The process centers around some business activity. For instance, an 'Expense Report' process might involve the steps: Gather expense information, Management Review, Approval/Denial branch and Produce check. Here's a sample picture to let you know what such a graph might look like:
jBPM is referenced in quite a few SOA books, and with good reason. It's a really good framework, and it's been in use for a lot of years, so it's feature rich and stable. jBPM can be used in a lightweight manner if your situation allows it (that is, just by including the right .jars, you can skip the designer part and in-line some XML in your application code. That's probably the lightest configuration, and the one many SOA books describe.) But what if you need to do some stuff not covered, like involve humans in the process?
Human interaction is a little trickier. With only automated activities, your BPM process can be handled something like b-flat BPEL. You can just describe the series of tasks (java classes and methods) you want to be invoked, and the framework executes them, bang, bang, bang. But what if you want someone to look at a web page and provide you some feedback? Now you're in the territory this book is covering. It goes beyond the basic usages, and tells you what you're really going to have to know.
You'd better be ready to download and read the book's source code, because without it you really won't get as much out of the book. The author includes and explains the relevant text in-line in the book, but you really need to view and understand all the pieces of the project to learn to piece together workable applications.
The book is true to it's title in that it is definately a developer's guide. The reader is coached through building their own Java-powered state machine in the early chapters, sort of a mini-jBPM. This is a good exercise, as it gives insight into how jBPM functions. Shortly after, the author introduces the development environment, which includes Maven and Eclipse.
The middle chapters deal with jPDL, which is the XML language that powers jBPM. The language is not complicated and the book does a good job of explaining it.
The final chapters work through case studies and explain persistence and enterprise features. Persistence is important because you'll want your business processes to maintain integrity through server recycles. Naturally, jBPM makes use of other parts of the JBoss stack like Hibernate, data sources, etc. so these are covered in sufficient detail for jBPM use.
So, what's my overall opinion of this book? I'd say it's a good resource, and would recommend it to anyone who's going to write a jBPM application beyond an example "Hello World". The book isn't perfect-- it's not written in an easy to read manner. (I suppose that's acceptable, given this is a book for developers.) This book was written near the end of life for jBPM, which will be JBoss's final supported version for a while yet as the next supported version will be based on the brand-new jBPM 5. (Which is quite a change from jBPM 3, by the way.) If you are going to use jBPM 3 (and there are a lot of good reasons why you should), this book is worth the price.
The book can be found
here.
Happy Reading!