Isolated scope semantics
Forum topic: Submitted by artem.polyvyanyy on 10. December 2007 - 14:12. Last updated on 11. December 2007 - 16:06.
I want to clarify the semantics of the Isolated Scope as defined in "Web
Services Business Process Execution Language Version 2.0" specification.
Let's define a use case as a process with two concurrent isolated scopes
that work on a shared set of variables. What is the correct semantics of
such process?
a) 2 isolated scopes are seen as database serialization transactions.
Once you enter each scope you work with the snapshot of variable values
you observed. So commits in one scope will be not seen in the second
scope;
b) Within one (or) both scopes all the activities are done sequentially
(no parallelism allowed);
c) Not depending on which order you will execute activities from one (or
both) scope(s) the end results on variables will be the same ??!!
d) Another one.
I ask because what I read and what I discuss with people varies. I am
particularly interested in isolated scopes application for modeling
interleaved parallel routing workflow pattern and it's relation to the
fact that isolated scope might contain control flow.
Best regards,
Artem
Services Business Process Execution Language Version 2.0" specification.
Let's define a use case as a process with two concurrent isolated scopes
that work on a shared set of variables. What is the correct semantics of
such process?
a) 2 isolated scopes are seen as database serialization transactions.
Once you enter each scope you work with the snapshot of variable values
you observed. So commits in one scope will be not seen in the second
scope;
b) Within one (or) both scopes all the activities are done sequentially
(no parallelism allowed);
c) Not depending on which order you will execute activities from one (or
both) scope(s) the end results on variables will be the same ??!!
d) Another one.
I ask because what I read and what I discuss with people varies. I am
particularly interested in isolated scopes application for modeling
interleaved parallel routing workflow pattern and it's relation to the
fact that isolated scope might contain control flow.
Best regards,
Artem
Isolated scope semantics
Hello Artem, the semantics of isolated scopes w.r.t. concurrent access to variables follows the serializability semantics for concurrent transaction executions.
However, the language in the WS-BPEL 2.0 standard, section 12.8.:
"Suppose two concurrent isolated scopes, S1 and S2, access a common set of variables and partner links (external to them) for read or write operations. The semantics of isolated scopes ensure that the results would be no different if all conflicting activities (read/write and write/write activities) on all shared variables and partner links were conceptually reordered so that either all such activities within S1 are completed before any in S2 or vice versa.
(...)
The actual mechanisms used to ensure this are implementation dependent."
leaves it to the implementation whether it completely serializes the execution of isolated scopes concurrently accessing variables or allows some degree of overlapping execution.
Typically, overlapping execution of isolated scopes can be allowed up to the point of the first access to a concurrently accessed variable, without any limitation w.r.t. their contained control flow. This is different from the Interleaved Parallel Routing pattern where "no two activities from the set of activities subject to interleaved parallel routing may be executed at the same time".
HTH
Kind Regards
DK