about processes and engines

Archive for the ‘bpms’ Category

Rest and AtomPub for Rufus

Mark Masterson just posted about RESTafarian Workflow / BPM Ganja, here are my two favourite quotes :

I’m gnawing on the beginnings of the idea that we might be able to implement an entire BPMS on top of a RESTful infrastructure

I’m beginning to suspect that embracing the various aspects of REST might allow us to build the “next generation” of process management systems.

This is great to read, and I’m quite happy that OpenWFEru is just in the middle of that. I hope Mark will post more about his ideas, maybe one day, OpenWFEru could be useful for him.

The old OpenWFE (the java one) featured a RESTlike interface and I was surprised to find out a year ago that the FormsPlayer people were using it, directly from the browser for some of their customers.

The first RESTful business process engine that I know of is the GeoBPMS of Pat Cappelaere, there is OpenWFEru behind it and Pat was always evangelizing to me the need for a RESTful OpenWFEru (with AtomPub for posting resources).

Matt Zukowski, in parallel, was working on Fluxr, a RESTful envelope around OpenWFEru, but unfortunately, he cannot continue the development.

That’s it for the context, so why the title “Rest and AtomPub for Rufus” ?

Rufus is the nickname of OpenWFEru, please use it when you feel that OpenWFEru is too hard to pronounce.

I’ve just implemented a new AtomPubParticipant for Rufus. It posts its workitems to an AtomPub enabled resource.

include OpenWFE::Extras

target_uri = \

params = {
  :username => "x",
  :password => "y",
  :categories => "test, workflow"

  "app",, params))

This example posts to a [dump] wordpress account. By default, it dumps the workitem as YAML, but it’s easy to override or monkey patch the methods of the AtomPubParticipant to have it use other formats.

So why brag about it ?

  • it’s easy to build a publication workflow based upon OpenWFEru and a blog engine like WordPress
  • a blog can be used for holding business activity trace/history

which are just sub-cases of :

  • in a RESTful environment, you can create resources via AtomPub inside of an OpenWFEru driven business process

Next step for me will be the implementation of a BlogParticipant for posting human oriented entries (no big work, it’s just an extension of the class AtomPubParticipant).

And the step after that is quite obvious : reverse the vapor, and expose the OpenWFEru resources for creation and modification via AtomPub.
It has already begun with exposing the activity of the engine, as a feed (rather read-only).

Mark will certainly be better than me at explaining the benefits of such a business process management system.

Written by John Mettraux

November 13, 2007 at 5:58 am

engine persistence to db for OpenWFEru

I just finished integrating Tomaso Tosolini’s work. He contributed a DbExpressionStorage, a DbErrorJournal and the CachedDbPersistedEngine that leverages them.

require ‘rubygems’
gem ‘activerecord’
require ‘active_record’
require ‘openwfe/def’
require ‘openwfe/extras/engine/db_persisted_engine’

:adapter => “mysql”,
:database => “test”,
:encoding => “utf8”)

$engine =

class MyProcessDefinition < OpenWFE::ProcessDefinition sequence do participant "user_alice" participant "user_bob" end end $engine.register_participant "user_.*" do |workitem| puts( "participant '#{workitem.participant_name}' "+ "received the message '#{workitem.message}'.") end li = MyProcessDefinition li.message = "hello !" $engine.launch li $engine.join [/sourcecode] Nice addition to the upcoming OpenWFEru 0.9.16.

Thanks Tomaso !

Written by John Mettraux

October 29, 2007 at 2:21 am

Posted in bpms, openwferu, ruby, workflow

article in ‘Software Design’ 2007 11

すごい !

Sakaguchi-san did something great for OpenWFE, again.

At first he had translated the OpenWFE manual, entirely from English to Japanese. Then he translated the OpenWFEru website from English to Japanese.

And now he wrote a full article about OpenWFE and OpenWFEru that got published in the next “Software Design“. I’m looking forward grabbing a copy of the magazine by the end of the week. Deciphering the article will be another thing.

I’m really indebted to Sakaguchi-san, I hope he likes Gruyere cheese :)

Written by John Mettraux

October 15, 2007 at 8:32 am

Geo Movie

I wanted to give this post the title “The Geos Must Be Crazy” in reference to this great movie, but humour is a difficult thing, especially across borders.

Why that movie ? Because of that other movie, about tracking wild fires in South Africa, via satellites.

I have to say I’m really proud to know that OpenWFEru is used in one of the systems involved (in Pat’s GeoBPMS more precisely). As far as I understood, processes are gathering data from sensors and preparing reports, even notifying end users via Twitter (in the movie, they are notified about local wildfires).

Pat ties Ruby, Ruby on Rails, Rools and OpenWFEru into his GeoBPMS making it fit for the mission and extremely adaptable in later iterations.

