Abstract
There is considerable debate in the REST community whether or not transaction support is needed and possible. This chapter’s contribution to this debate is threefold: we define a business case for transactions in REST based on the Try-Cancel/Confirm (TCC) pattern; we outline a very light-weight protocol that guarantees atomicity and recovery over distributed REST resources; and we discuss the inherent theoretical limitations of our approach. Our TCC for REST approach minimizes the assumptions made on the individual services that can be part of a transaction and does not require any extension to the HTTP protocol. A very simple but realistic example helps to illustrate the applicability of the approach.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Especially because the participants are not aware that they are part of a transaction
- 2.
A similar idea (but lacking the “try” phase) was also proposed in the OASIS BTP proposal (Dalal et al. 2003), which was standardized but remains without any current implementations.
References
Philip A. Bernstein, Vassos Hadzilacos, and Nathan Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.
Eric A. Brewer. Towards robust distributed systems (abstract). In Proc. of the 19th Annual ACM Symposium on Principles of Distributed Computing, page 7, Portland, Oregon, July 2000.
Sanjay Dalal, Sazi Temel, Mark Little, Mark Potts, and Jim Webber. Coordinating Business Transactions on the Web. IEEE Internet Computing, 7(1):30–39, January 2003.
Roy Fielding. Architectural Styles and The Design of Network-based Software Architectures. PhD thesis, University of California, Irvine, 2000.
Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson. Impossibility of distributed consensus with one faulty process. J. ACM, 32(2):374–382, 1985.
Yaron Y. Goland, E. James Whitehead, A. Faizi, S. Carter, and D. Jensen. HTTP Extensions for Distributed Authoring — WebDAV. Internet RFC 2518, February 1999.
Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann, 1993.
Pat Helland. Life beyond Distributed Transactions: an Apostate’s Opinion. In Third Biennial Conference on Innovative Data Systems Research (CIDR 2007), pages 132–141, Asilomar, CA, January 2007.
Michi Henning. The Rise and Fall of CORBA. ACM Queue, 4(5):28–34, June 2006.
Mark Little. REST and transactions?, 2009. http://www.infoq.com/news/2009/06/rest-ts.
Alexandros Marinos, Amir R. Razavi, Sotiris Moschoyiannis, and Paul J. Krause. RETRO: A Consistent and Recoverable RESTful Transaction Model. In Proc. of the IEEE International Conference on Web Services (ICWS 2009), pages 181–188, Los Angeles, CA, USA, July 2009.
Open Group. Distributed TP: The XA Specification, February 1992.
Guy Pardon. Try-Cancel/Confirm: Transactions for (Web) Services, 2009. http://www.atomikos.com/Publications/TryCancelConfirm.
Guy Pardon and Gustavo Alonso. CheeTah: a Lightweight Transaction Server for Plug-and-Play Internet Data Management. In Proceedings of 26th International Conference on Very Large Data Bases (VLDB 2000), pages 210–219, Cairo, Egypt, September 2000.
Cesare Pautasso. BPEL for REST. In 7th International Conference on Business Process Management (BPM08), Milan, Italy, September 2008.
Cesare Pautasso. Composing RESTful Services with JOpera. In Proc. of the International Conference on Software Composition (SC09), pages 142–159, Zurich, Switzerland, July 2009.
Cesare Pautasso and Erik Wilde. Why is the Web Loosely Coupled? A Multi-Faceted Metric for Service Design. In Proc. of the 18th International World Wide Web Conference, pages 911–920, Madrid, Spain, May 2009.
Prabhu Ram, Lyman Do, Pamela Drew, and Tong Zhou. Object Transaction Service: Experiences and Open Issues. In International Symposium on Distributed Objects and Applications (DOA 1999), pages 296–304, Edinburgh, UK, September 1999.
Amir R. Razavi, Alexandros Marinos, Sotiris Moschoyiannis, and Paul J. Krause. RESTful Transactions Supported by the Isolation Theorems. In ICWE’09, pages 394–409, 2009.
Leonard Richardson and Sam Ruby. RESTful Web Services. O’Reilly, May 2007.
Florian Rosenberg, Francisco Curbera, Matthew J. Duftler, and Rania Kahalf. Composing RESTful Services and Collaborative Workflows. IEEE Internet Computing, 12(5):24–31, September-October 2008.
Stefan Tai, Thomas Mikalsen, Eric Wohlstadter, Nirmit Desai, and Isabelle Rouvellou. Transaction policies for service-oriented computing. Data Knowl. Eng., 51(1):59–79, 2004.
Steve Vinoski. Serendipitous Reuse. IEEE Internet Computing, 12(1):84–87, 2008.
Hartmut Vogler, Marie-Luise Moschgath, Thomas Kunkelmann, and J. Grünewald. The Transaction Internet Protocol in Practice: Reliability for WWW Applications. IEEE Computer Society, Internet Workshop’99 (IWS’99), February 1999.
Jim Webber, Savas Parastatidis, and Ian Robinson. REST in practice. O’Reilly, September 2010.
Xiwei Xu, Liming Zhu, Yan Liu, and Mark Staples. Resource-Oriented Architecture for Business Processes. In Proc of the 15th Asia-Pacific Software Engineering Conference (APSEC2008), December 2008.
Olaf Zimmermann, Jonas Grundler, Stefan Tai, and Frank Leymann. Architectural Decisions and Patterns for Transactional Worlflows in SOA. In Proc. of the 5th International Conference on Service-Oriented Computing, Vienna, Austria, 2007.
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
Pardon, G., Pautasso, C. (2011). Towards Distributed Atomic Transactions over RESTful Services. 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_23
Download citation
DOI: https://doi.org/10.1007/978-1-4419-8303-9_23
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)