Your SlideShare is downloading. ×
Petrifying Operating Guidelines for Web Services
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Petrifying Operating Guidelines for Web Services

654
views

Published on

Held by Karsten Wolf on July 3, 2009 on the 9th International Conference on Application of Concurrency to System Design (ACSD 2009) in Augsburg, Germany.

Held by Karsten Wolf on July 3, 2009 on the 9th International Conference on Application of Concurrency to System Design (ACSD 2009) in Augsburg, Germany.

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
654
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Petrifying Operating Guidelines for Web Services Niels Lohmann, Karsten Wolf Universität Rostock
  • 2. Intro: Operating Guidelines Correctness criterion: no deadlocks, no livelocks, no message overflow Simplified approach: !a ?b ?c !a ?b ?d !a !a !a !a (!a ⋁ ?b ⋁ ?c) ⋀ (!a ⋁ ?b) ⋀ (!a ⋁ ?d ⋁ final) Operating guidelines = Most permissive partner + Boolean annotations Find = Find simulation relation + Evaluate annotations
  • 3. Example ? o ffer ! r eject ! a ccept ? i nvoice customer service !i !i !i !o !o ?r ?r ?a ?a !i ⋁ !o !i ⋁ (?a ⋀ ?r) !i !o ?a ⋀ ?r final operating guidelines !o ?r !i ?a partner !o ?r !i !i no partner (simulation) !o !i ?a no partner (annotation) ?r
  • 4. Applications
    • Discovery in SOA
    • Service validation
    • Substitutability of services
    • Test case selection
    • Instance migration
    • Service composition
    • ...
  • 5. Size of Operating Guidelines  Problem: How to deal with the formulas? Size Petri net Size automaton Name 167 77056 Quotation requisition 65 9472 Passport application 93 7792 Deliver finished goods 116 5760 Contract Negotiation 94 1866 Reservations 76 992 Purchase order 95 776 Travel service 249 692 Internal order 316 484 Online shop 116 403 Ticket reservation
  • 6. Observations about Annotations I
    • Negation does not occur, just conjunction and disjunction
    • Only labels of leaving transitions occur in annotation
    • If node has send successor (!x), it occurs in every clause
    •  annotations w.r.t. send events can be inferred from structure
    • final does not occur in same clause with receive messages  alternative representation of annotation:
    • !x 1 ⋁... ⋁ !x m ⋁ [final ⋀] (?y 11 ⋁... ⋁ ?y 1k 1 ) ⋀... ⋀ (?y 1n ⋁... ⋁ ?y 1k n )
    !a !a !a !a !a !a !i !i !i !o !o ?r ?r ?a ?a !i ⋁ !o !i ⋁ (?a ⋀ ?r) !i !o ?a ⋀ ?r final
  • 7. Observations about Annotations II
    • !x 1 ⋁... ⋁ !x m ⋁ [final ⋀] (?y 11 ⋁... ⋁ y 1k 1 ) ⋀... ⋀ (?y 1n ⋁... ⋁ ?y 1k n )
    • Forward propagation of receive clauses
    • Backward propagation of receive clauses
    (?a ⋁ remaining clause) ⋀ X ⇒ (?a ⋁ remaining clause) ⋀ X ... ( remaining clause) ⋀ Y ?a ?a ?a (clause) ⋀ X ⇒ ?a (clause) ⋀ X (?a ⋁ clause) ⋀ Y
  • 8. Implicit representation of annotations
    • Let F = set of states where final occurs in annotation
    • Let S = set of states where only send events occur in some clause
    • Original annotations can be reconstructed:
    • !x 1 ⋁... ⋁ !x m ⋁ [final ⋀] (?y 11 ⋁... ⋁ y 1k 1 ) ⋀... ⋀ (?y 1n ⋁... ⋁ ?y 1k n )
    from structure from set F some path to S ⋃F some path to S ⋃F
  • 9. Example I !i !i !i !o !o ?r ?r ?a ?a S S S F new annotation !i !i !i !o !o ?r ?r ?a ?a !i ⋁ !o !i ⋁ ( ?a ⋀ ?r ) !i !o ?a ⋀ ?r final old annotation
  • 10. Example II S F F S F !x !y !z ?c ?a ?b ?a ?b !x !z ⋁ final final !y final !x !y !z ?c ?a ?b ?a ?b ?c ⋀ ( ?a ⋁ ?b ) ?a ?b
  • 11. Matching S F F S F !x !y !z ?c ?a ?b ?a ?b !x-successor sufficient !z-successor sufficient final ok !y-successor sufficient F !x !y !z ?c ?b ?a no ?a-path to S ⋃F  no fail clause final ok no Ø -path to S ⋃F  no fail clause
  • 12. Achieved so far
    • Complexity gain (size of operating guidelines)
      • Old approach: O (|P||R|)
      • New approach: O (|R|)
    • No significant efficiency loss in matching
    • Petri net representation of structure + 2 lists of markings (S,F)
    • Remaining problem: How to represent S,F
      • Boolean predicate
      • BDD
      • Explicit
  • 13. Size of Sets S and F 255 3 18 26 3 16 47 7 11 8 #S #F #Formulae Name 1 11264 Quotation requisition 1 1536 Passport application 2 1376 Deliver finished goods 2 1152 Contract Negotiation 6 369 Reservations 1 232 Purchase order 2 192 Travel service 8 184 Internal order 21 153 Online shop 2 110 Ticket reservation
  • 14. Further reduction in S and F
    • State without successor must be in F
    • State is never in both S and F
    • State without receiving events is seldom outside S
    • State with receiving events is seldom in S
    • F‘ = F states without successors
    • S 1 = S ⋂ states with receiving events
    • S 2 = states without receiving events (S ⋃ F)
    • F = F‘ ⋃ states without successors
    • S = S1 ⋃ ( states without receiving events S2)
  • 15. Size of Sets S1, S2, and F‘ 1 1 2 2 6 1 2 8 21 2 #F 0 0 1 0 1 0 0 1 0 0 #S1 0 0 0 0 0 0 0 0 0 0 #S2 255 3 18 26 3 16 47 7 11 8 #S #F‘ Name 0 Quotation requisition 0 Passport application 1 Deliver finished goods 0 Contract Negotiation 5 Reservations 0 Purchase order 1 Travel service 4 Internal order 7 Online shop 1 Ticket reservation
  • 16. Conclusion
    • Implicit representation of annotations
      • saves space
      • enables Petri net representation of structure
      • can be stored explicitly
    • Further application in subsitutability checking
      • S1 can be substituted by S2 iff Partners(S1) ⊆ Partners(S2)
      • ... iff simulation between S1 and S2 and implication between related annotations holds
      • ... iff simple local correlation between S- and F-status of related states
    • Size of resulting Petri net could be reduced by injecting unreachable states (recorded in a third set)