1,058 research outputs found
Recovery within long running transactions
As computer systems continue to grow in complexity, the possibilities of failure increase. At the
same time, the increase in computer system pervasiveness in day-to-day activities brought along
increased expectations on their reliability. This has led to the need for effective and automatic error
recovery techniques to resolve failures. Transactions enable the handling of failure propagation
over concurrent systems due to dependencies, restoring the system to the point before the failure
occurred. However, in various settings, especially when interacting with the real world, reversal
is not possible. The notion of compensations has been long advocated as a way of addressing this
issue, through the specification of activities which can be executed to undo partial transactions.
Still, there is no accepted standard theory; the literature offers a plethora of distinct formalisms
and approaches.
In this survey, we review the compensations from a theoretical point of view by: (i) giving a
historic account of the evolution of compensating transactions; (ii) delineating and describing a
number of design options involved; (iii) presenting a number of formalisms found in the literature,
exposing similarities and differences; (iv) comparing formal notions of compensation correctness;
(v) giving insights regarding the application of compensations in practice; and (vi) discussing
current and future research trends in the area.peer-reviewe
LTS Semantics for Compensation-based Processes
Business processes design is an error-prone task often relying on long-running transactions with compensations. Unambiguous formal semantics and flexible verification tools should be used for early validation of processes. To this aim, we define a small-step semantics for the Sagas calculus according to the so-called coordinated interruption policy. We show that it can be tuned via small changes to deal with other compensation policies and discuss possible enhancements
A compensating transaction example in twelve notations
The scenario of business computer systems changed with the advent of cross-entity computer interactions: computer systems no longer had the limited role of storing and processing data, but became themselves the players which actuated real-life actions. These advancements rendered the traditional transaction mechanism insufficient to deal with these new complexities of longer multi-party transactions. The concept of compensations has long been suggested as a solution, providing the possibility of executing “counter”-actions which semantically undo previously completed actions in case a transaction fails. There are numerous design options related to compensations particularly when deciding the strategy of ordering compensating actions. Along the years, various models which include compensations have emerged, each tackling in its own way these options. In this work, we review a number of notations which handle compensations by going through their syntax and semantics — highlighting the distinguishing features — and encoding a typical compensating transaction example in terms of each of these notations.peer-reviewe
Compensations in an imperative programming language
Numerous mechanisms are used to deal with failure of sys- tems or processes, one of which is that of compensating ac- tions. A compensation can be seen as a program which somehow cancels out the effects of another — and by or- ganising code in such a way so as to associate each program with its compensation, enables implicit recovery to a sane state if part of a computation somehow fails. In this paper we present an imperative programming language natively supporting the notion of compensations, thus enabling the programmer to program using a notion of compensations at the source level of the system under development.peer-reviewe
A Calculus for Orchestration of Web Services
We introduce COWS (Calculus for Orchestration of Web Services), a new foundational language for SOC whose design has been influenced 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 synchronization, pattern matching, protection, delimited receiving and killing activities, while resulting different from any of them. Several examples illustrates COWS peculiarities and show its expressiveness both for modelling imperative and orchestration constructs, e.g. web services, flow graphs, fault and compensation handlers, and for encoding other process and orchestration languages
Employee Compensation: Research and Practice
[Excerpt] An organization has the potential to remain viable only so long as its members choose to participate and engage in necessary role behaviors (March & Simon, 1958; Katz & Kahn, 1966). To elicit these contributions, an organization must provide inducements that are of value to its members. This exchange or transaction process is at the core of the employment relationship and can be viewed as a type of contract, explicit or implicit, that imposes reciprocal obligations on the parties (Barnard, 1936; Simon, 1951; Williamson, 1975; Rousseau, 1990). At the heart of that exchange are decisions by employers and employees regarding compensation
Static vs Dynamic SAGAs
SAGAs calculi (or simply SAGAs) have been proposed by Bruni et al. as a model for long-running transactions. The approach therein can be considered static, while a dynamic approach has been proposed by Lanese and Zavattaro. In this paper we first extend both static SAGAs (in the centralized interruption policy) and dynamic SAGAs to deal with nesting, then we compare the two approaches
Space as an invention of biological organisms
The question of the nature of space around us has occupied thinkers since the
dawn of humanity, with scientists and philosophers today implicitly assuming
that space is something that exists objectively. Here we show that this does
not have to be the case: the notion of space could emerge when biological
organisms seek an economic representation of their sensorimotor flow. The
emergence of spatial notions does not necessitate the existence of real
physical space, but only requires the presence of sensorimotor invariants
called `compensable' sensory changes. We show mathematically and then in
simulations that na\"ive agents making no assumptions about the existence of
space are able to learn these invariants and to build the abstract notion that
physicists call rigid displacement, which is independent of what is being
displaced. Rigid displacements may underly perception of space as an unchanging
medium within which objects are described by their relative positions. Our
findings suggest that the question of the nature of space, currently exclusive
to philosophy and physics, should also be addressed from the standpoint of
neuroscience and artificial intelligence
Regulating Data Exchange in Service Oriented Applications
We define a type system for COWS, a formalism for specifying and combining services, while modelling their dynamic behaviour. Our types permit to express policies constraining data exchanges in terms of sets of service partner names attachable to each single datum. Service programmers explicitly write only the annotations necessary to specify the wanted policies for communicable data, while a type inference system (statically) derives the minimal additional annotations that ensure consistency of services initial configuration. Then, the language dynamic semantics only performs very simple checks to authorize or block communication. We prove that the type system and the operational semantics are sound. As a consequence, we have the following data protection property: services always comply with the policies regulating the exchange of data among interacting services. We illustrate our approach through a simplified but realistic scenario for a service-based electronic marketplace
- …