Resolving modeling errors in generalized flow activities
This topic was viewed 16 times since its publication
About this task
The generalized flow activity allows mixing of cycles and parallelism within the same flow. Standard BPEL is based on building blocks represented by structured activities. Sound modeling is ensured by separating cycles and parallelism into different structured activities. Therefore generalized flow activities allow the possibility of errors that cannot occur in standard BPEL implementations.
Definition
of region. A region
is a part of the BPEL process containing
activities and links. An area in the process model that has a single
entry link and a single exit link is called a SESE-regions (Single
Entry - Single Exit).


Each activity with one incoming link and one outgoing link is a simple SESE region. In this example RegionA4 and RegionA6 are SESE regions. There are three additional regions of interest. First there is RegionA3 consisting of Activity3 and the LoopBack® link forming a cycle. Second there is the InnerRegion consisting of Activity2, Activitiy5, RegionA3, RegionA4 and all links connecting those activities and regions. And third, there is the OuterRegion consisting of Activity1, Activity7, the InnerRegion, RegionA6 and all links connecting those activities and regions.
Types of regions. A region can be categorized into four types - cyclic region, parallel region, neutral region and unsound region. This categorization is made upon the directly enclosed gateways and the contained graph structure.
Cyclic regions A cyclic region contains one or more cycles and the following gateway types: Split, Merge and converging Inclusive OR. RegionA3 is an example of a cyclic region.
Parallel regions. A parallel region can contain the following gateway types: Fork, Join, and diverging as well as converging Inclusive OR gateways. Note that the categorization is made upon the directly enclosed gateways, regions that are nested within a region do not contribute to the categorization. For the OuterRegion only the Fork gateway of Activitiy1 and the Join gateway at Activity7 define the region type. The Split and Merge gateways contained in the InnerRegion and RegionA3 do not contribute to the categorization of the OuterRegion. The OuterRegion in the previous example is a parallel region. Parallel regions do not contain cycles, although they may contain nested regions which do contain cycles.
- no gateways, or
- only converging Inclusive OR gateways, or
- Split, Merge and converging Inclusive OR gateways without a cycle
cyclicfor the InnerRegion and RegionA4 because RegionsA3 is cyclic. The runtime environment assigns region type
parallelfor RegionA6 as part of the OuterRegion.
Unsound regions Unsound regions contain a mixture of exclusive gateways (Split and Merge) and parallel gateways (Fork, Join, diverging Inclusive OR). A process model containing unsound regions is categorized cannot be run in the runtime environment. Examples of unsound regions are shown below.
Types of unsound process models There are
three possible types of unsound model - deadlock
, lack of
synchronization
, and cycles in parallel regions
.
Lack of synchronization occurs in a process model when an activity with a merge gateway is run multiple times although it should be run only once. This happens when multiple incoming links are followed. Figure 4 is an example of a process model with lack of synchronization


If you find modeling problems in your generalized flow activities follow the steps below to resolve these issues.
This topic only applies to BAW, and is located in the BAW repository. Last updated on 2025-03-13 12:15