Service Oriented Computing and Applications

, Volume 11, Issue 3, pp 265–283 | Cite as

Blind-date conversation joining

Original Research Paper

Abstract

In service-oriented applications, service providers and their clients can engage in conversations to exchange the data required to achieve their business goals. In this paper, we focus on a particular kind of conversation joining, which we call blind-date, where a client may join a conversation among multiple parties in an asynchronous and completely transparent way. Indeed, the client can join the conversation without knowing any information about it in advance. More specifically, we show that the correlation mechanism provided by orchestration languages enables the blind-date conversation joining strategy. To demonstrate the feasibility of the approach, we provide an implementation of this strategy by using the standard orchestration language WS-BPEL. Moreover, to clarify the run-time effects of the blind-date joining, we formally describe its behaviour by resorting to COWS, a process calculus specifically designed for modelling service-oriented applications. We illustrate our approach by means of a simple example and a more realistic case study from the online games domain.

Keywords

Service-oriented computing Conversations Message correlation Formal modelling 

References

  1. 1.
    Apache Software Foundation: Apache ODE 1.3.6 (2013) http://ode.apache.org/
  2. 2.
    Boreale M, Bruni R, Caires L, De Nicola R, Lanese I, Loreti M, Martins F, Montanari U, Ravara A, Sangiorgi D, Vasconcelos V, Zavattaro G (2006) SCC: a service centered calculus. WS-FM, LNCS, vol 4184. Springer, Berlin, pp 38–57Google Scholar
  3. 3.
    Boreale M, Bruni R, De Nicola R, Loreti M (2015) Caspis: a calculus of sessions, pipelines and services. Math Struct Comput Sci 25(3):666–709MathSciNetCrossRefMATHGoogle Scholar
  4. 4.
    Bruni R, Lanese I, Melgratti H, Tuosto E (2008) Multiparty sessions in SOC. In: Lea D, Zavattaro G (eds) Coordination, LNCS, vol 5052. Springer, Berlin, pp 67–82Google Scholar
  5. 5.
    Bruno J (2013) Games on Xbox one—better with Xbox live compute. http://news.xbox.com/2013/10/15/xbox-one-cloud/
  6. 6.
    Bungie: Halo (2016) http://www.halowaypoint.com/
  7. 7.
    Caires L, De Nicola R, Pugliese R, Vasconcelos VT, Zavattaro G (2011) Core calculi for service-oriented computing. In: Rigorous software engineering for service-oriented systems—results of the SENSORIA project on software engineering for service-oriented computing, LNCS, vol 6582. Springer, Berlin, pp 153–188Google Scholar
  8. 8.
    Caires L, Vieira H (2010) Conversation types. Theor Comput Sci 411(51–52):4399–4440MathSciNetCrossRefMATHGoogle Scholar
  9. 9.
    Carbone M, Honda K, Yoshida N (2012) Structured communication-centered programming for web services. ACM Trans Program Lang Syst 34(2):8:1–8:78CrossRefGoogle Scholar
  10. 10.
    Cesari L, Pugliese R, Tiezzi F (2013) Blind-date Conversation Joining. In: EPTCS, WWV, vol 123, pp 3–18Google Scholar
  11. 11.
    Chinnici R, Moreau J, Ryman A, Weerawarana S (2007) Web services description language (WSDL) 2.0. Tech. rep., W3C. https://www.w3.org/TR/wsdl20/
  12. 12.
    EA: Battlefield (2016) http://www.battlefield.com/
  13. 13.
    Epic software: gears of war (2016) http://gearsofwar.xbox.com/
  14. 14.
    Fantechi A, Gnesi S, Lapadula A, Mazzanti F, Pugliese R, Tiezzi F (2012) A logical verification methodology for service-oriented computing. ACM Trans Softw Eng Methodol 21(3):16:1–16:46CrossRefGoogle Scholar
  15. 15.
    GlassFish community: JAX-WS (2016) https://jax-ws.java.net/
  16. 16.
    Gnesi S, Pugliese R, Tiezzi F (2011) The sensoria approach applied to the finance case study. In: Rigorous software engineering for service-oriented systems—results of the SENSORIA project on software engineering for service-oriented computing, LNCS, vol 6582. Springer, Berlin, pp 698–718Google Scholar
  17. 17.
    Groupon (2016) http://www.groupon.com/
  18. 18.
    Gudgin M, Hadley M, Rogers T (2006) Web services addressing 1.0—Core. Tech. rep., W3CGoogle Scholar
  19. 19.
    Guidi C, Lucchi R, Gorrieri R, Busi N, Zavattaro G (2006) SOCK: a calculus for service oriented computing. In: ICSOC, LNCS, vol 4294. Springer, Berlin, pp 327–338Google Scholar
  20. 20.
    Honda K, Yoshida N, Carbone M (2016) Multiparty asynchronous session types. J ACM 63(1):9MathSciNetCrossRefMATHGoogle Scholar
  21. 21.
    Hüttel H, Lanese I, Vasconcelos VT, Caires L, Carbone M, Deniélou P, Mostrous D, Padovani L, Ravara A, Tuosto E, Vieira HT, Zavattaro G (2016) Foundations of session types and behavioural contracts. ACM Comput Surv 49(1):3CrossRefGoogle Scholar
  22. 22.
    Lanese I, Martins F, Ravara A, Vasconcelos V (2007) Disciplining orchestration and conversation in service-oriented computing. In: SEFM. IEEE Computer Society Press, pp 305–314Google Scholar
  23. 23.
    Lapadula A, Pugliese R, Tiezzi F (2007) A calculus for orchestration of web services. In: ESOP, LNCS, vol 4421. Springer, pp 33–47Google Scholar
  24. 24.
    Lapadula A, Pugliese R, Tiezzi F (2007) Regulating data exchange in service oriented applications. In: FSEN, LNCS, vol 4767. Springer, pp 223–239Google Scholar
  25. 25.
    Lapadula A, Pugliese R, Tiezzi F (2012) Using formal methods to develop WS-BPEL applications. Sci Comput Program 77(3):189–213CrossRefGoogle Scholar
  26. 26.
    MAG interactive: Ruzzle (2016) http://www.ruzzle-game.com/
  27. 27.
    Mauro J, Gabbrielli M, Guidi C, Montesi F (2011) An efficient management of correlation sets with broadcast. In: COORDINATION, LNCS, vol 6721. Springer, Berlin, pp 80–94Google Scholar
  28. 28.
    Melgratti H, Roldán C (2012) On correlation sets and correlation exceptions in ActiveBPEL. In: TGC, LNCS, vol 7173. Springer, Berlin, pp 212–226Google Scholar
  29. 29.
    Michael Kay (2007) XSL transformations (XSLT) version 2.0. Tech. rep., W3CGoogle Scholar
  30. 30.
    Microsoft: Xbox live (2016) http://www.xbox.com/
  31. 31.
    Milner R (1989) Communication and concurrency. Prentice-Hall, Englewood CliffsMATHGoogle Scholar
  32. 32.
    Milner R, Parrow J, Walker D (1992) A calculus of mobile processes, I and II. Inf Comput 100(1):1-40–41-77MathSciNetMATHGoogle Scholar
  33. 33.
    Mojang: Minecraft (2016) https://minecraft.net/
  34. 34.
    Montesi F, Guidi C, Lucchi R, Zavattaro G (2007) JOLIE: a Java orchestration language interpreter engine. In: MTCoord, ENTCS, vol 181. Elsevier, pp 19–33Google Scholar
  35. 35.
    OASIS WSBPEL TC: Web services business process execution language version 2.0. Tech. rep., OASIS (2007) http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html
  36. 36.
    Play framework: play framework 2.5 (2016) http://www.playframework.com/
  37. 37.
    Pugliese R, Tiezzi F (2012) A calculus for orchestration of web services. J Appl Log 10(1):2–31MathSciNetCrossRefMATHGoogle Scholar
  38. 38.
    Sony: playstation network (2016) http://playstation.com/
  39. 39.
    Tiezzi F (2009) Specification and analysis of service-oriented applications. PhD thesis in computer science, Dipartimento di Sistemi e Informatica, Università degli Studi di Firenze. http://rap.dsi.unifi.it/cows
  40. 40.
    Valve: steam (2016) http://store.steampowered.com/
  41. 41.
    Vieira H, Caires L, Seco JC (2008) The conversation calculus: a model of service-oriented computation. In: ESOP, LNCS, vol 4960. Springer, Berlin, pp 269–283Google Scholar
  42. 42.
    Viroli M (2004) Towards a formal foundation to orchestration languages. In: WS-FM, ENTCS, vol 105. Elsevier, pp 51–71Google Scholar

Copyright information

© Springer-Verlag London Ltd. 2017

Authors and Affiliations

  • Luca Cesari
    • 1
  • Rosario Pugliese
    • 2
  • Francesco Tiezzi
    • 3
  1. 1.RCP VisionFlorenceItaly
  2. 2.Università degli Studi di FirenzeFlorenceItaly
  3. 3.Università di CamerinoCamerinoItaly

Personalised recommendations