Global Types with Internal Delegation and Connecting Communications - - PowerPoint PPT Presentation

global types with internal delegation and connecting
SMART_READER_LITE
LIVE PREVIEW

Global Types with Internal Delegation and Connecting Communications - - PowerPoint PPT Presentation

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion Global Types with Internal Delegation and Connecting Communications joint work with Ilaria Castellani, Paola Giannini and Ross Horne Nobuko meeting


slide-1
SLIDE 1

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Global Types with Internal Delegation and Connecting Communications

joint work with Ilaria Castellani, Paola Giannini and Ross Horne Nobuko meeting 9/10/2020

1 / 26

slide-2
SLIDE 2

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

2 / 26

slide-3
SLIDE 3

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

2 / 26

slide-4
SLIDE 4

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

2 / 26

slide-5
SLIDE 5

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

ko

− →

2 / 26

slide-6
SLIDE 6

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

  • k

− →

2 / 26

slide-7
SLIDE 7

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

  • k

− →

card

− − − →

2 / 26

slide-8
SLIDE 8

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

  • k

− →

card

− − − →

date

← − − −

2 / 26

slide-9
SLIDE 9

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

  • k

− →

card

− − − →

date

← − − −

2 / 26

slide-10
SLIDE 10

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

  • k

− →

card

− − − →

date

← − − −

price

− − − →

2 / 26

slide-11
SLIDE 11

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

  • k

− →

card

− − − →

date

← − − −

price

− − − →

channel

− − − − − →

2 / 26

slide-12
SLIDE 12

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Alice Cat Bank Example

title

− − − →

price

← − − −

  • k

− →

card

− − − →

date

← − − −

price

− − − →

channel

− − − − − →

channel

← − − − − −

2 / 26

slide-13
SLIDE 13

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Two Global Types

Gac Gcb A

title

− − − − → C; C

price

− − − − → A; ( ( A

  • k

− − → C; C

price

− − − − → B; C T − → B; A

card

− − − → C; B T′ − → C; End C

date

− − − → A; End ) ⊞ A

ko

− − → C; End ) T = A? card ; T′ T′ = A! date ; End

3 / 26

slide-14
SLIDE 14

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C;

4 / 26

slide-15
SLIDE 15

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A;

4 / 26

slide-16
SLIDE 16

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C;

4 / 26

slide-17
SLIDE 17

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; connecting communication

4 / 26

slide-18
SLIDE 18

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B; forward delegation

4 / 26

slide-19
SLIDE 19

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C;

4 / 26

slide-20
SLIDE 20

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C; backward delegation

4 / 26

slide-21
SLIDE 21

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End

4 / 26

slide-22
SLIDE 22

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞

4 / 26

slide-23
SLIDE 23

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

One Global Type

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

4 / 26

slide-24
SLIDE 24

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Start with Forward delegation

C◦

  • B
  • B

C◦

  • Terminology (active/passive):

active forward delegation ◦

  • B

passive forward delegation C◦

  • .

5 / 26

slide-25
SLIDE 25

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Message sent to Cat goes directly to Bank

C◦

  • B;

A

card

− − − → C C! card ;

  • B

C◦

  • ;

A? card Trust assumption: Cat does not have authority to handle card.

6 / 26

slide-26
SLIDE 26

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

End with backward delegation

C◦

  • B;

A

card

− − − → C; B•

  • C;

C! card ;

  • B; B•
  • C◦
  • ;

A? card ;

  • C

Terminology (active/passive): active backward delegation •

  • C

passive backward delegation B•

  • .

7 / 26

slide-27
SLIDE 27

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

8 / 26

slide-28
SLIDE 28

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi external choices of inputs

8 / 26

slide-29
SLIDE 29

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi internal choices of outputs

8 / 26

slide-30
SLIDE 30

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi | p◦

  • ; P forward delegation with principal

8 / 26

slide-31
SLIDE 31

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi | p◦

  • ; P

|

  • p; P forward delegation with deputy

8 / 26

slide-32
SLIDE 32

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi | p◦

  • ; P

|

  • p; P

|

  • q; P backward delegation with principal

8 / 26

slide-33
SLIDE 33

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi | p◦

  • ; P

|

  • p; P

|

  • q; P

| q•

  • ; P backward delegation with deputy

8 / 26

slide-34
SLIDE 34

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi | p◦

  • ; P

|

  • p; P

|

  • q; P

| q•

  • ; P

| µX.P | X |

8 / 26

slide-35
SLIDE 35

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi | p◦

  • ; P

|

  • p; P

|

  • q; P

| q•

  • ; P

| µX.P | X |

internal and external choices must not be ambiguous

8 / 26

slide-36
SLIDE 36

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi | p◦

  • ; P

|

  • p; P

|

  • q; P

| q•

  • ; P

