Skip to main content

Service-Oriented Programming with Jolie

  • Chapter
  • First Online:
Web Services Foundations

Abstract

The wide adoption of service-oriented computing has led to a heterogeneous scenario formed by different technologies and specifications. Examples can be found both at the design level—the frameworks for defining services and those for defining their coordination feature fundamentally different primitives—and at the implementation level—different communication technologies are used depending on the context. In this chapter we present Jolie, a fully-fledged service-oriented programming language. Jolie addresses the aforementioned heterogeneity in two ways. On the one hand, it combines computation and composition primitives in an intuitive and concise syntax. On the other hand, the behaviour and deployment of a Jolie program are orthogonal: they can be independently defined and recombined as long as they have compatible typing.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    A Jolie program definition may even be retrieved from URLs or local memory.

  2. 2.

    We observe, however, that Jolie trees are different from XML trees, as they are designed for performance. For example, Jolie tree nodes store typed values (strings, integers, ...), whereas XML does not: all XML node values are strings, and their type is just an optional annotation.

References

  1. W3C. Web Services Architecture. http://www.w3.org/TR/ws-arch/

  2. W3C. SOAP Specifications. http://www.w3.org/TR/soap/

  3. K Desktop Environment. http://www.kde.org/

  4. GNOME. http://www.gnome.org/

  5. D-Bus website. http://www.freedesktop.org/wiki/Software/dbus/

  6. OASIS. WS-BPEL Version 2.0. http://docs.oasis-open.org/wsbpel/

  7. Chappell, D.A.: Enterprise Service Bus—Theory in Practice. O’Reilly, Sebastopol (2004)

    Google Scholar 

  8. Jolie website. http://www.jolie-lang.org/

  9. SODEP protocol. http://www.jolie-lang.org/wiki.php?page=Sodep

  10. Google Web Toolkit. http://code.google.com/webtoolkit/

  11. JavaScript Object Notation. http://www.json.org/

  12. Montesi, F., Guidi, C., Zavattaro, G.: Composing services with JOLIE. In: Proceedings of ECOWS 2007, pp. 13–22 (2007)

    Google Scholar 

  13. Montesi, F.: Jolie: a service-oriented programming language. Master’s thesis, Department of Computer Science, University of Bologna (2010)

    Google Scholar 

  14. Montesi, F., Carbone, M.: Programming services with correlation sets. In: ICSOC, pp. 125–141 (2011)

    Google Scholar 

  15. OpenID Specifications. http://openid.net/developers/specs/

  16. OpenID implementation. http://www.jolie-lang.org/files/ws_handbook2012/openid.zip

  17. Guidi, C., Lanese, I., Montesi, F., Zavattaro, G.: Dynamic error handling in service oriented applications. Fundamenta Informaticae 95(1), 73–102 (2009)

    MathSciNet  MATH  Google Scholar 

  18. Guidi, C., Montesi, F.: Reasoning about a service-oriented programming paradigm. In: Proceedings of YR-SOC 2009, pp. 67–81 (2009)

    Google Scholar 

  19. Preda, M.D., Gabbrielli, M., Guidi, C., Mauro, J., Montesi, F.: Interface-based service composition with aggregation. In: ESOCC, pp. 48–63 (2012)

    Google Scholar 

  20. SENSORIA. Software Engineering for Service-Oriented Overlay Computers. http://www.sensoria-ist.eu/

  21. Automotive example. http://www.jolie-lang.org/files/ws_handbook2012/automotive.zip

  22. Lapadula, Alessandro, Pugliese, Rosario, Tiezzi, Francesco: Using formal methods to develop ws-bpel applications. Sci. Comput. Program. 77(3), 189–213 (2012)

    Article  Google Scholar 

  23. Bundgaard, M., Glenstrup, Hildebrandt, A.J., Højsgaard, T.T., Niss, H.: Formalizing higher-order mobile embedded business processes with binding bigraphs. In: Proceedings of COORDINATION 2008, pp. 83–99 (2008)

    Google Scholar 

  24. Carpineti, Samuele, Laneve, Cosimo, Padovani, Luca: Piduce—a project for experimenting web services technologies. Sci. Comput. Program. 74(10), 777–811 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  25. Kitchin, D., Quark, A., Cook, W.R., Misra, J.: The Orc programming language. In: Proceedings of FMOODS/FORTE 2009, pp. 1–25 (2009)

    Google Scholar 

  26. Preda, M.D., Gabbrielli, M., Lanese, I., Mauro, J., Zavattaro, G.: Graceful interruption of request-response service interactions. In: ICSOC, pp. 590–600 (2011)

    Google Scholar 

  27. Sherif, M.H.: Handbook of Enterprise Integration. Auerbach Publishers, Boca Raton (2009)

    Book  Google Scholar 

  28. Leonardo Web Server. http://www.sourceforge.net/projects/leonardo/

  29. Guidi, C., Lucchi, R., Gorrieri, R., Busi, N., Zavattaro, G.: SOCK: a calculus for service oriented computing. In: Proceedings of ICSOC 2006, pp. 327–338 (2006)

    Google Scholar 

  30. Guidi, C.: Formalizing languages for service oriented computing. Ph.D. thesis, University of Bologna (2007). http://www.cs.unibo.it/pub/TR/UBLCS/2007/2007-07.pdf

  31. Lanese, I., Vaz, C., Ferreira, C.: On the expressive power of primitives for compensation handling. In: ESOP, pp. 366–386 (2010)

    Google Scholar 

  32. Montesi, F., Sangiorgi, D.: A model of evolvable components. In: Proceedings of Fifth Symposium on Trustworthy Global Computing (TGC 2010) (2010)

    Google Scholar 

  33. Ivan L., Bucchiarone, A., Montesi, F.: A framework for rule-based dynamic adaptation. In: Proceedings of TGC, pp. 284–300 (2010)

    Google Scholar 

  34. Vision framework. https://jolie.svn.sourceforge.net/svnroot/jolie/trunk/playground/

  35. Anedda, P., Gaggero, M., Manca, S., Schiaratura, O., Leo, S., Montesi, F., Zanetti, G.: A general service oriented approach for managing virtual machines allocation. In: Proceedings of ACM Symposium on Applied Computing (SAC) 2009, pp. 2154–2161 (2009)

    Google Scholar 

  36. italianaSoftware s.r.l. italianaSoftware. http://www.italianasoftware.com/

  37. W3C. Web Services Description Language. http://www.w3.org/TR/wsdl

  38. jEye. A graphical designer for Jolie. http://sourceforge.net/projects/jeye/

  39. Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Proceedings of POPL’08, vol. 43(1), pp. 273–284. ACM Press (2008)

    Google Scholar 

  40. Castagna, G., Gesbert, N., Padovani, L.: A theory of contracts for web services. ACM Trans. Program. Lang. Syst., 31(5), 1–61 (2009)

    Google Scholar 

  41. Lanese, I., Guidi, C., Montesi, F., Zavattaro, G.: Bridging the gap between interaction—and process-oriented choreographies. In: SEFM, pp. 323–332 (2008)

    Google Scholar 

  42. Baltazar, P., Caires, L., Vasconcelos, V.T., Vieira, H.T.: A type system for flexible role assignment in multiparty communicating systems. In TGC (2012, to appear)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Fabrizio Montesi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer Science+Business Media New York

About this chapter

Cite this chapter

Montesi, F., Guidi, C., Zavattaro, G. (2014). Service-Oriented Programming with Jolie . In: Bouguettaya, A., Sheng, Q., Daniel, F. (eds) Web Services Foundations. Springer, New York, NY. https://doi.org/10.1007/978-1-4614-7518-7_4

Download citation

  • DOI: https://doi.org/10.1007/978-1-4614-7518-7_4

  • Published:

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4614-7517-0

  • Online ISBN: 978-1-4614-7518-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics