Introduction to the CASheW-s Project Our main objective is to - - PowerPoint PPT Presentation

introduction to the cashew s project
SMART_READER_LITE
LIVE PREVIEW

Introduction to the CASheW-s Project Our main objective is to - - PowerPoint PPT Presentation

Introduction to the CASheW-s Project Our main objective is to develop a more generic approach to Web-Service composition. Therefore we are investigating the use of a timed process calculus to provide compositional behavioural


slide-1
SLIDE 1
slide-2
SLIDE 2

Introduction to the CASheW-s Project

  • Our main objective is to develop a more generic

approach to Web-Service composition.

  • Therefore we are investigating the use of a timed

process calculus to provide compositional behavioural semantics for workflows.

  • The culmination of this will be a workflow

engine,which will first be able to orchestrate OWL-S workflows.

  • In this presentation we look at the operational

semantics for OWL-S, and our approach to building them.

slide-3
SLIDE 3

CaSHew-NUtS

  • A conservative extension of the timed process

calculus CaSE, which itself is a conservative extension of Milner's CCS.

  • Extends CCS with the notion of abstract clocks,

which facilitate multi-party synchronization.

  • In CaSE, clocks are bound by maximal progress,

meaning silent actions always take precedence

  • ver clock ticks.
  • CaSHew-NUtS extends this concept with the

possibility of clocks which do not exhibit maximal progress.

slide-4
SLIDE 4

CASheW-s Architecture

CASHeW-s Editor T y p e c h e c k W

  • r

k fl

  • w

Evaluate Functions Publish Workflow

λ

Haskell Evaluator Service XSD Type DB SOAP Endpoints OWL-S Publishing Gateway CASheW-s Engine

p1 p2 p3

Language extensions Import types Compiled Workflow Processes

slide-5
SLIDE 5
slide-6
SLIDE 6

CASheW-s Syntax

  • Problems with OWL-S Syntax

Incoming dataflow tied to Performance restricting further composition.

Fine for persistence/communication, but doesn't represent the composition of a system.

Uncomfortable notion of Produce tied to dummy variable TheParentPerform.

  • CASheW-s syntax

More open to composition.

Allows compositional translation from OWL-S syntax.

slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9

Orchestration Channels

  • r is the ready to execute channel, which a process

uses to indicate that it has no further execution pre-

  • conditions. (Something the informal semantics rely
  • n, but no-one else has formalised).
  • e is the permission to execute channel, which a

process must receive input on before it can begin executing.

  • t signifies the token, which signifies permission to

execute for each of the process's child performances (in a similar fashion to a token ring network). Different token passing games facilitate performance serialization.

slide-10
SLIDE 10
slide-11
SLIDE 11
slide-12
SLIDE 12 ✂☎✄ ✆✝ ✄ ✞ ✟ ✠ ✡ ☛✌☞ ✄ ✍ ✡ ✞ ✞ ✎✌✏ ✑ ✄ ✒ ✠ ✟✔✓ ✂ ✕ ✖ ✡ ✗ ✞

(((σm))) Sequence

Sched1 Sched2 Sched3 ri ei e

(((σn1))) (((σn2))) (((σn3)))

r t ti t ti r e e r Consumer Producer a c

CProcess

cn1 dn1 an1

p2

Value Data

n2

an2 cn2 VC

p3

an3

2

an3

1

p1

slide-13
SLIDE 13

OWL-S Process Semantics

Where

G is a Consume List

H is a Produce List

m is a process name

p is a process

A is a set of inputs

C is a set of outputs

[[AtomicProcess m P]]A

C = m[[P]]A C

[[CompositeProcess m P G H]]A

C =

(m[[P]]Am

Cm | [[G]]A ∅ | [[H]]∅ C) \ Am ∪ Cm/{σc | c ∈ C}

slide-14
SLIDE 14

Example Atomic Process Semantics

[[AnAtomicProcess]]{a1,a2}

{c}

= µX. < a1, a2 > .r.e.τ.c.X

a1 a2 r e τ c a2 a1

slide-15
SLIDE 15

Consume Semantics

bn

j

a

Wires like Consume, patiently wait for input and then insistently output.

  • Consume pulls an input which is required to run a

process.

[[Consume a n b j]]{a}

= µX.a.bn

j .X

slide-16
SLIDE 16

Produce Semantics

c dn

  • Produce pushes an output which has been

produced by a process.

Within CASheW-s, Produce is not a type of performance, rather a type of connection

[[Produce c n d]]∅

{c} = µX.dn.c.X

slide-17
SLIDE 17

Connection Semantics

  • Connect shunts the output of one performance in a

composite process, to the input of another.

ao

j

cn

[[Connect n c o a j]] = µX.cn.ao

j.X

slide-18
SLIDE 18

Composite Process Semantics

  • Defined in terms of a top-level Governor process,