| µX.P | X |

internal and external choices must not be ambiguous

8 / 26

slide-37
SLIDE 37

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Processes

Λ ranges over λ and

λ

P ::= Σi∈Ipi?Λi; Pi | ⊕i∈I pi!Λi; Pi | p◦

  • ; P

|

  • p; P

|

  • q; P

| q•

  • ; P

| µX.P | X |

internal and external choices must not be ambiguous A? title ; A! price ; (A? ok ; B!

price

↔ ; ◦

  • B; B•
  • ; A! date + A? ko )

8 / 26

slide-38
SLIDE 38

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Networks

A[ [ C! card ; C? date ] ] C[ [ ◦

  • B; B•
  • ; A! date ]

] B[ [ C◦

  • ; A? card ; •
  • C ]

]

◆ ◆ ◆

9 / 26

slide-39
SLIDE 39

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Networks

A[ [ C! card ; C? date ] ] C[ [ ◦

  • B; B•
  • ; A! date ]

] B[ [ C◦

  • ; A? card ; •
  • C ]

] ⇓ A[ [ C! card ; C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ A? card ; •

  • C ]

]

◆ ◆ ◆

9 / 26

slide-40
SLIDE 40

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Networks

A[ [ C! card ; C? date ] ] C[ [ ◦

  • B; B•
  • ; A! date ]

] B[ [ C◦

  • ; A? card ; •
  • C ]

] ⇓ A[ [ C! card ; C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ A? card ; •

  • C ]

] ⇓ A[ [ C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ •

  • C ]

]

◆ ◆ ◆

9 / 26

slide-41
SLIDE 41

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Networks

A[ [ C! card ; C? date ] ] C[ [ ◦

  • B; B•
  • ; A! date ]

] B[ [ C◦

  • ; A? card ; •
  • C ]

] ⇓ A[ [ C! card ; C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ A? card ; •

  • C ]

] ⇓ A[ [ C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ •

  • C ]

] ⇓ A[ [ C? date ] ] C[ [ A! date ] ] B[ [ 0 ] ]

◆ ◆ ◆

9 / 26

slide-42
SLIDE 42

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Networks

A[ [ C! card ; C? date ] ] C[ [ ◦

  • B; B•
  • ; A! date ]

] B[ [ C◦

  • ; A? card ; •
  • C ]

] ⇓ A[ [ C! card ; C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ A? card ; •

  • C ]

] ⇓ A[ [ C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ •

  • C ]

] ⇓ A[ [ C? date ] ] C[ [ A! date ] ] B[ [ 0 ] ]

◆ ::= p[ [ P ] ] |

  • p[

[ P ] ] | ◆ ◆

9 / 26

slide-43
SLIDE 43

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Operational Semantics

Σi∈Ipi?Λi; Pi

pj?Λj

− − − → Pj j ∈ I [ExtCh]

10 / 26

slide-44
SLIDE 44

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Operational Semantics

Σi∈Ipi?Λi; Pi

pj?Λj

− − − → Pj j ∈ I [ExtCh] ⊕i∈Ipi!Λi; Pi

pj!Λj

− − − → Pj j ∈ I [IntCh]

10 / 26

slide-45
SLIDE 45

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Operational Semantics

P

q!Λ

− − → P′Q

p?Λ

− − → Q′ [Com] p[ [ P ] ] q[ [ Q ] ]

pΛq

− − → p[ [ P′ ] ] q[ [ Q′ ] ]

10 / 26

slide-46
SLIDE 46

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Operational Semantics

P

q!Λ

− − → P′Q

p?Λ

− − → Q′ [Com] p[ [ P ] ] q[ [ Q ] ]

pΛq

− − → p[ [ P′ ] ] q[ [ Q′ ] ] p[ [ ◦

  • q; P ]

] q[ [ p ◦

  • ; Q ]

]

p◦

  • q

− − − → p[ [ P ] ] p[ [ Q ] ] [BDel]

10 / 26

slide-47
SLIDE 47

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Operational Semantics

P

q!Λ

− − → P′Q

p?Λ

− − → Q′ [Com] p[ [ P ] ] q[ [ Q ] ]

pΛq

− − → p[ [ P′ ] ] q[ [ Q′ ] ] p[ [ ◦

  • q; P ]

] q[ [ p ◦

  • ; Q ]

]

p◦

  • q

− − − → p[ [ P ] ] p[ [ Q ] ] [BDel]

  • p[

[ q •

  • ; P ]

] p[ [ •

  • p; Q ]

]

q•

  • p

− − − → p[ [ P ] ] q[ [ Q ] ] [EDel]

10 / 26

slide-48
SLIDE 48

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Operational Semantics

P

q!Λ

− − → P′Q

p?Λ

− − → Q′ [Com] p[ [ P ] ] q[ [ Q ] ]

