Compensable programs offer a convenient paradigm to deal with long-running transactions, because they offer a structured and modular approach to the composition of distributed transactional activities, like services. The basic idea is that each activity has its own compensation and that the compensable program fixes the order of execution of such activities. The main problem is how to guarantee that if one or even many faults occur then the compensations are properly executed so to reach a consistent configuration of the system. We propose a formal model for such problems based on a concurrent extension of dynamic logic that allows us to distill the hypothesis under which the correctness of compensable programs can be ensured. The main result establishes that if basic activities have a correct compensation we can show the correctness of any compound compensable program. Moreover, we can use dynamic logic to reason about behavioural and transactional properties of programs.
|Title of host publication||Lecture Notes in Computer Science|
|Publication status||Published - 1 Jan 2012|
|Event||International Conference on Coordination Models and Languages - |
Duration: 1 Jan 2012 → …
|Conference||International Conference on Coordination Models and Languages|
|Period||1/01/12 → …|