So congratulations for the GeoBPMS and also thanks to Pat for his constant feedback, his critical eye (sensor?) on our open source workflow / bpm engine.

Written by John Mettraux

September 19, 2007 at 11:38 pm

OpenWFEru 0.9.14 released

flow.pngJust released OpenWFEru 0.9.14. The formal announce is visible here, in the users mailing list.

It’s also the first release of Densha, an Ruby on Rails web application that wraps an OpenWFEru workflow/bpm engine instance and extends it with a worklist system (users, groups, permissions, task lists). There is an online instance visible at

The demand for a Rails integration was immediate when the first releases of OpenWFEru came out. There have already been integrations of OpenWFEru within Ruby on Rails web applications, like for example GeoBPMS, but this one is a kind of showcase / example.

The nicest feature (imho) is the process definition rendering system, it draws process definitions, XML or Ruby, indifferently. It will get nicer in future releases, and you’re free to customize its CSS. I have also made sure it’s usable outside of Densha, for other web applications leveraging OpenWFEru.

There is a basic/generic form system for manipulating the workitem payload (task information) with hooks for plugging your own [rails] forms (on a task basis), but I shall blog about that later.

Many thanks to Juan Pedro Paredes who drove the implementation of the ‘engine administration’ screen, where you can pause, resume and cancel business process instances and also view process errors and restart after them if possible.

And of course, it’s far from perfect, the bug tracking system is ready as well as the users’ mailing list.

Written by John Mettraux

September 18, 2007 at 9:42 am

Posted in bpm, bpms, openwferu, rails, workflow


It’s very young, needs lots of work, only works with Firefox, but is worth a look :

Densha (aka OpenWFEru on Rails).

Log in as “alice”, “bob”, or “admin”, the password is the username.

There is a quickstart for it, for local installs.

More later.

Feedback there.

Written by John Mettraux

September 4, 2007 at 9:22 am

Posted in bpm, bpms, openwferu, rails, ruby, workflow

riding the train

I was silently working on a web application based on OpenWFEru and Ruby on Rails, someone asked about this domain and I was glad I could reply straightway.

Densha is a Ruby on Rails web application that wraps OpenWFEru. It’s an OpenWFEru application example, a showcase, but I’m sure that lots of people will want to use it ‘out of the box’ (as happened with OpenWFE’s webclient). We’ll see, but at least it shows an integration of OpenWFEru within Rails.

Currently it’s only available via SVN :
svn checkout
(see also a fisheye view of it)

I will write specific documentation very soon and release OpenWFEru and Densha, together at 0.9.14, soon as well.

There are a certain number of people googling for “rails workflow engine” or “openwferu rails”, I hope this will satisfy them.

Written by John Mettraux

August 25, 2007 at 1:37 pm

Posted in bpms, openwferu, rails, ruby, workflow

pause process and resume

I was quite silent as I was for three days up in the North, where there is no connection to the Internet. Nevertheless I’ve implemented a pause_process(instance_id) and its companion resume_process(instance_id) method for OpenWFEru. It will be part of the upcoming 0.9.14 OpenWFEru release.

Written by John Mettraux

August 18, 2007 at 10:02 am

Posted in bpms, openwferu, workflow

OpenWFEru 0.9.12 released

I just released OpenWFEru 0.9.12.

The announcement on the users mailing list is here.

Lots of things in this release are summed up in that process admin page. The implementation is OK, but the documentation (the page) is not. I’ll probably rehash that, so don’t bookmark it.

The methods enumerated in this process admin documentation are easy to gather and wrap when building up a BAM tool (Ruport, Gruff) or an administration console.

So what’s next ?

Still like to do the JRuby integration, but there is a problem, JRuby tends to block when using threads and mutexes. Hopefully, Andrew’s patch should be applied soon.

I’m thinking of a better way to implement process pausing/resuming than the way it’s done in OpenWFEja. Haven’t made up my mind yet. But the result will show up in the process admin page as well.

I should start fiddling with ActiveRecord persistence for process instances (not just workitem lists). But is it really necessary ? Process querying is done via the engine object not via the database. Querying workitems in a worklist does make sense, but not process instances (imho, but my opinion is changing, we’ll see).

Written by John Mettraux

July 10, 2007 at 9:25 am

Posted in bpm, bpms, openwferu, ruby, workflow

process administration

My documentation efforts about the ErrorJournal turned into documenting [business] process administration. Sounds pompous. Pompous and in progress.

Half of the features [half-]documented on this page will be available as of OpenWFEru 0.9.12 (the rest is already available).

The ErrorJournal will definitely be a permanent feature (not something to configure separately) of the OpenWFEru engine.

Written by John Mettraux

July 8, 2007 at 2:08 pm

Posted in bpms, openwferu, workflow