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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Richardson, L., Ruby, S.: RESTful Web Services. O’Reilly, Sebastopol (2007)
Fielding, R.: Architectural Styles and The Design of Network-based Software Architectures. PhD thesis, University of California, Irvine (2000)
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)
Assmann, U.: Invasive Software Composition. Springer, Heidelberg (2003)
Pautasso, C., Alonso, G.: The JOpera visual composition language. Journal of Visual Languages and Computing (JVLC) 16(1-2), 119–152 (2005)
Programmable Web: API Dashboard (2009), http://www.programmableweb.com/apis
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)
Sessions, R.: Fuzzy boundaries: Objects, components, and web services. ACM Queue 2(9) (December/January 2004-2005)
Erl, T.: Service-Oriented Architecture: Concepts, Technology, and Design. Prentice-Hall, Englewood Cliffs (2005)
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
Fielding, R., Taylor, R.N.: Principled Design of the Modern Web Architecture. ACM Transactions on Internet Technology 2(2), 115–150 (2002)
Berners-Lee, T., Fielding, R., Masinter, L.: Uniform Resource Identifier (URI): generic syntax. IETF RFC 3986 (January 2005)
Chappell, D.: Enterprise Service Bus. O’Reilly, Sebastopol (2004)
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)
Crockford, D.: JSON: The fat-free alternative to XML. In: Proc. of XML 2006, Boston, USA (December 2006), http://www.json.org/fatfree.html
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)
Wikipedia: Mashup (web application hybrid), http://en.wikipedia.org/wiki/Mashup_web_application_hybrid
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)
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)
Pautasso, C.: JOpera: Process support for more than Web services, http://www.jopera.org
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)
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)
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)
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)
OASIS: Web Services Business Process Execution Language (April 2007), http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf
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)
Vinoski, S.: Serendipitous reuse. IEEE Internet Computing 12(1), 84–87 (2008)
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)
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)
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)
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)
Descy, D.E.: Mashups. with or without potatoes. Tech. Trends 51(2), 4–5 (2007)
Trevor, J.: Doing the mobile mash. Computer 41(2), 104–106 (2008)
Microsoft: Popfly, http://www.popfly.ms/
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Pautasso, C. (2009). Composing RESTful Services with JOpera. In: Bergel, A., Fabry, J. (eds) Software Composition. SC 2009. Lecture Notes in Computer Science, vol 5634. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02655-3_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-02655-3_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02654-6
Online ISBN: 978-3-642-02655-3
eBook Packages: Computer ScienceComputer Science (R0)