introduction to the cashew s project
play

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


  1. � � � � 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.

  2. � � � � 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 over clock ticks. CaSHew-NUtS extends this concept with the possibility of clocks which do not exhibit maximal progress.

  3. CASheW-s Architecture T y p e c h e c k Language W o r k fl o extensions w CASHeW-s Editor Import XSD Type DB λ types Publish Workflow OWL-S Haskell Evaluator Service Publishing Gateway Evaluate Functions CASheW-s Engine Compiled Workflow Processes p 1 p 2 p 3 SOAP Endpoints

  4. ✁ � ✁ ✁ ✁ � ✁ 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.

  5. � � � 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 on, 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.

  6. � � �

  7. ✆✝ ✞ ✞ ✗ ✡ ✖ ✕ ✂ ✒ ✄ ✑ ✠ ✞ ✡ ✄ ✟ ✠ ✞ ✡ ✍ ✄ ✟✔✓ ✂☎✄ ☛✌☞ ✎✌✏ CProcess (( ( σ m ) )) Sequence ( ( ( σ n 1 ) ) ) a n 1 0 r i a Sched 1 e i p 1 Consumer c n 1 d n 1 t r ( ( ( σ n 2 ) ) ) a n 2 e n 2 t i 0 r Value p 2 Sched 2 e Data c Producer c n 2 t a n 3 a n 3 ( ( ( σ n 3 ) ) ) t i 1 2 r p 3 VC Sched 3 e

  8. ✘ ✘ ✘ ✘ ✘ ✘ OWL-S Process Semantics [[ AtomicProcess m P ]] A m [[ P ]] A C = C [[ CompositeProcess m P G H ]] A C = C ) \ A m ∪ C m / { σ c | c ∈ C } ∅ | [[ H ]] ∅ ( m [[ P ]] A m C m | [[ G ]] A Where m is a process name G is a Consume List p is a process H is a Produce List A is a set of inputs C is a set of outputs

  9. Example Atomic Process Semantics [[ AnAtomicProcess ]] { a 1 ,a 2 } = { c } µX. < a 1 , a 2 > .r.e.τ.c.X a 2 a 1 r a 1 a 2 c τ e

  10. � ✘ Consume Semantics Consume pulls an input which is required to run a process. [[ Consume a n b j ]] { a } = µX.a.b n j .X ∅ a b n j Wires like Consume, patiently wait for input and then insistently output.

  11. ✘ � Produce Semantics Produce pushes an output which has been produced by a process. [[ Produce c n d ]] ∅ { c } = µX.d n .c.X d n c Within CASheW-s, Produce is not a type of performance, rather a type of connection

  12. � Connection Semantics Connect shunts the output of one performance in a composite process, to the input of another. [[ Connect n c o a j ]] = µX.c n .a o j .X c n a o j

  13. � � Composite Process Semantics Defined in terms of a top-level Governor process, Defined in terms of a top-level Governor process, and in the case of unbounded child-performances and in the case of unbounded child-performances an inductively defined context-based composition an inductively defined context-based composition semantics, which pair a Scheduler with the semantics, which pair a Scheduler with the performance semantics. performance semantics. C = m [[ seq Q ]] A C /σ m \ t m [[ Sequence Q ]] A m [[ SplitJoin Q ]] A C = ( m [[ sj Q ]] A C | µX.σ m .r.e.σ m .σ m .X ) / /σ m C = m [[ any Q ]] A C /σ m \ t m [[ AnyOrder Q ]] A

  14. Sequence Semantics Base Case m [[ seq Perform n p U V ]] A C = ( n [[ Perform n p U V ]] A n C n [ e �→ e i , r �→ r i ] | σ m ⌊ t.σ m .X ⌋ σ m ( X )) /σ n \ { r i , e i } µX.r i .r.e.e i .σ n σ m σ m σ m σ m σ m σ n r i e i r e σ m σ m t

  15. Sequential Composition Semantics General Case m [[ seq ( Q ); Perform n p U V ]] A Q ∪ A n C Q ∪ C n = ( n [[ Perform n p U V ]] A n C n [ e �→ e i , r �→ r i ] | m [[ seq Q ]] A Q C Q [ t �→ t i ] | σ m ⌊ t.σ m .X ⌋ σ m ( X )) /σ n \ { r i , e i } µX.t i .r i .e i .σ n σ m σ m σ m t i σ n r i e i σ m σ m t

  16. AnyOrder Composition Semantics Base Case m [[ any Perform n p U V ]] A C = ( m [[ any Perform n p U V ]] A C [ e �→ e i , r �→ r i ] | µX.r i σ m . ( r.e.e i .σ n σ m . ⌊ t.σ m .X ⌋ σ m ( X ) + t.e i .σ n σ m . ⌊ t.σ m .X ⌋ σ m ( X ))) \ { e i , r i } /σ n σ m σ m t σ n r i e i r e σ m σ m σ m t

  17. � AnyOrder Composition Semantics General Case m [[ any ( Q ); Perform n p U V ]] A Q ∪ A n C Q ∪ C n = m [[ any Perform n p U V ]] A n C n | m [[ any Q ]] A Q C Q We use this induction in all cases to define the semantics for the general case where all performances are handled in the same way.

  18. Split/SplitJoin Process Semantics (Governor) m [[ SplitJoin Q ]] A C = ( m [[ sj Q ]] A C | µX.σ m .r.e.σ m .σ m .X ) / /σ m m [[ Split Q ]] A C = ( m [[ split Q ]] A C | µX.σ m .r.e.σ m .σ m .X ) / /σ m σ m r e σ m σ m

  19. SplitJoin Composition Semantics m [[ sj Perform n p U V ]] A C = ( m [[ sj Perform n p U V ]] A C [ e �→ e i , r �→ r i ] | µX.r i σ m .σ m .σ m .e i .σ n σ m .σ m .X ) \ { e i , r i } /σ n σ m σ m σ m r i σ m σ m e i σ m σ n

  20. ✘ Split Composition Semantics m [[ split Perform n p U V ]] A C = ( m [[ split Perform n p U V ]] A C [ e �→ e i , r �→ r i ] | µX.r i σ m .σ m .σ m .e iσ m .σ m .X ) \ { e i , r i } /σ n σ m σ m σ m r i σ m σ m e i σ m Split is our primary motivation for clock ticks not bound by maximal progress

  21. � � � 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.

  22. � � � 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 operational 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.

  23. More to come soon...

  24. Basic CCS Rules α α → E ′ → F ′ E F Sum1 Sum2 Act α α α α.E → E E + F → E ′ E + F → F ′ α → E ′ E α → F ′ F Com1 Com2 → E ′ | F α E | F α E | F → E | F ′ γ a a E → E ′ → E ′ , F → F ′ Com3 E γ / ∈ { a, a } Res → E ′ | F ′ → E ′ \ a γ τ E | F E \ a γ E → E ′ Rec γ µX.E → E ′ { µX.E/X }

Recommend


More recommend