and in the case of unbounded child-performances an inductively defined context-based composition semantics, which pair a Scheduler with the performance semantics.

  • Defined in terms of a top-level Governor process,

and in the case of unbounded child-performances an inductively defined context-based composition semantics, which pair a Scheduler with the performance semantics.

m[[Sequence Q]]A C =m [[seqQ]]A C/σm \ t m[[SplitJoin Q]]A C = (m[[sjQ]]A C | µX.σm.r.e.σm.σm.X)/

/σm

m[[AnyOrder Q]]A C =m [[anyQ]]A C/σm \ t

slide-19
SLIDE 19

Sequence Semantics Base Case

ri σm r e ei σn σm σm t σm σm σm σm

m[[seqPerform n p U V ]]A C =

(n[[Perform n p U V ]]An

Cn[e → ei, r → ri] |

µX.ri.r.e.ei.σn

σm⌊t.σm.X⌋σm(X))/σn \ {ri, ei}

slide-20
SLIDE 20

Sequential Composition Semantics General Case

ri ei σn σm σm t σm σm σm ti

m[[seq(Q); Perform n p U V ]]AQ∪An CQ∪Cn =

(n[[Perform n p U V ]]An

Cn[e → ei, r → ri] | m[[seqQ]]AQ CQ[t → ti] |

µX.ti.ri.ei.σn

σm⌊t.σm.X⌋σm(X))/σn \ {ri, ei}

slide-21
SLIDE 21

AnyOrder Composition Semantics Base Case

ri ei σn σm σm t σm σm σm e r t

m[[anyPerform n p U V ]]A C =

(m[[anyPerform n p U V ]]A

C[e → ei, r → ri] |

µX.ri

σm.(r.e.ei.σn σm.⌊t.σm.X⌋σm(X) +

t.ei.σn

σm.⌊t.σm.X⌋σm(X))) \ {ei, ri}/σn

slide-22
SLIDE 22

AnyOrder Composition Semantics General Case

  • We use this induction in all cases to define the

semantics for the general case where all performances are handled in the same way.

m[[any(Q); Perform n p U V ]]AQ∪An CQ∪Cn = m[[anyPerform n p U V ]]An Cn | m[[anyQ]]AQ CQ

slide-23
SLIDE 23

Split/SplitJoin Process Semantics (Governor) σm r e σm σm

m[[SplitJoin Q]]A C = (m[[sjQ]]A C | µX.σm.r.e.σm.σm.X)/

/σm

m[[Split Q]]A C = (m[[splitQ]]A C | µX.σm.r.e.σm.σm.X)/

/σm

slide-24
SLIDE 24

SplitJoin Composition Semantics

σm σm σm σn ri σm ei σm σm

m[[sjPerform n p U V ]]A C =

(m[[sjPerform n p U V ]]A

C[e → ei, r → ri] |

µX.ri

σm.σm.σm.ei.σn σm.σm.X) \ {ei, ri}/σn

slide-25
SLIDE 25

Split Composition Semantics

σm σm σm ri σm ei σm σm

Split is our primary motivation for clock ticks not bound by maximal progress

m[[splitPerform n p U V ]]A C =

(m[[splitPerform n p U V ]]A

C[e → ei, r → ri] |

µX.ri

σm.σm.σm.eiσm.σm.X) \ {ei, ri}/σn

slide-26
SLIDE 26

Next Step : Haskell Implementation

  • We already have an implementation of the

CaSHew-NUtS Process Calculus in Haskell, the next step is to define semantics for mapping OWL-S to this representation.

  • The Haskell implementation allows the calculus

to be grounded in IO operations, enabling Web- Service invocation.

  • This can then be combined with our HAIFA

interoperability kit to enable orchestration.

slide-27
SLIDE 27

Conclusion

  • We have presented a timed process calculus

semantics for OWL-S, which we will shortly be using to build an orchestration engine.

  • We predict that this approach to providing
  • perational semantics can be applied to other

work-flow languages, allowing a single engine to be able handle heterogeneous orchestration.

  • All of this will be combined with the safety of

Haskell, to build reliable, predictable workflows.

slide-28
SLIDE 28
slide-29
SLIDE 29

More to come soon...

slide-30
SLIDE 30

Basic CCS Rules

Act α.E

α

→ E Sum1 E

α

→ E′ E + F

α

→ E′ Sum2 F

α

→ F ′ E + F

α

→ F ′ Com1 E

α

→ E′ E | F

α

→ E′ | F Com2 F

α

→ F ′ E | F

α

→ E | F ′ Com3 E

a

→ E′, F

a

→ F ′ E | F

τ

→ E′ | F ′ Res E

γ

→ E′ E \ a

γ

→ E′ \ a γ / ∈ {a, a} Rec E

γ

→ E′ µX.E

γ

→ E′{µX.E/X}

slide-31
SLIDE 31
slide-32
SLIDE 32
slide-33
SLIDE 33
slide-34
SLIDE 34
slide-35
SLIDE 35