Wednesday, December 16, 2015

Webinar (Dec 17): Building responsive and flexible applications with BPM

Tomorrow I'll be doing a live webinar on some of the latest features related to building adaptie and flexible processes, case management and process-driven applications. A large part will be a live demo showing an example is this area from authoring to execution. It's not too late to register, but it will also be recorded so if you register you can watch later as well !

Red Hat JBoss webinar

Building responsive and flexible applications with BPM

Developers are facing ever increasing demands for new and updated business applications.  Development approaches like Agile and DevOps can help, but they're even more powerful when combined with a new generation of low code development platforms.

Join this webinar to hear from Red Hat engineering leaders how to incorporate business process and rules technology into the software development life cycle to reduce development time and improve application flexibility.

We will demonstrate the new release of Red Hat® JBoss® BPM Suite, and show you how to:
  • Quickly create and test a new business process management (BPM) application.
  • Utilize the latest features for creating ad-hoc and case management style applications.
  • Deploy new applications to the cloud with the new realtime decision service for OpenShift.
Prakash Aradhya, product management director, Red Hat
Kris Verlaenen, principal software engineer, Red Hat
Join the live event:
Time zone converter
  • Thursday, December 17, 2015 | 11 a.m. ET | 8 a.m. PT
Register Now

Thursday, November 12, 2015

Process-driven applications at Devoxx 2015

I just finished my presentation at Devoxx this year, on process-driven applications.  The conference is a lot of fun, with a big Red Hat presence, talking about JBoss Middleware, OpenShift, Red Hat Developer program and a lot more.

It wasn't the regular presentation where we try to showcase all capabilities and list all the features of our project (as most people probably have seen one of those at some point already), but I wanted to focus on something special instead.

The project has evolved significantly in the last few years, and I believe we have now reached a point where we have a lot of building blocks in place to help you develop your application.

Rather than focusing on the technology, process-driven application development starts from a different goal, i.e. building something customized to what you need. By taking advantage of the workbench, you can build and execute your processes as usual, but rather than relying on the generic tooling we provide, you have access to all data and features we offer out-of-the-box, but combine them in a customized way.

In the demo, I built out a small expenses process, and a custom screen (using AngularJS) that can list my current expenses and create new ones just the way I want to.  You can even add some small dashboards to keep track of the number of open expense reports or a quick overview of how many expense reports you submitted in the last year and when.

I also showed how to support more flexible and adaptive cases, where you want to give the end user the capability to make decisions or to dynamically add new tasks (all the way to the extreme where you don't define anything upfront but start a new ad-hoc case).  And obviously you can combine both, creating a custom application to drive your patient cases:

(click to enlarge)

My slides are available here.  The presentation itself was recorded and is available (for free) as well:

Wednesday, October 14, 2015

Devoxx Belgium (November 9 - 13)

Devoxx Belgium 2015 is from November 9th until 13th, and is expecting no less than 3.500 Devoxxians to come to Antwerp again.  Red Hat has always had a strong presence there (both on the conference schedule and around, in BOFs, on the booth area, etc.) and this year is going to be no different! 

From our team, Mario Fusco and Geoffrey Desmet will be joining (with a Java8 presentation and an ignite session respectively), and I'll be giving a presentation on process-driven application development on Thursday:
Even the simplest application ideas always end up requiring more development than you hoped for: maintaining long-lived state, interaction with other services or human actors performing some of the work, showing current status of ongoing requests, management and reporting, etc. Business processes and rules allow you to externalize some of that logic and dynamically update it, but you don't want your business process management (BPM) system to get in your way either. And every application is different, so you want to be able to fully control every bit of it.
Using process-driven application development, you define your application logic in a (flexible) business process, but you also expect your BPM system to help you out with much more than that. In this session we will show you live how to quickly get new web applications up and running by relying on jBPM to provide some of the UI (should you want to), or even to generate parts of your application for you (that you can customize later), so you can focus on what makes your application different. jBPM uses the power of open source and it's flexible architecture to let you decide what you need: nothing more, nothing less.

If you look at the entire schedule or speaker list, you'll find a lot of other interesting Red Hat speakers like Aslak Knutsen, Charles Nutter, Antoine Sabot-Durand, Clement Escoffier, Dimitris Andreadis, Diogenes Rettori, Paulo Lopez, Roland Huß and Xavier Coulon (I hope my quick search didn't miss anyone).