pΛq

− − → p[ [ P′ ] ] q[ [ Q′ ] ] p[ [ ◦

  • q; P ]

] q[ [ p ◦

  • ; Q ]

]

p◦

  • q

− − − → p[ [ P ] ] p[ [ Q ] ] [BDel]

  • p[

[ q •

  • ; P ]

] p[ [ •

  • p; Q ]

]

q•

  • p

− − − → p[ [ P ] ] q[ [ Q ] ] [EDel] ◆

φ

− → ◆′ [Ct] ◆ ◆′′ φ − → ◆′ ◆′′ φ ranges over pΛq, p◦

  • q, q•
  • p

10 / 26

slide-49
SLIDE 49

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Partial Order on Processes

a process offering more inputs and less outputs is better

11 / 26

slide-50
SLIDE 50

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Partial Order on Processes

a process offering more inputs and less outputs is better

[Sub-In]

∀i ∈ I : Pi ≤ Qi Σi∈I∪Jpi?Λi; Pi ≤ Σi∈Ipi?Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-Out]

∀i ∈ I : Pi ≤ Qi ⊕i∈Ipi!Λi; Pi ≤ ⊕i∈I∪Jpi!Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

11 / 26

slide-51
SLIDE 51

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Partial Order on Processes

[Sub-In]

∀i ∈ I : Pi ≤ Qi Σi∈I∪Jpi?Λi; Pi ≤ Σi∈Ipi?Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-Out]

∀i ∈ I : Pi ≤ Qi ⊕i∈Ipi!Λi; Pi ≤ ⊕i∈I∪Jpi!Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = = connecting communications are better than 0

11 / 26

slide-52
SLIDE 52

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Partial Order on Processes

[Sub-In]

∀i ∈ I : Pi ≤ Qi Σi∈I∪Jpi?Λi; Pi ≤ Σi∈Ipi?Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-Out]

∀i ∈ I : Pi ≤ Qi ⊕i∈Ipi!Λi; Pi ≤ ⊕i∈I∪Jpi!Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = = connecting communications are better than 0

[Sub-In-Skip]

Σi∈Ipi?

λi

↔; Pi ≤ 0

11 / 26

slide-53
SLIDE 53

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Partial Order on Processes

[Sub-In]

∀i ∈ I : Pi ≤ Qi Σi∈I∪Jpi?Λi; Pi ≤ Σi∈Ipi?Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-Out]

∀i ∈ I : Pi ≤ Qi ⊕i∈Ipi!Λi; Pi ≤ ⊕i∈I∪Jpi!Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-In-Skip]

Σi∈Ipi?

λi

↔; Pi ≤ 0 δ ranges over p◦

  • q q•
  • p

11 / 26

slide-54
SLIDE 54

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Partial Order on Processes

[Sub-In]

∀i ∈ I : Pi ≤ Qi Σi∈I∪Jpi?Λi; Pi ≤ Σi∈Ipi?Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-Out]

∀i ∈ I : Pi ≤ Qi ⊕i∈Ipi!Λi; Pi ≤ ⊕i∈I∪Jpi!Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-In-Skip]

Σi∈Ipi?

λi

↔; Pi ≤ 0 δ ranges over p◦

  • q q•
  • p

[Sub-Del]

P ≤ Q δ; P ≤ δ; Q

11 / 26

slide-55
SLIDE 55

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Partial Order on Processes

[Sub-In]

∀i ∈ I : Pi ≤ Qi Σi∈I∪Jpi?Λi; Pi ≤ Σi∈Ipi?Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-Out]

∀i ∈ I : Pi ≤ Qi ⊕i∈Ipi!Λi; Pi ≤ ⊕i∈I∪Jpi!Λi; Qi = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

[Sub-In-Skip]

Σi∈Ipi?

λi

↔; Pi ≤ 0

[Sub-Del]

P ≤ Q δ; P ≤ δ; Q

[Sub-0]

0 ≤ 0

11 / 26

slide-56
SLIDE 56

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Global types

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

12 / 26

slide-57
SLIDE 57

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Global types

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

G ::= ⊞i∈I pΛiqi; Gi | p◦

  • q; G | q•
  • p; G

| µt.G | t | End

12 / 26

slide-58
SLIDE 58

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Global types

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

G ::= ⊞i∈I pΛiqi; Gi | p◦

  • q; G | q•
  • p; G

| µt.G | t | End

no ambiguity of choices between all simple or all connecting communications

12 / 26

slide-59
SLIDE 59

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Global types

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

G ::= ⊞i∈I pΛiqi; Gi | p◦

  • q; G | q•
  • p; G

| µt.G | t | End

no ambiguity of choices between all simple or all connecting communications each occurrence of p◦

  • q is

followed by an occurrence of q•

  • p

12 / 26

