Skip to main content
×
×
Home

cJoin: Join with communicating transactions

  • ROBERTO BRUNI (a1), HERNÁN MELGRATTI (a2) and UGO MONTANARI (a1)
Abstract

This paper proposes a formal approach to the design and programming of long running transactions (LRTs). We exploit techniques from process calculi to define cJoin, which is an extension of the Join calculus with few well-disciplined primitives for LRT. Transactions in cJoin are intended to describe the transactional interaction of several partners, under the assumption that any partner executing a transaction may communicate only with other transactional partners. In such case, the transactions run by any party are bound to achieve the same outcome (i.e., all succeed or all fail). Hence, a distinguishing feature of cJoin, called dynamic joinability, is that ongoing transactions can be merged to complete their tasks and when this happens either all succeed or all abort. Additionally, cJoin is based on compensations i.e., partial executions of transactions are recovered by executing user-defined programs instead of providing automatic rollback. The expressiveness and generality of cJoin is demonstrated by many examples addressing common programming patterns. The mathematical foundation is accompanied by a prototype language implementation, which is an extension of the JoCaml compiler.

Copyright
Footnotes
Hide All

Research supported by the EU FET-GC2 IST-2004-16004 Integrated Project Sensoria, the Italian MIUR Project IPODS (PRIN 2008), the ANPCyT Project BID-PICT-2008-00319, and the UBACyT Project 20020090300122.

