orchestrated compliance for session-based client/server...

121
Orchestrated compliance for session-based client/server interactions Steffen van Bakel, Franco Barbanera , Ugo de’ Liguoro Department of Computing, Imperial College London Dip. di Matematica e Informatica Universit` a di Catania Dip. di Informatica, Universit` a di Torino ICE 2015, Grenoble, June 4 2015

Upload: others

Post on 20-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated compliancefor session-based client/server interactions

Steffen van Bakel, Franco Barbanera, Ugo de’ Liguoro

Department of Computing, Imperial College LondonDip. di Matematica e Informatica Universita di Catania

Dip. di Informatica, Universita di Torino

ICE 2015, Grenoble, June 4 2015

Page 2: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Overview

Session Contracts and Compliance

Orchestrated Compliance

Decidability Results

Page 3: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Overview

Session Contracts and Compliance

Orchestrated Compliance

Decidability Results

Page 4: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Overview

Session Contracts and Compliance

Orchestrated Compliance

Decidability Results

Page 5: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Overview

Session Contracts and Compliance

Orchestrated Compliance

Decidability Results

Page 6: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

(first-order) Session-Contracts

A Contract is the abstract description of the behaviour of either aclient or a server (roughly a CCS term without parallel)

Definition

Session Contracts: a ”session” restriction of contracts.

σ, τ ::= 1 success| a1.σ1 + · · ·+ an.σn external choice| a1.σ1 ⊕ · · · ⊕ an.σn internal choice| x variable| rec x .σ recursion

the ai and the ai are, respectively, pairwise distinctrecursion is guarded.

Page 7: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

(first-order) Session-Contracts

A Contract is the abstract description of the behaviour of either aclient or a server (roughly a CCS term without parallel)

Definition

Session Contracts: a ”session” restriction of contracts.

σ, τ ::= 1 success| a1.σ1 + · · ·+ an.σn external choice| a1.σ1 ⊕ · · · ⊕ an.σn internal choice| x variable| rec x .σ recursion

the ai and the ai are, respectively, pairwise distinctrecursion is guarded.

Page 8: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

(first-order) Session-Contracts

A Contract is the abstract description of the behaviour of either aclient or a server (roughly a CCS term without parallel)

Definition

Session Contracts: a ”session” restriction of contracts.

σ, τ ::= 1 success| a1.σ1 + · · ·+ an.σn external choice| a1.σ1 ⊕ · · · ⊕ an.σn internal choice| x variable| rec x .σ recursion

the ai and the ai are, respectively, pairwise distinctrecursion is guarded.

Page 9: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

(first-order) Session-Contracts

A Contract is the abstract description of the behaviour of either aclient or a server (roughly a CCS term without parallel)

Definition

Session Contracts: a ”session” restriction of contracts.

σ, τ ::= 1 success| a1.σ1 + · · ·+ an.σn external choice| a1.σ1 ⊕ · · · ⊕ an.σn internal choice| x variable| rec x .σ recursion

the ai and the ai are, respectively, pairwise distinctrecursion is guarded.

Page 10: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

(first-order) Session-Contracts

Used also to model and investigate session types and their subtyperelation:

References

Bernardi and Hennessy: Modelling session types usingcontracts

Bartoletti, Scalas and Zunino A semantic deconstruction ofsession types.

Barbanera and de’ Liguoro: Sub-behaviour relations forsession-based client/server systems (with higher-order)

Page 11: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

(first-order) Session-Contracts

Used also to model and investigate session types and their subtyperelation:

References

Bernardi and Hennessy: Modelling session types usingcontracts

Bartoletti, Scalas and Zunino A semantic deconstruction ofsession types.

Barbanera and de’ Liguoro: Sub-behaviour relations forsession-based client/server systems (with higher-order)

Page 12: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

(first-order) Session-Contracts

Used also to model and investigate session types and their subtyperelation:

References

Bernardi and Hennessy: Modelling session types usingcontracts

Bartoletti, Scalas and Zunino A semantic deconstruction ofsession types.

