[jbpm-dev] [Design of JBoss jBPM] - Re: Making the BPM API more generic?

thomas.diesler@jboss.com do-not-reply at jboss.com
Mon Aug 4 10:04:58 EDT 2008


anonymous wrote : 
  | A generic BPM API could be very useful
  | 

Yes, moreover. JBossBPM customers need a stable API that they can rely on between version updates. For details on compatibility see
http://jbpm.dyndns.org/jbpmwiki/index.php?title=APIMission#What_is_expected_to_be_stable.2C_what_is_not.3F

As documented in the wiki the JBossBPM conceptually follows the BPMN specification

http://en.wikipedia.org/wiki/BPMN

Using that spec we created a model which is meant to accommodate the conceptual constructs from the BPM world

* Event (start, stop, intermediary)
* Gateway (exclusive, inclusive, parallel, complex)
* Task (None, User, Send, Receive, Script, etc)
* SequenceFlow, MessageFlow
* Pools, Swimlanes
* SubProcesses
* CompensationFlow, ExceptionFlow.
* InputSet, OutputSet, IORules

See http://jbpm.dyndns.org/jbpmwiki/index.php?title=BPMNGlossary for the definition of terms.

Together with the API we define a Compatibility Test Suite (CTS) that checks whether a BPM implementation is actually fulfils the SOA-Platform product requirements. At this point jBPM4 is expected to do so. It is ready when it passes the CTS through the API.

With respect to DroolsFlow, I would expect that you can map your model to the API model implementing a DialectHandler 

http://jbpm.dyndns.org/jbpmwiki/index.php?title=BPMPublicAPI
http://jbpm.dyndns.org/jbpmwiki/index.php?title=APIDialectHandler

For even more detail you can have a look at the API JavaDocs.
http://jbpm.dyndns.org/jbpm-site/jbpm-api/apidocs/index.html

You can have a look at the Airticket GWT Sample Application (to be documented in the wiki) from the JBossBPM reference implementation (RI). There you find a standard BPMN process definition created with the Eclipse BPMN Editor from the SOA Tools Package (STP). Additionaly an API native descriptor that adds BPMN constructs that are not currently supported by STP. The API Dialect handler includes the STP process definition, builds the API model and executes it on the RI.

A process modelling tool that supports the full set of BPMN constructs  would have very little externally defined.

In short: A good modelling tool is one that supports a large set of standard constructs plus proprietary extensions. A DialectHandler should be able to map that to the API model. A BPM provider that implements the API should be able to execute that model.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4168458#4168458

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4168458



More information about the jbpm-dev mailing list