A Compositional Trace Semantics for Orc Dimitrios Vardoulakis and - - PowerPoint PPT Presentation

a compositional trace semantics for orc
SMART_READER_LITE
LIVE PREVIEW

A Compositional Trace Semantics for Orc Dimitrios Vardoulakis and - - PowerPoint PPT Presentation

A Compositional Trace Semantics for Orc Dimitrios Vardoulakis and Mitchell Wand College of Computer and Information Science Northeastern University Overview of Orc Sites: autonomous computing units that do arithmetic, printing etc


slide-1
SLIDE 1

A Compositional Trace Semantics for Orc

Dimitrios Vardoulakis and Mitchell Wand

College of Computer and Information Science Northeastern University

slide-2
SLIDE 2

BPESO/CSCW A compositional trace semantics for Orc 2

Overview of Orc

Sites: autonomous computing units that do

arithmetic, printing etc

Operators to combine the executions of sites

e.g. parallel composition

Recursive declarations to express non-

terminating processes

can encode many popular concurrent programming patterns

slide-3
SLIDE 3

BPESO/CSCW A compositional trace semantics for Orc 3

Overview of Orc

The simplest Orc process is a site call:

Factorize(N) Reddit(Oct’20)

slide-4
SLIDE 4

BPESO/CSCW A compositional trace semantics for Orc 4

Overview of Orc

Symmetric Composition (f | g) : evaluate

f and g in parallel, no interaction between them

Factorize(N) | Reddit(Oct’20)

slide-5
SLIDE 5

BPESO/CSCW A compositional trace semantics for Orc 5

Overview of Orc

Sequencing (f >x> g) : evaluate f, when it

publishes spawn a new instance of g in parallel

