Tools

"... We introduce COWS (Calculus for Orchestration of Web Services), a new foundational language for SOC whose design has been inﬂuenced by WS-BPEL, the de facto standard language for orchestration of web services.
COWS combines in an original way a number of ingredients borrowed from well-known process ..."

We introduce COWS (Calculus for Orchestration of Web Services), a new foundational language for SOC whose design has been inﬂuenced by WS-BPEL, the de facto standard language for orchestration of web services.
COWS combines in an original way a number of ingredients borrowed from well-known process calculi, e.g. asynchronous communication, polyadic synchroniza-tion, pattern matching, protection, delimited receiving and killing activities, while resulting diﬀerent from any of them. Several examples illustrates COWS peculiarities and show its expressiveness both for modelling imperative and orchestration constructs, e.g. web services, ﬂow graphs, fault and compensation handlers, and for encoding other process and orchestration languages.

...e we also show many illustrative examples. Section 3 presents the encodings of several imperative and orchestration constructs, while Section 4 presents the encoding of the orchestration language Orc =-=[28]-=-. Finally, Section 5 touches upon comparisons with related work and directions for future work. 2 COWS: Calculus for Orchestration of Web Services The basic elements of COWS are partners and operation...

"... Abstract. We seek for a small set of primitives that might serve as a basis for formalizing and programming service oriented applications over global computers. As an outcome of this study we introduce here SCC, a process calculus that features explicit notions of service definition, service invocat ..."

Abstract. We seek for a small set of primitives that might serve as a basis for formalizing and programming service oriented applications over global computers. As an outcome of this study we introduce here SCC, a process calculus that features explicit notions of service definition, service invocation and session handling. Our proposal has been influenced by Orc, a programming model for structured orchestration of services, but SCC’s session handling mechanism allows for the definition of structured interaction protocols, more complex than the basic request-response provided by Orc. We present syntax and operational semantics of SCC and a number of simple but nontrivial programming examples that demonstrate flexibility of the chosen set of primitives. A few encodings are also provided that relates our proposal with existing ones. 1

