08448380779 Call Girls In Civil Lines Women Seeking Men
Deriving Explicit Data Links in WS-BPEL Processes
1. International Conference on Services Computing
SCC 2008 – http://conferences.computer.org/scc/
Deriving Explicit Data Links in
WS-BPEL Processes
WS BPEL
Oliver Kopp, Rania Khalaf, Frank Leymann
Institute of Architecture of Application Systems
oliver.kopp@iaas.uni-stuttgart.de
2. Background and Motivation
For splitting BPEL-processes, the dataflow edges
have to be known
i.e. the def-use-edges (writer-reader-relation)
3
1 1
2
0 1 2
2
1
5
4
3
0
3
w2 and w3 are possible writers for r1
w1 is a possible writer for r2
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 2
3. Weaknesses of existing approaches
No direct support for DPE
AND-join “optimization” not built in
No support for compound variables
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 3
4. Basic idea
Considering flow only
No scope, no loop
p, p
Overapproximation
O i ti
A dataflow-edges too much is better than a
g
dataflow-edge too less
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 4
5. The function writes
writes : (A [ E) £ V ! 2A £ 2A £ 2A £ B
Possible writers
Disabled writers
Invalid writers
May-be-dead
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 5
6. Writers before and after interpretation of an activity
writes is split up
writes± returns the result before interpreting an
it
activity
writes² returns the result after interpreting an
activity
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 6
7. Initialization
writes± (a; v) Ã (;; ;; ;; false)
writes² ( v) Ã (; ; ; f l )
i (a; ) (;; ;; ;; false)
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 7
8. interpretActivity
interpretActivity : A £ V £ 2A £ 2A £ 2A £ B ! 2A £ 2A £ 2A £ B
Handles writing activities
g
Handling of joinConditions is taken into account by
joinLinks() (see later)
If a is no writer: identitiy.
Otherwise: If there was a transition condition:
Possible writers are di bl d
P ibl it disabled
Else
Possible writers get invalid
Activity itself may not get disabled or invalid
8
>
<(fag; D [ P n fag; I; false) w(a; v) ^ d
interpretActivity : (a; v; P; D; I; d) 7! (fag; D; I [ P n fag; false) w(a; v) ^ :d
>
:
id :w(a; v)
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 8
9. Step from an activity to a link
writes± (l; v) Ã writes² (V ¡ (l); v)
Link h
Li k has only one source activity. Th f
l ti it Therefore,
the result from the source activity can just be
taken
t k as i inputt
writes² (l; v) Ã (poss± (l; v);
(; ) (p ( ; );
dis± (l; v);
inv± (l; v);
( ; );
mbd± (l; v) _ :alwaysTrue(tc(l)))
everything is p
y g preserved, existence of tc
possibly evaluating to false is noted
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 9
10. Step from a link to an activity
writes± (a; v) Ã joinLinks(a; v)
writes² (a; v) Ã interpretActivity(a; v; writes± (a; v))
is joining the information of the
j
joinLinks(a; v)
(; )
incoming links
handles
h dl one iincoming
i
interpretActivity(a; v; : : :)
i A ii ( )
link (which was created by joinLinks)
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 10
11. joinLinks: Possible Writers
joins the information
joinLinks : (a; v) 7! (P; D; I; d)
on the incoming links
An OR join may revive disabled writers
j y
If each incoming link disables a writer, this
writer will not revive at this join (i e it
(i.e.,
remains disabled)
[
8
> possible(l; v)
> (jc(a) = AND) _ (jE ¡ (a)j = 1)
<
l2E ¡ (a)
[
P=
> possible(l;
possible(l v) [ disabled(l v) n
disabled(l; disabled(l;
disabled(l v) otherwise
>
:
l2E ¡ (a) l2E ¡ (a)
plus: Link may not have a
negative join condition
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 11
12. joinLinks: Disabled Writers
joinLinks : (a; v) 7! (P; D; I; d)
An OR join revives disabled writers
OR-join writers.
But not these, which are disabled on all paths
[
8
> disabled(l; v) (jc(a) = AND) _ (jE ¡ (a)j = 1)
>
<
l2E ¡ (a)
D=
> disabled(l; v) otherwise
>
:
l2E ¡ (a)
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 12
13. joinLinks: Invalid Writers
joinLinks : (a; v) 7! (P; D; I; d)
All invalid writers remain invalid
[
I= invalid² (l; v)
l E¡( )
l2E (a)
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 13
14. joinLinks: May be Dead
joinLinks : (a; v) 7! (P; D; I; d)
8
alwaystrue(jc(a))
< f alse
negations(jc(a))
d à true
:
:[[a; v ]]jc ² otherwise
:mbd
Activity a may never be dead even if dead paths may
dead,
reach a. For example: There is one path, which is not
dead and activity a contains an “OR” join condition.
y j
mbd² (l1 ; v ) = true; mbd² (l2 ; v ) = fale; jc(a) = l1 _ l2
Use the negated value of mbd of each link
link,
jc
:[[a; v]]:mbd² Interpret the join condition on it,
And use the negated result
:[[a; v]]jc ² = :(:mbd² (l1 ; v) _ :mbd² (l2 ; v)) = :(:true _ :f alse) = :(true) = f alse
:mbd
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 14
15. Complex Types
Problem:
$v and $v part exist in real BPEL processes
$v.part
Example:
w1: write to $v.p1 w2: write to $v.p2
Solution: Build a lattice for each variable
Each node of the lattice is called “variable element”
$v
$v.part2
$v.part1
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 15
16. Handling of Complex Types
if a completely writes to ve
w(a; ve ) = true
r(a; ve ) = true if a completely reads ve
(
Data link has to be created from w to z,
if w reaches z and z reads a variable element,
where parts were changed by w
0 0
DL := f(w; z) j z 2 A [ L; w 2 poss±(z; ve); ve v ve; r(z; ve) = trueg
Sta t the analysis o each a ab e element
Start t e a a ys s for eac variable e e e t
Optimization: Iterate at each activity over all variable
elements
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 16
17. Loops
is the key
t
The current data of writes(l v) has to be
writes(l,v)
combined with writes(nested(l,v))
A while activity d
hil ti it does not write t a variable it lf
t it to i bl itself
Terminate if writes(l,v) do not change
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 17
18. Future Work
Deriving Explicit Data Links in WS-BPEL Processes
Presented by Oliver Kopp 18