slide-60
SLIDE 60

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Global types

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

G ::= ⊞i∈I pΛiqi; Gi | p◦

  • q; G | q•
  • p; G

| µt.G | t | End

no ambiguity of choices between all simple or all connecting communications each occurrence of p◦

  • q is

followed by an occurrence of q•

  • p

no atomic interaction involving q

  • ccurs between p◦
  • q and q•
  • p

12 / 26

slide-61
SLIDE 61

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Global types

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

G ::= ⊞i∈I pΛiqi; Gi | p◦

  • q; G | q•
  • p; G

| µt.G | t | End

no ambiguity of choices between all simple or all connecting communications each occurrence of p◦

  • q is

followed by an occurrence of q•

  • p

no atomic interaction involving q

  • ccurs between p◦
  • q and q•
  • p

no choice occurs between p◦

  • q

and q•

  • p

12 / 26

slide-62
SLIDE 62

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Global types

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

G ::= ⊞i∈I pΛiqi; Gi | p◦

  • q; G | q•
  • p; G

| µt.G | t | End

no ambiguity of choices between all simple or all connecting communications each occurrence of p◦

  • q is

followed by an occurrence of q•

  • p

no atomic interaction involving q

  • ccurs between p◦
  • q and q•
  • p

no choice occurs between p◦

  • q

and q•

  • p

no delegation involving p occurs between p◦

  • q and q•
  • p

12 / 26

slide-63
SLIDE 63

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Projection: Example

A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

13 / 26

slide-64
SLIDE 64

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Projection: Example

A? title ; A! price ; ( A? ok ; B!

price

↔ ;

  • B;

B•

  • ;

A! date ; + A? ko ) A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End )

13 / 26

slide-65
SLIDE 65

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Projection: Example

A? title ; A! price ; ( A? ok ; B!

price

↔ ;

  • B;

B•

  • ;

A! date ; + A? ko ) A

title

− − − − → C; C

price

− − − − → A; ( A

  • k

− − → C; C

price

− − − → B; C◦

  • B;

A

card

− − − → C; B•

  • C;

C

date

− − − → A; End ⊞ A

ko

− − → C; End ) C◦

  • ;

A? card ;

  • C

13 / 26

slide-66
SLIDE 66

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

Meet

14 / 26

slide-67
SLIDE 67

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

Meet (Σi∈Ipi?Λi; Pi) p?Λ; P = Σi∈Ipi?Λi; Pi + p?Λ; P

14 / 26

slide-68
SLIDE 68

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

Meet (Σi∈Ipi?Λi; Pi) p?Λ; P = Σi∈Ipi?Λi; Pi + p?Λ; P (Σi∈Ipi?Λi; Pi) p?Λ; P = Σi∈Ipi?Λi; Pi if p = pj and Λ = Λj and P = Pj for some j ∈ I

14 / 26

slide-69
SLIDE 69

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

Meet (Σi∈Ipi?Λi; Pi) p?Λ; P = Σi∈Ipi?Λi; Pi + p?Λ; P (Σi∈Ipi?Λi; Pi) p?Λ; P = Σi∈Ipi?Λi; Pi if p = pj and Λ = Λj and P = Pj for some j ∈ I (Σi∈Ipi?

λi

↔; Pi) 0 = Σi∈Ipi?

λi

↔; Pi

14 / 26

slide-70
SLIDE 70

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

Meet (Σi∈Ipi?Λi; Pi) p?Λ; P = Σi∈Ipi?Λi; Pi + p?Λ; P (Σi∈Ipi?Λi; Pi) p?Λ; P = Σi∈Ipi?Λi; Pi if p = pj and Λ = Λj and P = Pj for some j ∈ I (Σi∈Ipi?

λi

↔; Pi) 0 = Σi∈Ipi?

λi

↔; Pi 0 0 = 0

14 / 26

slide-71
SLIDE 71

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

( pΛq; G )↾r =      q!Λ; G↾p if r = p p?Λ; G↾q if r = q G↾r if r ∈ {p, q}

14 / 26

slide-72
SLIDE 72

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

( pΛq; G )↾r =      q!Λ; G↾p if r = p p?Λ; G↾q if r = q G↾r if r ∈ {p, q} ( ⊞i∈I pΛiqi; Gi )↾r =

  • ⊕i∈I( pΛiqi; Gi )↾r

if r = p

  • i∈I( pΛiqi; Gi )↾r
  • therwise

where |I| > 1

14 / 26

slide-73
SLIDE 73

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

( pΛq; G )↾r =      q!Λ; G↾p if r = p p?Λ; G↾q if r = q G↾r if r ∈ {p, q} ( ⊞i∈I pΛiqi; Gi )↾r =

  • ⊕i∈I( pΛiqi; Gi )↾r