Hope to see you there !

Thursday, October 1, 2015

Barcelona JUG October 6th

Next week the Drools & jBPM engineering team is having a team meeting in Barcelona, and we would like to give the local community the opportunity to meet the team and get an overview of what is there and where we're going !

We're therefore giving a presentation for the Barcelona JUG on Tuesday the 6th of October in La Fontana in Barcelona at 7pm.

Places are limited so make sure to register.

Wednesday, September 30, 2015

Discount code on book: Mastering jBPM6

More good news this week, not only did we release jBPM 6.3.0.Final, but Packt Publishing has been so kind to provide us a 50% discount code on their recent book "Mastering jBPM6" as well, valid for two weeks.

Discount code: MJBPM50
Valid until: October 12, 2015

Note that you still have to add the discount code manually to your cart to receive the discount, it is not automatically applied when clicking the link below.

(Click here or on the image to go to the publisher website)

If you're interested in this book, make sure to not miss this opportunity.

Monday, September 28, 2015

jBPM 6.3 released

jBPM 6.3.0.Final has been released !

In this release we focused on bringing a bunch of (typically smaller but powerful) features that our users were asking for.  A quick highlight is added below, but full details can be found in the release notes.

To get started:
Release Notes

Ready to give it a try but not sure how to start?  Take a look at the jbpm-installer chapter.

jBPM 6.3 is released alongside Drools (for business rules), check out the new features in the Drools release blog.
Thanks to all contributors! 

Core engine improvements
  • Support for JavaScript as script / constraint language in processes
  • Asynchronous processing improvements, including
    • the (re)introduction of asynchronous continuation (where you can mark a transition as to be executed asynchronously in a separate transaction)
    • ability to mark signal throw events as asynchronous
    • jbpm-executor (our asynchronous job executor) got configurable retry mechanisms and improved performance due to new JMS-based triggering
  • Signal scopes for throwing signal events, so you can better decide who the event should be sent to (process instance, ksession, project or external)
Configurable and extensible task and process instance list
  • Custom filters:
    The process process instance list and task list in the workbench can now be configured even more by the end user by adding custom filters.  This allows you to create new tabs that show a subset of your tasks (or process instances), based on parameters you decide yourself.
  • Domain-specific columns in the process instance list
    You can show now show (domain-specific) data related to the process instance variables in the process instance table directly, by creating a custom filter that restricts the data to one specific process.  Doing this allows you to then add domain-specific columns: additional columns can be added to the table that show the value of variables of that specific process.

Data mapping in Designer

