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 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
� 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
� � 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
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
How similar are testing and compliance theories? Why, aren’t clients out there? Partial standpoint! ≤ ≤ Compliance and testing preorders differ 6
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
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
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
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
� � 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
� � � 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
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
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
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
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
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
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
� 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
� 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
� 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
? ? 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
? ? 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
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
Recommend
More recommend