if r = p

  • i∈I( pΛiqi; Gi )↾r
  • therwise

where |I| > 1 (µt.G)↾p =      G↾p if t does not occur in G µt.G↾p if p ∈ part(G)

  • therwise

14 / 26

slide-74
SLIDE 74

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

( pΛq; G )↾r =      q!Λ; G↾p if r = p p?Λ; G↾q if r = q G↾r if r ∈ {p, q} ( ⊞i∈I pΛiqi; Gi )↾r =

  • ⊕i∈I( pΛiqi; Gi )↾r

if r = p

  • i∈I( pΛiqi; Gi )↾r
  • therwise

where |I| > 1 (µt.G)↾p =      G↾p if t does not occur in G µt.G↾p if p ∈ part(G)

  • therwise

t↾p = t

14 / 26

slide-75
SLIDE 75

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

( pΛq; G )↾r =      q!Λ; G↾p if r = p p?Λ; G↾q if r = q G↾r if r ∈ {p, q} ( ⊞i∈I pΛiqi; Gi )↾r =

  • ⊕i∈I( pΛiqi; Gi )↾r

if r = p

  • i∈I( pΛiqi; Gi )↾r
  • therwise

where |I| > 1 (µt.G)↾p =      G↾p if t does not occur in G µt.G↾p if p ∈ part(G)

  • therwise

t↾p = t End↾p = 0

14 / 26

slide-76
SLIDE 76

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

( pΛq; G )↾r =      q!Λ; G↾p if r = p p?Λ; G↾q if r = q G↾r if r ∈ {p, q} ( ⊞i∈I pΛiqi; Gi )↾r =

  • ⊕i∈I( pΛiqi; Gi )↾r

if r = p

  • i∈I( pΛiqi; Gi )↾r
  • therwise

where |I| > 1 (µt.G)↾p =      G↾p if t does not occur in G µt.G↾p if p ∈ part(G)

  • therwise

t↾p = t End↾p = 0 (p◦

  • q; G)↾r =

    

  • q; G↾1(p, q)

if r = p p◦

  • ; G↾2(p, q)

if r = q G↾r

  • therwise

14 / 26

slide-77
SLIDE 77

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Direct Projection

( pΛq; G )↾r =      q!Λ; G↾p if r = p p?Λ; G↾q if r = q G↾r if r ∈ {p, q} ( ⊞i∈I pΛiqi; Gi )↾r =

  • ⊕i∈I( pΛiqi; Gi )↾r

if r = p

  • i∈I( pΛiqi; Gi )↾r
  • therwise

where |I| > 1 (µt.G)↾p =      G↾p if t does not occur in G µt.G↾p if p ∈ part(G)

  • therwise

t↾p = t End↾p = 0 (p◦

  • q; G)↾r =

    

  • q; G↾1(p, q)

if r = p p◦

  • ; G↾2(p, q)

if r = q G↾r

  • therwise

(q•

  • p; G)↾r = G↾r

if r ∈ {p, q}

14 / 26

slide-78
SLIDE 78

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Delegation Projection

( rΛs; G )↾2(p, q) =      s!Λ; G↾2(p, q) if r = p and s = q r?Λ; G↾2(p, q) if s = p and r = q G↾2(p, q) if {r, s} ∩ {p, q} = ∅

15 / 26

slide-79
SLIDE 79

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Delegation Projection

( rΛs; G )↾2(p, q) =      s!Λ; G↾2(p, q) if r = p and s = q r?Λ; G↾2(p, q) if s = p and r = q G↾2(p, q) if {r, s} ∩ {p, q} = ∅ ( rΛs; G )↾1(p, q) = G↾1(p, q) if r = q and s = q

15 / 26

slide-80
SLIDE 80

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Delegation Projection

( rΛs; G )↾2(p, q) =      s!Λ; G↾2(p, q) if r = p and s = q r?Λ; G↾2(p, q) if s = p and r = q G↾2(p, q) if {r, s} ∩ {p, q} = ∅ ( rΛs; G )↾1(p, q) = G↾1(p, q) if r = q and s = q (q•

  • p; G)↾1(p, q) = q•
  • ; G↾p

(q•

  • p; G)↾2(p, q) = •
  • p; G↾q

15 / 26

slide-81
SLIDE 81

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Delegation Projection

( rΛs; G )↾2(p, q) =      s!Λ; G↾2(p, q) if r = p and s = q r?Λ; G↾2(p, q) if s = p and r = q G↾2(p, q) if {r, s} ∩ {p, q} = ∅ ( rΛs; G )↾1(p, q) = G↾1(p, q) if r = q and s = q (q•

  • p; G)↾1(p, q) = q•
  • ; G↾p

(q•

  • p; G)↾2(p, q) = •
  • p; G↾q