Barbanera and de’ Liguoro: Sub-behaviour relations forsession-based client/server systems (with higher-order)

Page 13: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

LTS’s

As usual:

For session contracts:

a1.σ1 ⊕ · · · ⊕ an.σn −→ ak .σk a.σa−→ σ

a1.σ1 + · · ·+ an.σnak−→ σk

we equaterec x .σ and σ{rec x .σ/x}

For Client-Server pairs:

ρα−→ ρ′ σ

α−→ σ′

ρ‖σ −→‖ ρ′‖σ′

ρ −→ ρ′

ρ‖σ −→‖ ρ′‖σ

σ −→ σ′

ρ‖σ −→‖ ρ‖σ′

where α ∈ N ∪N and α is the usual involution: α = α.

Page 14: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

LTS’s

As usual:For session contracts:

a1.σ1 ⊕ · · · ⊕ an.σn −→ ak .σk a.σa−→ σ

a1.σ1 + · · ·+ an.σnak−→ σk

we equaterec x .σ and σ{rec x .σ/x}

For Client-Server pairs:

ρα−→ ρ′ σ

α−→ σ′

ρ‖σ −→‖ ρ′‖σ′

ρ −→ ρ′

ρ‖σ −→‖ ρ′‖σ

σ −→ σ′

ρ‖σ −→‖ ρ‖σ′

where α ∈ N ∪N and α is the usual involution: α = α.

Page 15: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

LTS’s

As usual:For session contracts:

a1.σ1 ⊕ · · · ⊕ an.σn −→ ak .σk a.σa−→ σ

a1.σ1 + · · ·+ an.σnak−→ σk

we equaterec x .σ and σ{rec x .σ/x}

For Client-Server pairs:

ρα−→ ρ′ σ

α−→ σ′

ρ‖σ −→‖ ρ′‖σ′

ρ −→ ρ′

ρ‖σ −→‖ ρ′‖σ

σ −→ σ′

ρ‖σ −→‖ ρ‖σ′

where α ∈ N ∪N and α is the usual involution: α = α.

Page 16: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

A client complies with a server if all her requirements are fulfilled

by reaching the success state (1) or

by running an infinite interaction without ever getting stuck

A client that does not comply with its server may get stuck

Formally, ρ complies with σ (ρ a σ) if

∀ρ′, σ′. ρ‖σ =⇒ ρ′‖σ′ 6−→ ⇒ ρ′ = 1

Page 17: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

A client complies with a server if all her requirements are fulfilled

by reaching the success state (1) or

by running an infinite interaction without ever getting stuck

A client that does not comply with its server may get stuck

Formally, ρ complies with σ (ρ a σ) if

∀ρ′, σ′. ρ‖σ =⇒ ρ′‖σ′ 6−→ ⇒ ρ′ = 1

Page 18: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem WeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.temp.hum.x

MDPS a WS

Page 19: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem

WeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.temp.hum.x

MDPS a WS

Page 20: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem

WeatherStation

rec x .

rec x .

tempReq.humReq.temp.hum.x

tempReq.humReq.temp.hum.x

MDPS a WS

Page 21: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem WeatherStation

rec x .

rec x .

tempReq.humReq.temp.hum.x

tempReq.humReq.temp.hum.x

MDPS a WS

Page 22: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem WeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.temp.hum.x

MDPS a WS

Page 23: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem WeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.temp.hum.x

MDPS a WS

Page 24: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem newWeatherStation

rec x . rec x .tempReq.humReq...x tempReq.humReq.

(temp.hum.wind.x

...x)

MDPS 6a newWS

Page 25: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem

newWeatherStation

rec x . rec x .tempReq.humReq...x tempReq.humReq.

(temp.hum.wind.x

...x)

MDPS 6a newWS

Page 26: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem

newWeatherStation

rec x .

rec x .

tempReq.humReq.temp.hum.x

tempReq.humReq.(temp.hum.wind.x⊕hum.temp.wind.x)

MDPS 6a newWS

Page 27: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem newWeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.