Footnotes
References
Hide All
Anderson, B. and Shasha, D. (1992) Persistent linda: Linda + transactions + query processing. In: Research Directions in High-Level Parallel Programming Languages, Springer Verlag 93109.
Benton, N., Cardelli, L. and Fournet, C. (2002) Modern concurrency abstractions for C#. In: Proceedings of ECOOP 2002. Springer Verlag Lecture Notes in Computer Science 2374 415440.
Bernstein, P., Hadzilacos, V. and Goodman, N. (1987) Concurrency, Control and Recovery in Database Systems, Addison-Wesley Longman.
Berry, G. (1993) Preemption in concurrent systems. In: Proceedings of FSTTCS'93. Springer Verlag Lecture Notes in Computer Science 761 7293.
Berry, G. and Boudol, G. (1992) The chemical abstract machine. Theoretical Computer Science 96 (1)217248.
Bocchi, L., Laneve, C. and Zavattaro, G. (2003) A calculus for long-running transactions. In: Proceedings of FMOODS'03. Springer Verlag Lecture Notes in Computer Science 2884 124138.
Bocchi, L. and Tuosto, E. (2010) Testing attribute-based transactions in SOC. In: Proceedings of FMOODS/FORTE 2010. Springer Verlag Lecture Notes in Computer Science 6117 8794.
Boreale, M., Bruni, R., De Nicola, R. and Loreti, M. (2008) Sessions and pipelines for structured service programming. In: Barthe, G. and de Boer, F. S. (eds.) Proceedings of FMOODS'08. Springer Verlag Lecture Notes in Computer Science 5051 1938.
BPEL (2003) bpel Specification. version 1.1. Available at http://www.ibm.com/developerworks/library/ws-bpel.
BPMN (2010) Business process modelling notation (bpmn). Available at http://www.bpmi.org.
Bruni, R., Kersten, A., Lanese, I. and Spagnolo, G. (2012) A new strategy for distributed compensations with interruption in long-running transactions. In: Proceedings of WADT 2010. Springer Verlag Lecture Notes in Computer Science 7137 4260.
Bruni, R., Laneve, C. and Montanari, U. (2002) Orchestrating transactions in join calculus. In: Proceedings of CONCUR 2002. Springer Verlag Lecture Notes in Computer Science 2421 321336.
Bruni, R., Melgratti, H. and Montanari, U. (2003) Flat committed join in join. In: Proceedings of CoMeta 2003. Elsevier Science Electronic Notes in Theoretical Computer Science 104 3959.
Bruni, R., Melgratti, H. and Montanari, U. (2004) Nested commits for mobile calculi: Extending Join. In: Proceedings of the 3rd IFIP-TCS 2004, Kluwer Academic Publishers 569582.
Bruni, R., Melgratti, H. and Montanari, U. (2005) Theoretical foundations for compensations in flow composition languages. In: Proceedings of POPL 2005, ACM Press 209220.
Bruni, R. and Montanari, U. (2004) Concurrent models for Linda with transactions. Mathematical Structures in Computer Science 14 (3)421468.
Busi, N. and Zavattaro, G. (2002) On the serializability of transactions in shared dataspaces with temporary data. In: Proceedings of SAC 2002, ACM Press 359366.
Butler, M., Bruni, R., Ferreira, C., Hoare, T., Melgratti, H. and Montanari, U. (2005a) Comparing two approaches to compensable flow composition. In: Proceedings of CONCUR 2005. Springer Verlag Lecture Notes in Computer Science 3653 383397.
Butler, M., Chessell, M., Ferreira, C., Griffin, C., Henderson, P. and Vines, D. (2002) Extending the concept of transaction compensation. IBM Systems Journal 41 (4)743758.
Butler, M. and Ferreira, C. (2004) An operational semantics for StAC, a language for modelling long-running business transactions. In: Proceedings of Coordination 2004. Springer Verlag Lecture Notes in Computer Science 2949 87104.
Butler, M., Hoare, T. and Ferreira, C. (2005b). A trace semantics for long-running transactions. In: Proceedings of 25 Years of CSP. Springer Verlag Lecture Notes in Computer Science 3525 133150.
Caires, L., Ferreira, C. and Vieira, H.T. (2009) A process calculus analysis of compensations. In: Kaklamanis, C. and Nielson, F. (eds.) Proceedings of TGC'08. Springer Verlag Lecture Notes in Computer Science 5474 87103.
Chothia, T. and Duggan, D. (2004) Abstractions for fault-tolerant global computing. Theoretical Computer Science 322 (3)567613.
Conchon, S. and Le Fessant, F. (1999) Jocaml: Mobile agents for Objective-Caml. In: Proceedings of ASA/MA'99. IEEE Computer Society 2229.
Danos, V. and Krivine, J. (2004) Reversible communicating systems. In: Proceedings of CONCUR 2004. Springer Verlag Lecture Notes in Computer Science 3170 293307.
de Vries, E., Koutavas, V. and Hennessy, M. (2010) Communicating transactions - (extended abstract). In: Gastin, P. and Laroussinie, F. (eds.) Proceedings of CONCUR'10. Springer Verlag Lecture Notes in Computer Science 6269 569583.
Eisentraut, C. and Spieler, D. (2009) Fault, compensation and termination in ws-bpel 2.0 - a comparative analysis. In: Bruni, R. and Wolf, K. (eds.) Proceedings of WS-FM'08. Springer Verlag Lecture Notes in Computer Science 5387 107126.
Elmagarmid, A., Leu, Y., Litwin, W. and Rusinkiewicz, M. (1990) A multidatabase transaction model for interbase. In: Proceedings of VLDB'90. Morgan Kaufmann 507518.
Eswaran, K., Gray, J., Lorie, R. and Traiger, I. (1976) The notions of consistency and predicate locks in a database system. Communications of the ACM 19 (11)624633.
Fekete, A., Lynch, N., Merritt, M. and Weihl, W. (1994) Atomic Transactions, Morgan Kaufmann Publishers.
Fournet, C. and Gonthier, G. (1996) The reflexive chemical abstract machine and the Join calculus. In: Proceedings of POPL'96. ACM Press 372385.
Fournet, C., Gonthier, G., Lévy, J.-J., Maranget, L. and Rémy, D. (1996) A calculus of mobile agents. In: Proceedings of CONCUR'96. Springer Verlag Lecture Notes in Computer Science 1119 406421.
Garcia-Molina, H. and Salem, K. (1987) Sagas. In: Proceedings of the ACM Special Interest Group on Management of Data Annual Conference. ACM Press 249259.
Georgakopoulos, D., Hornick, M. and Sheth, A. (1995) An overview of workflow management: From process modeling to workflow automation infrastructure. Distributed and Parallel Databases 3 (2)119153.
Gray, J. and Reuter, A. (1993) Transaction Processing: Concepts and Techniques, Morgan Kaufmann.
Hutchinson, N., Kaiser, G. and Pu, C. (1988) Split-transactions for open-ended activities. In: Proceedings of VLDB'88, Morgan Kaufmann 2637.
Jagannathan, S. and Vitek, J. (2004) Optimistic concurrency semantics for transactions in coordination languages. In: Proceedings of COORDINATION 2004, Springer Verlag Lecture Notes in Computer Science 2949 183198.
Kaiser, G. and Pu, C. (1992) Dynamic restructuring of transactions. In: Database Transaction Models for Advanced Applications, Morgan Kaufmann 265295.
Kochut, K., Miller, J., Sheth, A. and Wang, X. (1996) Corba-based run-time architectures for workflow management systems. Journal of Database Management, Special Issue on Multidatabases 7 (1)1627.
Kohler, W. (1981) A survey of techniques for synchronization and recovery in decentralized computer systems. ACM Computing Surveys 13 (2)149183.
Krishnakumar, N. and Sheth, A. (1995) Managing heterogeneous multi-system tasks to support enterprise-wide operations. Distributed and Parallel Databases 3 (2)155186.
Lanese, I., Mezzina, C. and Stefani, S. (2010a) Reversing higher-order pi. In: Proceedings of CONCUR'10. Springer Verlag Lecture Notes in Computer Science 6269 478493.
Lanese, I., Vaz, C. and Ferreira, C. (2010b) On the expressive power of primitives for compensation handling. In: Proceedings of ESOP'10. Springer Verlag Lecture Notes in Computer Science 6012 366386.
Laneve, C. and Zavattaro, G. (2005) Foundations of web transactions. In: Proceedings of FOSSACS 2005. Springer Verlag Lecture Notes in Computer Science 3441 282298.
Leymann, F. (2001) wsfl Specification. version 1.0. Available at http://www-306.ibm.com/software/solutions/webservices/pdf/WSFL.pdf.
Lomet, D. (1992) MLR: A recovery method for multi-level systems. In: Proceedings of the 1992 ACM SIGMOD International Conference on Management of Data. ACM Press 185194.
Lucchi, R. and Mazzara, M. (2004) A framework for generic error handling in business processes. In: Proceedings of WS-FM 2004. Electronic Notes in Theoretical Computer Science 105 133145. (Elsevier Science.)
Melgratti, H. (2005) Models and Languages for Global Computing Transactions, Ph.D. thesis, Computer Science Department, University of Pisa.
Milner, R. (1980) A Calculus of Communicating Systems Springer Verlag Lecture Notes in Computer Science 92.
Milner, R., Parrow, J. and Walker, J. (1992) A calculus of mobile processes, I and II. Information and Computation 100 (1)177.
Moss, J. (1981) Nested Transactions: An Approach to Reliable Distributed Computing, Ph.D. thesis, Dept. of Electrical Engineering and Computer Science, MIT.
Reuter, A. and Wächter, H. (1992) The contract model. Transaction Models for Advanced Applications, Morgan Kaufmann 219263.
Ripon, S. (2008) Extending and Relating Semantic Models of Compensating CSP, Ph.D. thesis, School of Electonics and Computer Science, University of Southampton.
Rusinkiewicz, M. and Sheth, A. (1995) Specification and execution of transactional workflows. In: Modern Database Systems: The Object Model, Interoperability, and Beyond. ACM Press and Addison-Wesley 592620.
Schek, H.-J. and Weikum, G. (1992) Concepts and applications of multilevel transactions and open nested transactions. In: Database Transaction Models for Advanced Applications. Morgan Kaufmann 515553.
Thatte, S. (2001) xlang: Web Services for Business Process Design. Available at http://www.gotdotnet.com/team/xml_wsspecs/xlang-c/default.htm.
Vaz, C., Ferreira, C. and Ravara, A. (2008) Dynamic recovering of long running transactions. In: Proceedings of TGC 2008. Springer Verlag Lecture Notes in Computer Science 5474 201215.
Weikum, G. (1991) Principles and realization strategies of multilevel transaction management. ACM Transactions on Database Systems 16 (1)132180.
WSCDL (2004) Web Services Choreography Description Language. Version 1.0. Available at http://www.w3.org/TR/2004/WD-ws-cdl-10-20040427/.
WSCI (2002) wsci Specification. version 1.0. Available at http://www.w3.org/TR/wsci/.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed