Hostname: page-component-68945f75b7-72kh6 Total loading time: 0 Render date: 2024-08-06T09:12:23.208Z Has data issue: false hasContentIssue false

cJoin: Join with communicating transactions

Published online by Cambridge University Press:  10 November 2014

ROBERTO BRUNI
Affiliation:
Dipartimento di Informatica, Università di Pisa Largo Bruno Pontecorvo 3, I-56127 Pisa, Italy Email: bruni@di.unipi.it; ugo@di.unipi.it
HERNÁN MELGRATTI
Affiliation:
Departamento de Computacién, FCEyN, Universidad de Buenos Aires - CONICET Pabellón I, Ciudad Universitaria, (C1428EGA) Buenos Aires, Argentina Email: hmelgra@dc.uba.ar
UGO MONTANARI
Affiliation:
Dipartimento di Informatica, Università di Pisa Largo Bruno Pontecorvo 3, I-56127 Pisa, Italy Email: bruni@di.unipi.it; ugo@di.unipi.it

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.

Type
Special Issue: Objects and Services
Copyright
Copyright © Cambridge University Press 2014 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Footnotes

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.

References

Anderson, B. and Shasha, D. (1992) Persistent linda: Linda + transactions + query processing. In: Research Directions in High-Level Parallel Programming Languages, Springer Verlag 93109.Google Scholar
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.CrossRefGoogle Scholar
Bernstein, P., Hadzilacos, V. and Goodman, N. (1987) Concurrency, Control and Recovery in Database Systems, Addison-Wesley Longman.Google Scholar
Berry, G. (1993) Preemption in concurrent systems. In: Proceedings of FSTTCS'93. Springer Verlag Lecture Notes in Computer Science 761 7293.Google Scholar
Berry, G. and Boudol, G. (1992) The chemical abstract machine. Theoretical Computer Science 96 (1)217248.Google Scholar
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.Google Scholar
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.CrossRefGoogle Scholar
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.Google Scholar
BPEL (2003) bpel Specification. version 1.1. Available at http://www.ibm.com/developerworks/library/ws-bpel.Google Scholar
BPMN (2010) Business process modelling notation (bpmn). Available at http://www.bpmi.org.Google Scholar
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.CrossRefGoogle Scholar
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.Google Scholar
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.CrossRefGoogle Scholar
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.Google Scholar
Bruni, R., Melgratti, H. and Montanari, U. (2005) Theoretical foundations for compensations in flow composition languages. In: Proceedings of POPL 2005, ACM Press 209220.Google Scholar
Bruni, R. and Montanari, U. (2004) Concurrent models for Linda with transactions. Mathematical Structures in Computer Science 14 (3)421468.Google Scholar
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.Google Scholar
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.Google Scholar
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.Google Scholar
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.Google Scholar
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.Google Scholar
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.Google Scholar
Chothia, T. and Duggan, D. (2004) Abstractions for fault-tolerant global computing. Theoretical Computer Science 322 (3)567613.Google Scholar
Conchon, S. and Le Fessant, F. (1999) Jocaml: Mobile agents for Objective-Caml. In: Proceedings of ASA/MA'99. IEEE Computer Society 2229.Google Scholar
Danos, V. and Krivine, J. (2004) Reversible communicating systems. In: Proceedings of CONCUR 2004. Springer Verlag Lecture Notes in Computer Science 3170 293307.Google Scholar
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.CrossRefGoogle Scholar
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.Google Scholar
Elmagarmid, A., Leu, Y., Litwin, W. and Rusinkiewicz, M. (1990) A multidatabase transaction model for interbase. In: Proceedings of VLDB'90. Morgan Kaufmann 507518.Google Scholar
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.Google Scholar
Fekete, A., Lynch, N., Merritt, M. and Weihl, W. (1994) Atomic Transactions, Morgan Kaufmann Publishers.Google Scholar
Fournet, C. and Gonthier, G. (1996) The reflexive chemical abstract machine and the Join calculus. In: Proceedings of POPL'96. ACM Press 372385.Google Scholar
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.Google Scholar
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.Google Scholar
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.Google Scholar
Gray, J. and Reuter, A. (1993) Transaction Processing: Concepts and Techniques, Morgan Kaufmann.Google Scholar
Hutchinson, N., Kaiser, G. and Pu, C. (1988) Split-transactions for open-ended activities. In: Proceedings of VLDB'88, Morgan Kaufmann 2637.Google Scholar
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.Google Scholar
Kaiser, G. and Pu, C. (1992) Dynamic restructuring of transactions. In: Database Transaction Models for Advanced Applications, Morgan Kaufmann 265295.Google Scholar
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.Google Scholar
Kohler, W. (1981) A survey of techniques for synchronization and recovery in decentralized computer systems. ACM Computing Surveys 13 (2)149183.Google Scholar
Krishnakumar, N. and Sheth, A. (1995) Managing heterogeneous multi-system tasks to support enterprise-wide operations. Distributed and Parallel Databases 3 (2)155186.Google Scholar
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.Google Scholar
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.CrossRefGoogle Scholar
Laneve, C. and Zavattaro, G. (2005) Foundations of web transactions. In: Proceedings of FOSSACS 2005. Springer Verlag Lecture Notes in Computer Science 3441 282298.CrossRefGoogle Scholar
Leymann, F. (2001) wsfl Specification. version 1.0. Available at http://www-306.ibm.com/software/solutions/webservices/pdf/WSFL.pdf.Google Scholar
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.Google Scholar
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.)Google Scholar
Melgratti, H. (2005) Models and Languages for Global Computing Transactions, Ph.D. thesis, Computer Science Department, University of Pisa.Google Scholar
Milner, R. (1980) A Calculus of Communicating Systems Springer Verlag Lecture Notes in Computer Science 92.Google Scholar
Milner, R., Parrow, J. and Walker, J. (1992) A calculus of mobile processes, I and II. Information and Computation 100 (1)177.Google Scholar
Moss, J. (1981) Nested Transactions: An Approach to Reliable Distributed Computing, Ph.D. thesis, Dept. of Electrical Engineering and Computer Science, MIT.Google Scholar
Reuter, A. and Wächter, H. (1992) The contract model. Transaction Models for Advanced Applications, Morgan Kaufmann 219263.Google Scholar
Ripon, S. (2008) Extending and Relating Semantic Models of Compensating CSP, Ph.D. thesis, School of Electonics and Computer Science, University of Southampton.Google Scholar
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.Google Scholar
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.Google Scholar
Thatte, S. (2001) xlang: Web Services for Business Process Design. Available at http://www.gotdotnet.com/team/xml_wsspecs/xlang-c/default.htm.Google Scholar
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.Google Scholar
Weikum, G. (1991) Principles and realization strategies of multilevel transaction management. ACM Transactions on Database Systems 16 (1)132180.Google Scholar
WSCDL (2004) Web Services Choreography Description Language. Version 1.0. Available at http://www.w3.org/TR/2004/WD-ws-cdl-10-20040427/.Google Scholar
WSCI (2002) wsci Specification. version 1.0. Available at http://www.w3.org/TR/wsci/.Google Scholar