(r◦

  • s; G)↾1(p, q) = (r•
  • s; G)↾1(p, q) = G↾1(p, q)

if {r, s} ∩ {p, q} = ∅

15 / 26

slide-82
SLIDE 82

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Delegation Projection

( rΛs; G )↾2(p, q) =      s!Λ; G↾2(p, q) if r = p and s = q r?Λ; G↾2(p, q) if s = p and r = q G↾2(p, q) if {r, s} ∩ {p, q} = ∅ ( rΛs; G )↾1(p, q) = G↾1(p, q) if r = q and s = q (q•

  • p; G)↾1(p, q) = q•
  • ; G↾p

(q•

  • p; G)↾2(p, q) = •
  • p; G↾q

(r◦

  • s; G)↾1(p, q) = (r•
  • s; G)↾1(p, q) = G↾1(p, q)

if {r, s} ∩ {p, q} = ∅

(r◦

  • s; G)↾2(p, q) = (r•
  • s; G)↾2(p, q) = G↾2(p, q)

if {r, s} ∩ {p, q} = ∅

15 / 26

slide-83
SLIDE 83

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Typing Rule

qi•

  • ; Pi ≤ G↾1(pi, qi)

(i ∈ I) Qi ≤ G↾2(pi, qi) (i ∈ I) Rj ≤ G↾rj (j ∈ J) part(G) ⊆ {pi | i ∈ I} ∪ {qi | i ∈ I} ∪ {rj | j ∈ J} all participants distinct ⊢ Πi∈I

  • pi[

[ qi•

  • ; Pi ]

] Πi∈I pi[ [ Qi ] ] Πj∈J rj[ [ Rj ] ] : G

16 / 26

slide-84
SLIDE 84

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Typing Rule

qi•

  • ; Pi ≤ G↾1(pi, qi)

(i ∈ I) Qi ≤ G↾2(pi, qi) (i ∈ I) Rj ≤ G↾rj (j ∈ J) part(G) ⊆ {pi | i ∈ I} ∪ {qi | i ∈ I} ∪ {rj | j ∈ J} all participants distinct ⊢ Πi∈I

  • pi[

[ qi•

  • ; Pi ]

] Πi∈I pi[ [ Qi ] ] Πj∈J rj[ [ Rj ] ] : G A[ [ C! card ; C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ A? card ; •

  • C ]

]

16 / 26

slide-85
SLIDE 85

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Typing Rule

qi•

  • ; Pi ≤ G↾1(pi, qi)

(i ∈ I) Qi ≤ G↾2(pi, qi) (i ∈ I) Rj ≤ G↾rj (j ∈ J) part(G) ⊆ {pi | i ∈ I} ∪ {qi | i ∈ I} ∪ {rj | j ∈ J} all participants distinct ⊢ Πi∈I

  • pi[

[ qi•

  • ; Pi ]

] Πi∈I pi[ [ Qi ] ] Πj∈J rj[ [ Rj ] ] : G A[ [ C! card ; C? date ] ]

  • C[

[ B•

  • ; A! date ]

] C[ [ A? card ; •

  • C ]

] A

card

− − − → C; B•

  • C;

C

date

− − − → A; End

16 / 26

slide-86
SLIDE 86

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Subject Reduction

If ⊢ ◆ : G and ◆

φ

− → ◆′, then ⊢ ◆′ : G′ for some G′.

17 / 26

slide-87
SLIDE 87

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Session Fidelity

If ⊢ ◆ : G and ◆

pΛq

− − → ◆′, then G = φ1; . . . ; φn; (⊞i∈I pΛiqi; Gi ⊞ pΛq; G′), where φj for 1 ≤ j ≤ n is an atomic interaction not involving p and q. ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆

18 / 26

slide-88
SLIDE 88

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Session Fidelity

If ⊢ ◆ : G and ◆

pΛq

− − → ◆′, then G = φ1; . . . ; φn; (⊞i∈I pΛiqi; Gi ⊞ pΛq; G′), where φj for 1 ≤ j ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : G and ◆

p◦

  • q

− − − → ◆′, then G = φ1; . . . ; φn; p◦

  • q; G′,

where φi for 1 ≤ i ≤ n is an atomic interaction not involving p and q. ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆

18 / 26

slide-89
SLIDE 89

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Session Fidelity

If ⊢ ◆ : G and ◆

pΛq

− − → ◆′, then G = φ1; . . . ; φn; (⊞i∈I pΛiqi; Gi ⊞ pΛq; G′), where φj for 1 ≤ j ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : G and ◆

p◦

  • q

− − − → ◆′, then G = φ1; . . . ; φn; p◦

  • q; G′,

where φi for 1 ≤ i ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : G and ◆

q•

  • p

− − − → ◆′, then G = φ1; . . . ; φn; q•

  • p; G′,

