BPEL2PN is a prototype of a parser transforming a BPEL
process into a Petri net according to the Petri net
semantics developed in [Sta05]. It is only a
brute-force transformation which is a starting point for
further research.
If an error occurs during the transformation of a BPEL
process, save the complete error (screen shot of the
shell, for instance). Otherwise, if you detect a semantic
error in the generated Petri net, describe this error.
Please, send all the error information together with your
BPEL file to the contact
person. I will try to fix the error within one
week.
The
development of BPEL2PN ended. A successor tool, BPEL2oWFN, was
released and will be subject of ongoing development. For more
information, see the
BPEL2oWFN website.
The models generated by the present version of our
parser can be seen as brute force models. The generated
models are significantly larger than typical manually
generated models. This is due to the fact that the Petri
net patterns are complete, i.e. applicable in every
context. For a particular process, many of the modelled
features are unused. For instance, if a basic activity
cannot throw any error, many of the error handling
mechanisms in the surrounding compound activity can be
spared. Furthermore, to decide if a specific property
holds, it is often sufficient to restrict the patterns to
specific aspects. To prove the correct inter-operation of
two BPEL processes, for instance, it is sufficient to
restrict the attention to communication aspects of the
patterns, while internal actions can be abstracted
away.
In ongoing projects, we aim at an improved translation
where several Petri net patterns with different degree of
abstraction are available for each BPEL activity. Using
static analysis on the BPEL code, we want to select the
most abstract pattern applicable in a given context. We
believe that model sizes can be drastically reduced this
way thus alleviating the state explosion problem inherent
to model checking.
Our goal is a technology chain that, starting at a
BPEL process, performs static analysis. Based on the
analyzed information, the translator selects the most
abstract pattern for each activity that is feasible in
the analyzed context and synthesizes a Petri net model.
On the Petri net model, a model checker evaluates
relevant properties. The analysis results (e.g., counter
example paths) are translated back to the BPEL source
code.