JBoss.org BPM Life Cycle

BPM Life Cycle: Model

The modeling phase includes:

  • Design: This is where the actor creates (or updates) a business process, mostly by using graphical representation. This includes drawing the control flow of the process by dragging and dropping various nodes onto the canvas, filling in the properties of these nodes, etc. Several tools might exist, each targeted to a different type of actor (e.g. business analyst vs. developer)
    • Domain-specific extensions: One feature that can prove to be invaluable is the ability to create domain-specific processes. Domain-specific languages are targeted to one particular application domain and therefore can offer constructs that are closely related to the problem the user is trying to solve. The ability to extend the business process with high-level, declarative, domain-specific extensions usually makes processes easier to author, understand and self-documenting.
  • Testing: Once a process has been defined, it should be possible to test specific process scenarios, and to bundle these as a test suite.
  • Debugging: To figure out what is going on during the execution of your processes, debugging capabilities allow you to temporarly halt the execution, inspect the state of your process instances, what happened so far, etc.
  • Simulation: This allows you to completely similate specific use cases (and could thus be seen as an extension of testing and debugging). It includes user-friendly visualization of progress, the ability to manipulate the clock, sending triggers and validating assertions at specific points during the execution, batch processing, etc.

Eclipse-based process editor

Drools provides an Eclipse plugin for simplifying the authoring of your business processes and business rules. This plugin includes a graphical editor for specifying your business process as a flow chart (using drag-and-drop and property panels). On top of that, it also provides important additional features like validation of the process definitions, advanced debugging capabilities, etc.


  • Graphical process editor: create your processes by dragging and dropping nodes and connections and filling in the properties.
  • Drools library: A classpath container that contains the required dependencies when writing a Drools application.
  • Support for multiple runtimes: Users can select which Drools version they want to use in their application.
  • Wizards for creating a new process, a new Drools Flow application, etc.
  • Validation: Problems that are detected in one of the processes process files are shown in the Error Log.
  • Explorer: view that shows all known processes in the workspace.
  • Code completion when writing expressions in your process using the Java or MVEL dialect.
  • Process skins allow you to customize the look and feel of your processes.
  • ...

The following screencast shows how to create your first BPMN2 "Hello World" process.

This screencast shows a little more advanced BPMN2 process.

Pluggable domain-specific nodes

Domain-specific languages are targeted to one particular application domain and therefore can offer constructs that are closely related to the problem the user is trying to solve. This makes the processes and easier to understand and self-documenting. Drools defines the concept of a domain-specific work item, which represent an atomic units of work that need to be executed. These work items specify the work that should be executed in the context of a process in a declarative manner (i.e. specifying what should be executed (and not how) on a higher level (no code) and hiding implementation details).

Users can easily define their own set of domain-specific work items and integrate them in our process language(s). The following screencast shows an example on how to create your own domain-specific work item and link its implementation at runtime.

This screencast contains a sample process containing a domain-specific calendar node that integrates with google calendar for planning events.


The Eclipse plugin provides various debugging capabilities that allow you to halt the execution of your application and figure out what is going on internally.


  • Audit View: shows a tree-based view of all events that have occurred so far (based on the XML audit log)
  • Process Instances View: shows all process instances that are currently executing in the selected session
  • Process Instance View: shows the runtime state of one particular process instance, by annotating all active node instances of that process instance on the process graph.

The following screencast shows an example where the state of the application is inspected at various points during the execution of a simple order processing example using the process instance view and the audit logs.

Web-based process editor

One of the main advantages of using a standard is that it makes interoperability with other tools much easier. We've been working with the Oryx team to provide web-based editing of processes, which can then be imported and executed on the Drools Flow engine.

Oryx is an open-source project for web-based modeling of business processes, supporting various formats like BPMN, petri-nets, etc. The BPMN 2.0 web-based editor is being developed as part of the Signavio-Oryx Academic Initiative, a joint effort by the Berlin-based startup company Signavio, the Hasso-Plattner-Institute in Potsdam and other universities, which offers a web platform for collaborative process modeling. The platform includes a BPMN 2.0 editor that covers all diagram types. Parts of the platform are made available as open-source through the Oryx project.

The following screencast shows how you could create a simple BPMN 2.0 process using the Oryx editor and then import it into the Drools Eclipse plugin. Here, you could for example add more execution details, debug and test the process, and execute it on the Drools Flow engine, as we already showed in earlier screencasts.