(Factorize(N) | Reddit(Oct'20)) >x> Print(x)

slide-6
SLIDE 6

BPESO/CSCW A compositional trace semantics for Orc 6

Overview of Orc

Asymmetric Composition (f where x:Є g):

evaluate f and g in parallel, when g publishes it sends the value to f and terminates

Print(x) where x:Є (Factorize(N)|Reddit(Oct'20))

slide-7
SLIDE 7

BPESO/CSCW A compositional trace semantics for Orc 7

Overview of Orc

Recursive Declarations (Ei(x) = fi) : We

can express processes that don’t terminate

We define: DOS(x) = Ping(x) | DOS(x) And then call: DOS(ip)

slide-8
SLIDE 8

BPESO/CSCW A compositional trace semantics for Orc 8

Syntax and Operational Semantics

slide-9
SLIDE 9

BPESO/CSCW A compositional trace semantics for Orc 9

Syntax

Program Expression Actual Parameter Declaration

P ::= D1,…,Dk in e e ::= 0 | M(p) | let(p) | Ei(p) | (e1|e2) | e1 >x> e2 | e1 where x:Є e2 p ::= x | v Di ::= Ei(x) = e

slide-10
SLIDE 10

BPESO/CSCW A compositional trace semantics for Orc 10

Operational Semantics

Labeled transitions

slide-11
SLIDE 11

BPESO/CSCW A compositional trace semantics for Orc 11

Operational Semantics

slide-12
SLIDE 12

BPESO/CSCW A compositional trace semantics for Orc 12

Operational Semantics

slide-13
SLIDE 13

BPESO/CSCW A compositional trace semantics for Orc 13

Operational Semantics

slide-14
SLIDE 14

BPESO/CSCW A compositional trace semantics for Orc 14

Operational Semantics

slide-15
SLIDE 15

BPESO/CSCW A compositional trace semantics for Orc 15

Operational Semantics

slide-16
SLIDE 16

BPESO/CSCW A compositional trace semantics for Orc 16

Operational Semantics

slide-17
SLIDE 17

BPESO/CSCW A compositional trace semantics for Orc 17

More examples: Fork-join Parallelism

Launch two threads and wait for both to

complete before you proceed

(let(x,y) where x:Є M(v1)) where y:Є N(v2)

slide-18
SLIDE 18

BPESO/CSCW A compositional trace semantics for Orc 18

More examples: Parallel-or

Call M and N in parallel, if one replies “true”

don’t wait for the other to reply

((let(z) where z:Є ift(x)|ift(y)|or(x,y) where x:Є M(v1)) where y:Є N(v2))

slide-19
SLIDE 19

BPESO/CSCW A compositional trace semantics for Orc 19

Denotational Semantics

slide-20
SLIDE 20

BPESO/CSCW A compositional trace semantics for Orc 20

Denotational Semantics

Trace Semantics Based on complete partial orders

slide-21
SLIDE 21

BPESO/CSCW A compositional trace semantics for Orc 21

Denotational Semantics

([2/x] !2) is a possible trace of let(x) (!3 !5) and (!5 !3) are possible traces of (let(3) |

let(5))

(let(x) | let(7)) where x:Є let(2)

In a trace of (let(x) | let(7)), how do we know if let(7) publishes before let(2) sends a value?

slide-22
SLIDE 22

BPESO/CSCW A compositional trace semantics for Orc 22

Denotational Semantics

Receive events show what part of the trace is independent of

some variable! e.g. ([2/x] !2 !7) and (!7 [2/x] !2) are possible traces

  • f (let(x) | let(7))

!7 is independent of [2/x] because it can happen before [2/x] Then, (τ !2 !7) and (!7 τ !2) are possible traces of (let(x)|let(7)) where x:Є let(2) but not (!7 !2 τ)

slide-23
SLIDE 23

BPESO/CSCW A compositional trace semantics for Orc 23

Denotational Semantics

We do not need this information in (let(2) >x> (let(x) | let(7)) because when the right hand side is launched, x always has a value Then, do we put the receive event in the traces of let(x) or not? Two kinds of bindings for variables in the environment

slide-24
SLIDE 24

BPESO/CSCW A compositional trace semantics for Orc 24

Denotational Semantics

slide-25
SLIDE 25

BPESO/CSCW A compositional trace semantics for Orc 25

Denotational Semantics

slide-26
SLIDE 26

BPESO/CSCW A compositional trace semantics for Orc 26

Denotational Semantics

slide-27
SLIDE 27

BPESO/CSCW A compositional trace semantics for Orc 27

Denotational Semantics

slide-28
SLIDE 28

BPESO/CSCW A compositional trace semantics for Orc 28

Denotational Semantics

slide-29
SLIDE 29

BPESO/CSCW A compositional trace semantics for Orc 29

Denotational Semantics

slide-30
SLIDE 30

BPESO/CSCW A compositional trace semantics for Orc 30

Semantic Properties

Continuity of the meaning functions Prefix-closure of the trace sets Adequacy:

slide-31
SLIDE 31

BPESO/CSCW A compositional trace semantics for Orc 31

What to remember about Orc

Abstracts computation away, focuses on

communication

Small but expressive Interesting theoretical properties

slide-32
SLIDE 32

BPESO/CSCW A compositional trace semantics for Orc 32

Related Work

Kitchin, Cook and Misra. “A language for task

  • rchestration and its semantic properties”, CONCUR

(2006)

van der Aalst et al. “Workflow Patterns”, Distributed

and Parallel Databases 14(1): 5-51 (2003)

Cook, Patwardhan and Misra. “Workflow patterns in

Orc”, COORD (2006)

Misra and Cook. “Computation Orchestration: a basis

for wide-area computing”, Software and Systems Modeling, 6(1): 83-110 (2007)

slide-33
SLIDE 33

BPESO/CSCW A compositional trace semantics for Orc 33

A peek at what follows

Proved useful congruences between Orc

processes using strong bisimulation

Created semantics insensitive to internal

events, we can equate more processes More info: http://www.ccs.neu.edu/home/dimvar

slide-34
SLIDE 34

BPESO/CSCW A compositional trace semantics for Orc 34