Skip to main content

On the Expressive Power of Primitives for Compensation Handling

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 6012)

Abstract

Modern software systems have frequently to face unexpected events, reacting so to reach a consistent state. In the field of concurrent and mobile systems (e.g., for web services) the problem is usually tackled using long running transactions and compensations: activities programmed to recover partial executions of long running transactions.

We compare the expressive power of different approaches to the specification of those compensations. We consider (i) static recovery, where the compensation is statically defined together with the transaction, (ii) parallel recovery, where the compensation is dynamically built as parallel composition of compensation elements and (iii) general dynamic recovery, where more refined ways of composing compensation elements are provided. We define an encoding of parallel recovery into static recovery enjoying nice compositionality properties, showing that the two approaches have the same expressive power. We also show that no such encoding of general dynamic recovery into static recovery is possible, i.e. general dynamic recovery is strictly more expressive.

Keywords

  • Operational Semantic
  • Expressive Power
  • Parallel Composition
  • Label Transition System
  • Static Recovery

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Research supported by the Project FET-GC II IST-2005-16004 Sensoria, FP7-231620 HATS and by FCT grant SFRH/BD/45572/2008.

References

  1. Oasis: Web Services Business Process Execution Language Version 2.0 (2007), http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html

  2. Milner, R., Parrow, J., Walker, J.: A calculus of mobile processes, I and II. Inf. Comput. 100(1), 1–40, 41–77 (1992)

    MATH  CrossRef  MathSciNet  Google Scholar 

  3. Bocchi, L., Laneve, C., Zavattaro, G.: A calculus for long-running transactions. In: Najm, E., Nestmann, U., Stevens, P. (eds.) FMOODS 2003. LNCS, vol. 2884, pp. 124–138. Springer, Heidelberg (2003)

    Google Scholar 

  4. Bruni, R., Melgratti, H., Montanari, U.: Nested commits for mobile calculi: Extending join. In: Proc. of IFIP TCS 2004, pp. 563–576. Kluwer, Dordrecht (2004)

    Google Scholar 

  5. Laneve, C., Zavattaro, G.: Foundations of web transactions. In: Sassone, V. (ed.) FOSSACS 2005. LNCS, vol. 3441, pp. 282–298. Springer, Heidelberg (2005)

    Google Scholar 

  6. Caires, L., Ferreira, C., Vieira, H.: A process calculus analysis of compensations. In: Kaklamanis, C., Nielson, F. (eds.) TGC 2008. LNCS, vol. 5474, pp. 87–103. Springer, Heidelberg (2009)

    CrossRef  Google Scholar 

  7. Butler, M.J., Ferreira, C.: An operational semantics for StAC, a language for modelling long-running business transactions. In: De Nicola, R., Ferrari, G.-L., Meredith, G. (eds.) COORDINATION 2004. LNCS, vol. 2949, pp. 87–104. Springer, Heidelberg (2004)

    Google Scholar 

  8. Bruni, R., Melgratti, H., Montanari, U.: Theoretical foundations for compensations in flow composition languages. In: Proc. of POPL 2005, pp. 209–220. ACM Press, New York (2005)

    CrossRef  Google Scholar 

  9. Vaz, C., Ferreira, C., Ravara, A.: Dynamic recovering of long running transactions. In: Kaklamanis, C., Nielson, F. (eds.) TGC 2008. LNCS, vol. 5474, pp. 201–215. Springer, Heidelberg (2009)

    CrossRef  Google Scholar 

  10. Butler, M.J., Hoare, C., Ferreira, C.: A trace semantics for long-running transactions. In: Abdallah, A.E., Jones, C.B., Sanders, J.W. (eds.) Communicating Sequential Processes. LNCS, vol. 3525, pp. 133–150. Springer, Heidelberg (2005)

    Google Scholar 

  11. Garcia-Molina, H., et al.: Coordinating multi-transaction activities. Technical Report CS-TR-2412, University of Maryland, Dept. of Computer Science (1990)

    Google Scholar 

  12. Guidi, C., Lanese, I., Montesi, F., Zavattaro, G.: On the interplay between fault handling and request-response service invocations. In: Proc. of ACSD 2008, pp. 190–199. IEEE Computer Society Press, Los Alamitos (2008)

    Google Scholar 

  13. Weimer, W., Necula, G.: Finding and preventing run-time error handling mistakes. In: Proc. of OOPSLA 2004, pp. 419–431. ACM Press, New York (2004)

    CrossRef  Google Scholar 

  14. Lanese, I., Vaz, C., Ferreira, C.: On the expressive power of primitives for compensation handling, TR (2010), http://www.cs.unibo.it/~lanese/publications/fulltext/TR-ESOP2010.pdf

  15. Guidi, C., Lanese, I., Montesi, F., Zavattaro, G.: Dynamic error handling in service oriented applications. Fundamenta Informaticae 95(1), 73–102 (2009)

    MATH  Google Scholar 

  16. Parrow, J.: Expressiveness of process algebras. In: Proc. of the LIX Colloquium on Emerging Trends in Concurrency Theory. ENTCS, vol. 209, pp. 173–186. Elsevier, Amsterdam (2008)

    Google Scholar 

  17. Palamidessi, C.: Comparing the expressive power of the synchronous and the asynchronous pi-calculus. In: Proc. of POPL 1997, pp. 256–265 (1997)

    Google Scholar 

  18. Nestmann, U.: What is a ”good” encoding of guarded choice? Inf. Comput. 156(1-2), 287–319 (2000)

    MATH  CrossRef  MathSciNet  Google Scholar 

  19. Gorla, D.: Towards a unified approach to encodability and separation results for process calculi. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 492–507. Springer, Heidelberg (2008)

    CrossRef  Google Scholar 

  20. Rensink, A., Vogler, W.: Fair testing. Inf. Comput. 205(2), 125–198 (2007)

    MATH  CrossRef  MathSciNet  Google Scholar 

  21. De Nicola, R., Hennessy, M.: Testing equivalences for processes. Theor. Comput. Sci. 34, 83–133 (1984)

    MATH  CrossRef  Google Scholar 

  22. Thomsen, B.: Calculi for Higher Order Communicating Systems. PhD thesis, Imperial College (1990)

    Google Scholar 

  23. Mazzara, M., Lanese, I.: Towards a unifying theory for web services composition. In: Bravetti, M., Núñez, M., Zavattaro, G. (eds.) WS-FM 2006. LNCS, vol. 4184, pp. 257–272. Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

  24. Milner, R.: A Calculus of Communication Systems. LNCS, vol. 92. Springer, Heidelberg (1980)

    Google Scholar 

  25. Honda, K., Tokoro, M.: An object calculus for asynchronous communication. In: America, P. (ed.) ECOOP 1991. LNCS, vol. 512, pp. 133–147. Springer, Heidelberg (1991)

    CrossRef  Google Scholar 

  26. Fournet, C., Gonthier, G.: The reflexive CHAM and the join-calculus. In: Proc. of POPL 1996, pp. 372–385. ACM Press, New York (1996)

    CrossRef  Google Scholar 

  27. Boreale, M., Bruni, R., Caires, L., De Nicola, R., Lanese, I., Loreti, M., Martins, F., Montanari, U., Ravara, A., Sangiorgi, D., Vasconcelos, V., Zavattaro, G.: SCC: a Service Centered Calculus. In: Bravetti, M., Núñez, M., Zavattaro, G. (eds.) WS-FM 2006. LNCS, vol. 4184, pp. 38–57. Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

  28. Guidi, C., Lucchi, R., Gorrieri, R., Busi, N., Zavattaro, G.: SOCK: a calculus for service oriented computing. In: Dan, A., Lamersdorf, W. (eds.) ICSOC 2006. LNCS, vol. 4294, pp. 327–338. Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

  29. Lanese, I., Martins, F., Vasconcelos, V., Ravara, A.: Disciplining orchestration and conversation in service-oriented computing. In: Proc. of SEFM 2007, pp. 305–314. IEEE Computer Society Press, Los Alamitos (2007)

    Google Scholar 

  30. Lapadula, A., Pugliese, R., Tiezzi, F.: A calculus for orchestration of web services. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 33–47. Springer, Heidelberg (2007)

    CrossRef  Google Scholar 

  31. Vieira, H., Caires, L., Seco, J.: The conversation calculus: A model of service-oriented computation. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 269–283. Springer, Heidelberg (2008)

    CrossRef  Google Scholar 

  32. Boreale, M., Bruni, R., De Nicola, R., Loreti, M.: Sessions and pipelines for structured service programming. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 19–38. Springer, Heidelberg (2008)

    CrossRef  Google Scholar 

  33. Montesi, F., Guidi, C., Zavattaro, G.: Composing services with JOLIE. In: Proc. of ECOWS 2007, pp. 13–22. IEEE Computer Society Press, Los Alamitos (2007)

    Google Scholar 

  34. Jolie team: Jolie website (2009), http://www.jolie-lang.org/

  35. Parrow, J., Victor, B.: The fusion calculus: Expressiveness and symmetry in mobile processes. In: Proc. of LICS 1998, pp. 176–185 (1998)

    Google Scholar 

  36. Aceto, L., Fokkink, W., Ingólfsdóttir, A., Nain, S.: Bisimilarity is not finitely based over bpa with interrupt. Theor. Comput. Sci. 366(1-2), 60–81 (2006)

    MATH  CrossRef  Google Scholar 

  37. Bravetti, M., Zavattaro, G.: On the expressive power of process interruption and compensation. Math. Stru. Comp. Sci. 19(3), 565–599 (2009)

    MATH  CrossRef  MathSciNet  Google Scholar 

  38. Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Modeling dimensions of self-adaptive software systems. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 27–47. Springer, Heidelberg (2009)

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lanese, I., Vaz, C., Ferreira, C. (2010). On the Expressive Power of Primitives for Compensation Handling. In: Gordon, A.D. (eds) Programming Languages and Systems. ESOP 2010. Lecture Notes in Computer Science, vol 6012. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11957-6_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-11957-6_20

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-11956-9

  • Online ISBN: 978-3-642-11957-6

  • eBook Packages: Computer ScienceComputer Science (R0)