where φi for 1 ≤ i ≤ n is an atomic interaction not involving p and q. ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆

18 / 26

slide-90
SLIDE 90

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Session Fidelity

If ⊢ ◆ : G and ◆

pΛq

− − → ◆′, then G = φ1; . . . ; φn; (⊞i∈I pΛiqi; Gi ⊞ pΛq; G′), where φj for 1 ≤ j ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : G and ◆

p◦

  • q

− − − → ◆′, then G = φ1; . . . ; φn; p◦

  • q; G′,

where φi for 1 ≤ i ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : G and ◆

q•

  • p

− − − → ◆′, then G = φ1; . . . ; φn; q•

  • p; G′,

where φi for 1 ≤ i ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : ⊞i∈IpΛiqi; Gi, then ◆ = p[ [ ⊕i∈I ′qi!Λi; Pi ] ] ◆0 with I ′ ⊆ I and ◆

pΛiqi

− − − → ◆i and ⊢ ◆i : Gi for all i ∈ I ′. ◆ ◆ ◆ ◆

18 / 26

slide-91
SLIDE 91

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Session Fidelity

If ⊢ ◆ : G and ◆

pΛq

− − → ◆′, then G = φ1; . . . ; φn; (⊞i∈I pΛiqi; Gi ⊞ pΛq; G′), where φj for 1 ≤ j ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : G and ◆

p◦

  • q

− − − → ◆′, then G = φ1; . . . ; φn; p◦

  • q; G′,

where φi for 1 ≤ i ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : G and ◆

q•

  • p

− − − → ◆′, then G = φ1; . . . ; φn; q•

  • p; G′,

where φi for 1 ≤ i ≤ n is an atomic interaction not involving p and q. If ⊢ ◆ : ⊞i∈IpΛiqi; Gi, then ◆ = p[ [ ⊕i∈I ′qi!Λi; Pi ] ] ◆0 with I ′ ⊆ I and ◆

pΛiqi

− − − → ◆i and ⊢ ◆i : Gi for all i ∈ I ′. If ⊢ ◆ : φ; G, then ◆

φ

− → ◆′ and ⊢ ◆′ : G.

18 / 26

slide-92
SLIDE 92

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Strong Progress

If ◆ = p[ [ ⊕i∈Iqi!Λi; Pi ] ] ◆0, then ◆

− → φ pΛiqi

− − − − − → ◆′ for some − → φ and for all i ∈ I. ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆

19 / 26

slide-93
SLIDE 93

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Strong Progress

If ◆ = p[ [ ⊕i∈Iqi!Λi; Pi ] ] ◆0, then ◆

− → φ pΛiqi

− − − − − → ◆′ for some − → φ and for all i ∈ I. If ◆ = p[ [ Σi∈Iqi?λi; Pi ] ] ◆0, then ◆

− → φ qiλip

− − − − − → ◆′ for some − → φ and for some i ∈ I. ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆

19 / 26

slide-94
SLIDE 94

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Strong Progress

If ◆ = p[ [ ⊕i∈Iqi!Λi; Pi ] ] ◆0, then ◆

− → φ pΛiqi

− − − − − → ◆′ for some − → φ and for all i ∈ I. If ◆ = p[ [ Σi∈Iqi?λi; Pi ] ] ◆0, then ◆

− → φ qiλip

− − − − − → ◆′ for some − → φ and for some i ∈ I. If ◆ = p[ [ ◦

  • q; P ]

] ◆0, then ◆

− → φ p◦

  • q −

→ φ′ q•

  • p

− − − − − − − − − − → ◆′ for some − → φ and − → φ′. ◆ ◆ ◆ ◆

19 / 26

slide-95
SLIDE 95

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Strong Progress

If ◆ = p[ [ ⊕i∈Iqi!Λi; Pi ] ] ◆0, then ◆

− → φ pΛiqi

− − − − − → ◆′ for some − → φ and for all i ∈ I. If ◆ = p[ [ Σi∈Iqi?λi; Pi ] ] ◆0, then ◆

− → φ qiλip

− − − − − → ◆′ for some − → φ and for some i ∈ I. If ◆ = p[ [ ◦

  • q; P ]

] ◆0, then ◆

− → φ p◦

  • q −

→ φ′ q•

  • p

− − − − − − − − − − → ◆′ for some − → φ and − → φ′. If ◆ = q[ [ p◦

  • ; Q ]

] ◆0, then ◆

− → φ p◦

  • q −

→ φ′ q•

  • p

− − − − − − − − − − → ◆′ for some − → φ and − → φ′.

19 / 26

slide-96
SLIDE 96

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Internal versus Channel Delegation

pro

20 / 26

slide-97
SLIDE 97

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Internal versus Channel Delegation

pro

internal delegation allows a better control of the whole conversation

20 / 26

