cancel
Showing results for 
Search instead for 
Did you mean: 

Differences between Acitiviti PVM and jBPM PVM versions

romanoff
Champ in-the-making
Champ in-the-making
Hi,

I'm an Acitiviti newbie.

My company is planning to use BPMN2.0 for certain processes, but it also investigates the
possibility of building a custom domain-specific BPM engine and tooling arund it.

Acitiviti seems to be a very interesting solution to achieve that.
When it comes to our plans to build a domain-specific BPM engine, PVM seems to be a very attractive alternative. Or is it too low-level for this purpose and something higher-level (and less frequently changing) should be used, e.g. jPDL?

But short investigation has shown that several open-source BPM engines are using PVM (e.g. Activiti, jBPM, Orchestra, etc). Unfortunately, they all use their own "tweaked" implementation of PVM. Therefore, it is very difficult for us to decide which of those PVM implementations is the most advanced or feature-rich and where are the differences. It is also not quite clear when they were forked off the original implementation (was it jBPM 4.x?) and which features they include today.

Therefore, I'd like to ask about Acitviti's PVM implementation. How is it different from other PVMs (e.g. from the (original?) one described here http://docs.jboss.org/jbpm/pvm/manual/html_single/). What new features were added or planned? Which features were removed? Which languages besides BPMN2.0 are supported out of the box or can be easily added? How does it compare to other implementations available today?

Are there any plans to aim for PVM implementations alignment between different projects/vendors?

Thanks,
  Leo
3 REPLIES 3

tombaeyens
Champ in-the-making
Champ in-the-making
short investigation has shown that several open-source BPM engines are using PVM (e.g. Activiti, jBPM, Orchestra, etc)

i basically wrote all of those
activiti's pvm is the last one i wrote.
bear in mind that pvm is considered an implementation detail of activiti.  so no stability guarantees are given on it.

romanoff
Champ in-the-making
Champ in-the-making
Thanks for such a quick answer!

short investigation has shown that several open-source BPM engines are using PVM (e.g. Activiti, jBPM, Orchestra, etc)

i basically wrote all of those
activiti's pvm is the last one i wrote.

I guess this also means that this  activiti's PVM is also the best one, because it is based on previous experience? Can you elaborate a bit more on its features? Does this one contains all important features of all previous ones? Or was something thrown away? Or may be you added a new important distinguishing feature that only Activiti's PVM has? If you could explain a bit more detailed the differences and which languages are supported (or can be easily added/ported from other PVM-based implementations) it would be very nice of you.

bear in mind that pvm is considered an implementation detail of activiti.  so no stability guarantees are given on it.

That I understand. We are not against following this moving target 😉 But first of all, we'd like to understand better which flavor of PVM (if at all) should be our target.

BTW, initially PVM was positioned as a framework for building custom engines, which implied that its API is somewhat public. Do you say now that now it became a pure implementation detail and it is not advised to use it as a basis for creating custom engines as it essentially means forking it?

tombaeyens
Champ in-the-making
Champ in-the-making
I suggest forking it and customizing it for your usage.
Examples can be found in the test suite