| 9 |
<!-- |
<!-- |
| 10 |
About this document: |
About this document: |
| 11 |
|
|
| 12 |
This manual is for GNU BPEL2oWFN, version 2.0.1, a tool translating |
This manual is for GNU BPEL2oWFN, version 2.0.2, a tool translating |
| 13 |
a BPEL process into an open workflow net (oWFN), last |
a BPEL process into an open workflow net (oWFN), last |
| 14 |
updated 11 May 2007. |
updated 15 June 2007. |
| 15 |
|
|
| 16 |
Copyright (C) 2005, 2006, 2007 Niels Lohmann |
Copyright (C) 2005, 2006, 2007 Niels Lohmann |
| 17 |
|
|
| 57 |
|
|
| 58 |
<p><b>About this document:</b> |
<p><b>About this document:</b> |
| 59 |
|
|
| 60 |
<p>This manual is for GNU BPEL2oWFN, version 2.0.1, a tool translating |
<p>This manual is for GNU BPEL2oWFN, version 2.0.2, a tool translating |
| 61 |
a <acronym>BPEL</acronym> process into an open workflow net (<acronym>oWFN</acronym>), last |
a <acronym>BPEL</acronym> process into an open workflow net (<acronym>oWFN</acronym>), last |
| 62 |
updated 11 May 2007. |
updated 15 June 2007. |
| 63 |
|
|
| 64 |
<p>Copyright © 2005, 2006, 2007 Niels Lohmann |
<p>Copyright © 2005, 2006, 2007 Niels Lohmann |
| 65 |
|
|
| 160 |
<div align="center"><img src="images/diagram.png" alt="images/diagram.png"></div> |
<div align="center"><img src="images/diagram.png" alt="images/diagram.png"></div> |
| 161 |
<p><br> |
<p><br> |
| 162 |
|
|
| 163 |
|
<p>Furthermore, BPEL2oWFN can translate a <acronym>BPEL4Chor</acronym> choreography to a Petri net model. This model can be used to analyze properties of a complete choreography or to synthesize a fitting service for an incomplete choreography. |
| 164 |
|
|
| 165 |
<p>BPEL2oWFN uses static analysis to make the generated Petri net model as compact |
<p>BPEL2oWFN uses static analysis to make the generated Petri net model as compact |
| 166 |
as possible to analyze a chosen property. This is called <i>flexible model generation</i>. |
as possible to analyze a chosen property. This is called <i>flexible model generation</i>. |
| 167 |
Furthermore, several design flaws can be detected using control and data flow analysis. |
Furthermore, several design flaws can be detected using control and data flow analysis. |
| 218 |
|
|
| 219 |
<p>The standard invocation of BPEL2oWFN is: |
<p>The standard invocation of BPEL2oWFN is: |
| 220 |
|
|
| 221 |
<pre class="example"> bpel2owfn -i service.bpel -f owfn -o |
<pre class="example"> bpel2owfn -i service.bpel -m petrinet -f owfn -o |
| 222 |
</pre> |
</pre> |
| 223 |
<p>where <span class="file">service.bpel</span> is a <acronym>BPEL</acronym> process. The option |
<p>where <span class="file">service.bpel</span> is a <acronym>BPEL</acronym> process. The option |
| 224 |
<span class="samp">-f owfn</span> causes BPEL2oWFN to generate an open workflow net. This |
<span class="samp">-f owfn</span> causes BPEL2oWFN to generate an open workflow net (option |
| 225 |
net is written to a file named <span class="file">service.owfn</span>, because of the option |
<span class="samp">-m petrinet</span>). This net is written to a file named <span class="file">service.owfn</span>, because of the option |
| 226 |
<span class="samp">-o</span>. |
<span class="samp">-o</span>. |
| 227 |
|
|
| 228 |
<p>BPEL2oWFN can be called without any parameter. In this case, it acts |
<p>BPEL2oWFN can be called without any parameter. In this case, it acts |
| 240 |
|
|
| 241 |
<br><dt><span class="samp">--input=</span><var>filename</var><span class="samp">.bpel</span><dt><span class="samp">-i </span><var>filename</var><span class="samp">.bpel</span><dd>Read a <acronym>BPEL</acronym> process from file <var>filename</var><span class="file">.bpel</span>. |
<br><dt><span class="samp">--input=</span><var>filename</var><span class="samp">.bpel</span><dt><span class="samp">-i </span><var>filename</var><span class="samp">.bpel</span><dd>Read a <acronym>BPEL</acronym> process from file <var>filename</var><span class="file">.bpel</span>. |
| 242 |
If this parameter is omitted, input is read from standard input |
If this parameter is omitted, input is read from standard input |
| 243 |
(<code>stdin</code>). |
(<code>stdin</code>). Wildcards such as <span class="file">process*.bpel</span> are also allowed. |
| 244 |
|
|
| 245 |
|
<br><dt><span class="samp">--wsdl=</span><var>filename</var><span class="samp">.wsdl</span><dt><span class="samp">-w </span><var>filename</var><span class="samp">.wsdl</span><dd>Read a <acronym>WSDL</acronym> file to support the translation. |
| 246 |
|
|
| 247 |
|
<br><dt><span class="samp">--topology=</span><var>filename</var><span class="samp">.xml</span><dt><span class="samp">-t </span><var>filename</var><span class="samp">.xml</span><dd>Read a <acronym>BPEL4Chor</acronym> participant topology file to support the translation of <acronym>BPEL4Chor</acronym> choreographies. Can only be used with the <span class="samp">choreography</span> mode. |
| 248 |
|
|
| 249 |
<br><dt><span class="samp">--output[=</span><var>filename</var><span class="samp">]</span><dt><span class="samp">-o</span><dd>The generated output is written to a file called <var>filename</var>. If the short |
<br><dt><span class="samp">--output[=</span><var>filename</var><span class="samp">]</span><dt><span class="samp">-o</span><dd>The generated output is written to a file called <var>filename</var>. If the short |
| 250 |
form is used or the <var>filename</var> is omitted, the input file name is taken and |
form is used or the <var>filename</var> is omitted, the input file name is taken and |
| 277 |
</dl> |
</dl> |
| 278 |
|
|
| 279 |
<br><dt><span class="samp">--reduce=0-5</span><dt><span class="samp">-r 0-5</span><dd>Apply several structural reduction rules to the generated Petri net model |
<br><dt><span class="samp">--reduce=0-5</span><dt><span class="samp">-r 0-5</span><dd>Apply several structural reduction rules to the generated Petri net model |
| 280 |
(implies mode <span class="samp">petrinet</span> or <span class="samp">consistency</span>). The rules preserve |
(implies mode <span class="samp">petrinet</span> or <span class="samp">choreography</span>). The rules preserve |
| 281 |
deadlocks, livelocks and all deadlock-free communicating partners. The rules |
deadlocks, livelocks and all deadlock-free communicating partners. The rules |
| 282 |
are organized in reduction levels: |
are organized in reduction levels: |
| 283 |
|
|
| 326 |
variables can be detected statically. Furthermore, faulty constellations such |
variables can be detected statically. Furthermore, faulty constellations such |
| 327 |
as conflicting receiving activities can be found using the <span class="samp">cfg</span> mode. |
as conflicting receiving activities can be found using the <span class="samp">cfg</span> mode. |
| 328 |
|
|
| 329 |
<br><dt><span class="samp">consistency</span><dd> |
<br><dt><span class="samp">choreography</span><dd> |
| 330 |
The <span class="samp">consistency</span> mode is an extension of the <span class="samp">petrinet</span> mode. In the |
The <span class="samp">choreography</span> mode<a rel="footnote" href="#fn-2" name="fnd-2"><sup>2</sup></a> is an extension of the <span class="samp">petrinet</span> mode. In the |
| 331 |
consistency mode, several <acronym>BPEL</acronym> processes can be parsed, and a Petri |
choreography mode, several <acronym>BPEL</acronym> processes can be parsed, and a Petri |
| 332 |
net model of their composition is generated. |
net model of their composition is generated. |
| 333 |
|
|
| 334 |
<p>The <span class="samp">consistency</span> mode is in beta stage. It is not fully tested. |
<p>For examples, check <span class="file">test/bpel4chor</span> directory. |
|
For examples, check the <span class="file">test5</span> test script in the <span class="file">tests</span> directory. |
|
| 335 |
When combined with <acronym>LoLA</acronym> file output, an additional <span class="file">.task</span> file |
When combined with <acronym>LoLA</acronym> file output, an additional <span class="file">.task</span> file |
| 336 |
is generated. With the help of this file <acronym>LoLA</acronym> can check for weak |
is generated. With the help of this file <acronym>LoLA</acronym> can check for weak |
| 337 |
termination of the composition. |
termination of the composition. |
| 338 |
|
|
| 339 |
|
<p>Note that the choreography mode is only tested with the <span class="samp">small</span> mode. |
| 340 |
|
To support the translation of a <acronym>BPEL4Chor</acronym> choreography, a participant topology |
| 341 |
|
can be additionally parsed using the <span class="samp">topology</span> parameter. |
| 342 |
|
|
| 343 |
<br><dt><span class="samp">petrinet</span><dd> |
<br><dt><span class="samp">petrinet</span><dd> |
| 344 |
Generates a Petri net representing the semantics of the given |
Generates a Petri net representing the semantics of the given |
| 345 |
process. Other options can be added to simplify or modify that generated Petri |
process. Other options can be added to simplify or modify that generated Petri |
| 364 |
<dl> |
<dl> |
| 365 |
<dt><span class="samp">--parameter=</span><var>par</var><dt><span class="samp">-p </span><var>par</var><dd> |
<dt><span class="samp">--parameter=</span><var>par</var><dt><span class="samp">-p </span><var>par</var><dd> |
| 366 |
<dl> |
<dl> |
| 367 |
<dt><span class="samp">communicationonly</span><dd> |
<dt><span class="samp">small</span><dd> |
| 368 |
Only the communicational behavior of the input <acronym>BPEL</acronym> process is |
With the <span class="samp">small</span> parameter<a rel="footnote" href="#fn-3" name="fnd-3"><sup>3</sup></a>, only the communicational behavior of the input <acronym>BPEL</acronym> process is |
| 369 |
modeled. That is, the negative control flow (fault, termination, or compensation handlers, as well as <code><exit></code>, <code><throw></code>, <code><compensate></code>, <code><compensateScope></code> activities) is not translated to |
modeled. That is, the negative control flow (fault, termination, or compensation handlers, as well as <code><exit></code>, <code><throw></code>, <code><compensate></code>, <code><compensateScope></code> activities) is not translated to |
| 370 |
the Petri net model. When combined with <span class="samp">reduce</span>, this parameter yields |
the Petri net model. When combined with <span class="samp">reduce</span>, this parameter yields |
| 371 |
the most compact Petri net model. |
the most compact Petri net model. |
| 416 |
<span class="samp">pretty</span>, whereas <acronym>LoLA</acronym> requires the mode <span class="samp">petrinet</span>. |
<span class="samp">pretty</span>, whereas <acronym>LoLA</acronym> requires the mode <span class="samp">petrinet</span>. |
| 417 |
|
|
| 418 |
<dl> |
<dl> |
| 419 |
<dt>Petri net file formats (imply mode <span class="samp">petrinet</span> or <span class="samp">consistency</span>):<dd> |
<dt>Petri net file formats (imply mode <span class="samp">petrinet</span> or <span class="samp">choreography</span>):<dd> |
| 420 |
<dl> |
<dl> |
| 421 |
<dt><span class="samp">apnn</span><dd>Outputs the inner of the generated open workflow net in |
<dt><span class="samp">apnn</span><dd>Outputs the inner of the generated open workflow net in |
| 422 |
<acronym title="Abstract Petri Net Notation">APNN</acronym> (Abstract Petri Net Notation). When the parameter <span class="samp">-o</span> is |
<acronym title="Abstract Petri Net Notation">APNN</acronym> (Abstract Petri Net Notation). When the parameter <span class="samp">-o</span> is |
| 447 |
Fiona file format — the only Petri net output format that outputs the |
Fiona file format — the only Petri net output format that outputs the |
| 448 |
complete open workflow net, that is, also the interface is exported. |
complete open workflow net, that is, also the interface is exported. |
| 449 |
Currently, the interface places are annotated using a <code><type></code> tag |
Currently, the interface places are annotated using a <code><type></code> tag |
| 450 |
which is only supported by Yasper<a rel="footnote" href="#fn-2" name="fnd-2"><sup>2</sup></a>. When the parameter <span class="samp">-o</span> is used, a |
which is only supported by Yasper<a rel="footnote" href="#fn-4" name="fnd-4"><sup>4</sup></a>. When the parameter <span class="samp">-o</span> is used, a |
| 451 |
file with the suffix <span class="samp">.pnml</span> is created. |
file with the suffix <span class="samp">.pnml</span> is created. |
| 452 |
|
|
| 453 |
<br><dt><span class="samp">spin</span><dd>Outputs the inner of the generated open workflow net as low-level Petri net in |
<br><dt><span class="samp">spin</span><dd>Outputs the inner of the generated open workflow net as low-level Petri net in |
| 510 |
for more examples. |
for more examples. |
| 511 |
|
|
| 512 |
<dl> |
<dl> |
| 513 |
<dt><span class="samp">bpel2owfn -i sample.bpel -flola -finfo -o -p reduce</span><dd> |
<dt><span class="samp">bpel2owfn -i sample.bpel -m petrinet -f lola -f info -o -p reduce</span><dd> |
| 514 |
Reads the file <span class="file">sample.bpel</span>, generates a structural reduced |
Reads the file <span class="file">sample.bpel</span>, generates a structural reduced |
| 515 |
low-level Petri net and saves it in a <acronym title="Low-Level Analyzer">LoLA</acronym> file |
low-level Petri net and saves it in a <acronym title="Low-Level Analyzer">LoLA</acronym> file |
| 516 |
<span class="file">sample.lola</span>. For further information a file |
<span class="file">sample.lola</span>. For further information a file |
| 517 |
<span class="file">sample.info</span> is generated. |
<span class="file">sample.info</span> is generated. |
| 518 |
|
|
| 519 |
<br><dt><span class="samp">bpel2owfn -i sample.bpel -fowfn -d3 -o</span><dd> |
<br><dt><span class="samp">bpel2owfn -i sample.bpel -mpetrinet -fowfn -d3 -o</span><dd> |
| 520 |
Reads the file <span class="file">sample.bpel</span>, generates a low-level open |
Reads the file <span class="file">sample.bpel</span>, generates a low-level open |
| 521 |
workflow net and saves it in an <acronym>oWFN</acronym> file |
workflow net and saves it in an <acronym>oWFN</acronym> file |
| 522 |
<span class="file">sample.owfn</span>. For further information a file |
<span class="file">sample.owfn</span>. For further information a file |
| 533 |
Reads the file <span class="file">sample.bpel</span> and prints the abstract syntax tree |
Reads the file <span class="file">sample.bpel</span> and prints the abstract syntax tree |
| 534 |
(<acronym title="abstract syntax tree">AST</acronym>) to standard output. |
(<acronym title="abstract syntax tree">AST</acronym>) to standard output. |
| 535 |
|
|
| 536 |
<br><dt><span class="samp">bpel2owfn -m consistency -i service1.bpel -i service2.bpel -f lola -o</span><dd> |
<br><dt><span class="samp">bpel2owfn -m choreography -i service1.bpel -i service2.bpel -f lola -o</span><dd> |
| 537 |
Reads the files <span class="file">service1.bpel</span> and <span class="file">service2.bpel</span> and creates |
Reads the files <span class="file">service1.bpel</span> and <span class="file">service2.bpel</span> and creates |
| 538 |
a Petri net model of their composition. The result is written to the |
a Petri net model of their composition. The result is written to the |
| 539 |
<acronym title="Low-Level Analyzer">LoLA</acronym> file <span class="file">service1_service2.lola</span>. Furthermore, an analysis |
<acronym title="Low-Level Analyzer">LoLA</acronym> file <span class="file">service1_service2.lola</span>. Furthermore, an analysis |
| 541 |
<acronym title="Low-Level Analyzer">LoLA</acronym>. |
<acronym title="Low-Level Analyzer">LoLA</acronym>. |
| 542 |
</dl> |
</dl> |
| 543 |
|
|
| 544 |
|
<p>Further examples for invocations of BPEL2oWFN can be found in the <span class="file">tests</span> directory of the source distribution. |
| 545 |
|
|
| 546 |
<!-- --> |
<!-- --> |
| 547 |
<div class="node"> |
<div class="node"> |
| 548 |
<p><hr> |
<p><hr> |
| 602 |
|
|
| 603 |
<p><br></th></tr><tr align="left"><td valign="top" width="5%">2 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
<p><br></th></tr><tr align="left"><td valign="top" width="5%">2 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
| 604 |
A <acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> processor MUST reject any <acronym>WSDL</acronym> portType definition that includes |
A <acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> processor MUST reject any <acronym>WSDL</acronym> portType definition that includes |
| 605 |
overloaded operation names.<a rel="footnote" href="#fn-3" name="fnd-3"><sup>3</sup></a> |
overloaded operation names.<a rel="footnote" href="#fn-5" name="fnd-5"><sup>5</sup></a> |
| 606 |
|
|
| 607 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">3 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">3 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
| 608 |
If the value of <code>exitOnStandardFault</code> of a <code><scope></code> or <code><process></code> |
If the value of <code>exitOnStandardFault</code> of a <code><scope></code> or <code><process></code> |
| 662 |
|
|
| 663 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">32 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">32 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
| 664 |
For <code><assign></code>, the <code><from></code> and <code><to></code> element MUST be one |
For <code><assign></code>, the <code><from></code> and <code><to></code> element MUST be one |
| 665 |
of the specified variants.<a rel="footnote" href="#fn-4" name="fnd-4"><sup>4</sup></a> |
of the specified variants.<a rel="footnote" href="#fn-6" name="fnd-6"><sup>6</sup></a> |
| 666 |
|
|
| 667 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">35 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">35 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
| 668 |
In the from-spec of the partnerLink variant of <code><assign></code> the value |
In the from-spec of the partnerLink variant of <code><assign></code> the value |
| 773 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">72 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">72 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
| 774 |
A <code><link></code> declared in a <code><flow></code> MUST NOT create a control cycle, |
A <code><link></code> declared in a <code><flow></code> MUST NOT create a control cycle, |
| 775 |
that is, the source activity must not have the target activity as a logically |
that is, the source activity must not have the target activity as a logically |
| 776 |
preceding activity.<a rel="footnote" href="#fn-5" name="fnd-5"><sup>5</sup></a> |
preceding activity.<a rel="footnote" href="#fn-7" name="fnd-7"><sup>7</sup></a> |
| 777 |
|
|
| 778 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">73 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">73 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
| 779 |
The expression for a join condition MUST be constructed using only Boolean |
The expression for a join condition MUST be constructed using only Boolean |
| 829 |
The peer-scope dependency relation MUST NOT include cycles. In other words, |
The peer-scope dependency relation MUST NOT include cycles. In other words, |
| 830 |
<acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> forbids a process in which there are peer scopes S1 and S2 |
<acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> forbids a process in which there are peer scopes S1 and S2 |
| 831 |
such that S1 has a peer-scope dependency on S2 and S2 has a peer-scope |
such that S1 has a peer-scope dependency on S2 and S2 has a peer-scope |
| 832 |
dependency on S1.<a rel="footnote" href="#fn-6" name="fnd-6"><sup>6</sup></a> |
dependency on S1.<a rel="footnote" href="#fn-8" name="fnd-8"><sup>8</sup></a> |
| 833 |
|
|
| 834 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">83 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">83 </td><td valign="top" width="18%">static analysis </td><td valign="top" width="77%"> |
| 835 |
An event handler MUST contain at least one <code><onEvent></code> or |
An event handler MUST contain at least one <code><onEvent></code> or |
| 858 |
<code><faultHandlers></code> element. |
<code><faultHandlers></code> element. |
| 859 |
|
|
| 860 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">100 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">100 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
| 861 |
Either a non-standard element<a rel="footnote" href="#fn-7" name="fnd-7"><sup>7</sup></a> was parsed |
Either a non-standard element<a rel="footnote" href="#fn-9" name="fnd-9"><sup>9</sup></a> was parsed |
| 862 |
or a <acronym>BPEL</acronym> activity was considered as |
or a <acronym>BPEL</acronym> activity was considered as |
| 863 |
misplaced. In the first case, a non-standard element was parsed when the |
misplaced. In the first case, a non-standard element was parsed when the |
| 864 |
parser expected a <acronym>BPEL</acronym> standard activity. Then, a syntax error is |
parser expected a <acronym>BPEL</acronym> standard activity. Then, a syntax error is |
| 903 |
and correlation set. When a message is sent to the process, these activities |
and correlation set. When a message is sent to the process, these activities |
| 904 |
are in <i>conflict</i>; that is, it is not defined which activity will receive an |
are in <i>conflict</i>; that is, it is not defined which activity will receive an |
| 905 |
inbound message. At runtime, the standard fault <span class="samp">bpel:conflictingReceive</span> |
inbound message. At runtime, the standard fault <span class="samp">bpel:conflictingReceive</span> |
| 906 |
would be thrown.<a rel="footnote" href="#fn-8" name="fnd-8"><sup>8</sup></a> |
would be thrown.<a rel="footnote" href="#fn-10" name="fnd-10"><sup>10</sup></a> |
| 907 |
|
|
| 908 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">107 </td><td valign="top" width="18%">warning </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">107 </td><td valign="top" width="18%">warning </td><td valign="top" width="77%"> |
| 909 |
A mandatory attribute of an activity was not defined. Especially for |
A mandatory attribute of an activity was not defined. Especially for |
| 938 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">114 </td><td valign="top" width="18%">warning </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">114 </td><td valign="top" width="18%">warning </td><td valign="top" width="77%"> |
| 939 |
<acronym title="control flow graph">CFG</acronym> analysis detected a read access to a variable that was not |
<acronym title="control flow graph">CFG</acronym> analysis detected a read access to a variable that was not |
| 940 |
initialized before. At runtime, the standard fault |
initialized before. At runtime, the standard fault |
| 941 |
<span class="samp">bpel:uninitializedVariable</span> would be thrown.<a rel="footnote" href="#fn-9" name="fnd-9"><sup>9</sup></a> |
<span class="samp">bpel:uninitializedVariable</span> would be thrown.<a rel="footnote" href="#fn-11" name="fnd-11"><sup>11</sup></a> |
| 942 |
|
|
| 943 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">115 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">115 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
| 944 |
The process definition defines an abstract process profile, and thus allows |
The process definition defines an abstract process profile, and thus allows |
| 951 |
An <code><opaqueActivity></code> of an abstract process is modeled by an <code><empty></code> activity. |
An <code><opaqueActivity></code> of an abstract process is modeled by an <code><empty></code> activity. |
| 952 |
|
|
| 953 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">117 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">117 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
| 954 |
When using the parameter <span class="samp">communicationonly</span>, the occurrence of join |
When using the parameter <span class="samp">small</span>, the occurrence of join |
| 955 |
failures is not modeled. Thus, any activity is treated as if the |
failures is not modeled. Thus, any activity is treated as if the |
| 956 |
attribute <span class="samp">suppressJoinFailure</span> is set to <span class="samp">yes</span>.<a rel="footnote" href="#fn-10" name="fnd-10"><sup>10</sup></a> |
attribute <span class="samp">suppressJoinFailure</span> is set to <span class="samp">yes</span>.<a rel="footnote" href="#fn-12" name="fnd-12"><sup>12</sup></a> |
| 957 |
|
|
| 958 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">118 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">118 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
| 959 |
A user-defined transition condition is ignored and modeled as “<i>n</i>-out-of-<i>n</i>” |
A user-defined transition condition is ignored and modeled as “<i>n</i>-out-of-<i>n</i>” |
| 964 |
(XOR) instead. |
(XOR) instead. |
| 965 |
|
|
| 966 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">120 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">120 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
| 967 |
When using the parameter <span class="samp">communicationonly</span>, the FTC (fault, termination, |
When using the parameter <span class="samp">small</span>, the FTC (fault, termination, |
| 968 |
and compensation) handlers are not modeled. |
and compensation) handlers are not modeled. |
| 969 |
|
|
| 970 |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">121 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
<p><br></td></tr><tr align="left"><td valign="top" width="5%">121 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
| 971 |
When using the parameter <span class="samp">communicationonly</span>, activities of the negative |
When using the parameter <span class="samp">small</span>, activities of the negative |
| 972 |
control flow (<code><exit></code>, <code><throw></code>, <code><compensate></code>, and |
control flow (<code><exit></code>, <code><throw></code>, <code><compensate></code>, and |
| 973 |
<code><compensateScope></code>) are replaced by an <code><empty></code> activity. |
<code><compensateScope></code>) are replaced by an <code><empty></code> activity. |
| 974 |
|
|
| 1029 |
<acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> file, the attribute <code>targetNamespace</code> could not to be grounded to a |
<acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> file, the attribute <code>targetNamespace</code> could not to be grounded to a |
| 1030 |
BPEL4Chor <code><participant></code>. |
BPEL4Chor <code><participant></code>. |
| 1031 |
|
|
| 1032 |
|
<p><br></td></tr><tr align="left"><td valign="top" width="5%">138 </td><td valign="top" width="18%">notice </td><td valign="top" width="77%"> |
| 1033 |
|
In a <acronym>BPEL4Chor</acronym> topology, a partner link specified for an activity was not found. Instead, |
| 1034 |
|
the name of the specified id is used as a partner link. |
| 1035 |
|
|
| 1036 |
<br></td></tr></table> |
<br></td></tr></table> |
| 1037 |
|
|
| 1038 |
<!-- --> |
<!-- --> |
| 1144 |
</pre> |
</pre> |
| 1145 |
<p>Each activity is printed together with its attributes. Note that the standard values of several attributes (e.g., <span class="samp">abstractProcess</span> or <span class="samp">suppressJoinFailure</span>) are added. Furthermore, an identifier (attribute <span class="samp">id</span>) was added to every activity. |
<p>Each activity is printed together with its attributes. Note that the standard values of several attributes (e.g., <span class="samp">abstractProcess</span> or <span class="samp">suppressJoinFailure</span>) are added. Furthermore, an identifier (attribute <span class="samp">id</span>) was added to every activity. |
| 1146 |
|
|
| 1147 |
<p>We now want to create a compact Petri net model of the <acronym>BPEL</acronym> process, using the <span class="samp">petrinet</span> mode and the <span class="samp">communicationonly</span> parameter: |
<p>We now want to create a compact Petri net model of the <acronym>BPEL</acronym> process, using the <span class="samp">petrinet</span> mode and the <span class="samp">small</span> parameter: |
| 1148 |
|
|
| 1149 |
<p><table class="cartouche" summary="cartouche" border="1"><tr><td> |
<p><table class="cartouche" summary="cartouche" border="1"><tr><td> |
| 1150 |
<pre class="smallexample"> bpel2owfn -i example.bpel -m petrinet -p communicationonly |
<pre class="smallexample"> bpel2owfn -i example.bpel -m petrinet -p small |
| 1151 |
</pre> |
</pre> |
| 1152 |
</td></tr></table> |
</td></tr></table> |
| 1153 |
|
|
| 1158 |
<p>The generated Petri net model consists of five places, including one input and one output place, two transitions and six arcs. To create a graphical representation, invoke BPEL2oWFN with the following options: |
<p>The generated Petri net model consists of five places, including one input and one output place, two transitions and six arcs. To create a graphical representation, invoke BPEL2oWFN with the following options: |
| 1159 |
|
|
| 1160 |
<p><table class="cartouche" summary="cartouche" border="1"><tr><td> |
<p><table class="cartouche" summary="cartouche" border="1"><tr><td> |
| 1161 |
<pre class="smallexample"> bpel2owfn -i example.bpel -m petrinet -p communicationonly -f dot -o |
<pre class="smallexample"> bpel2owfn -i example.bpel -m petrinet -p small -f dot -o |
| 1162 |
</pre> |
</pre> |
| 1163 |
</td></tr></table> |
</td></tr></table> |
| 1164 |
|
|
| 1182 |
obvious for larger processes. To this end, |
obvious for larger processes. To this end, |
| 1183 |
|
|
| 1184 |
<p><table class="cartouche" summary="cartouche" border="1"><tr><td> |
<p><table class="cartouche" summary="cartouche" border="1"><tr><td> |
| 1185 |
<pre class="smallexample"> bpel2owfn -i example.bpel -m petrinet -p communicationonly -f info |
<pre class="smallexample"> bpel2owfn -i example.bpel -m petrinet -p small -f info |
| 1186 |
</pre> |
</pre> |
| 1187 |
</td></tr></table> |
</td></tr></table> |
| 1188 |
|
|
| 1230 |
analysis tools. In this case, we want to create a Fiona open workflow net executing |
analysis tools. In this case, we want to create a Fiona open workflow net executing |
| 1231 |
|
|
| 1232 |
<p><table class="cartouche" summary="cartouche" border="1"><tr><td> |
<p><table class="cartouche" summary="cartouche" border="1"><tr><td> |
| 1233 |
<pre class="smallexample"> bpel2owfn -i example.bpel -m petrinet -p communicationonly -f ownf -o |
<pre class="smallexample"> bpel2owfn -i example.bpel -m petrinet -p small -f owfn -o |
| 1234 |
</pre> |
</pre> |
| 1235 |
</td></tr></table> |
</td></tr></table> |
| 1236 |
|
|
| 1240 |
{ |
{ |
| 1241 |
generated by: BPEL2oWFN 2.0.1 |
generated by: BPEL2oWFN 2.0.1 |
| 1242 |
input file: `example.bpel' (process `exampleprocess') |
input file: `example.bpel' (process `exampleprocess') |
| 1243 |
invocation: `bpel2owfn -i example.bpel -m petrinet -p communicationonly -f owfn' |
invocation: `bpel2owfn -i example.bpel -m petrinet -p small -f owfn' |
| 1244 |
net size: |P|=5, |P_in|= 1, |P_out|= 1, |T|=2, |F|=6 |
net size: |P|=5, |P_in|= 1, |P_out|= 1, |T|=2, |F|=6 |
| 1245 |
} |
} |
| 1246 |
|
|
| 1275 |
|
|
| 1276 |
</pre> |
</pre> |
| 1277 |
<p>This is finally the <acronym>oWFN</acronym> model of the <acronym>BPEL</acronym> process that can be analyzed by |
<p>This is finally the <acronym>oWFN</acronym> model of the <acronym>BPEL</acronym> process that can be analyzed by |
| 1278 |
Fiona<a rel="footnote" href="#fn-11" name="fnd-11"><sup>11</sup></a>. |
Fiona<a rel="footnote" href="#fn-13" name="fnd-13"><sup>13</sup></a>. |
| 1279 |
|
|
| 1280 |
<!-- --> |
<!-- --> |
| 1281 |
<!-- --> |
<!-- --> |
| 1825 |
<hr> |
<hr> |
| 1826 |
<a name="texinfo-footnotes-in-document"></a><h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> Fiona is available at <a href="http://www.informatik.hu-berlin.de/top/tools4bpel">http://www.informatik.hu-berlin.de/top/tools4bpel</a>.</p> |
<a name="texinfo-footnotes-in-document"></a><h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> Fiona is available at <a href="http://www.informatik.hu-berlin.de/top/tools4bpel">http://www.informatik.hu-berlin.de/top/tools4bpel</a>.</p> |
| 1827 |
|
|
| 1828 |
<p class="footnote"><small>[<a name="fn-2" href="#fnd-2">2</a>]</small> Yasper is available at <a href="http://www.yasper.org">http://www.yasper.org</a>.</p> |
<p class="footnote"><small>[<a name="fn-2" href="#fnd-2">2</a>]</small> This mode was formally called <span class="samp">consinstency</span>.</p> |
| 1829 |
|
|
| 1830 |
|
<p class="footnote"><small>[<a name="fn-3" href="#fnd-3">3</a>]</small> This mode was formally called <span class="samp">communicationonly</span>.</p> |
| 1831 |
|
|
| 1832 |
|
<p class="footnote"><small>[<a name="fn-4" href="#fnd-4">4</a>]</small> Yasper is available at <a href="http://www.yasper.org">http://www.yasper.org</a>.</p> |
| 1833 |
|
|
| 1834 |
<p class="footnote"><small>[<a name="fn-3" href="#fnd-3">3</a>]</small> The descriptions for |
<p class="footnote"><small>[<a name="fn-5" href="#fnd-5">5</a>]</small> The descriptions for |
| 1835 |
static analysis messages are taken from Appendix B of the <acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> |
static analysis messages are taken from Appendix B of the <acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> |
| 1836 |
specification.</p> |
specification.</p> |
| 1837 |
|
|
| 1838 |
<p class="footnote"><small>[<a name="fn-4" href="#fnd-4">4</a>]</small> The specification describes all allowed |
<p class="footnote"><small>[<a name="fn-6" href="#fnd-6">6</a>]</small> The specification describes all allowed |
| 1839 |
combinations of elements and attributes in from- and to-specifications.</p> |
combinations of elements and attributes in from- and to-specifications.</p> |
| 1840 |
|
|
| 1841 |
<p class="footnote"><small>[<a name="fn-5" href="#fnd-5">5</a>]</small> This fault can only be detected in mode mode <span class="samp">cfg</span>.</p> |
<p class="footnote"><small>[<a name="fn-7" href="#fnd-7">7</a>]</small> This fault can only be detected in mode mode <span class="samp">cfg</span>.</p> |
| 1842 |
|
|
| 1843 |
<p class="footnote"><small>[<a name="fn-6" href="#fnd-6">6</a>]</small> This fault can only be detected in mode mode <span class="samp">cfg</span>.</p> |
<p class="footnote"><small>[<a name="fn-8" href="#fnd-8">8</a>]</small> This fault can only be detected in mode mode <span class="samp">cfg</span>.</p> |
| 1844 |
|
|
| 1845 |
<p class="footnote"><small>[<a name="fn-7" href="#fnd-7">7</a>]</small> All elements |
<p class="footnote"><small>[<a name="fn-9" href="#fnd-9">9</a>]</small> All elements |
| 1846 |
that are not explicitly defined in the <acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> specification (e.g., |
that are not explicitly defined in the <acronym title="Web Service Business Process Execution Language">WS-BPEL</acronym> specification (e.g., |
| 1847 |
elements from other namespaces) are considered as “non-standard”.</p> |
elements from other namespaces) are considered as “non-standard”.</p> |
| 1848 |
|
|
| 1849 |
<p class="footnote"><small>[<a name="fn-8" href="#fnd-8">8</a>]</small> This fault can only be detected in mode mode <span class="samp">cfg</span>.</p> |
<p class="footnote"><small>[<a name="fn-10" href="#fnd-10">10</a>]</small> This fault can only be detected in mode mode <span class="samp">cfg</span>.</p> |
| 1850 |
|
|
| 1851 |
<p class="footnote"><small>[<a name="fn-9" href="#fnd-9">9</a>]</small> This fault can only be detected in mode mode <span class="samp">cfg</span>.</p> |
<p class="footnote"><small>[<a name="fn-11" href="#fnd-11">11</a>]</small> This fault can only be detected in mode mode <span class="samp">cfg</span>.</p> |
| 1852 |
|
|
| 1853 |
<p class="footnote"><small>[<a name="fn-10" href="#fnd-10">10</a>]</small> If the |
<p class="footnote"><small>[<a name="fn-12" href="#fnd-12">12</a>]</small> If the |
| 1854 |
attribute <span class="samp">suppressJoinFailure</span> is not explicitly defined for an |
attribute <span class="samp">suppressJoinFailure</span> is not explicitly defined for an |
| 1855 |
activity, the value is inherited by the parent activity.</p> |
activity, the value is inherited by the parent activity.</p> |
| 1856 |
|
|
| 1857 |
<p class="footnote"><small>[<a name="fn-11" href="#fnd-11">11</a>]</small> Fiona is available at <a href="http://www.informatik.hu-berlin.de/top/tools4bpel">http://www.informatik.hu-berlin.de/top/tools4bpel</a>.</p> |
<p class="footnote"><small>[<a name="fn-13" href="#fnd-13">13</a>]</small> Fiona is available at <a href="http://www.informatik.hu-berlin.de/top/tools4bpel">http://www.informatik.hu-berlin.de/top/tools4bpel</a>.</p> |
| 1858 |
|
|
| 1859 |
<p><hr></div> |
<p><hr></div> |
| 1860 |
|
|