OS BPM / Restful BPM

jBPM had a ‘quiet’ relaunch last month and the results look impressive.  Previously, as I come at BPM from a business analyst direction, I’ve always found jBPM quite challenging and was more successful in designing and deploying processes with Intalio.  However, the recent jBPM changes persuade me to re-examine the jBoss offering.

The most obvious change is the website.  I’ve also always found the documentation for jBPM challenging since it seemed out of step with the product, so I hope that there have been efforts to sort that out to.  However the most important change is the launch of the Process Virtual Machine.  This is a generic embeddable engine capable of running executables written in BPEL, jPDL, XPDL, pageflow and other languages as and when the extensions are created.

Another change is the link-up between jBoss and Bull.  Bull are the power behind 2 open source business process products – Nova Orchestra and Nova Bonita.  The relationship sees jBoss having oversight of Process Virtual Machine and the jPDL extension, and Bull overseeing Orchestrate as the BPEL extension and Bonita the as XPDL extension for the PVM.

BPMN is establishing leadership status in terms of process design and Intalio’s Eclipse based designer is probably the best current offering in that respect, but there are some strings attached.  Firstly, whilst it is based on Eclipse it isn’t OSS and it isn’t available as an Eclipse plug-in.  Neither does it accept other Eclipse plug-ins.  This means, for example, you cannot use IBM’s excellent graphical XForms editor within Intalio’s designer.  You also have to have an account on the Intalio website since it asks for a login when you first fire it up.  Whilst an account is free this is annoying.

jBPM’s Graphical Process Designer is available as Eclipse plug-ins, but it currently doesn’t support BPMN.  The same is true of ActiveBPEL Community Edition Designer.  Perhaps the final important OSS project on the design side is Eclipse itself, with the Java Workflow Tooling Project (JWT).

I’ve not looked at JWT, but if it supports BPMN and evolves to ‘good enough’ then that will be sufficient for me to move from Intalio Designer.

The link-up between jBoss and Bull reflects the broader rationalisation of the BPMS space.  Today there are probably only 3 serious OSS BPEL engines to consider: Apache Ode, Process Virtual Machine and ActiveEndpoints.

This segment has a need to simmer for a little longer before we have a usable stack for an analyst such as myself that is both open source and can be freely downloaded, that supports design using BPMN, and that has a portable workflow (as opposed to BPEL) technology.

At the moment I’d wish to design in Intalio and deploy to PVM.  But PVM doesn’t support BPEL4People, so workflow would break.  jBoss’s workflow is within jPDL, but that means using GPD for design, which means moving away from BPMN.  As an analyst I’m driven from the BPMN rather than the engine side of things.

Of course all the previous discussion is about Java-based technology and the web-services way.  Very heavy and very corporate.  Now that’s OK for someone like me who is more researcher than practitioner, since my interest is in understanding how to assemble future applications.

But on this matter I think web-services are not the way to go, and web resources are.  Which makes all of my previous comments pretty redundant since none of these products supports processes built with resources rather than services.  There is talk within the Apache ODE project of doing so, but when and if this might happen and, for that matter, how, is anyones guess.

There have been a number of blog posts on Restful BPM (orchestration) over the past few months [here, here].  The project I continue to keep an eye on is openWFEru or rufus.  Firstly, because it’s Ruby, secondly because they have a resource focus, thirdly because it’s from the workflow rather than the EAI side of BPM, and fourthly because it’s embeddable (like PVM).

Which is where I’m headed today.  I’ve an idea for a SaaS product that needs workflow.  Using RoR, with rufus, and putting it onto Amazon’s ‘cloud’ (is that enough buzzwords in one sentance?), seems to be a solid plan.  But I need to be able to get my head round rufus first.