When you have a lot of data being managed in your process, defining the data flow among all the nodes can become pretty complex.  A new data mapper has been added to Designer to simplify this task: it has the ability to do all you might need in one place (like adding new data inputs / outputs while you've already started doing the data mapping) and simplifies data assignments (either by giving a direct value or by mapping an existing variable).

Embeddable process / process instance image 

New operations were added to the remote API to allow retrieving the process image or annotated process instance image (showing which nodes are active / completed).  This image is similar to the one you were already able to access inside the workbench already, but is now also available remotely for embedding in external applications.

JPA support in the Data Modeler

The data modeler in the workbench now also exposes properties that allows you model a data object as a JPA entity.  When a data object is modeled as a JPA entity, it is not stored as part of the process instance state but stored in a separate (set of) database table(s), making it easy accessible from outside as well.

Case management API

The core process engine has always contained the flexibility to model adaptive and flexible processes. These kinds of features are typically also required in the context of case management. To simplify picking up some of these more advanced features, we created a (wrapper) API that exposes some of these features in a simple API: process instance description, case roles, ad-hoc cases, case file, ad-hoc tasks, dynamic tasks and milestones.

Support for these features in our workbench UI is being worked on for version 7.0.

Unified execution server

A lot of work went into the creation of unified, highly configurable, minimal execution server - ideal for cloud-based or micro-services architectures.  Since v6.0 the workbench has included an execution server that could be accessed remotely.  This was however embedded into the workbench and designed to operate in a symmetric way when deployed in a clustered environment (all nodes in the cluster were able to execute all processes / requests).  In Drools v.6.2 a new minimal decision service was introduced that allows only deploying specific rule sets to specific containers, giving the user full control over deployment.  This has now been unified, resulting in a lightweight execution server where you can execute your processes, rules, tasks and async jobs.  It can be set up as a single execution server for all your projects, or different execution server instances (possibly one for each project).

Friday, September 4, 2015

New feature: JavaScript as process dialect

Since the 6.3.0.Final release is coming soon (we just pushed out second candidate release), there are quite a few exciting new features, and this blog will highlight one.

When defining your process logic, you can use scripts (small fragments of code) in various locations in the process definition.  You can use different languages (also called dialects) for this, and until now you had to choose between Java and MVEL as dialects (or if you're an expert you could implement your own dialect) for action scripts and code constraints.

We have now also added support for JavaScript, which means you can write small fragments of JavaScript code as part of your process, both as action scripts (typically for manipulating variables) and constraints (in diverging gateways):
  • As action script:
    • Action script inside a Script Task
    • On-entry or on-exit actions scripts (in tasks supporting these, e.g. user tasks, call activity, rule tasks, etc.)
  • As constraint:
    • In diverging gateways (to decide which branch to take)

Inside these JavaScript fragments, you automatically have access to various properties (similar to how Java and MVEL actions scripts work):
  • Direct access to 
    • process variables
    • globals
  • A 'kcontext' variable giving access to the ProcessContext (and through this you can get access to the active ProcessInstance, NodeInstance, KieSession, etc. and set variables)
To use the new dialect, simply select "JavaScript" as the script language (in one of the above describe situations), both in the web-based designer or the Eclipse Modeler.

For example, you could define an action script like:

kcontext.setVariable('surname', "tester");
var text = 'Hello ';
print(text + kcontext.getVariable('name') + '\n');
try {
} catch(err) {
    print(err + '\n');
// this is comment
print( + '\n');

Or a constraint like: == 'krisv'

Wednesday, July 22, 2015

Book: Mastering jBPM6

A new book was published about jBPM6, targeting the latest 6.2.0.Final release.  I haven't been able to review the book yet (I will add details to this blog if I get the chance to), but wanted to share this opportunity already.

(Click on the image to go to the publisher website)

Tuesday, April 28, 2015

jBPM on Red Hat Summit / DevNation

From June 21st - 26th, Boston will be the place to be for the Red Hat Summit and DevNation 2015 conferences.

This year, I'll be presenting two sessions on Summit:

Process-driven application development using Red Hat JBoss BPM Suite
Kris Verlaenen — jBPM Project Lead, Red Hat
Wednesday, June 24 (10:40 am - 11:40 am)

Enabling business users to update their applications and processes is an integral part of business automation. Doing so requires rich client web technology and a powerful workbench to customize and extend business rules management (BRM) and business process management (BPM) solutions.

Red Hat JBoss BPM Suite is a flexible and powerful BPM platform, offering business process modeling, execution, and monitoring capabilities for numerous use cases. It can be used in different environments, and, as a result, the platform can be integrated in multiple architectures and configured in detail. The platform can be customized to provide customer-specific enhancements.

In this session, you will:
  • View a live process-driven application demo.
  • Discover the top technical things you need to know about the latest version of JBoss BPM Suite.
  • Get answers to some of the most asked questions.
  • Learn the truth about BPM myths.
  • Find out what’s next for JBoss BPM Suite.

Continuously improve your processes with Red Hat JBoss BPM Suite
Kris Verlaenen — jBPM Project Lead, Red Hat
Thursday, June 25 (1:20 pm - 2:20 pm)

Business process management (BPM) lets your business operate smoothly and in a controlled manner. But to get the results you want, you have to be willing to continuously improve your processes. Join us to see how jBPM and Red Hat JBoss BPM Suite help you continually improve your processes.

We will explain and demo how to:
  • Collaborate on designing processes.
  • Manage your processes using multiple repositories and projects.
  • Promote business assets (from development to production).
  • Execute different versions of your processes in parallel spaces.
  • Perform process instance migration.
  • Implement a new functionality as a process. 
[Credits for this proposal go out to Maciej, who did most of the work]

I won't be presenting on DevNation this year, but I'll definitely be around as well, for some late night coding and if necessary some beers :) Let me know if you're planning to attend and would like to meet up at some point !

There will be numerous other interesting Summit presentations where jBPM will be involved as well, for example:
And a lab as well, on integration with Fuse:

Monday, April 27, 2015

jBPM in GSoC 2015

We try to participate every year in the Google Summer of Code, where students can contribute to their favorite open-source project (and even get paid for it).

This year we again have three proposals accepted for jBPM:

Dynamic visual BPMN2 Diff tool for jBPM Web DesignerRoman Procopenco 
A visual diff tool created for JBPM Web Designer. The tool will provide Change Tracking Graphs that will give to the users an immediate idea about the changes made on the business process. The tool will have different options to help the users understand the changes made on the process such as a comparison of the whole graph, as well as comparison between two sub parts of the process.

Application Development with jBPM and MGWTrorogarcete 
[Based on a previous prototype where we use GWT for Mobile to develop a mobile UI]  I'll improve the design of the application by doing two things: 
1. Migrate existing application to version 2.0 of MGWT. 
2. Add new functional features that support the mobile world in a clear and transparent way devices.

jBPM on AndroidSupun Athukorala 
jBPM is a flexible Business Process Management (BPM) Suite which can be accessed by a web based workbench. But cannot be accessed by mobile users. Therefore the idea of the project is to create an [Android] mobile UI of the jBPM-console where mobile users can interact some of the features of the jBPM-console. The jBPM core engine itself is a lightweight workflow engine which can be run on android as well. Therefore apart from the mobile UI, a prototype of jBPM on android will be also created.

Congratulations and good luck to the students, and I'm sure we'll get some great results!

These 3 proposals where amongst the 13 accepted proposals as JBoss.

Thursday, April 23, 2015

JBoss BPM Suite v6.1 available

Last week, Red Hat annouced the official release of JBoss BPM Suite v6.1. This brings you (almost) all of the new features that came in jBPM 6.1 and 6.2 into the supported offering.

You can take a look at the release notes of jBPM 6.1 and jBPM 6.2 to see all the details, but at a (very) high level this for example brings you new features:
  • Document attachments: attach documents to forms and manage them in your processes
  • Embeddable forms: embed process and task forms in your own application
  • Remote EJB + WS interfaces
  • Camel service tasks
  • Social features: profile page, follow other people using event streams, etc.
  • Customizable workbench: extend the workbench web UI with your own views
  • Asset management [Tech Preview]: manage assets moving from a development branch into a production branch before being pushed into production
  • Certification on top of EAP 6.4, WebLogic, Fuse and Java8
A lot of effort was also put into stabilizing and improving existing features.

Since JBoss BPM Suite is a super-set of JBoss BRMS, you get an integrated solution that offers  support for your business rules, complex event processing and optimization problems as well (based on Drools and Optaplanner v6.2).   This for example introduces a new 'realtime decision server' as part of BRMS 6.1.

If you want to know more, take a look at the following page:

Eric also posted a blog with some more details and a bunch of examples to get started !

Below are some slides that list most of the features.

Friday, March 6, 2015

jBPM 6.2.0.Final released

The bits for the jBPM 6.2 release are now available for you to download and try out!  

Version 6.2 comes with a few new features and a lot of bug fixes !  New features include a.o. EJB, (improved) OSGi and Camel endpoints support, a new asset management feature (to introduce a development and release branch and promote assets between both), social profiles and feeds and the ability to extend the workbench with your own plugins!

More details below, but if you want to jump right in:

Release Notes

Ready to give it a try but not sure how to start?  Take a look at the jbpm-installer chapter.

jBPM 6.2 is released alongside Drools (for business rules) and Optaplanner (for planning and constraint solving), check out the new features in the Drools release blog, including a brand new rules execution server and the Optaplanner release blog as well.

A big thank you to everyone who contributed to this release!

Some highlights from the release notes.

Core services

  • EJB: the jBPM execution server (that is for example embedded in our web-based workbench) now also comes with an EJB interface.  A refactoring of the underlying jbpm-services now makes the execution services accessible using pure Java, CDI, EJB and Spring. Remote interfaces using REST and JMS are still available as well of course !  A lot more details are described in Maciej's blog here.
  • Deployments (defining which versions of which projects are currently active in the execution server) are now by default stored in the database.  This greatly simplifies the architecture in a clustered environment in case you are only using our runtime side of our web tooling (for example by having dedicated execution servers in production).
  • Our asynchronous job executor has improved support for requeuing failed jobs and for recurring jobs (e.g. daily tasks).
  • OSGi: Full core engine functionality is now available on top of OSGi.  A significant number of additional jars (including for example the human task service, the runtime managers, full persistence, etc.) were "OSGi-fied". Specific extensions and tests showing it in action are available for Apache Karaf and Aries Blueprint (in the droolsjbpm-integration repository).
  • Camel endpoint URIs: A new out-of-the-box service task has been implemented for using Apache Camel to connect a process to the outside world using some of the numerous Camel endpoint URIs. The service task allows you to for example specify how to pass data to an FTP endpoint by configuring properties such as hostname, port, username, payload, etc. for some common endpoints like (S)FTP, File, JMS, XSLT, etc. but you can use virtually any of the available endpoints by defining the URI yourself (

  • Form Modeler comes with improved support for adding custom logic to your forms using JavaScript on changes, and support for configurable ComboBox and RadioGroup fields, and simple List types.
  • Asset management: It is now possible to make a repository a "managed repository".  This allows you to split up a repository in multiple branches, one for doing development and on for releasing.  Users can then request various assets to be promoted to the resource branch when ready.  This promotion process, and the linked build and deploy processes, are defined using a BPMN2 process as well and include approval and build tasks.  Check the documentation for more details.

  • Social features, like user profiles (including gravatar pictures), and various event feeds like the most recent assets you worked on, on recent changes by other users.

  • Contributors perspective is a new out-of-the-box report (using the new dashbuilder technology) that gives high-level insight in who is changing what in your repositories.
  • Pluggable workbench:  you can now extend the workbench with your own views, menus, etc. using workbench plugins. Available features includes creation of perspectives via a programmable or a drag and drop interface, create new screens, editors, splashscreens and dynamic menus. 

Wednesday, January 7, 2015

jBPM at DevConf 2015

Maciej reports that he'll be presenting at DevConf 2015 in Brno:
I am happy to announce that a talk and workshop about jBPM 6 has been accepted at DevConf 2015 in Brno.

Talk: jBPM - BPM Swiss knife

During the presentation jBPM will be introduced from the Process Engine & framework perspective.The main goal of the session is to share with the community of developers how they can improve their systems implementations and integrations by using a high level, business oriented methodology that will help to improve the performance of the company. jBPM will help to keep the infrastructural code organized and decoupled from the business knowledge. During the presentation the new APIs and new modules in jBPM version 6 will be introduced for the audience to have a clear spectrum of the tools provided.

Speaker: Maciej Swiderski

Workshop: Get your hands dirty with jBPM 

This is continuation of the presentation of jBPM (jBPM - BPM swiss knife) that introduces to jBPM while this is mainly focused on making use of that knowledge in real cases. On this workshop users will be able to see in action jBPM from both perspectives:
  • as a services when jBPM is used as BPM platform
  • as embedded when jBPM is used as a framework in custom applications
This workshop is intended to give a quick start with jBPM and help users to decide which approach is most suitable for their needs.

Jiri Svitak
Maciej Swiderski
Radovan Synek

Schedule for the complete conference can be found here. See you there!!!