Deriving Explicit Data Links in WS-BPEL Processes

573 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
573
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Deriving Explicit Data Links in WS-BPEL Processes

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 18. Future Work Deriving Explicit Data Links in WS-BPEL Processes Presented by Oliver Kopp 18

×