InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Seven Forms of Business Process Management with JBoss jBPM

Posted by Boris Lublinsky on Nov 02, 2008

Sections
Enterprise Architecture
Topics
Business Process Management ,
SOA
Tags
jBPM

Following his excellent article on Process Component Models and JBoss Process Definition Language (jBPM), Tom Baeyens has just published another one, explaining different forms of business process management (BPM) through seven distinct use-cases .

According to Tom:

The term BPM is highly overloaded and used for many different things resulting in a lot of confusion. These use cases give concrete descriptions for the different interpretations of the term BPM.

The first use case tries to explore BPM as a discipline:

BPM as a discipline refers to the analysis, documentation and improvement of the procedures that describe how people and systems work together in an organization. Realize that most BPM is done in this way, not even resulting into any form of software or IT support. MS Visio is one the most used tools to document business processes.

This definition departs slightly from well-established and widely adopted BPM definitions, for example the one by Van der Aalst and colleagues:

BPM is a field of knowledge at the intersection between Management and information technology, encompassing methods, techniques and tools to design, enact, control, and analyze operational business processes involving humans, organizations, applications, services, documents and other sources of information.

Or Wikipedia’s:

BPM covers activities performed by organizations to manage and, if necessary, to improve their business processes. Software tools called business process management systems (BPM systems) have made such activities faster and cheaper. BPM systems monitor the execution of the business processes so that managers can analyze and change processes in response to data, rather than just a hunch.

Both definitions emphasize three main components of the mature BPM systems: process design, implementation and monitoring, where the last one is notably absent in Tom’s definition (and the rest of the use cases). Because you can’t improve what you do not measure, process monitoring is an essential component of BPM.

The rest of this use case concentrates on business process design, transitioning from design to implementation model and keeping the two in synch. When it comes to the design, Tom’s article concentrates on only one facet of BPM design - graphical representation of the process:

Original analysis diagram should serve as input with the rest of the software requirements. Developers should then construct an executable process that looks as close as possible to the original analysis diagram.

Although it is hard to argue this point of view, the question is whether diagramming truly represents process design. The more accepted approach to the process design is tooling that in addition to diagramming supports:

  • Process validation, ensuring that the designed process is "implementable".
  • Process simulation, which allows for a more disciplined process improvement through simulation of impacts of the process changes.

Granted, the majority of such tools employ a process model which is sufficiently different from a process execution model, which often makes transformation between these two models a week point of the overall approach. Although it’s easy to agree with Tom that "an automatic translation between pure analysis models and executable process models are not feasible in general", usage of a single model for both (jBPM approach) is not the only solution. Oracle’s implementation, for example, provides "partial" roundtrip support between BPMN and BPEL

The second use case concentrates on ad hoc task management based on Human Interaction Management (HIM) model. Inclusion of ad hoc collaboration processes into the mainstream BPM implementation will definitely increase the reach of existing BPM systems.

A story in HIM reflects a task that person creates for which an ad-hoc process will be created. People can get involved in different roles. There are big benefits of tracing such work with a task management system. First, people that get involved with such a task after a while will get instant visibility into the history of the whole story. And secondly, an audit trail is logged automatically.

Two closely related use cases, Service Orchestration and Transactional Asynchronous Architectures, discuss implementation and invocation of process activities, which is the foundation of the process execution. It is not completely clear what Tom’s intent in discussing these two patterns was – demonstrate differences between jPDL and BPEL? Explain technical details? Granted Java-based jPDL provides greater flexibility, but what Tom does not explain is the price of this flexibility - the additional code that a developer has to write. In a nutshell, the difference between BPEL and jPDL is that BPEL is a form of domain specific language (DSL) designed for implementation of business processes, while jPDL is a Java-based framework for building either processes or new DSLs (see use case 7), including BPEL. As a result BPEL, for example, shields developers from the threading issues while jPDL often requires explicit thread control (see use case 6). The choice between jPDL and BPEL is basically the same as choosing between higher and lower level languages - it is a tradeoff between flexibility and simplified development (although BPEL programming is not always that simple).

Finally, when it comes to Visual Programming (use case 5), BPEL and jBPM are very comparable, although usage of "named" activities (jBPM) rather then "named" services (BPEL) seems like a more user friendly approach.

Not everybody agrees Tom’s use cases are a good representation of BPM scenarios. According to William Vambepene, architect for the application and middleware management part of Oracle’s Enterprise Manager division:

Tom is right to write that "the term BPM is highly overloaded and used for many different things resulting in a lot of confusion". By adding a few more use cases that nobody, as far as I know, had previously attached to the BPM bandwagon, he is creating more, not less, confusion

While it is very much worth reading, the article is more about jBPM and its future, then about BPM in general.

  • This article is part of a featured topic series on SOA

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.