slide-98
SLIDE 98

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Internal versus Channel Delegation

pro

internal delegation allows a better control of the whole conversation internal delegation assures progress with a simple type system

20 / 26

slide-99
SLIDE 99

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Internal versus Channel Delegation

pro

internal delegation allows a better control of the whole conversation internal delegation assures progress with a simple type system

con

20 / 26

slide-100
SLIDE 100

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Internal versus Channel Delegation

pro

internal delegation allows a better control of the whole conversation internal delegation assures progress with a simple type system

con

channel delegation can represent more protocols

20 / 26

slide-101
SLIDE 101

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Future Work

global types allowing

21 / 26

slide-102
SLIDE 102

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Future Work

global types allowing

nested delegation

21 / 26

slide-103
SLIDE 103

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Future Work

global types allowing

nested delegation deputies to make choices

21 / 26

slide-104
SLIDE 104

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Future Work

global types allowing

nested delegation deputies to make choices . . .

21 / 26

slide-105
SLIDE 105

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Future Work

global types allowing

nested delegation deputies to make choices . . .

coherence of sets of session types

21 / 26

slide-106
SLIDE 106

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Future Work

global types allowing

nested delegation deputies to make choices . . .

coherence of sets of session types integration with reversibility

21 / 26

slide-107
SLIDE 107

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

An application that delegates to an Oauth 2.0 server

Resource Untrusted App OAuth Server Owner

initiate(app ID,scope)

begin delegation login page(app ID, scope) authorize(name, password) end delegation authorisation code(code) exchange(app ID, secret, code) access token(token) request(token) response(data) recursion revoke choice at Resource

22 / 26

slide-108
SLIDE 108

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

An application that delegates to an Oauth 2.0 server

Untrusted App OAuth Server Owner

initiate(app ID,scope)

begin delegation

login page(app ID, scope) authorize(name, password)

end delegation

authorisation code(code)

22 / 26

slide-109
SLIDE 109

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Allowing the deputy to make a choice is useful

Resource Untrusted App OAuth Server Owner

initiate(app ID,scope)

begin delegation login page(app ID, scope) authorize(name, password) end delegation authorisation code(code) exchange(app ID, secret, code) access token(token) request(token) response(data) recursion revoke choice at Resource choice at Server no release choice at Server deny end delegation error release choice at Owner

23 / 26

slide-110
SLIDE 110

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Allowing the deputy to make a choice is useful

Untrusted App OAuth Server Owner

initiate(app ID,scope)

begin delegation login page(app ID, scope) authorize(name, password) end delegation authorisation code(code) exchange(app ID, secret, code) access token(token) no release deny end delegation error

23 / 26

slide-111
SLIDE 111

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Related Papers

Kohei Honda, Nobuko Yoshida, and Marco Carbone. Multiparty asynchronous session types. Journal of the ACM, 63(1):9, 2016.

24 / 26

slide-112
SLIDE 112

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Related Papers

Kohei Honda, Nobuko Yoshida, and Marco Carbone. Multiparty asynchronous session types. Journal of the ACM, 63(1):9, 2016. Pierre-Malo Deni´ elou and Nobuko Yoshida. Dynamic multirole session types. In POPL, pages 435–446. ACM Press, 2011.

24 / 26

slide-113
SLIDE 113

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Related Papers

Kohei Honda, Nobuko Yoshida, and Marco Carbone. Multiparty asynchronous session types. Journal of the ACM, 63(1):9, 2016. Pierre-Malo Deni´ elou and Nobuko Yoshida. Dynamic multirole session types. In POPL, pages 435–446. ACM Press, 2011. Raymond Hu and Nobuko Yoshida. Explicit connection actions in multiparty session types. In FASE, volume 10202 of LNCS, pages 116–133. Springer, 2017.

24 / 26

slide-114
SLIDE 114

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Related Papers

Kohei Honda, Nobuko Yoshida, and Marco Carbone. Multiparty asynchronous session types. Journal of the ACM, 63(1):9, 2016. Pierre-Malo Deni´ elou and Nobuko Yoshida. Dynamic multirole session types. In POPL, pages 435–446. ACM Press, 2011. Raymond Hu and Nobuko Yoshida. Explicit connection actions in multiparty session types. In FASE, volume 10202 of LNCS, pages 116–133. Springer, 2017. Alceste Scalas, Ornela Dardha, Raymond Hu, and Nobuko

  • Yoshida. A linear decomposition of multiparty sessions for safe

distributed programming. In ECOOP, volume 74 of LIPIcs, pages 24:1–24:31. Schloss Dagstuhl, 2017.

24 / 26

slide-115
SLIDE 115

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Questions

25 / 26

slide-116
SLIDE 116

Motivation Recap of new terminology Calculus Type System Key Properties Conclusion

Thank you

26 / 26