(temp.hum.wind.x⊕hum.temp.wind.x)

MDPS 6a newWS

Page 28: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem newWeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.

(temp.hum.wind.x⊕hum.temp.wind.x)

MDPS 6a newWS

Page 29: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem newWeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.

(temp.hum.wind.x⊕hum.temp.wind.x)

MDPS 6a newWS

Page 30: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem newWeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.

(temp.hum.wind.x⊕hum.temp.wind.x)

MDPS 6a newWS

Page 31: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem newWeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.

(temp.hum.wind.x⊕hum.temp.wind.x)

MDPS 6a newWS

Page 32: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Compliance

MeteoDataProcessingSystem newWeatherStation

rec x . rec x .tempReq.humReq.temp.hum.x tempReq.humReq.

(temp.hum.wind.x⊕hum.temp.wind.x)

MDPS 6a newWS

Page 33: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS � f � WS

f is a process mediating between the client and the server(sort of an ”active” filter)

with buffering capabilities

without any nondeterminism of its own

Inspired by:

Luca Padovani :

Contract-Based Discovery of Web Services Modulo Simple Orchestrators.

TCS

general contracts

bounded buffers

Page 34: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS � f � WS

f is a process mediating between the client and the server(sort of an ”active” filter)

with buffering capabilities

without any nondeterminism of its own

Inspired by:

Luca Padovani :

Contract-Based Discovery of Web Services Modulo Simple Orchestrators.

TCS

general contracts

bounded buffers

Page 35: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS � f � WS

f is a process mediating between the client and the server(sort of an ”active” filter)

with buffering capabilities

without any nondeterminism of its own

Inspired by:

Luca Padovani :

Contract-Based Discovery of Web Services Modulo Simple Orchestrators.

TCS

general contracts

bounded buffers

Page 36: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS � f � WS

f is a process mediating between the client and the server(sort of an ”active” filter)

with buffering capabilities

without any nondeterminism of its own

Inspired by:

Luca Padovani :

Contract-Based Discovery of Web Services Modulo Simple Orchestrators.

TCS

general contracts

bounded buffers

Page 37: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS � f � WS

f is a process mediating between the client and the server(sort of an ”active” filter)

with buffering capabilities

without any nondeterminism of its own

Inspired by:

Luca Padovani :

Contract-Based Discovery of Web Services Modulo Simple Orchestrators.

TCS

general contracts

bounded buffers

Page 38: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS � f � WS

f is a process mediating between the client and the server(sort of an ”active” filter)

with buffering capabilities

without any nondeterminism of its own

Inspired by:

Luca Padovani :

Contract-Based Discovery of Web Services Modulo Simple Orchestrators.

TCS

general contracts

bounded buffers

Page 39: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS � f � WS

f is a process mediating between the client and the server(sort of an ”active” filter)

with buffering capabilities

without any nondeterminism of its own

Inspired by:

Luca Padovani :

Contract-Based Discovery of Web Services Modulo Simple Orchestrators.

TCS

general contracts

bounded buffers

