Skip to main content Accessibility help
×
Home
Hostname: page-component-684899dbb8-nlvjk Total loading time: 0.453 Render date: 2022-05-21T10:57:02.676Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "useRatesEcommerce": false, "useNewApi": true }

CaSPiS: a calculus of sessions, pipelines and services

Published online by Cambridge University Press:  10 November 2014

MICHELE BOREALE
Affiliation:
Dipartimento di Statistica, Informatica, Applicazioni “G. Parenti”, Università di Firenze, Viale Morgagni 65, I-50134 Firenze, Italy Email: michele.boreale@unifi.it, michele.loreti@unifi.it
ROBERTO BRUNI
Affiliation:
Dipartimento di Informatica, Università di Pisa, Largo Bruno Pontecorvo 3, I-56127 Pisa, Italy Email: bruni@di.unipi.it
ROCCO DE NICOLA
Affiliation:
IMT- Institute for Advanced Studies Lucca, Piazza S. Ponziano, 6 I-55100 Lucca, Italy Email: rocco.denicola@imtlucca.it
MICHELE LORETI
Affiliation:
Dipartimento di Statistica, Informatica, Applicazioni “G. Parenti”, Università di Firenze, Viale Morgagni 65, I-50134 Firenze, Italy Email: michele.boreale@unifi.it, michele.loreti@unifi.it

Abstract

Service-oriented computing is calling for novel computational models and languages with well-disciplined primitives for client–server interaction, structured orchestration and unexpected events handling. We present CaSPiS, a process calculus where the conceptual abstractions of sessioning and pipelining play a central role for modelling service-oriented systems. CaSPiS sessions are two-sided, uniquely named and can be nested. CaSPiS pipelines permit orchestrating the flow of data produced by different sessions. The calculus is also equipped with operators for handling (unexpected) termination of the partner's side of a session. Several examples are presented to provide evidence of the flexibility of the chosen set of primitives. One key contribution is a fully abstract encoding of Misra et al.'s orchestration language Orc. Another main result shows that in CaSPiS it is possible to program a ‘graceful termination’ of nested sessions, which guarantees that no session is forced to hang forever after the loss of its partner.

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 Project FET-GC II IST-2005-16004 Sensoria.

References