...ervice composition patterns. A library of basic patterns, called the workflow patterns, has been identified by van der Aalst et al. in [14]. It will be shown in section 4 that full SCC can encode Orc =-=[12]-=-, a script language for service orchestration that has been already shown to model the workflow patterns [7]. Example 1 (Functional flavour). A simple example of service invocation is s{(x)(y)return y...

by
David Kitchin, William R. Cook, Jayadev Misra
- In Proceedings of Concur’06, 2006

"... Abstract. Orc is a new language for task orchestration, a form of concurrent programming with applications in workflow, business process management, and web service orchestration. Orc provides constructs to orchestrate the concurrent invocation of services – while managing timeouts, priorities, and ..."

Abstract. Orc is a new language for task orchestration, a form of concurrent programming with applications in workflow, business process management, and web service orchestration. Orc provides constructs to orchestrate the concurrent invocation of services – while managing timeouts, priorities, and failure of services or communication. In this paper, we show a trace-based semantic model for Orc, which induces a congruence on Orc programs and facilitates reasoning about them. Despite the simplicity of the language and its semantic model, Orc is able to express a variety of useful orchestration tasks. 1

...siness workflows are naturally expressed as orchestrations [1]. We illustrate the use of Orc in implementing some traditional concurrent computation patterns; larger examples have also been developed =-=[2, 3]-=-. Orc has also been used to study service-level agreements for composite web services [4]. The goal of this work is to develop a language based on a simple trace semantics that can still express, and ...

"... Abstract. Service-oriented computing is calling for novel computational mod-els and languages with primitives for client-server interaction, orchestration and unexpected events handling. We present CaSPiS, a process calculus where the no-tions of session and pipelining play a central role. Sessions ..."

Abstract. Service-oriented computing is calling for novel computational mod-els and languages with primitives for client-server interaction, orchestration and unexpected events handling. We present CaSPiS, a process calculus where the no-tions of session and pipelining play a central role. Sessions are two-sided and can be equipped with protocols executed by each side. Pipelining permits orchestrat-ing the flow of data produced by different sessions. The calculus is also equipped with operators for handling (unexpected) termination of the partner’s side of a session. Several examples are presented to provide evidence for the flexibility of the chosen set of primitives. Our main result shows that in CaSPiS it is possible to program a “graceful termination ” of nested sessions, which guarantees that no session is forced to hang forever after the loss of its partner. 1

...stract, alternative solution w.r.t. the W3C proposal of correlation sets. Here we use a name-scoping mechanism à la π-calculus to handle sessions. Pipelines have been inspired by Cook and Misra’s Orc =-=[22]-=-, a basic and elegant programming model for structured orchestration of services. In this light, they are seen as a convenient mechanism for modeling the flow of data between local processes: it is mo...

"... Abstract—Service level agreements (SLAs), or contracts, have an important role in Web services. These contracts define the obligations and rights between the provider of a Web service and its client, with respect to the function and the Quality of Service (QoS). For composite services like orchestra ..."

Abstract—Service level agreements (SLAs), or contracts, have an important role in Web services. These contracts define the obligations and rights between the provider of a Web service and its client, with respect to the function and the Quality of Service (QoS). For composite services like orchestrations, such contracts are deduced by a process called QoS contract composition, based on contracts established between the orchestration and the called Web services. These contracts are typically stated in the form of hard guarantees (e.g., response time always less than 5 msec). Using hard bounds is not realistic, however, and more statistical approaches are needed. In this paper, we propose using soft probabilistic contracts instead, which consist of a probability distribution for the considered QoS parameter—in this paper, we focus on timing. We show how to compose such contracts to yield a global probabilistic contract for the orchestration. Our approach is implemented by the TOrQuE tool. Experiments on TOrQuE show that overly pessimistic contracts can be avoided and significant room for safe overbooking exists. An essential component of SLA management is then the continuous monitoring of the performance of called Web services to check for violations of the agreed SLA. We propose a statistical technique for runtime monitoring of soft contracts.

...nal aspects of contracts [34], as well as techniques for workflow mining from logs [32]. Besides BPEL, the ORC formalism has been proposed to specify orchestrations, by W. Cook and J. Misra at Austin =-=[23]-=-. ORC is a simple and clean academic language for orchestrations with a rigorous mathematical semantics. For this reason, our study in this paper relies on ORC. Its conclusions and approaches, however...

by
Lucia Acciai, Michele Boreale
- In Proc. of Concurrency, Graphs and Models: Essays Dedicated to Ugo Montanari on the Occasion of His 65th Birthday, volume 5065 of LNCS, 2008

"... Abstract. We introduce a type system providing a guarantee of client progress for a fragment of CaSPiS, a recently proposed process calculus for serviceoriented applications. The interplay of sessioning and data-orchestration primitives makes the design of a type system for CaSPiS challenging. Our m ..."

Abstract. We introduce a type system providing a guarantee of client progress for a fragment of CaSPiS, a recently proposed process calculus for serviceoriented applications. The interplay of sessioning and data-orchestration primitives makes the design of a type system for CaSPiS challenging. Our main result states that in a well-typed CaSPiS system, and in absence of divergence, any client invoking a service is guaranteed not to get stuck during the execution of a conversation protocol because of inadequate service communication capabilities.

...(Calculus of Sessions and Pipelines, [2]) is a language currently being considered in SENSORIA as a candidate core calculus for SOC programming. CaSPiS design, influenced both by Cook and Misra’s Orc =-=[8]-=- and by the pi-calculus [16], is centered around the notions of session and of pipeline. In CaSPiS, these concepts, and the related programming primitives, are viewed as natural tools for structuring ...

"... Orc was originally presented as a process calculus. It has now evolved into a full programming language, which we describe in this paper. The language has the structure and feel of a functional programming language, yet it handles many non-functional aspects effectively, including spawning of conc ..."

Orc was originally presented as a process calculus. It has now evolved into a full programming language, which we describe in this paper. The language has the structure and feel of a functional programming language, yet it handles many non-functional aspects effectively, including spawning of concurrent threads, time-outs and mutable state. We first describe the original concurrency combinators of the process calculus. Next we describe a small functional programming language that forms the core language. Then we show how the concurrency combinators of the process calculus and the functional core language are integrated seamlessly. The resulting language and its supporting libraries have proven very effective in describing typical concurrent computations; we demonstrate how several practical concurrent programming problems are easily solved in Orc.

Abstract We present behavioural skeletons for the CoreGRID Component Model, which are an abstraction aimed at simplifying the development of GCM-based selfmanagement applications. Behavioural skeletons abstract component self-managent in component-based design as design patterns abstract class design in classic OO development. As here we just wish to introduce the behavioural skeleton framework, emphasis is placed on general skeleton structure rather than on their autonomic management policies.

...al behaviour are interesting related topics, which are the subject of ongoing research but outside the scope of the present work. 6.1 The Orc notation The orchestration language Orc of Misra and Cook =-=[14]-=- is targeted at the description of systems where the challenge lies in organising a set of computations, rather than in the computations themselves. Orc has, as primitive, the notion of a site call, w...

... services as building blocks to accomplish complex tasks. This paper proposes SSCC (Stream-based Service Centered Calculus), a calculus for modeling service-based systems, inspired by SCC [5] and Orc =-=[17, 22]-=-. The calculus provides primitives for service definition and invocation by simply composing a service name with an arbitrary process describing the service protocol. In order to isolate conversations...