Page 40: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway. (Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 41: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway. (Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 42: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway.

(Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 43: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway. (Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 44: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway. (Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.

(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 45: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway. (Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 46: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway. (Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.

(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 47: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway. (Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 48: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Session Orchestrators

Orchestrators’ actions:

〈a, a〉 the orchestrator gets a from the client andimmediately delivers it to the server in a synchronousway. (Similarly for 〈a, a〉).

〈a, ε〉 the orchestrator gets a from the client and stores itin the client-to-server buffer.(Similarly for 〈ε, a〉, using the server-to-client buffer).

〈a, ε〉 the orchestrator takes a from the server-to-clientbuffer and sends it to the client.(Similarly for 〈ε, a〉, using the client-to-server buffer).

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 49: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS f WS

hum

wind

and so on ...

f = rec x ..〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 50: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 51: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

!tempReq ?tempReq

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 52: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?tempReq

MDPS tempReqB f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 53: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?tempReq

MDPS f tempReqB WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 54: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 55: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

!humReq ?humReq

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 56: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?humReq

MDPS humReqB f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 57: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?humReq

MDPS f humReqB WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 58: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 59: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?temp !hum

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 60: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?temp

MDPS f Chum WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 61: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?temp

MDPS f WShum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 62: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?temp !temp

MDPS f WShum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 63: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?temp

MDPS f Ctemp WShum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 64: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?temp

MDPS Ctemp f WShum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 65: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS f WShum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 66: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?hum

MDPS f WShum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 67: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?hum

MDPS Chum f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 68: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 69: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

!wind

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 70: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS f Cwind WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 71: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 72: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

!tempReq ?tempReq

MDPS f WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 73: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

?tempReq

MDPS tempReqBf WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 74: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

etc. etc.

MDPS etc. f etc. WS

hum

wind

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 75: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated interactions

etc.

MDPS etc. f etc. WS

hum

wind wind· · ·

and so on ...

f = rec x .〈tempReq, tempReq〉.〈humReq, humReq〉.(〈temp, temp〉.〈hum, hum〉.〈ε, wind〉.x∨〈ε, hum〉.〈temp, temp〉.〈hum, ε〉.〈ε, wind〉.x)

Page 76: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 77: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:

Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 78: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 79: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 80: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 81: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 82: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 83: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 84: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators Sintax

Enforcing the ”session viewpoint”:Nondeterminism due only to client and server behaviours

only external choice:f ∨ g

no external choice on outputs:

7 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

same ”direction” for prefixes of choices:

7 〈a, ε〉.f ′ ∨ 〈ε, b〉.g ′

3 〈a, ε〉.f ′ ∨ 〈b, ε〉.g ′

Page 85: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators LTS

Let µ be an orchestration action:

µ.fµ7−→ f

fµ7−→ f ′

f ∨ gµ7−→ f ′

gµ7−→ g ′

f ∨ gµ7−→ g ′

if fµ17−→ f1

µ27−→ f2 . . .µn7−→ fn

from the state of the buffers of f and from µ1 . . . µn we can getthe state of the buffers of fn.

Page 86: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrators LTS

Let µ be an orchestration action:

µ.fµ7−→ f

fµ7−→ f ′

f ∨ gµ7−→ f ′

gµ7−→ g ′

f ∨ gµ7−→ g ′

if fµ17−→ f1

µ27−→ f2 . . .µn7−→ fn

from the state of the buffers of f and from µ1 . . . µn we can getthe state of the buffers of fn.

Page 87: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Client/Server Systems

ρ ‖f σ

ρα−→ ρ′ f

〈α,α〉7−→ f ′ σα−→ σ′

ρ ‖f σ〈α,α〉−→ ρ′ ‖f ′ σ′

ρα−→ ρ′ f

〈α,ε〉7−→ f ′

ρ ‖f σ〈a,ε〉−→ ρ′ ‖f ′ σ

f〈ε,α〉7−→ f ′ σ

α−→ σ′

ρ ‖f σ〈ε,a〉−→ ρ ‖f ′ σ′

Page 88: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Client/Server Systems

ρ ‖f σ

ρα−→ ρ′ f

〈α,α〉7−→ f ′ σα−→ σ′

ρ ‖f σ〈α,α〉−→ ρ′ ‖f ′ σ′

ρα−→ ρ′ f

〈α,ε〉7−→ f ′

ρ ‖f σ〈a,ε〉−→ ρ′ ‖f ′ σ

f〈ε,α〉7−→ f ′ σ

α−→ σ′

ρ ‖f σ〈ε,a〉−→ ρ ‖f ′ σ′

Page 89: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Client/Server Systems

ρ ‖f σ

ρα−→ ρ′ f

〈α,α〉7−→ f ′ σα−→ σ′

ρ ‖f σ〈α,α〉−→ ρ′ ‖f ′ σ′

ρα−→ ρ′ f

〈α,ε〉7−→ f ′

ρ ‖f σ〈a,ε〉−→ ρ′ ‖f ′ σ

f〈ε,α〉7−→ f ′ σ

α−→ σ′

ρ ‖f σ〈ε,a〉−→ ρ ‖f ′ σ′

Page 90: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

Page 91: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

Page 92: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

Page 93: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

7

f : a aa b

not allowed

where f = 〈a, .〉ε

Page 94: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

7 f : a aa b not allowedwhere f = 〈a, .〉ε

Page 95: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

7

f : a.b aa a.c .d

not allowed

where f = 〈a, a〉.〈b, ε〉

Page 96: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

7 f : a.b aa a.c .d not allowedwhere f = 〈a, a〉.〈b, ε〉

Page 97: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

7

f : rec x .a.c .x aa rec x .c .x

not allowed

where f = rec x .〈a, ε〉.〈c, c〉.x

Page 98: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

7 f : rec x .a.c .x aa rec x .c .x not allowedwhere f = rec x .〈a, ε〉.〈c, c〉.x

Page 99: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

7

f : a.b aa rec x .c .b.x

not allowed

where f = 〈a, ε〉.rec x .〈ε, c〉.〈ε, b〉.x

Page 100: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

7 f : a.b aa rec x .c .b.x not allowedwhere f = 〈a, ε〉.rec x .〈ε, c〉.〈ε, b〉.x

Page 101: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance (tentative)

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Too Weak!

We must consider only well behaved (respectful) orchestrators.

Page 102: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Respectful Orchestrators

A respectful orchestrator is

sound: it never sends an element a to a server or to a clientif the a has not been previously received.

client-respectful: all outputs from the client must be eventuallydelivered

not definitely server-inputted: it does not just accepts inputsfrom the server indefinitely from a certain point onBUT it can accept an unbounded number of inputsfrom the server(i.e. wind from WS in the metereological example)

Page 103: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Respectful Orchestrators

A respectful orchestrator is

sound: it never sends an element a to a server or to a clientif the a has not been previously received.

client-respectful: all outputs from the client must be eventuallydelivered

not definitely server-inputted: it does not just accepts inputsfrom the server indefinitely from a certain point onBUT it can accept an unbounded number of inputsfrom the server(i.e. wind from WS in the metereological example)

Page 104: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Respectful Orchestrators

A respectful orchestrator is

sound: it never sends an element a to a server or to a clientif the a has not been previously received.

client-respectful: all outputs from the client must be eventuallydelivered

not definitely server-inputted: it does not just accepts inputsfrom the server indefinitely from a certain point onBUT it can accept an unbounded number of inputsfrom the server(i.e. wind from WS in the metereological example)

Page 105: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Respectful Orchestrators

A respectful orchestrator is

sound: it never sends an element a to a server or to a clientif the a has not been previously received.

client-respectful: all outputs from the client must be eventuallydelivered

not definitely server-inputted: it does not just accepts inputsfrom the server indefinitely from a certain point onBUT it can accept an unbounded number of inputsfrom the server(i.e. wind from WS in the metereological example)

Page 106: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Respectful Orchestrators

A respectful orchestrator is

sound: it never sends an element a to a server or to a clientif the a has not been previously received.

client-respectful: all outputs from the client must be eventuallydelivered

not definitely server-inputted: it does not just accepts inputsfrom the server indefinitely from a certain point on

BUT it can accept an unbounded number of inputsfrom the server(i.e. wind from WS in the metereological example)

Page 107: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Respectful Orchestrators

A respectful orchestrator is

sound: it never sends an element a to a server or to a clientif the a has not been previously received.

client-respectful: all outputs from the client must be eventuallydelivered

not definitely server-inputted: it does not just accepts inputsfrom the server indefinitely from a certain point onBUT it can accept an unbounded number of inputsfrom the server(i.e. wind from WS in the metereological example)

Page 108: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance [right one]

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Page 109: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance [right one]

f : ρ aa σ if :

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Page 110: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Orchestrated Compliance [right one]

f : ρ aa σ if f is respectful and:

ρ‖f σµ

=⇒ ρ′‖f ′σ′ 6−→ implies ρ′ = 1.

ρ aa σ if ∃f [f : ρ aa σ].

Page 111: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of f : ρ aa σ

Theorem

Respectfulness is a decidable property of orchestrators

Decidability of f : ρ aa σ obtained by a formal system B such that

Theorem

The judgment ∅ B f : ρ aa σ is derivableif and only iff : ρ aa σ

and such that

Theorem

Proof search in B is terminating.

Page 112: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of f : ρ aa σ

Theorem

Respectfulness is a decidable property of orchestrators

Decidability of f : ρ aa σ obtained by a formal system B such that

Theorem

The judgment ∅ B f : ρ aa σ is derivableif and only iff : ρ aa σ

and such that

Theorem

Proof search in B is terminating.

Page 113: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of f : ρ aa σ

Theorem

Respectfulness is a decidable property of orchestrators

Decidability of f : ρ aa σ obtained by a formal system B such that

Theorem

The judgment ∅ B f : ρ aa σ is derivableif and only iff : ρ aa σ

and such that

Theorem

Proof search in B is terminating.

Page 114: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of f : ρ aa σ

Theorem

Respectfulness is a decidable property of orchestrators

Decidability of f : ρ aa σ obtained by a formal system B such that

Theorem

The judgment ∅ B f : ρ aa σ is derivableif and only iff : ρ aa σ

and such that

Theorem

Proof search in B is terminating.

Page 115: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of f : ρ aa σ

Theorem

Respectfulness is a decidable property of orchestrators

Decidability of f : ρ aa σ obtained by a formal system B such that

Theorem

The judgment ∅ B f : ρ aa σ is derivableif and only iff : ρ aa σ

and such that

Theorem

Proof search in B is terminating.

Page 116: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of ρ aa σ

Out of system B it is possible to devise a terminating algorithmSynth(ρ, σ) producing all the relevant orchestrators f , therespectful ones, if any, and the unrespectful ones, if any (always afinite number, modulo unwinding of rec ) such that f : ρ aa σ.

To decide ρ aa σ:

Compute Synth(ρ, σ)

For any f ∈Synth(ρ, σ), check for the respectfulness of f .

Page 117: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of ρ aa σ

Out of system B it is possible to devise a terminating algorithmSynth(ρ, σ) producing all the relevant orchestrators f , therespectful ones, if any, and the unrespectful ones, if any (always afinite number, modulo unwinding of rec ) such that f : ρ aa σ.

To decide ρ aa σ:

Compute Synth(ρ, σ)

For any f ∈Synth(ρ, σ), check for the respectfulness of f .

Page 118: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of ρ aa σ

Out of system B it is possible to devise a terminating algorithmSynth(ρ, σ) producing all the relevant orchestrators f , therespectful ones, if any, and the unrespectful ones, if any (always afinite number, modulo unwinding of rec ) such that f : ρ aa σ.

To decide ρ aa σ:

Compute Synth(ρ, σ)

For any f ∈Synth(ρ, σ), check for the respectfulness of f .

Page 119: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of ρ aa σ

Out of system B it is possible to devise a terminating algorithmSynth(ρ, σ) producing all the relevant orchestrators f , therespectful ones, if any, and the unrespectful ones, if any (always afinite number, modulo unwinding of rec ) such that f : ρ aa σ.

To decide ρ aa σ:

Compute Synth(ρ, σ)

For any f ∈Synth(ρ, σ), check for the respectfulness of f .

Page 120: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

Decidability of ρ aa σ

Out of system B it is possible to devise a terminating algorithmSynth(ρ, σ) producing all the relevant orchestrators f , therespectful ones, if any, and the unrespectful ones, if any (always afinite number, modulo unwinding of rec ) such that f : ρ aa σ.

To decide ρ aa σ:

Compute Synth(ρ, σ)

For any f ∈Synth(ρ, σ), check for the respectfulness of f .

Page 121: Orchestrated compliance for session-based client/server ...discotec2015.inria.fr/wp-content/uploads/sites/9/2015/06/ICE03.pdf · for session-based client/server interactions Ste en

THANKS!