Acciai, L. and Boreale, M. (2008a) Responsiveness in process calculi. Theoretical Computer Science 409 (1)5993.CrossRefGoogle Scholar
Acciai, L. and Boreale, M. (2008b) A type system for client progress in a service-oriented calculus. In: Festschrift in Honour of Ugo Montanari, on the Occasion of His 65th Birthday. Springer Lecture Notes in Computer Science 5065 642658.CrossRefGoogle Scholar
Acciai, L. and Boreale, M. (2008c) Xpi: A typed process calculus for xml messaging. Science of Computer Programming 71 (2)110143.CrossRefGoogle Scholar
Bartoletti, M., Degano, P., Ferrari, G. and Zunino, R. (2007). Types and effects for resource usage analysis. In: Seidl, H. (ed.) Proceedings of FOSSACS'07. Springer Lecture Notes in Computer Science 4423 3247.CrossRefGoogle Scholar
Bettini, L., De Nicola, R. and Loreti, M. (2008) Implementing session centered calculi. In: Lea, D. and Zavattaro, G. (eds.) Proceedings of COORDINATION'08. Springer Lecture Notes in Computer Science 5052 1732.CrossRefGoogle Scholar
Bodei, C., Brodo, L. and Bruni, R. (2009) Static detection of logic flaws in service applications. In: Degano, P. and Viganò, L. (eds.) Proceedings of ARSPA-WITS'09. Springer Lecture Notes in Computer Science 5511 7087.CrossRefGoogle Scholar
Bonelli, E. and Compagnoni, A. (2008) Multisession session types for a distributed calculus. In: Barthe, G. and Fournet, C. (eds.) Proceedings of TGC'07. Springer Lecture Notes in Computer Science 4912 240256.CrossRefGoogle Scholar
Boreale, M., Bruni, R., Caires, L., De Nicola, R., Lanese, I., Loreti, M., Martins, F., Montanari, U., Ravara, A., Sangiorgi, D., Vasconcelos, V. and Zavattaro, G. (2006) SCC: a service centered calculus. In: Bravetti, M., Núñez, M. and Zavattaro, G. (eds.) Proceedings of WS-FM'06. Springer Lecture Notes in Computer Science 4184 3857.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 Lecture Notes in Computer Science 5051 1938.CrossRefGoogle Scholar
Boreale, M. and Sangiorgi, D. (1998) A fully abstract semantics for causality in the pi-calculus. Acta Informatica 35 (5)353400.CrossRefGoogle Scholar
Bravetti, M. and Zavattaro, G. (2007) A theory for strong service compliance. In: Murphy, A.L. and Vitek, J. (eds.) Proceedings of COORDINATION'07. Springer Lecture Notes in Computer Science 4467 96112.CrossRefGoogle Scholar
Bravetti, M. and Zavattaro, G. (2008) A foundational theory of contracts for multi-party service composition. Fundamenta Informaticae 89 (4)451478.Google Scholar
Bruni, R. (2009) Calculi for service-oriented computing. In: Bernardo, M., Padovani, L. and Zavattaro, G. (eds.) Proceedings of SFM-WS'09. Springer Lecture Notes in Computer Science 5569 141.CrossRefGoogle Scholar
Bruni, R., Butler, M., Ferreira, C., Hoare, T., Melgratti, H. and Montanari, U. (2005) Comparing two approaches to compensable flow composition. In: Abadi, M. and de Alfaro, L. (eds.) Proceedings of CONCUR'05. Springer Lecture Notes in Computer Science 3653 383397.CrossRefGoogle Scholar
Bruni, R., De Nicola, R., Loreti, M. and Mezzina, L. (2009) Provably correct implementations of services. In: Kaklamanis, C. and Nielson, F. (eds.) Proceedings of TGC'08. Springer Lecture Notes in Computer Science 5474 6986.CrossRefGoogle Scholar
Bruni, R., Gadducci, F. and Lluch-Lafuente, A. (2010a) An algebra of hierarchical graphs and its application to structural encoding. Scientific Annals of Computer Science 20 5396.Google Scholar
Bruni, R., Lanese, I., Melgratti, H. and Tuosto, E. (2008) Multiparty sessions in SOC. In: Lea, D. and Zavattaro, G. (eds.) Proceedings of COORDINATION'08. Springer Lecture Notes in Computer Science 5052 6782.CrossRefGoogle Scholar
Bruni, R., Liu, Z. and Zhao, L. (2010b) Graph representation of sessions and pipelines for structured service programming. In: Proceedings of FACS'10. Springer Lecture Notes in Computer Science 6921 259276.CrossRefGoogle Scholar
Bruni, R., Melgratti, H. and Montanari, U. (2004) Nested commits for mobile calculi: extending join. In Lévy, J.-J., Mayr, E. and Mitchell, J. (eds.) Proceedings of IFIP-TCS'04, Kluwer Academic Publishers 569582.Google Scholar
Bruni, R. and Mezzina, L. (2008) Types and deadlock freedom in a calculus of services, sessions and pipelines. In: Rosu, G. and Meseguer, J. (eds.) Proceedings of AMAST'08. Springer Lecture Notes in Computer Science 5140 100115.CrossRefGoogle Scholar
Buscemi, M. and Montanari, U. (2007) CC-Pi: A constraint-based language for specifying service level agreements. In: De Nicola, R. (ed.) Proceedings of ESOP'07. Springer Lecture Notes in Computer Science 4421 1832.CrossRefGoogle Scholar
Busi, N., Gorrieri, R., Guidi, C., Lucchi, R. and Zavattaro, G. (2006) Choreography and orchestration conformance for system design. In: Ciancarini, P. and Wiklicky, H. (eds.) Proceedings of COORDINATION'06. Springer Lecture Notes in Computer Science 4038 6381.CrossRefGoogle Scholar
Caires, L., Vieira, H.T. and Seco, J.C. (2008) The conversation calculus: A model of service oriented computation. In: Drossopoulou, S. (ed.), Proceedings of ESOP'08. Springer Lecture Notes in Computer Science 4960 269283.Google Scholar
Capecchi, S., Giachino, E. and Yoshida, N. (2010) Global escape in multiparty sessions. In: Lodaya, K. and Mahajan, M. (eds.) Proceedings of FSTTCS'10. Leibniz International Proceedings in Informatics 8 338351. (Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik.)Google Scholar
Carbone, M., Honda, K. and Yoshida, N. (2007) Structured communication-centred programming for web services. In: De Nicola, R. (ed.) Proceedings of ESOP'07. Springer Lecture Notes in Computer Science 4421 217.CrossRefGoogle Scholar
Carbone, M., Honda, K. and Yoshida, N. (2008) Structured interactional exceptions in session types. In: van Breugel, F. and Chechik, M. (eds.) Proceedings of CONCUR'08. Springer Lecture Notes in Computer Science 5201 402417.CrossRefGoogle Scholar
Carbone, M., Yoshida, N. and Honda, K. (2009) Asynchronous session types: exceptions and multiparty interactions. In: Bernardo, M., Padovani, L. and Zavattaro, G. (eds.)Proceedings of SFM-WS'09. Springer Lecture Notes in Computer Science 5569 187212.CrossRefGoogle Scholar
Carpineti, S., Castagna, G., Laneve, C. and Padovani, L. (2006) A formal account of contracts for web services. In: Bravetti, M., Núñez, M. and Zavattaro, G. (eds.) Proceedings of WS-FM'06. Springer Lecture Notes in Computer Science 4184 148162.CrossRefGoogle Scholar
Castagna, G., Gesbert, N. and Padovani, L. (2008) A theory of contracts for web services. In: Necula, G.C. and Wadler, P. (eds.) Proceedings of POPL'08, ACM 261272.CrossRefGoogle Scholar
Cook, W. R., Patwardhan, S. and Misra, J. (2006) Workflow patterns in Orc. In: Ciancarini, P. and Wiklicky, H. (eds.) Proceedings of COORDINATION'06. Springer Lecture Notes in Computer Science 4038 8296.CrossRefGoogle Scholar
De Nicola, R., Latella, D., Loreti, M. and Massink, M. (2009) MarCaSPiS: a Markovian extension of a calculus for services. Electronic Notes in Theoretical Computer Science 229 (4)1126.CrossRefGoogle Scholar
Dezani-Ciancaglini, M., Yoshida, N., Ahern, A. and Drossopoulou, S. (2007) A distributed object-oriented language with session types. In: De Nicola, R. and Sangiorgi, D. (eds.) Proceedings of TGC'05. Springer Lecture Notes in Computer Science 3705 299318.CrossRefGoogle Scholar
Ferrari, G., Guanciale, R. and Strollo, D. (2006) JSCL: a middleware for service coordination. In: Najm, E., Pradat-Peyre, J.-F. and Donzeau-Gouge, V. (eds.) Proceedings of FORTE'06. Springer Lecture Notes in Computer Science 4229 4660.CrossRefGoogle Scholar
Ferrari, G., Guanciale, R., Strollo, D. and Tuosto, E. (2007) Coordination via types in an event-based framework. In: Derrick, J. and Vain, J. (eds.), Proceedings of FORTE'07. Lecture Notes in Computer Science 4574 6680.CrossRefGoogle Scholar
Gay, S.J. and Hole, M.J. (1999) Types and subtypes for client-server interactions. In: Swierstra, S.D. (ed.), Proceedings of ESOP'99. Springer Lecture Notes in Computer Science 1576 7490.CrossRefGoogle Scholar
Honda, K. (1993) Types for dyadic interaction. In: Best, E. (ed.) Proceedings of CONCUR'93. Springer Lecture Notes in Computer Science 4421 509523.CrossRefGoogle Scholar
Honda, K., Vasconcelos, V.T. and Kubo, M. (1998) Language primitives and type discipline for structured communication-based programming. In: Hankin, C. (ed.), Proceedings of ESOP'98. Springer Lecture Notes in Computer Science 1381 122138.CrossRefGoogle Scholar
Honda, K., Yoshida, N. and Carbone, M. (2008) Multiparty asynchronous session types. In: Necula, G.C. and Wadler, P. (eds.) Proceedings of POPL'08, ACM, 273284.CrossRefGoogle Scholar
Kitchin, D., Cook, W.R. and Misra, J. (2006) A language for task orchestration and its semantic properties. In: Baier, C. and Hermanns, H. (eds.) Proceedings of CONCUR'06. Springer Lecture Notes in Computer Science 4137 477491.CrossRefGoogle Scholar
Kolundzija, M. (2009) Security types for sessions and pipelines. In: Bruni, R. and Wolf, K. (eds.) Proceedings of WS-FM'08. Springer Lecture Notes in Computer Science 5387 176190.Google Scholar
Lanese, I., Vasconcelos, V., Martins, F. and Ravara, A. (2007) Disciplining orchestration and conversation in service-oriented computing. In: Proceedings of SEFM'07, IEEE Computer Society Press 305314.Google Scholar
Laneve, C. and Padovani, L. (2008). The pairing of contracts and session types. In: Concurrency, Graphs and Models: Essays Dedicated to Ugo Montanari on the Occasion of His 65th Birthday Springer Lecture Notes in Computer Science 5065 681700.CrossRefGoogle Scholar
Laneve, C. and Zavattaro, G. (2005) Foundations of web transactions. In: Sassone, V. (ed.) Proceedings of FOSSACS'05. Springer Lecture Notes in Computer Science 3441 282298.CrossRefGoogle Scholar
Lapadula, A., Pugliese, R. and Tiezzi, F. (2007) A calculus for orchestration of web services. In: De Nicola, R. (ed.) Proceedings of ESOP'07. Springer Lecture Notes in Computer Science 4421 3347.CrossRefGoogle Scholar
Mezzina, L. (2008) How to infer finite session types in a calculus of services and sessions. In: Lea, D. and Zavattaro, G. (eds.), Proceedings of COORDINATION'08. Springer Lecture Notes in Computer Science 5052 216231.CrossRefGoogle Scholar
Mezzina, L. (2009) Typing Services. Ph.D. in Computer Science and Engineering, IMT Institute for Advanced Studies, Lucca.Google Scholar
Milner, R., Parrow, J. and Walker, J. (1992) A calculus of mobile processes, I and II. Information and Computation 100 (1)177.CrossRefGoogle Scholar
Misra, J. and Cook, W.R. (2007) Computation orchestration: a basis for wide-area computing. Journal of Software and Systems Modeling 6 (1)83110.CrossRefGoogle Scholar
OASIS (2007) Web Services Business Process Execution Language Version 2.0, Working Draft. Available at http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf.Google Scholar
Sensoria Project (2010) Software Engineering for Service-Oriented Overlay Computers. Public Web Site. http://sensoria.fast.de/.Google Scholar
van der Aalst, W.M.P., ter Hofstede, A.H.M., Kiepuszewski, B. and Barros, A.P. (2003) Workflow patterns. Distributed and Parallel Databases 14 (1)551.CrossRefGoogle Scholar
Wehrman, I., Kitchin, D., Cook, W.R. and Misra, J. (2008) A timed semantics of Orc. Theoretical Computer Science 402 (2–3)234248.CrossRefGoogle Scholar
Wirsing, M. and Hölzl, M.M. (eds.) (2011) Rigorous Software Engineering for Service-Oriented Systems - Results of the SENSORIA Project on Software Engineering for Service-Oriented Computing. Springer Lecture Notes in Computer Science 6582. ISBN 978-3-642-20400-5.CrossRefGoogle Scholar
7
Cited by

Save article to Kindle

To save this article to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

CaSPiS: a calculus of sessions, pipelines and services
Available formats
×

Save article to Dropbox

To save this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you used this feature, you will be asked to authorise Cambridge Core to connect with your Dropbox account. Find out more about saving content to Dropbox.

CaSPiS: a calculus of sessions, pipelines and services
Available formats
×

Save article to Google Drive

To save this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you used this feature, you will be asked to authorise Cambridge Core to connect with your Google Drive account. Find out more about saving content to Google Drive.

CaSPiS: a calculus of sessions, pipelines and services
Available formats
×
×

Reply to: Submit a response

Please enter your response.

Your details

Please enter a valid email address.

Conflicting interests

Do you have any conflicting interests? *