Thursday, January 14, 2010

jBPM Developer Guide review - chapters 7 - 12 (part III of III)

Click on book to buy!
Back to jBPM Developer Guide review part II
Back to jBPM Developer Guide review part I

My final part of this book review will cover the last six chapters and provide a final conclusion.

Chapter 6
This chapter is an in depth look at how jBPM deals with persistence.

A must read chapter.

Chapter 7
Tasks are dealt with in the chapter with a very good example to show you how it all works. At this point that the book gives us a practical example instead of homework, bit of inconsistency here.

Still, a must read chapter.

Chapter 8
More persistence, dealing with how it happens when you hit wait states. Would have like to see more about how this is a best practice as too many jBPM implementations take the initial lead from the provided examples found on-line and implement everything in Nodes. Nothing mentioned about lazy initialization or loading in Hibernate, something you will run into in advanced cases when you implement your complicated processes.
A nice end to this chapter is provided by updating the running example process to use the techniques discussed in this chapter. This is nice.

A good chapter you need to read.

Chapter 9
More than you really need to know about process variables, but that is exactly what I want from a developers guide type of book. This chapter is a perfect example of what I want from every chapter in this type of book, well done! Strange finish though, the homework section is back in this chapter.

Don't miss this chapter, good developer guide material that will help make you the jBPM guru in your development shop.

Chapter 10
Here the author deals with advanced topics from jPDL, which means forks, joins, super states, process states, email nodes and property passing in your handlers. It is thorough, but I would really have expected some more suggestions as to best practices, especially on forks and joins, which WILL bite you in the butt on your real life implementations. It is a good chapter, finishing off jPDL for you.

Don't want to skip this chapter or you will have a half empty toolbox at work.

Chapter 11
When I read the title I was expecting advanced topics from real life practices to tell me about the best practices using the previous material. It turns out to be about applying the chapter 10 material to the running example, thus the author takes us through adding in super states and process states to his example process.

A very good handling of the asynchronous usage of jBPM and how the jobExecutor works finishes out this chapter. Very important stuff and I thought it was forgotten. It would have been more symmetric to first introduce this in the previous chapter and then apply it as was done with the other advanced topics, but this is a matter of style.

A good chapter to read and pay attention to the jobExecutor section.

Chapter 12
With a title of 'Going enterprise,' I was curious how we were going to finish out the book as this was the last chapter. Well, it is a good overview of the deeper configuration issues encountered when working in JEE environments.
There were lots of solution tips sprinkled in this chapter, nice touch. The jobExecutor is handled but this time interacting with JMS queues. Timers, reminders and the Mail service are covered.

Then we hit a wall. The book it seems is now finished. No conclusion, no tying it all together with the final look at our running example project and no summary of the entire book. This feels like I am missing chapters or left hanging. Bummer.

This chapter is very important none the less, don't think of skipping this one.

Final conclusion

So my final conclusions are that this book is very much an improvement on the previous jBPM PACKT publishing offerings. It does cover jBPM fairly well and for a beginner it is now the place to start your education (should you decide not to take the Red Hat education offerings). Go out and get your copy, it will help you along the road to becoming a guru in your jBPM development projects.

What about my running list of questions and impressions? Here they are for posterity, maybe they will make it into future publications:
  • extremely disappointed with the readability/editing job done by PACKT publishing as mentioned in part I (again, this has nothing to do with the author)

  • no resources or references section in the book
  • lots of Wikipedia references in-line, never a good thing to use as a primary reference
  • miss exception handling as an advanced feature?
  • in handling of a Nodes and Transitions nothing is mentioned about dynamic transitions
  • no best practices given when implementing jBPM projects?
  • the author gives us "homework" in the first three chapters, but then it just stops until the ninth chapter, rather a shame