Translating BPEL Process to Open Workflow
Nets GNU BPEL2oWFN Version 2.0.3, 29 June 2007 |
miscellaneous:
- adopted the GNU GPL Version 3
- minor changes and bug fixes
new features:
- BPEL4Chor choreographies can be translated (further information to come)
- WSDL files can be parsed to support the translation of a BPEL process
- abstract BPEL processes (both BPEL4WS 1.1 and WS-BPEL 2.0) are now parsed
miscellaneous:
- when parsing multiple BPEL processes, wildcards like *.bpel can be used
fixed bugs:
- <if>/<switch> pattern did not work with parameter "communicationonly"
- <flow> activities in repeated constructs (<while>, <repeatUntil>, ...) could result in unbounded nets
- parameter "xor" could crash
miscellaneous:
- new parameter "nointerface" allows to create dot output of the generated Petri net model without drawing the interface
- transitions of the Petri net model are labeled and colored according to their role (only for dot mode)
- Petri net reduction rules can be chosen using the "reduce" option
- improved performance of composition of nets in the "consistency" mode
input:
- executable BPEL4WS 1.1 processes
- executable WS-BPEL 2.0 processes
- abstract BPEL4WS 1.1 processes (experimental)
- abstract WS-BPEL 2.0 processes (experimental)
output:
- Petri net file formats:
- APNN
- INA (untimed, low-level)
- LoLA (low-level)
- Fiona oWFN
- PEP notation (low-level)
- PNML (with extension to model interfaces)
- SPIN (Promela)
- other file formats:
- Graphviz dot
- XML
implemented patterns:
- overworked feature-complete Petri net semantics for BPEL4WS 1.1 and WS-BPEL 2.0
- overworked simplified Petri net semantics to model the communicational behavior only
- several versions of each pattern controlled by command-line parameters
static analysis
- 44 of 94 static analysis goals of the WS-BPEL specification are checked
- read access to uninitialized variables can be detected using the CFG (control flow graph)
- conflicting receiving activities can be detected using the CFG
miscellaneous:
- completely overworked architecture
- all Petri net-related functions are packaged to a Petri net API (application programming interface) to be published independently of BPEL2oWFN soon
- statistics of the input process are displayed after implicit transformation rules are applied
- messages are classified (error, warning, etc.) and numbered to allow for a detailed description in the manual
overworked patterns:
- more parameterized versions of the Stahl-semantics (see version 1.1):
- acyclic models (also acyclic event handlers)
- models without variables
- models without standard faults occurring while handling a fault
static analysis:
- A control flow graph can be built and used to detect the use of uninitialized variables.
miscellaneous:
- The command-line parameter `-p finishloop' is renamed to `-p finalloop'.
- Structural reduction rules remove all structural dead nodes of the generated Petri net model.
fixed bugs:
- Pattern of asynchronous <invoke> activity does no longer receive messages.
- Structural reduction rules no longer change the semantics of the <switch> activity.
- Structural reduction rules no longer remove the loop transition for deadlock search.
new output formats:
- APNN (Abstract Petri Net Notation) Petri net
- PNML (Petri Net Markup Language) Petri net
- low-level PEP (Programming Environment based on Petri Nets) Petri net
overworked patterns:
- the Stahl-semantics (see version 1.0) has been enhanced and can be parametrized:
- original semantics
- models without BPEL's standard faults
- acyclic models
static analysis:
- To reduce the size of the Petri net model static analysis is used to only generate nodes for the DPE (dead path elimination) when necessary.
miscellaneous:
- The compiler generator tools Flex, Bison and Kimwitu++ are not any more necessary to compile BPEL2oWFN: the generated sources are now part of the distribution.
- The oWFN format was overworked and allows final markings.
- GNU getopt allows more flexible command-line parameter processing allowing to create several output file formats in a single run.
- Debug output can be written into a log file.
- The classes organizing the Petri nets are overworked for performance and extensibility.
fixed bugs:
- The generation of all possible types of the <invoke> activity (synchronous, asynchronous, with and without implicit scope) is overworked.
input:
- BPEL process compliant to the specificiation BPEL4WS version 1.1, May 2003.
output:
- LoLA Petri net
- open workflow net
- Dot representation
implemented patterns:
- Christian Stahl. A Petri Net Semantics for BPEL. Informatik-Berichte 188, Humboldt-Universität zu Berlin, July 2005. [PDF]
- last changes: 29.06.2007