a graph syntax for processes and services
play

A Graph Syntax for Processes and Services Alberto Lluch Lafuente - PowerPoint PPT Presentation

A Graph Syntax for Processes and Services Alberto Lluch Lafuente (joint-work with Roberto Bruni and Fabio Gadducci) Department of Computer Science, University of Pisa Software Engineering for Service-Oriented Overlay Computers 6th Intl


  1. A Graph Syntax for Processes and Services Alberto Lluch Lafuente (joint-work with Roberto Bruni and Fabio Gadducci) Department of Computer Science, University of Pisa Software Engineering for Service-Oriented Overlay Computers 6th Int’l Workshop on Web Services and Formal Methods Bologna, September 4-5, 2009

  2. Goal statement The spirit of our research is ”to conciliate algebraic and graph-based specifications”

  3. Goal statement The spirit of our research is ”to conciliate algebraic and graph-based specifications” In this work we propose a graph syntax to ”Equip algebraic specifications with a graphical representation that is ◮ Intuitive ◮ Easy to define ◮ Easy to prove correct

  4. Running Example: Sagas We shall consider a simple language for transactions with ◮ sequential composition; ◮ parallel (split-join) composition; ◮ compensations; ◮ saga scoping. This example is inspired by the Nested Sagas of [BMM05].

  5. Modelling Sagas with Graphs (sketch) sequential composition

  6. Modelling Sagas with Graphs (sketch) sequential composition parallel composition

  7. Modelling Sagas with Graphs (sketch) sequential composition parallel composition compensation

  8. Modelling Sagas with Graphs (sketch) sequential composition parallel composition saga compensation

  9. Modelling Sagas with a Process Calculus (sketch) task1 ; task2 ; task3

  10. Modelling Sagas with a Process Calculus (sketch) task1 ; task2 ; task3 task1 | task2 | task3

  11. Modelling Sagas with a Process Calculus (sketch) task1 ; task2 ; task3 task1 | task2 | task3 ordinary flow %compensation flow

  12. Modelling Sagas with a Process Calculus (sketch) task1 ; task2 ; task3 task1 | task2 | task3 ordinary flow [ flow ] %compensation flow

  13. Calculi vs Graphs Algebraic Graph-based elements ◮ Terms ◮ Graphs (diagrams) a | b flat, hierarchical, etc.

  14. Calculi vs Graphs Algebraic Graph-based elements ◮ Terms ◮ Graphs (diagrams) a | b flat, hierarchical, etc. ◮ Operations vocabulary ◮ Graph compositions ·|· : W × W → W Union, tensor, etc.

  15. Calculi vs Graphs Algebraic Graph-based elements ◮ Terms ◮ Graphs (diagrams) a | b flat, hierarchical, etc. ◮ Operations vocabulary ◮ Graph compositions ·|· : W × W → W Union, tensor, etc. ◮ Axioms ◮ Homomorphisms equivalence x | y ≡ y | x isomorphism, etc.

  16. Calculi vs Graphs Algebraic Graph-based elements ◮ Terms ◮ Graphs (diagrams) a | b flat, hierarchical, etc. ◮ Operations vocabulary ◮ Graph compositions ·|· : W × W → W Union, tensor, etc. ◮ Axioms ◮ Homomorphisms equivalence x | y ≡ y | x isomorphism, etc. ◮ Rewrite rules ◮ Transformation rules dynamics a − → b

  17. Main technical goal: mapping coherent wrt. equivalence graph1 flow1 a | b | [ c % d]

  18. Main technical goal: mapping coherent wrt. equivalence graph1 flow1 a | b | [ c % d]

  19. Main technical goal: mapping coherent wrt. equivalence graph1 flow1 a | b | [ c % d] congruent flow2 b | [ c % d ] | a

  20. Main technical goal: mapping coherent wrt. equivalence graph1 flow1 a | b | [ c % d] congruent graph2 flow2 b | [ c % d ] | a

  21. Main technical goal: mapping coherent wrt. equivalence graph1 flow1 a | b | [ c % d] isomorphic congruent graph2 flow2 b | [ c % d ] | a

  22. Main technical problem: representation distance grammar, structural congruence, etc. very different syntax! adjacency matrix, tuples, sets, morphisms

  23. Main technical problem: representation distance similar syntax solution: graph algebras similar syntax

  24. Main application: encodings are facilitated graph1 flow1 a | b | [ c % d] congruent isomorphic flow2 graph2 textttb | [ c % d ] | a

  25. Main application: encodings are facilitated graphterm1 graph1 W[ p q . flow1 b(p) | a(p) a ... | b | [ c % d] ] congruent isomorphic congruent flow2 graph2 graphterm2 W[ p q. textttb b(p) | [ c % d ] | a ... | a(p) ]

  26. The syntax of the graph algebra G , H ::= 0 the empty graph

  27. The syntax of the graph algebra G , H ::= 0 | x a node called x

  28. The syntax of the graph algebra G , H ::= 0 | x | t ( x ) an (hyper)edge labelled with t attached to x for instance, a(p,q,r)

  29. The syntax of the graph algebra G , H ::= 0 | x | t ( x ) | G | H parallel composition: disjoint union up to common nodes for instance, a(p,q,r) | a(p,q,r)

  30. The syntax of the graph algebra G , H ::= 0 | x | t ( x ) | G | H parallel composition: disjoint union up to common nodes for instance, a(p,q,r) | a(p,q,r)

  31. The syntax of the graph algebra G , H ::= 0 | x | t ( x ) | G | H | ( ν x ) G declaration of a new node x for instance, ( ν s) (a(p,s,r) | b(s,q,r))

  32. The syntax of the graph algebra D ::= T x [ G ] G , H ::= 0 | x | t ( x ) | G | H | ( ν x ) G graph G with interface of type T exposing x for instance, S p , q , s [( ν r ) flow ( p , q , r , q , s )]

  33. The syntax of the graph algebra D ::= T x [ G ] G , H ::= 0 | x | t ( x ) | G | H | ( ν x ) G | D � y � a nested graph attached to y for instance, D � a,b,c �

  34. The syntax of the graph algebra D ::= T x [ G ] G , H ::= 0 | x | t ( x ) | G | H | ( ν x ) G | D � y � a nested graph attached to y for instance, D � a,b,c � , with D = S p , q , s [( ν r ) flow ( p , q , r , q , s )]

  35. Identifying equivalent graphs The actual model of hierarchical graphs has some notion of hierarchical isomorphism.

  36. Identifying equivalent graphs The actual model of hierarchical graphs has some notion of hierarchical isomorphism.

  37. Identifying equivalent graphs Isomorphism is elegantly captured by structural axioms. G || H ≡ H || G (PARALLEL1) G || ( H || I ) ≡ ( G || H ) || I (PARALLEL2) is equivalent to

  38. Identifying equivalent graphs Isomorphism is elegantly captured by structural axioms. G || H ≡ H || G (PARALLEL1) G || ( H || I ) ≡ ( G || H ) || I (PARALLEL2) G || 0 ≡ G (NODES1) ≡ ( ν x )( ν y ) G ( ν y )( ν x ) G (NODES2) ≡ ( ν x ) 0 0 (NODES5) ( ν y ) G { y / x } ≡ if y �∈ fn ( G ) ( ν x ) G (NODES3) L y [ G { y / x } ] L x [ G ] ≡ if | y | ∩ fn ( G ) = ∅ (NODES4) G || ( ν x ) H ≡ ( ν x )( G || H ) if x �∈ fn ( G ) (NODES5) L x [( ν y ) G ]( z ) ≡ ( ν y ) L x [ G ]( z ) if y �∈ | x | ∪ | z | (NODES6) x || G ≡ G if x ∈ fn ( G ) (NODES7) These axioms are rather standard and thus intuitive to those familiar with algebraic specifications.

  39. Sagas encoding: sagas as calculus Let us assume the following syntax for our sagas language ::= | S ; S | S | S | [ P ] (sagas) S a ::= S % S | P ; P | P | P (processes) P with the usual following axioms holding ◮ associativity for sequential composition; ◮ associativity and commutativity for parallel composition.

  40. Sagas encoding: key ideas I 1. Algebraic reading of the calculus ◮ Syntactical categories as Sorts ◮ Productions as Operators for instance ; : S × S → S S ::= S ; S ====> 2. Each sort becomes a design label Sagas sort S Process sort P

  41. Sagas encoding: key ideas II 3. Each production becomes a derived operator def S p , q , r [( ν s )( X � p , s , r � | Y � s , q , r � )] X ; Y = 4. Some symbols should be material, i.e. represented by graph items like edges for instance, an activity

  42. Sagas encoding: key ideas III 5. Some symbols should be immaterial. For instance, a material parallel operator yields non isomorphic graphs ( a | b ) | c a | ( b | c ) To capture associativity with iso we need something like

  43. Sagas encoding: key ideas IV 6. Flattening dissolves composition frames. For instance, without flattening associativity is not captured by isomorphism ( a ; b ) ; c a ; ( b ; c ) With flattening of sagas we get in both cases.

  44. Sagas encoding: main productions def X ; Y = S p , q , r [( ν s )( X � p , s , r � | Y � s , q , r � )]

  45. Sagas encoding: main productions def X ; Y = S p , q , r [( ν s )( X � p , s , r � | Y � s , q , r � )] def X | Y = S p , q , r [ X � p , q , r � | Y � p , q , r � ]

  46. Sagas encoding: main productions def X ; Y = S p , q , r [( ν s )( X � p , s , r � | Y � s , q , r � )] def X | Y = S p , q , r [ X � p , q , r � | Y � p , q , r � ] def X % Y = P p , q , r , s , t [ X � p , q , s � | Y � r , s , t � ]

  47. Sagas encoding: main productions def X ; Y = S p , q , r [( ν s )( X � p , s , r � | Y � s , q , r � )] def X | Y = S p , q , r [ X � p , q , r � | Y � p , q , r � ] def [ X ] = def X % Y = S p , q , r [( ν s ) X � p , q , s , q , r � ] P p , q , r , s , t [ X � p , q , s � | Y � r , s , t � ]

  48. Sagas encoding: coherence proof At the end we point at a result like Theorem Two sagas S and R are congruent exactly when they are isomorphic. ◮ The proof of soundness is reduced to show that in each axiom of the structural congruence the lhs and rhs are isomorphic, which is facilitated by the similarity of the axioms. def X | Y = S p , q , r [ X � p , q , r � | Y � p , q , r � ] par1 For instance, = S p , q , r [ Y � p , q , r � | X � p , q , r � ] def = Y | X ◮ The proof of completeness is done as usual by structural induction on the normal form of sagas terms. Still not easy, but at least we deal with similar notations.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend