Communicating sequential processes
Communicating sequential processes
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
A formal approach to recovery by compensating transactions
Proceedings of the sixteenth international conference on Very large databases
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
A Process Compensation Language
IFM '00 Proceedings of the Second International Conference on Integrated Formal Methods
Theoretical foundations for compensations in flow composition languages
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Comparing two approaches to compensable flow composition
CONCUR 2005 - Concurrency Theory
Science of Computer Programming - Special issue: Synchronization and concurrency in object-oriented languages
Biological Transactions for Quantitative Models
Electronic Notes in Theoretical Computer Science (ENTCS)
Bridging Java and AspectJ through explicit join points
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Ensuring consistency in long running transactions
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Service Discovery and Negotiation With COWS
Electronic Notes in Theoretical Computer Science (ENTCS)
A Language for Reliable Service Composition
SOFSEM '07 Proceedings of the 33rd conference on Current Trends in Theory and Practice of Computer Science
FORTE '07 Proceedings of the 27th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
Specifying and Verifying Web Transactions
FORTE '08 Proceedings of the 28th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
Event-Based Service Coordination
Concurrency, Graphs and Models
An Observational Model for Transactional Calculus of Services Orchestration
Proceedings of the 5th international colloquium on Theoretical Aspects of Computing
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
The BlenX Language with Biological Transactions
Transactions on Computational Systems Biology IX
Challenges in the Specification of Full Contracts
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
Cooperative aspect-oriented programming
Science of Computer Programming
Specification and Analysis of SOC Systems Using COWS: A Finance Case Study
Electronic Notes in Theoretical Computer Science (ENTCS)
A Process Calculus Analysis of Compensations
Trustworthy Global Computing
Dynamic Recovering of Long Running Transactions
Trustworthy Global Computing
On the Expressive Power of Process Interruption and Compensation
Web Services and Formal Methods
Fault, Compensation and Termination in WS-BPEL 2.0 -- A Comparative Analysis
Web Services and Formal Methods
The VLDB Journal — The International Journal on Very Large Data Bases
On the expressive power of process interruption and compensation
Mathematical Structures in Computer Science
A Symbolic Semantics for a Calculus for Service-Oriented Computing
Electronic Notes in Theoretical Computer Science (ENTCS)
Calculi for Service-Oriented Computing
Formal Methods for Web Services
Towards a RESTful infrastructure for digital ecosystems
Proceedings of the International Conference on Management of Emergent Digital EcoSystems
An approach for business transaction management
Proceedings of the International Conference on Management of Emergent Digital EcoSystems
Dynamic Error Handling in Service Oriented Applications
Fundamenta Informaticae - Application of Concurrency to System Design
Process algebraic support for web service composition
ACM SIGSOFT Software Engineering Notes
A calculus for orchestration of web services
ESOP'07 Proceedings of the 16th European conference on Programming
Verifying compensating transactions
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
UTP semantics for web services
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
COWS: a timed service-oriented calculus
ICTAC'07 Proceedings of the 4th international conference on Theoretical aspects of computing
Algebraic semantics for compensable transactions
ICTAC'07 Proceedings of the 4th international conference on Theoretical aspects of computing
A process-algebraic approach to workflow specification and refinement
SC'07 Proceedings of the 6th international conference on Software composition
A compositional trace semantics for Orc
COORDINATION'08 Proceedings of the 10th international conference on Coordination models and languages
When things go wrong: interrupting conversations
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
The conversation calculus: a model of service-oriented computation
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Transactional service level agreement
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
Formal methods and hybrid real-time systems
Towards compensation correctness in interactive systems
WS-FM'09 Proceedings of the 6th international conference on Web services and formal methods
An extended cCSP with stable failures semantics
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
An accessible verification environment for UML models of services
Journal of Symbolic Computation
Linking denotational semantics with operational semantics for web services
Innovations in Systems and Software Engineering
UTP'08 Proceedings of the 2nd international conference on Unifying theories of programming
Compensation-aware runtime monitoring
RV'10 Proceedings of the First international conference on Runtime verification
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
Failure-divergence refinement of compensating communicating processes
FM'11 Proceedings of the 17th international conference on Formal methods
Core calculi for service-oriented computing
Rigorous software engineering for service-oriented systems
Advanced mechanisms for service combination and transactions
Rigorous software engineering for service-oriented systems
Algebraic approach to linking the semantics of web services
Innovations in Systems and Software Engineering
Choreography and orchestration: a synergic approach for system design
ICSOC'05 Proceedings of the Third international conference on Service-Oriented Computing
Dependability and flexibility centered approach for composite web services modeling
ODBASE'06/OTM'06 Proceedings of the 2006 Confederated international conference on On the Move to Meaningful Internet Systems: CoopIS, DOA, GADA, and ODBASE - Volume Part I
Foundations of web transactions
FOSSACS'05 Proceedings of the 8th international conference on Foundations of Software Science and Computation Structures
Executable semantics for compensating CSP
EPEW'05/WS-FM'05 Proceedings of the 2005 international conference on European Performance Engineering, and Web Services and Formal Methods, international conference on Formal Techniques for Computer Systems and Business Processes
From theory to practice in transactional composition of web services
EPEW'05/WS-FM'05 Proceedings of the 2005 international conference on European Performance Engineering, and Web Services and Formal Methods, international conference on Formal Techniques for Computer Systems and Business Processes
Towards a unifying theory for web services composition
WS-FM'06 Proceedings of the Third international conference on Web Services and Formal Methods
Dependable Systems
On the expressive power of primitives for compensation handling
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
A new strategy for distributed compensations with interruption in long-running transactions
WADT'10 Proceedings of the 20th international conference on Recent Trends in Algebraic Development Techniques
A metamodelling approach to behavioural modelling
Proceedings of the Fourth Workshop on Behaviour Modelling - Foundations and Applications
Failure-divergence semantics and refinement of long running transactions
Theoretical Computer Science
Model checking inconsistency recovery costs
ICSOC'11 Proceedings of the 2011 international conference on Service-Oriented Computing
Dynamic Error Handling in Service Oriented Applications
Fundamenta Informaticae - Application of Concurrency to System Design
First-Order dynamic logic for compensable processes
COORDINATION'12 Proceedings of the 14th international conference on Coordination Models and Languages
The rely/guarantee approach to verifying concurrent BPEL programs
SEFM'12 Proceedings of the 10th international conference on Software Engineering and Formal Methods
Safer asynchronous runtime monitoring using compensations
Formal Methods in System Design
Concurrent flexible reversibility
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Recovery within long-running transactions
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
A long-running transaction is an interactive component of a distributed system which must be executed as if it were a single atomic action. In principle, it should not be interrupted or fail in the middle, and it must not be interleaved with other atomic actions of other concurrently executing components of the system. In practice, the illusion of atomicity for a long-running transaction is achieved with the aid of compensation actions supplied by the original programmer: because the transaction is interactive, familiar automatic techniques of check-pointing and rollback are no longer adequate. This paper constructs a model of long-running transactions within the framework of the CSP process algebra, showing how the compensations are orchestrated to achieve the illusion of atomicity. It introduces a method for declaring that a process is a transaction, and for declaring a compensation for it in case it needs to be rolled back after it has committed. The familiar operator of sequential composition is redefined to ensure that all necessary compensations will be called in the right order if a later failure makes this necessary. The techniques are designed to work well in a highly concurrent and distributed setting. In addition we define an angelic choice operation, implemented by speculative execution of alternatives; its judicious use can improve responsiveness of a system in the face of the unpredictable latencies of remote communication. Many of the familiar properties of process algebra are preserved by these new definitions, on reasonable assumptions of the correctness and independence of the programmer-declared compensations.