Title: Deriving Explicit Data Links in WSBPEL Processes
1Deriving Explicit Data Links in WS-BPEL Processes
2Reference
- O. Kopp, R. Khalaf, and F. Leymann, Deriving
Explicit Data Links in WS-BPEL Processes, IEEE
International Conference on Services Computing
(SCC'08), July 2008, pp.367-376.
3Outline
- Challenges of Dead Path Elimination (DPE)
- The Algorithm
- Explicit Data Links
- Analysis Result for the Example Process
- Conclusion
4Challenges of Dead Path Elimination (DPE)1/3
- wx activity writing to variable x
- rx activity reading from variable x
- a activity not reading or writing
- jc join condition
- tc link with explicit transition condition
- l link with default transition condition
true
5Challenges of Dead Path Elimination (DPE)2/3
- Case 1
- tc1 false
- jc1 logical AND over the status of all incoming
links
dead
AND
false
true
false
dead
false
true
6Challenges of Dead Path Elimination (DPE)3/3
- Case 2
- tc1 false
- jc1 logical OR over the status of all incoming
links
dead
OR
false
true
false
dead
true
true
7The Algorithm
- Notations Used in Algorithm
- Handling Complex Type
- Static Analysis
- Store the State of a Writing Activity
- Analysis of a Given BPEL Process
- Handling of an Activity
- Handling Incoming Links
- Handling a Basic Activity
- Handling a Flow Activity
- Handling a Link
8Notations Used in Algorithm1/3
- Abasic
- The set of all basic activities
- process
- The process element
- Aflow
- The set of all flow activities
- A
- The set of all activities
- A Abasic ? process ? Aflow
- C
- Set of all Boolean conditions
- pi(t)
- Returns the projection to the ith component of a
tuple t
- L
- All control links in flow activities
- LR ? A L A
- The control link relation
- P(S)
- Denotes the power set of a set S
- Lin A ? P(L)
- Returns the set of all incoming links of an
activity - Lout A ?P(L)
- Returns the set of all outgoing links of an
activity
9Notations Used in Algorithm2/3
- jc A ? C ? ?
- Returns the join condition of the given activity
- ? denotes an undefined join condition
defaulting to the logical OR of all incoming
links - HR ? A A
- The hierarchy relation denoting the nesting of
activities - Let h (p, a) ? HR. Then p is a parent of a
- children A ?P(A)
- Returns the set of all children of the given
activity with respect to HR
- descendants A ? P(A)
- Returns the set of all transitive children of the
given activity with respect to HR - V
- Set of all variables including the variable
implicitly declared at fault handlers - QV
- Set of all queries for accessing locations in
variables - If the whole variable is accessed, the query is
empty (e)
10Notations Used in Algorithm3/3
- EQV ? V QV
- The set of tuples of a variable v and a (valid)
query q on v - ? EQV
- The set of variable elements written by
activities - w A EQV ? B
- Returns true iff the given activity completely
changes the given variable element and not only
parts of it
- r A ?L EQV ? B
- Returns true iff the given activity or link
completely reads the given variable element
11Handling Complex Type
-
- The function returning the set of possible
writers for a given activity or link and variable
element during program execution - An activity is contained in poss? if it
completely writes to ve
12Static Analysis
- Bernstein Criterion
- There may be no writes happening in parallel to
reads on the same variable - States of a writing activity
- possible writer
- If the data written by writing activity w can
reach activity a - disabled writer
- If it is overwritten by a subsequent writer
- invalid writer
- A writer can also be disabled completely and thus
become invalid
13Store the State of a Writing Activity1/2
-
- The current state of the writes to the given
variable element is assigned to every link and
activity -
- returns the current states of the writes after
the activity or the link has been interpreted
14Store the State of a Writing Activity2/2
-
- Returns the activities which are possible writes
to the variable element ve at position x in the
BPEL process - x can be an activity or a link
-
- Returns the activities which were overwritten by
preceding writes from a path leading from the
root to position x -
- Returns true iff x may be not executed due to DPE
on a path from any directly preceding writer (or
from the root node if there is no directly
preceding writer) to x
15Algorithm 1 Analysis of a Given BPEL Process
16Algorithm 2 Handling of an Activity1/3
17Algorithm 2 Handling of an Activity2/3
18Algorithm 2 Handling of an Activity3/3
19Handling Incoming Links
-
- Set P of Possible Writers
- Algorithm 3 - Determining the Set P of Possible
Writers - Set D of Disabled Writers
- Algorithm 4 - Determining the set D of disabled
writers - State Dead (d) of an Activity
- Algorithm 5 - Determining whether an activity may
be dead
20Algorithm 3 Determining the Set P of Possible
Writers
21Algorithm 4 Determining the Set D of Disabled
Writers
22Algorithm 5 Determining whether an activity
may be dead
-
- It takes the negated value of mbd(l, ve) as the
current status of each link l in the join
condition of the given activity a and evaluates
the join condition - ????????join condition??,?????not,??d (may be
dead)??
23Process Illustrating
false
false
false
true
true
true
true
false
false
!(!true OR !false) gt !true gt false
!(!true AND !false) gt !false gt true
mbd(x, ve)
24Algorithm 6 Handling a Basic Activity
25Algorithm 7 Handling a Flow Activity
a
l
a
26Algorithm 8 Handling a Link
a
l
a
27Explicit Data Links
-
- The set of all data links in the given BPEL
process -
- w is an activity writing data
- z is an activity or a link possibly reading the
data written by w
28Analysis Result for the Example Process
AND
29Conclusion
- ???????WS-BPEL????DPE???,????????????(write)
???(read)?????????(activity)???(link),????????,???
?????WS-BPEL????? - ????????flow activity??structure
activity????,????????????????????WS-BPEL????? - ??,??????transition condition ?join
condition?????????,???????condition?????