BPEL2oWFN - Translating WS-BPEL processes into Petri net models

Download GNU BPEL2oWFN

Version history

GNU BPEL2oWFN has been developed for quite some time now. See the ChangeLog for details or try out the older versions.


GNU BPEL2oWFN is open source software, licensed under the AGPL3+.



Installing and running GNU BPEL2oWFN requires a bunch of other tools:

Compiling requires:

  • GCC - The GCC compiler

Testing requires:

  • Autotools test suite - Part of the GNU Auto-Tools for automated Tests
  • LCOV - LCOV is a graphical front-end for GCC's coverage testing tool gcov. It collects gcov data for multiple source files and creates HTML pages containing the source code annotated with coverage information.

Contributing requires:

  • Kimwitu++ - The Term processor - Kimwitu++ is a tool for processing trees (i.e. terms). It is a meta tool: Kimwitu++ can be used for generating software - especially when building compilers.
  • Bison - Gnu parser generator - Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.
  • GNU Gengetopt - Gengetopt generates a C function that uses getopt_long function to parse the command line options, to validate them and fills a struct .
  • flex: The Fast Lexical Analyzer - Flex is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text. The flex program reads user-specified input files, or its standard input if no file names are given, for a description of a scanner to generate.

Quick install

Extract the tar ball into a folder of your choice, and follow the steps below.

  1. Configure
  2. Compile
  3. Test (optional, but recommended)
    make check
  4. Install
    sudo make install


GNU BPEL2oWFN's manual explains usage, features, and a brief scientifical background.


GNU BPEL2oWFN's documentation aims at the developer in you. If you are interested in implementation details this is the right place for you to look.


The current maintainer of GNU BPEL2oWFN is Niels Lohmann.


Niels Lohmann implemented the original core functionality of BPEL2oWFN (operating guidelines), Daniela Weinberg implemented reduction techniques as well as the synthesis of livelock free strategies, and Christian Sura implemented the functions to cover open nets nodes


Several people have committed time, code, and advice to the development of BPEL2oWFN .

  • Niels Lohmann (1394 commits)
  • Christian Gierds (333 commits)
  • znamirow (105 commits)
  • reinert (83 commits)
  • bretschn (4 commits)
  • Peter Massuthe (2 commits)
  • Marvin Triebel (2 commits)
  • theidin (1 commit)
  • Jan Sürmeli (1 commit)


GNU BPEL2oWFN's development team thanks:

  • Sylvain Beucler (GNU Project) for his help moving BPEL2oWFN to Savannah
  • Maarten Boote (Technische Universiteit Eindhoven) for integrating BPEL2oWFN to LaQuSo
  • Antoon van Breda a.k.a. Jaded Hobo for the original version of the `colorconsole.h' header
  • Jan Bretschneider (Humboldt-Universität zu Berlin) for patient C++ help
  • Dirk Fahland (Humboldt-Universität zu Berlin) for fruitful discussions about BPEL's semantics
  • Carsten Frenkler (Gedilan Technologies) for challenging BPEL processes
  • Mario Karrenbrock (FH Wilhelmshaven/SAP) for finding bugs and testing the consistency mode
  • Dieter König (IBM) for valuable advice concerning BPEL
  • Oliver Kopp (Universität Stuttgart) for challenging BPEL processes
  • Axel Martens (IBM) for valuable advice concerning BPEL
  • Harald Meyer (Hasso Plattner Institute) for pointing out a bug in the parser
  • Simon Moser (IBM) for valuable advice concerning BPEL
  • Chun Ouyang (Queensland University of Technology) for discussion about the Petri net semantics
  • Michael Piefel (Humboldt-Universität zu Berlin) for help with Kimwitu++
  • Dennis Reinert (Humboldt-Universität zu Berlin) for his work on the first versions of BPEL2oWFN
  • Eric Verbeek (Technische Universiteit Eindhoven) for integrating BPEL2oWFN to the ProM framework and valuable comments on BPEL's link semantics
  • Ernesto Santana-Diaz for writing a Java-based GUI for BPEL2oWFN
  • Matthias Weidlich (Hasso-Plattner-Institute at University of Potsdam) for pointing out a bug in the Petri net patterns
  • Jan Martijn van der Werf (Technische Universiteit Eindhoven) for his help with the PNML-oWFN format