Skip to main content Accessibility help
×
×
Home

CaSPiS: a calculus of sessions, pipelines and services

  • MICHELE BOREALE (a1), ROBERTO BRUNI (a2), ROCCO DE NICOLA (a3) and MICHELE LORETI (a1)
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.

Copyright
Footnotes
Hide All

Research supported by the Project FET-GC II IST-2005-16004 Sensoria.

Footnotes
References
Hide All
Acciai, L. and Boreale, M. (2008a) Responsiveness in process calculi. Theoretical Computer Science 409 (1)5993.
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.
Acciai, L. and Boreale, M. (2008c) Xpi: A typed process calculus for xml messaging. Science of Computer Programming 71 (2)110143.
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.
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.
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.
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.
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.
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.
Boreale, M. and Sangiorgi, D. (1998) A fully abstract semantics for causality in the pi-calculus. Acta Informatica 35 (5)353400.
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.
Bravetti, M. and Zavattaro, G. (2008) A foundational theory of contracts for multi-party service composition. Fundamenta Informaticae 89 (4)451478.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Honda, K. (1993) Types for dyadic interaction. In: Best, E. (ed.) Proceedings of CONCUR'93. Springer Lecture Notes in Computer Science 4421 509523.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Mezzina, L. (2009) Typing Services. Ph.D. in Computer Science and Engineering, IMT Institute for Advanced Studies, Lucca.
Milner, R., Parrow, J. and Walker, J. (1992) A calculus of mobile processes, I and II. Information and Computation 100 (1)177.
Misra, J. and Cook, W.R. (2007) Computation orchestration: a basis for wide-area computing. Journal of Software and Systems Modeling 6 (1)83110.
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.
Sensoria Project (2010) Software Engineering for Service-Oriented Overlay Computers. Public Web Site. http://sensoria.fast.de/.
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.
Wehrman, I., Kitchin, D., Cook, W.R. and Misra, J. (2008) A timed semantics of Orc. Theoretical Computer Science 402 (2–3)234248.
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.
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