I have received a copy of the jBPM5 developer guide and I’ll be glad to provide a review of this book to our readers.
I will jump right into the review, providing my impressions of each chapter.
Chapter 1 discusses about general concepts and BPM background, breaking down the BPM discipline into six major steps (discovering processes, formalizing processes, implementing assets, runtime, monitoring, improvements). That might sound unecessary stuff but I guess most developers do prefer jumping directly into the implementation leaving out important initial aspects.
Chapter 2 deals with core components of BPMs introducing some specific aspects of jBPM5 such as the Knowledge Builder and the IT systems surroundings the jBPM engine (SOA, BPEL, ESB and Rules Engine)
Chapter 3 discusses about the basic flow objects that we can use to model our process diagrams and introduces to the main book example which will be the Hospital emergency process. This chapter starts translating words into a real example (BPMN 2.0 process), although the required development tools will be discussed in the next chapters.
Chapter 4 introduces you with the tooling provided by jBPM5 to model and execute our business processes. This chapter can be used as a reference to choose the required tooling for your specific implementation and will
help you to have a complete overview of how we can implement the BPM discipline in our own business domains.
Chapter 5 This is one of the best chapters in the book and will assist you in creating and manipulating process definitions in Guvnor and design our business processes using the Web Process Designer.
Chapter 6 shows about how interactions can be achieved from inside our business processes. Therefore the author digs into the details of the jBPM5-Executor-Service, which helps us to achieve more robust interactions, delegating the executions to an external component from our application’s point of view.
Chapter 7 is about Human interactions and the emergency service example is extended to use new user interfaces based on the task list concepts described in this chapter. I’m glad that for completeness this chapter ends by discussing how to expose and organize the tasks using task lists and task forms.
Chapter 8 Very well written chapter which helps to shed some light on some aspects such as persistence and transactions inside the Drools and jBPM5 platform, which could otherwise frustrate the readers, because of the different environment configurations which can lead to unexpected behaviours.
Chapter 9 Gives you a quick overview of the rule engine and the complex event processing features also provided by the Drools and jBPM5 platform covering important patterns that we need to know in order to leverage the power of the rule engine in our business processes.
Chapter 10 shows how Drools Fusion can be integrated with jBPM5 to monitor and influence business processes executions and how to enable temporal reasoning within the rules engine (that’s often an unknown concept to young BPM and rules developers).
Chapter 11 Covers important aspects that we need to know in order to define our architectures. That’s a good way to end the book as you will be aware of different architectural approaches that you can follow such as handling multiple knowledge sessions inside your applications/how to define the responsibility of each session.
What I liked the least or at least might be improved:
Honestly, that’s hard to say, however I’d have been a bit happier with an earlier introduction to the BPMN tool box (developers would like to get hands dirty within the first two chapters). Also I wished one or two sections that inform the reader about integration with other SOA based frameworks (e.g. a mention that’s possible to integrate jBPM with another JBoss product like Switchyard).
What I liked the most:
The book does a great job at helping you to put together many different aspects such as the Process designer, The Guvnor repository, Transactions , Persistence, Human tasks and Rules which might look pretty clear taken individually but are rather complex to be seen a part of a larger picture. I’m also glad to see that this book hit the market when the jBPM5 project reached a good level of maturity and popularity, thus a comprehensive step by step guide is indeed needed.
So in definitive, if you are going to use jBPM 5 (and there are a lot of good reasons why you should), this book is worth the price and will definitely help a reasonably skilled Java developer get off the ground.