Advertisement

Composing RESTful Services with JOpera

  • Cesare Pautasso
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5634)

Abstract

The REST architectural style is emerging as an alternative technology platform for the realization of service-oriented architectures. In this paper, we apply the notion of composition to RESTful services and derive a set of language features that are required by composition languages for RESTful services: dynamic late binding, dynamic typing, content-type negotiation, state inspection, and compliance with the uniform interface principle. To show how such requirements can be satisfied by an existing composition language, we include a case-study using the JOpera visual composition language. In it, we present how to build a composite application (DoodleMap) out of some well-known, public and currently existing RESTful service APIs.

Keywords

Service Composition State Inspection Service Invocation XPath Query RESTful Service 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Richardson, L., Ruby, S.: RESTful Web Services. O’Reilly, Sebastopol (2007)Google Scholar
  2. 2.
    Fielding, R.: Architectural Styles and The Design of Network-based Software Architectures. PhD thesis, University of California, Irvine (2000)Google Scholar
  3. 3.
    Daniel, F., Matera, M., Yu, J., Benatallah, B., Saint-Paul, R., Casati, F.: Understanding UI integration: A survey of problems, technologies, and opportunities. IEEE Internet Computing 11(3), 59–66 (2007)CrossRefGoogle Scholar
  4. 4.
    Assmann, U.: Invasive Software Composition. Springer, Heidelberg (2003)CrossRefzbMATHGoogle Scholar
  5. 5.
    Pautasso, C., Alonso, G.: The JOpera visual composition language. Journal of Visual Languages and Computing (JVLC) 16(1-2), 119–152 (2005)CrossRefGoogle Scholar
  6. 6.
    Programmable Web: API Dashboard (2009), http://www.programmableweb.com/apis
  7. 7.
    Szyperski, C.: Component technology - what, where, and how? In: ICSE 2003: Proc. of the 25th International Conference on Software Engineering, Portland, Oregon, pp. 684–693 (2003)Google Scholar
  8. 8.
    Sessions, R.: Fuzzy boundaries: Objects, components, and web services. ACM Queue 2(9) (December/January 2004-2005)Google Scholar
  9. 9.
    Erl, T.: Service-Oriented Architecture: Concepts, Technology, and Design. Prentice-Hall, Englewood Cliffs (2005)Google Scholar
  10. 10.
    Laskey, K., Le Hégaret, P., Newcomer, E. (eds.): Workshop on Web of Services for Enterprise Computing, W3C (February 2007), http://www.w3.org/2007/01/wos-ec-program.html
  11. 11.
    Fielding, R., Taylor, R.N.: Principled Design of the Modern Web Architecture. ACM Transactions on Internet Technology 2(2), 115–150 (2002)CrossRefGoogle Scholar
  12. 12.
    Berners-Lee, T., Fielding, R., Masinter, L.: Uniform Resource Identifier (URI): generic syntax. IETF RFC 3986 (January 2005)Google Scholar
  13. 13.
    Chappell, D.: Enterprise Service Bus. O’Reilly, Sebastopol (2004)Google Scholar
  14. 14.
    Pautasso, C., Wilde, E.: Why is the web loosely coupled? a multi-faceted metric for service design. In: Proc. of the 18th World Wide Web Conference, Madrid, Spain (April 2009)Google Scholar
  15. 15.
    Crockford, D.: JSON: The fat-free alternative to XML. In: Proc. of XML 2006, Boston, USA (December 2006), http://www.json.org/fatfree.html
  16. 16.
    Nierstrasz, O., Meijler, T.D.: Requirements for a composition language. In: Selected papers from the ECOOP 1994 Workshop on Models and Languages for Coordination of Parallelism and Distribution, Object-Based Models and Languages for Concurrent Systems, pp. 147–161 (1994)Google Scholar
  17. 17.
    Wikipedia: Mashup (web application hybrid), http://en.wikipedia.org/wiki/Mashup_web_application_hybrid
  18. 18.
    Pautasso, C., Alonso, G.: Flexible binding for reusable composition of web services. In: Gschwind, T., Aßmann, U., Nierstrasz, O. (eds.) SC 2005. LNCS, vol. 3628, pp. 151–166. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  19. 19.
    Pautasso, C., Alonso, G.: From web service composition to megaprogramming. In: Shan, M.-C., Dayal, U., Hsu, M. (eds.) TES 2004. LNCS, vol. 3324, pp. 39–53. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  20. 20.
    Pautasso, C.: JOpera: Process support for more than Web services, http://www.jopera.org
  21. 21.
    Eshuis, R., Grefen, P.W.P.J., Till, S.: Structured service composition. In: Dustdar, S., Fiadeiro, J.L., Sheth, A.P. (eds.) BPM 2006. LNCS, vol. 4102, pp. 97–112. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  22. 22.
    Oberleitner, J., Gschwind, T., Jazayeri, M.: The Vienna component framework enabling composition across component models. In: ICSE 2003: Proceedings of the 25th International Conference on Software Engineering, Portland, Oregon, pp. 25–35 (2003)Google Scholar
  23. 23.
    Gschwind, T.: Type based adaptation: An adaptation approach for dynamic distributed systems. In: van der Hoek, A., Coen-Porisini, A. (eds.) SEM 2002. LNCS, vol. 2596, pp. 130–143. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  24. 24.
    Pautasso, C., Zimmermann, O., Leymann, F.: RESTful Web Services vs. Big Web Services: Making the right architectural decision. In: Proc. of the 17th World Wide Web Conference, Beijing, China (April 2008)Google Scholar
  25. 25.
    OASIS: Web Services Business Process Execution Language (April 2007), http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf
  26. 26.
    Pautasso, C.: BPEL for REST. In: Dumas, M., Reichert, M., Shan, M.-C. (eds.) BPM 2008. LNCS, vol. 5240, pp. 278–293. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  27. 27.
    Vinoski, S.: Serendipitous reuse. IEEE Internet Computing 12(1), 84–87 (2008)CrossRefGoogle Scholar
  28. 28.
    Rosenberg, F., Curbera, F., Duftler, M.J., Kahalf, R.: Composing RESTful services and collaborative workflows. IEEE Internet Computing 12(5), 24–31 (September-October 2008)Google Scholar
  29. 29.
    Curbera, F., Duftler, M., Khalaf, R., Lovell, D.: Bite: Workflow composition for the web. In: Krämer, B.J., Lin, K.-J., Narasimhan, P. (eds.) ICSOC 2007. LNCS, vol. 4749, pp. 94–106. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  30. 30.
    Decker, G., Luders, A., Schlichting, K., Overdick, H., Weske, M.: RESTful petri net execution. In: 5th International Workshop on Web Services and Formal Methods, Milan, Italy (September 2008)Google Scholar
  31. 31.
    Xu, X., Zhu, L., Liu, Y., Staples, M.: Resource-oriented architecture for business processes. In: Proc of the 15th Asia-Pacific Software Engineering Conference (APSEC 2008) (December 2008)Google Scholar
  32. 32.
    Descy, D.E.: Mashups. with or without potatoes. Tech. Trends 51(2), 4–5 (2007)Google Scholar
  33. 33.
    Trevor, J.: Doing the mobile mash. Computer 41(2), 104–106 (2008)CrossRefGoogle Scholar
  34. 34.
    Microsoft: Popfly, http://www.popfly.ms/
  35. 35.
    Maximilien, E.M., Wilkinson, H., Desai, N., Tai, S.: A domain-specific language for Web APIs and services mashups. In: Proc. of the 5th International Conference on Service-Oriented Computing (ICSOC 2007), Vienna, Austria, pp. 13–26 (September 2007)Google Scholar
  36. 36.
    Yu, J., Benatallah, B., Casati, F., Daniel, F., Matera, M., Saint-Paul, R.: Mixup: A development and runtime environment for integration at the presentation layer. In: Baresi, L., Fraternali, P., Houben, G.-J. (eds.) ICWE 2007. LNCS, vol. 4607, pp. 479–484. Springer, Heidelberg (2007)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Cesare Pautasso
    • 1
  1. 1.Faculty of InformaticsUniversity of LuganoSwitzerland

Personalised recommendations