skip to main content
research-article
Open Access

Structured Communication-Centered Programming for Web Services

Published:01 June 2012Publication History
Skip Abstract Section

Abstract

This article relates two different paradigms of descriptions of communication behavior, one focusing on global message flows and another on end-point behaviors, using formal calculi based on session types. The global calculus, which originates from a Web service description language (W3C WS-CDL), describes an interaction scenario from a vantage viewpoint; the end-point calculus, an applied typed π-calculus, precisely identifies a local behavior of each participant. We explore a theory of end-point projection, by which we can map a global description to its end-point counterparts preserving types and dynamics. Three principles of well-structured description and the type structures play a fundamental role in the theory.

References

  1. Abadi, M. and Fournet, C. 2001. Mobile values, new names, and secure communication. In Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’01). ACM Press, New York, NY, 104--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Abadi, M. and Gordon, A. D. 1999. A calculus for cryptographic protocols: The SPI calculus. Inf. Comput. 148, 1, 1--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Alur, R., Etessami, K., and Yannakakis, M. 2005. Realizability and verification of MSC graphs. Theor. Comput. Sci. 331, 1, 97--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Arbab, F. 2004. Reo: A channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14, 3, 329--366. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Baeten, J., van Beek, H., and Mauw, S. 2001. Specifying internet applications with DiCons. In Proceedings of the ACM Symposium on Applied Computing (SAC’01). ACM Press, New York, NY, 576--584. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Basu, A., Bozga, M., and Sifakis, J. 2006. Modeling heterogeneous real-time components in bip. In Proceedings of the International Conference on Software Engineering and Formal Methods (SEFM’06). IEEE Computer Society Press, 3--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Benton, N., Cardelli, L., and Fournet, C. 2004. Modern concurrency abstractions for C#. ACM Trans. Program. Lang. Syst. 26, 5, 769--804. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Berger, M., Honda, K., and Yoshida, N. 2001. Sequentiality and the π-calculus. In Proceedings of the 5th International Conference on Typed Lambda Calculi and Applications (TLCA’01). Lecture Notes in Computer Science, vol. 2044, Springer, 29--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Bhargavan, K., Fournet, C., and Gordon, A. D. 2006. Verified reference implementations of WS-security protocols. In Proceedings of the 3rd International Workshop on Web Services and Formal Methods (WS-FM’06). Lecture Notes in Computer Science, vol. 4184, Springer, 88--106. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Bhargavan, K., Corin, R., malo Denilou, P., Fournet, C., and Leifer, J. J. 2009. Cryptographic protocol synthesis and verification for multiparty sessions. In Proceedings of the 22nd IEEE Computer Security Foundations Symposium (CSF’09). IEEE Computer Society, 124--140. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Bonelli, E., Compagnoni, A. B., and Gunter, E. L. 2005. Correspondence assertions for process synchronization in concurrent communications. J. Funct. Program. 15, 2, 219--247. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Bravetti, M. and Zavattaro, G. 2007. A theory for strong service compliance. In Proceedings of the 8th International Conference on Coordination Models and Languages (COORDINATION’07). Lecture Notes in Computer Science, vol. 4467, Springer, 96--112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Briais, S. and Nestmann, U. 2005. A formal semantics for protocol narrations. In Proceedings of the 1st Symposium on Trustworthy Global Computing (TGC’05). Lecture Notes in Computer Science, vol. 3705, Springer, 163--181. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Broy, M. 2005. A semantic and methodological essence of message sequence charts. Sci. Comput. Program. 54, 2--3, 213--256. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Broy, M. 2007. Interaction and realizability. In Proceedings of the 33rd Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM’07). Springer, 29--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Broy, M., Krüger, I. H., and Meisinger, M. 2007. A formal model of services. ACM Trans. Softw. Engin. Method. 16, 1, 5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Busi, N., Gorrieri, R., Guidi, C., Lucchi, R., and Zavattaro, G. 2006. Choreography and orchestration conformance for system design. In Proceedings of the 7th International Conference on Coordination Models and Languages (COORDINATION’06). Lecture Notes in Computer Science, vol. 4038, Springer, 63--81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Caires, L. and Vieira, H. T. 2009. Conversation types. In Proceedings of the 18th European Symposium on Programming (ESOP’09). Lecture Notes in Computer Science, vol. 5502, Springer, 285--300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Carbone, M., Nielsen, M., and Sassone, V. 2004. A calculus for trust management. In Proceedings of the 24th International Conference on Foundations of Software Technology and Theoretical Computer Science (FST-TCS’04). Lecture Notes in Computer Science, vol. 3328, Springer, 161--173. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Carbone, M., Honda, K., and Yoshida, N. 2006a. A calculus of global interaction based on session types. In Proceedings of the 2nd Workshop on Developments in Computational Models (DCM’06). Elsevier Science Publishers, Amsterdam, The Netherlands.Google ScholarGoogle Scholar
  21. Carbone, M., Honda, K., Yoshida, N., Milner, R., Brown, G., and Ross-Talbot, S. 2006b. A theoretical basis of communication-centred concurrent programming. W3C working note. http://www.dcs.qmul.ac.uk/~carbonem/cdlpaper/workingnote.pdf.Google ScholarGoogle Scholar
  22. Carbone, M., Honda, K., and Yoshida, N. 2007. Structured communication-centred programming for web services. In Proceedings of the 16th European Symposium on Programming (ESOP’07). Lecture Notes in Computer Science, vol. 4421, Springer, 2--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Castagna, G., Gesbert, N., and Padovani, L. 2008. A theory of contracts for web services. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’08). ACM Press, New York, NY, 261--272. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Chaki, S., Rajamani, S. K., and Rehof, J. 2002. Types as models: model checking message-passing programs. In Proceedings of the 29th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’02). ACM Press, New York, NY, 45--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Corin, R., Denièlou, P.-M., Fournet, C., Bhargavan, K., and Leifer, J. 2007. Secure implementations for typed session abstractions. In Proceedings of the 20th IEEE Computer Security Foundations Symposium (CSF’07). IEEE Computer Society Press, 170--186. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Demangeon, R. and Honda, K. 2011. Full abstraction in a subtyped pi-calculus with linear types. In Proceedings of the International Conference on Concurrency Theory (CONCUR’11). J.-P. Katoen and B. König Eds., Lecture Notes in Computer Science Series, vol. 6901, Springer, 280--296. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Dezani-Ciancaglini, M. and de’ Liguoro, U. 2009. Sessions and session types: An overview. In Proceedings of the 6th International Workshop on Web Services and Formal Methods (WS-FM’09). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Dezani-Ciancaglini, M., Mostrous, D., Yoshida, N., and Drossopoulou, S. 2006. Session types for object-oriented languages. In Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP’06). Lecture Notes in Computer Science, vol. 4067, Springer, 328--352. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Fähndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G. C., Larus, J. R., and Levi, S. 2006. Language support for fast and reliable message-based communication in singularity OS. In Proceedings of EuroSys’06. W. Zwaenepoel Ed., ACM SIGOPS. ACM Press, 177--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Foster, H., Magee, J., Kramer, J., and Uchitel, S. 2010. LTSA WS-engineer home page. http://www.doc.ic.ac.uk/ltsa/bpel4ws.Google ScholarGoogle Scholar
  31. Fu, X., Bultan, T., and Su, J. 2004. Conversation protocols: A formalism for specification and verification of reactive electronic services. Theor. Comput. Sci. 328, 1--2, 19--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Fu, X., Bultan, T., and Su, J. 2005. Realizability of conversation protocols with message contents. Int. J. Web Service Resear. 2, 4, 68--93.Google ScholarGoogle ScholarCross RefCross Ref
  33. Gay, S. and Hole, M. 2005. Subtyping for session types in the pi calculus. Acta Informatica 42, 2--3, 191--225. Google ScholarGoogle ScholarCross RefCross Ref
  34. Gordon, A. D. and Pucella, R. 2002. Validating a web service security abstraction by typing. In Proceedings of the ACM Workshop on XML Security (XMLSEC’02). ACM Press, New York, NY, 18--29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Guidi, C., Lucchi, R., Zavattaro, G., Busi, N., and Gorrieri, R. 2006. SOCK: A calculus for service oriented computing. In Proceedings of the 4th International Conference on Service Oriented Computing (ICSOC’06). Lecture Notes in Computer Science, vol. 4294, Springer, 327--338. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Guttman, J. D., Thayer, F. J., and Zuck, L. D. 2001. The faithfulness of abstract protocol analysis: message authentication. In Proceedings of the 8th ACM Conference on Computer and Communications Security (CCS’01). ACM Press, New York, NY, 186--195. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Hennessy, M. and Riely, J. 1998. Resource access control in systems of mobile agents. In Proceedings of the International Workshop on High-Level Concurrent Languages (HLCL’98). ENTCS Series, vol. 16.3. Elsevier Science Publishers, Amsterdam, The Netherlands. 3--17.Google ScholarGoogle Scholar
  38. Henriksen, J. G., Mukund, M., Kumar, K. N., Sohoni, M. A., and Thiagarajan, P. S. 2005. A theory of regular MSC languages. Inf. Comput. 202, 1, 1--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Hoare, T. 1985. Communicating Sequential Processes. Prentice Hall, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Honda, K. 1996. Composing processes. In Proceedings of the 23th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’96). ACM Press, New York, NY, 344--357. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Honda, K., Vasconcelos, V., and Kubo, M. 1998. Language primitives and type disciplines for structured communication-based programming. In Proceedings of the 7th European Symposium on Programming (ESOP’98). Lecture Notes in Computer Science, vol. 1381, Springer, 22--138. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Honda, K., Yoshida, N., and Carbone, M. 2007. Web Services, mobile processes and types. Bull. Eur. Assoc. Theor. Comput. Sci. 91, 165--185.Google ScholarGoogle Scholar
  43. Honda, K., Yoshida, N., and Carbone, M. 2008. Multiparty asynchronous session types. In Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’08). ACM Press, New York, NY, 273--284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. IBM. 2001. Web services flow language (WSFL 1.0). http://www-3.ibm.com/software/solutions/webservices/pdf/WSFL.pdf.Google ScholarGoogle Scholar
  45. IBM. 2010. WebSphere MQ workflow. www-306.ibm.com/software/integration/wmqwf/.Google ScholarGoogle Scholar
  46. Igarashi, A. and Kobayashi, N. 2001. A generic type system for the pi-calculus. In Proceedings of the 28th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’01). ACM Press, New York, NY, 128--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. International Telecommunication Union. 1996. Recommendation Z.120: Message sequence chart.Google ScholarGoogle Scholar
  48. Kobayashi, N., Pierce, B., and Turner, D. 1996. Linear types and π-calculus. In Proceedings of the 23th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’96). ACM Press, New York, NY, 358--371. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Laneve, C. and Padovani, L. 2006. Smooth orchestrators. In Proceedings of the 9th International Conference on Foundations of Software Science and Computation Structures (FoSSaCS’06). Lecture Notes in Computer Science, vol. 3921, Springer, 32--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Microsoft. 2001. XLANG: Web services for business process design. http://www.gotdotnet.com/team/xml wsspecs/xlang-c/default.htm.Google ScholarGoogle Scholar
  51. Milner, R. 1993. The polyadic π-calculus: A tutorial. In Logic and Algebra of Specification, Springer.Google ScholarGoogle Scholar
  52. Milner, R., Parrow, J., and Walker, D. 1992. A calculus of mobile processes, I and II. Inf. Comput. 100, 1, 1--40, 41--77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Needham, R. M. and Schroeder, M. D. 1978. Using encryption for authentication in large networks of computers. Com. ACM 21, 12, 993--999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. O’Hanlon, C. 2006. Conversation with Steve Ross-Talbot.Google ScholarGoogle Scholar
  55. OMG. 2004. Unified modelling language, version 2.0.Google ScholarGoogle Scholar
  56. PI4SOA. 2008. http://www.pi4soa.org.Google ScholarGoogle Scholar
  57. Pierce, B. C. 2002. Types and Programming Languages. MIT Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Pierce, B. C. and Sangiorgi, D. 1996. Typing and subtyping for mobile processes. Math. Struct. Comput. Sci. 6, 5, 409--453.Google ScholarGoogle ScholarCross RefCross Ref
  59. Pierce, B. C. and Turner, D. N. 2000. Pict: A programming language based on the pi-calculus. In Proof, Language and Interaction: Essays in Honour of Robin Milner, MIT Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Qiu, Z., Zhao, X., Cai, C., and Yang, H. 2007. Towards the theoretical foundation of choreography. In Proceedings of the International World Wide Web Conference. IEEE Computer Society Press, 973--982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Rajamani, S. K. and Rehof, J. 2002. Conformance checking for models of asynchronous message passing software. In Proceedings of the 14th Conference on Computer-Aided Verification (CAV’02). Lecture Notes in Computer Science, vol. 2404, Springer, 166--179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Ross-Talbot, S. and Fletcher, T. 2006. WS-CDL Primer. Published by W3C.Google ScholarGoogle Scholar
  63. Sangiorgi, D. 1999. The name discipline of uniform receptiveness. Theor. Comput. Sci. 221, 1--2, 457--493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Takeuchi, K., Honda, K., and Kubo, M. 1994. An interaction-based language and its typing system. In Proceedings of the 6th International Conference on Parallel Architectures and Languages (PARLE’94). Lecture Notes in Computer Science Series, vol. 817, Springer, 398--413. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. van der Aalst, W. 2002. Inheritance of interorganizational workflows: How to agree to disagree without loosing control? Info. Tech. Manage. J. 2, 3, 195--231. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Vasconcelos, V., Ravara, A., and Gay, S. J. 2004. Session types for functional multithreading. In Proceedings of the 15th International Conference on Concurrency Theory (CONCUR’04). Lecture Notes in Computer Science, vol. 3170, Springer, 497--511.Google ScholarGoogle ScholarCross RefCross Ref
  67. Vieira, H. T., Caires, L., and Seco, J. C. 2008. The conversation calculus: A model of service-oriented computation. In Proceedings of the 17th European Symposium on Programming (ESOP’08). Vol. 4960, Springer, 269--283. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. W3C WS-CDL Working Group. 2004. Web services choreography description language version 1.0. http://www.w3.org/TR/2004/WD-ws-cdl-10-20040427/.Google ScholarGoogle Scholar
  69. WFMC. 2010. Workflow management coalition. http://www.wfmc.org/.Google ScholarGoogle Scholar
  70. Yoshida, N. 1996. Graph types for monadic mobile processes. In Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science. Springer, 371--386. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Yoshida, N. and Vasconcelos, V. 2007. Language primitives and type discipline for structured communication-based programming revisited: Two systems for higher-order session communication. Electr. Notes Theor. Comput. Sci. 171, 4, 73--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Yoshida, N., Berger, M., and Honda, K. 2004. Strong normalisation in the π-calculus. Inf. Comput. 191, 145--202. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Structured Communication-Centered Programming for Web Services

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Programming Languages and Systems
          ACM Transactions on Programming Languages and Systems  Volume 34, Issue 2
          June 2012
          212 pages
          ISSN:0164-0925
          EISSN:1558-4593
          DOI:10.1145/2220365
          Issue’s Table of Contents

          Copyright © 2012 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 June 2012
          • Accepted: 1 March 2012
          • Revised: 1 October 2011
          • Received: 1 April 2010
          Published in toplas Volume 34, Issue 2

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader