Monthly Archives: March 2013

jBPM 5 Developer Guide – review

In this article I am going to describe my impressions from the book jBPM 5 Developer Guide by Packt Publishing. I think I should start with introducing myself. Of course, you can check my About page, but I’ll go a little bit deeper. I work as a jBPM quality engineer. I started with quality engineering of rule engine Drools, but later I’ve moved my attention towards jBPM 5, which had to be productized. I’ve started to learn jBPM in the end of 2011 and also I’ve registered my master project at school, where I focused on using jBPM to control Jenkins jobs, for example to execute test plans on Jenkins. So I know the jBPM only from the technical perspective, I have no experience with adopting Business Process Management (BPM) solutions at customers.

Why to use business processes?

After reading the book I have learned many new things, which I missed before. The book clearly describes motivation for learning and reasons for adopting BPM techniques. What I found most useful were the tips given by the authors, how to convince the employees of the target company to deploy such BPM solution instead of their traditional paperwork. I can imagine how hard this task may be as I have also some experience from developing and deploying a network management information system. The book is written from the developer’s perspective and gives you hints how to deal with these early problems, which you will surely face (as the IT experts).

Business process basics

From the start the book is not limited only to jBPM, but business processes are described in general. The same applies for the general description of the whole business process management system. jBPM 5 uses Business Process Management and Notation (BPMN) 2.0 standard and that’s one of the biggest differences from the last widely used version jBPM 3. The chapter about BPMN 2.0 could have also contained references to other books, which describe business process modeling more in depth, because one chapter cannot cover everything. In later chapter the jBPM 5 components are described, including differences from jBPM 3. Unfortunately sometimes I found some parts of the text describing too obvious things, which were easily visible from the many pictures. From these jBPM 5 components only the Designer is described in depth in its own chapter. The steps how to draft a business process are described from simple processes to complex ones, with advanced concepts like for example swimlanes,  messages, events and subprocesses.

Features important for everyone

If you were already familiar with some of the business process suites you could have skipped the previous chapters without severe complications, but chapters describing service tasks, human tasks, persistence and transactions are a must to read. The stress is put on the features, which can be implemented by a developer on its own on the top of the existing APIs. Author explains that you are not tied to the offered tooling, for example proposes you a way how to define your own frontends to your human tasks. These chapters also contain description of the services which are not present in the current jBPM 5.4 yet, but can be implemented in the future versions, so you can be prepared for these future features as well. Or which you can implement just now on your own.

Benefit of business rules and complex event processing

Next two chapters are more advanced topics, which you may or don’t have to use. It’s up to you and your use cases. They describe how to take advantage of the well working integration of jBPM with the rule engine Drools Expert and Drools Fusion (complex event processing). Rule engine is useful for evaluating complex business logic which may often change (for example mortgage calculations, complex discount logic, …) and event processing agent can be used to detect a complex event from an event stream and based on that start a business process (for example detecting a fraud and launching business process for its investigation).

Summary

To sum it up – it’s definitely a very good book for everyone who is new to the jBPM 5 and its ecosystem. The information, guides and problem solutions are often scattered from documentation, wiki pages, blogs to user forum and this book gives you all important information nicely put together in one place.

Pros:

  • All important information nicely put together, currently there is nothing better to start learning jBPM 5 from
  • Developer’s perspective and hints
  • Not only about jBPM, but also describes business rules, complex events and integration options to give a complete picture

Cons:

  • Sometimes there are empty sentences telling nothing new
  • Some Java code examples are not obvious and easy to understand
  • Lack of clustering topics, steps how to scale jBPM