Login or Sign up
"#comment-list, #writenew_annotation"

Annotations

Please to write annotations.


"#latest_activity"

Latest Activity

"#tag_list, #add_tags"

Tags

Gateways in general

Here we discuss about Do's and Dont's using Gateways. Gateways are used to branch and merge sequence flow in a controlled way.

Edit Description

Last edited by Markus Güntert on Sept. 17, 2009, 7:05 p.m.

$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_41")
Good sequence flow using Gateways
sequence flow using Gateways

Control Flow obvious recognizable. Using Gateways leads to easier visually recognizable context.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_42")
Bad sequence flow without using Gateways
sequence flow without using Gateways

Multiple in- and outgoing Edged on Activities should normally be avoided. The modeler often does not know what is implied by this modeling, he models wrong.

Control Flow cannot be synchronized, besides Activities can be exectued more than once (which may not be wanted).

To avoid such situations, it is better to use Gateways. They make the model clearer and easier understandable.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_43")
Good using Gateways to either Split or Join
using Gateways to either Split or Join

One Gateway shall be used to either Split or Join control flow.

The Gateways do not differ visually, so it is Best Practice to model Gateways with either multiple ingoing or multiple outgoing Edges.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_44")
Bad using Gateway to Split and Join
using Gateway to Split and Join

Though this modeling is syntactically correct, it complicates the readability of the model. If there are such "double-defined" Gateways the reader may misunderstand certain things.

An automatic Transformation for example to BPEL is not possible for this model.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_45")
Good Joining equivalently
Joining equivalently

Splits shall be Joined equivalently (balanced Gateways).

Otherwise there may be semantic mistakes and the readability may decrease.

Edit Description
$(this).parent().parent().find(".collapse_content")
(1 Comment)
$("#best_practice_chapter_46")
Bad unbalanced Gateways
unbalanced Gateways

Bad-Practice-Pendant for Joining equivalently.

Problems with automatic Transformation to BPEL preassigned.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_47")
Good Split/Join with the same type of Gateways
Split/Join with the same type of Gateways

To Join control flow the same type of Gateway shall be used as for Splitting.

It is possible to not Join splitted control flow, this is syntactically as well as semantically absolutely correct. If it should be joined, then only with the same type of Gateway.

Edit Description
$(this).parent().parent().find(".collapse_content")
(0 Comments)
$("#best_practice_chapter_48")
Bad Split/Join with different types of Gateways
Split/Join with different types of Gateways

Small but crucial difference:

This model is semantically not correct as an AND-Join follows an XOR-Split. The XOR-Split does not necessarily need an XOR-Join, but an AND-Join is definitively wrong. This also applies to all the other Gateways.

Edit Description

Trash

Provide Feedback

Close

Help us to improve usability!

Enter your feedback referring to the current page. Your comments are only visible to the development team.