compliance and testing preorders differ
play

Compliance and testing preorders differ Giovanni Bernardi, Matthew - PowerPoint PPT Presentation

Compliance and testing preorders differ Giovanni Bernardi, Matthew Hennessy TRINITY COLLEGE DUBLIN OIDE , B AILE C OL AISTE NA T R ION A THA C LIATH Compliance and testing preorders differ 1 Why preorders? formalisms for web


  1. Compliance and testing preorders differ Giovanni Bernardi, Matthew Hennessy TRINITY COLLEGE DUBLIN OIDE , B AILE ´ C OL ´ AISTE NA T R ´ ION ´ A THA C LIATH Compliance and testing preorders differ 1

  2. Why preorders? formalisms for web services, 2006 onwards interactions satisfy clients (server satisfaction disregarded) Client/server setting || server client Scenario: ◮ server p satisfies a client r (complies, must, should, . . . ) ◮ server p ′ better than server p p ⊑ p ′ objects of study Many approaches... Aims: equivalences, flexibility (subtyping) , applications Precise comparison Compliance and testing preorders differ 2

  3. � satisfies Must testing Compliance greatest relation st greatest relation st server client server client p must r r ⊣ p whenever whenever r reaches � in maximal computations � a) p ⇑ implies r − → of r || p , τ � → b) r || p − → implies r − → � − τ τ τ τ r || p − → r 1 || p 1 − → . . . − → r k || p k − → → r ′ || p ′ implies r ′ ⊣ p ′ τ c) r || p − Compliance and testing preorders differ 3

  4. � � satisfies Must testing Compliance greatest relation st greatest relation st server client server client p must r r ⊣ p whenever whenever r reaches � in maximal computations � a) p ⇑ implies r − → of r || p , τ � → b) r || p − → implies r − → � − τ τ τ τ r || p − → r 1 || p 1 − → . . . − → r k || p k − → → r ′ || p ′ implies r ′ ⊣ p ′ τ c) r || p − ⊣ must r p p a a r a a τ τ livelocks livelocks :-) :-( Compliance and testing preorders differ 4

  5. Server preorders ( ≤ ) Standard definitions tst p 1 ❁ svr p 2 if p 1 must r implies p 2 must r ∼ for every client r p 1 ⊑ cpl svr p 2 if r ⊣ p 1 r ⊣ p 2 implies for every client r tst Must server preorder (30 years old) ❁ ∼ De Nicola, Hennessy; Cleaveland, Hennessy svr ◮ behavioural characterisation ◮ axiomatisation ◮ decidable ⊑ cpl Compliance server preorder (toplas 2009, tcs 2010) svr Castagna at el.; Padovani ◮ filters, orchestrators ◮ weak subcontract Compliance and testing preorders differ 5

  6. How similar are testing and compliance theories? Why, aren’t clients out there? Partial standpoint! ≤ ≤ Compliance and testing preorders differ 6

  7. Client preorders ( ≤ ) Obvious definitions tst r 1 ❁ clt r 2 if p must r 1 implies p must r 2 ∼ for every server p r 1 ⊑ cpl clt r 2 if r 1 ⊣ p implies r 2 ⊣ p for every server p tst Must client preorder (concur 2013) ❁ ∼ Bernardi, Hennessy clt ◮ behavioural characterisation ◮ axiomatisation ⊑ cpl Compliance client preorder (ppdp 2010, sac 2012) clt Barbanera, De’Liguoro; Bernardi, Hennessy ◮ used to model first-order session types full abstraction clt ∼ ⊑ cpl svr ∩ ⊑ cpl = � gh Compliance and testing preorders differ 7

  8. Testing theory Compliance theory tst tst � ⊑ cpl svr , ⊑ cpl � ❁ svr , ❁ clt � clt � ∼ ∼ How similar are testing and compliance theories? ? ? tst tst = ⊑ cpl = ⊑ cpl ❁ ❁ ∼ svr , ∼ clt svr clt Answer depends on the language 1. General CCS 1 (infinite branching, divergent processes) 2. Contracts for web services (finite branching, strongly convergent processes) 3. Finite CCS 1 (no livelocks) 4. Finite session behaviours ( ∼ finite GH session types) Compliance and testing preorders differ 8

  9. General CCS 1 Infinite branching, divergent processes Server preorders not comparable tst tst ⊑ cpl svr �⊆ ⊑ cpl svr �⊆ ❁ svr ❁ ∼ ∼ svr Compliance and testing preorders differ 9

  10. General CCS 1 Infinite branching, divergent processes tst tst Server preorders not comparable ⊑ cpl svr �⊆ ⊑ cpl svr �⊆ ❁ ❁ ∼ ∼ svr svr 0 0 a a p 1 a p 1 a a a a a tst ⊑ cpl � ❁ p 2 p q p 2 p q ∼ a a svr svr a a a a a a . . . . . . Compliance and testing preorders differ 10

  11. � � General CCS 1 Infinite branching, divergent processes tst tst Server preorders not comparable ⊑ cpl svr �⊆ ⊑ cpl svr �⊆ ❁ ❁ ∼ ∼ svr svr 0 0 a a p 1 a p 1 a a a a a tst ⊑ cpl � ❁ p 2 p q p 2 p q ∼ a a svr svr a a a a a a . . . . . . Let r ⊣ p ⇒ r ′ || q τ r || q = − → ⇒ r ′ || p ′ τ � r || p = − → , so r ′ − → livelocks :-) Compliance and testing preorders differ 11

  12. � � � General CCS 1 Infinite branching, divergent processes tst tst Server preorders not comparable ⊑ cpl svr �⊆ ⊑ cpl svr �⊆ ❁ ❁ ∼ ∼ svr svr 0 0 a a p 1 a p 1 a a a a a tst ⊑ cpl � ❁ p 2 p q p 2 p q ∼ a a svr svr a a a a a a . . . . . . � τ r a 1 0 Let r ⊣ p ⇒ r ′ || q τ r || q = − → ⇒ r ′ || p ′ τ � p must r q must r r || p = − → , so r ′ − → livelocks livelocks :-) :-( Compliance and testing preorders differ 12

  13. General CCS 1 Infinite branching, divergent processes tst tst Server preorders not comparable ⊑ cpl svr �⊆ ⊑ cpl svr �⊆ ❁ ❁ ∼ ∼ svr svr tst �⊑ cpl ❁ p p τ Ω τ Ω ∼ svr svr a a 0 0 Compliance and testing preorders differ 13

  14. General CCS 1 Infinite branching, divergent processes tst tst Server preorders not comparable ⊑ cpl svr �⊆ ⊑ cpl svr �⊆ ❁ ❁ ∼ ∼ svr svr tst �⊑ cpl ❁ p p τ Ω τ Ω ∼ svr svr a a 0 0 � − → Let Ω must r ; r p must r livelocks :-( Compliance and testing preorders differ 14

  15. General CCS 1 Infinite branching, divergent processes tst tst Server preorders not comparable ⊑ cpl svr �⊆ ⊑ cpl svr �⊆ ❁ ❁ ∼ ∼ svr svr tst �⊑ cpl ❁ p p τ Ω τ Ω ∼ svr svr a a 0 0 a � r 0 − → � Let Ω must r ; r p must r r ⊣ Ω r �⊣ p livelocks :-( livelocks :-) Compliance and testing preorders differ 15

  16. General CCS 1 Infinite branching, divergent processes tst tst Server preorders not comparable ⊑ cpl svr �⊆ ⊑ cpl svr �⊆ ❁ ❁ ∼ ∼ svr svr tst �⊑ cpl ❁ p p τ Ω τ Ω ∼ svr svr a a 0 0 a � r 0 − → � Let Ω must r ; r p must r r ⊣ Ω r �⊣ p axiom ( BOT ) not sound for ⊑ cpl ( BOT ) Ω ≤ x svr livelocks :-( livelocks :-) Compliance and testing preorders differ 16

  17. General CCS 1 Infinite branching, divergent processes Client preorders not comparable tst tst ⊑ cpl clt �⊆ ⊑ cpl clt �⊆ ❁ clt ❁ ∼ ∼ clt Compliance and testing preorders differ 17

  18. General CCS 1 Infinite branching, divergent processes tst tst Client preorders not comparable ⊑ cpl clt �⊆ ⊑ cpl clt �⊆ ❁ ❁ ∼ ∼ clt clt tst ❁ �⊑ cpl Ω 0 τ Ω 0 ∼ τ clt clt Compliance and testing preorders differ 18

  19. � General CCS 1 Infinite branching, divergent processes tst tst Client preorders not comparable ⊑ cpl clt �⊆ ⊑ cpl clt �⊆ ❁ ❁ ∼ ∼ clt clt tst ❁ �⊑ cpl Ω 0 τ Ω 0 ∼ τ clt clt p must Ω for every p livelocks :-( Compliance and testing preorders differ 19

  20. � General CCS 1 Infinite branching, divergent processes tst tst Client preorders not comparable ⊑ cpl clt �⊆ ⊑ cpl clt �⊆ ❁ ❁ ∼ ∼ clt clt tst ❁ �⊑ cpl Ω 0 τ Ω 0 ∼ τ clt clt Ω ⊣ 0 0 �⊣ 0 p must Ω for every p livelocks livelocks :-( :-) Compliance and testing preorders differ 20

  21. � General CCS 1 Infinite branching, divergent processes tst tst Client preorders not comparable ⊑ cpl clt �⊆ ⊑ cpl clt �⊆ ❁ ❁ ∼ ∼ clt clt tst ❁ �⊑ cpl Ω 0 τ Ω 0 ∼ τ clt clt Ω ⊣ 0 0 �⊣ 0 p must Ω for every p axiom ( BOT ) not sound for ⊑ cpl ( BOT ) Ω ≤ x clt livelocks livelocks :-( :-) Compliance and testing preorders differ 21

  22. ? ? tst tst = ⊑ cpl = ⊑ cpl ❁ ❁ ∼ ∼ svr , clt svr clt Answer depends on language 1 General CCS 1 tst tst ⊑ cpl svr �⊆ ❁ ⊑ cpl clt �⊆ ❁ infinite branching processes ∼ ∼ svr clt tst tst svr �⊆ ⊑ cpl clt �⊆ ⊑ cpl ❁ ❁ divergent processes ∼ ∼ svr clt 2 Contracts for web services (finite branching, strongly convergent processes) 3 Finite CCS 1 4 Finite session behaviours ( ∼ finite GH session types) Compliance and testing preorders differ 22

  23. ? ? tst tst = ⊑ cpl = ⊑ cpl ❁ ❁ ∼ ∼ svr , clt svr clt Answer depends on language 1 General CCS 1 tst tst ⊑ cpl svr �⊆ ❁ ⊑ cpl clt �⊆ ❁ infinite branching processes ∼ ∼ svr clt tst tst svr �⊆ ⊑ cpl clt �⊆ ⊑ cpl ❁ ❁ divergent processes ∼ ∼ svr clt 2 Contracts for web services (finite branching, strongly convergent processes) 3 Finite CCS 1 4 Finite session behaviours ( ∼ finite GH session types) Compliance and testing preorders differ 23

  24. Contracts for web services Finite branching, strongly convergent processes Server preorders coincide tst ⊑ cpl svr = ❁ ∼ svr ◮ hinted at in concur 2007 Laneve, Padovani ◮ stated in toplas 2009, tcs 2010 Castagna et al.; Padovani ◮ proof to appear in MSCS Bernardi, Hennessy Compliance and testing preorders differ 24

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