Abstract
This chapter discusses the significance of domain application protocols in distributed application design and development. Describing an application as an instance of the execution of a domain application protocol, it shows how we can design RESTful APIs that allow clients to drive the execution of a domain application protocol without binding to the protocol itself. The second half of the chapter provides a step-by-step example of a RESTful procurement application; this application realizes a procurement protocol in a way that requires clients to couple simply to media types and link relations, rather than to the protocol.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
This example simplifies the set of interactions encountered in a real-world application in order to highlight the key points in protocol design.
- 2.
The term “domain application protocol” and the three-step design methodology described here were first proposed in Webber et al. (2010). We chose the term “domain application protocol” so as to align it both with the book’s focus on automating business (domain) processes, and with our use of the terms “application” and “application state.” A domain application protocol is more commonly referred to as a coordination protocol: see, for example, Alonso et al. (2004).
- 3.
See Chap. 5, “Hypermedia Types,” for a more thorough, and more nuanced, discussion of hypermedia control capabilities.
- 4.
Restbucks served as the basis for the examples in Webber et al. (2010).
- 5.
This is an example of a one-time URI. See Allamaraju (2010) for more details of generating one-time URIs.
References
Subbu Allamaraju. RESTful Web Services Cookbook. O’Reilly, 2010.
Gustavo Alonso, Fabio Casati, Harumi Kuno, and Vijay Machiraju. Web Services: Concepts, Architectures and Applications. Springer-Verlag, Berlin, Heidelberg, New York, 2004.
Tim Berners-Lee, Roy T. Fielding, and Larry Masinter. Uniform Resource Identifier (URI): Generic Syntax. 2005. http://www.ietf.org/rfc/rfc3986.
Mark Birbeck and Shane McCarron (eds). CURIE Syntax 1.0. 2009. http://www.w3.org/TR/curie/.
David Booth. URIs and the Myth of Resource Identity. 2006. http://dbooth.org/2006/identity/.
John M. Boyer (ed). XForms 1.1. 2009. http://www.w3.org/TR/xforms11/.
Roy Fielding. Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine, 2000.
Joe Gregorio and Bill de hOra (eds). The Atom Publishing Protocol. 2007. http://tools.ietf.org/html/rfc5023.
Link Relations. 2011. http://www.iana.org/assignments/link-relations
M. Nottingham. Web Linking. 2010. http://www.rfc-editor.org/rfc/rfc5988.txt.
M. Nottingham and R. Sayre (eds). The Atom Syndication Format. 2005. http://tools.ietf.org/html/rfc4287.
Paul Prescod. Roots of the REST/SOAP Debate, 2002 Extreme Markup Languages Conference, Montréal, Canada, Aug 2002.
The Sun Cloud API. 2009. http://kenai.com/projects/suncloudapis/pages/Home.
Jim Webber, Savas Parastatidis, and Ian Robinson. REST in Practice: Hypermedia and Systems Architecture. O’Reilly, 2010.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Robinson, I. (2011). RESTful Domain Application Protocols. In: Wilde, E., Pautasso, C. (eds) REST: From Research to Practice. Springer, New York, NY. https://doi.org/10.1007/978-1-4419-8303-9_3
Download citation
DOI: https://doi.org/10.1007/978-1-4419-8303-9_3
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4419-8302-2
Online ISBN: 978-1-4419-8303-9
eBook Packages: EngineeringEngineering (R0)