Abstract
Representational State Transfer (REST), as an architectural style for distributed hypermedia systems, enables scalable operation of the World Wide Web (WWW) and is the foundation for its future evolution. However, although described over 10 years ago, no comprehensive formal model for representing RESTful systems exists. The lack of a formal model has hindered understanding of the REST architectural style and the WWW architecture, consequently limiting Web engineering advancement. In this paper we present a model of RESTful systems based on a finite-state machine formalism. We show that the model enables intuitive formalization of many REST’s constraints, including uniform interface, stateless client-server operation, and code-on-demand execution. We describe the model’s mapping to a system-level view of operation and apply the model to an example Web application. Finally, we outline benefits of the model, ranging from better understanding of REST to designing frameworks for RESTful system development.
Chapter PDF
Similar content being viewed by others
Keywords
References
Jacobs, I., Walsh, N.: Architecture of the World Wide Web, Volume One. W3C Recommendation, WWW Consortium (2004), http://www.w3.org/TR/webarch/
Fielding, R.T., Taylor, R.N.: Principled design of the modern Web architecture. ACM Transactions on Internet Technology 2(2), 115–150 (2002)
Dusseault, L., Snell, J.: PATCH Method for HTTP. In: Proposed Standard, Internet Engineering Task Force, IETF (2010), http://tools.ietf.org/html/rfc5789
Trifa, V., Trifa, V., Guinard, D., Bolliger, P., Wieland, S.: Design of a Web-based Distributed Location-Aware Infrastructure for Mobile Devices. In: 1st IEEE International Workshop on the Web of Things, Mannheim, Germany, pp. 714–719 (2010)
Alarcon, R., Wilde, E.: Linking Data from RESTful Services. In: 3rd International Workshop on Linked Data on the Web, Raleigh, North Carolina, USA (2010)
Fitzpatrick, B., Slatkin, B., Atkins, M.: PubSubHubbub protocol, http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.3.html
Rosenberg, F., Curbera, F., Duftler, M.J., Khalaf, R.: Composing RESTful Services and Collaborative Workflows: A Lightweight Approach. IEEE Internet Computing 12(5), 24–31 (2008)
Pautasso, C.: RESTful Web service composition with BPEL for REST. Data & Knowledge Engineering 68(9), 851–866 (2009)
Koch, N.: Software Engineering for Adaptive Hypermedia Systems: Reference Model, Modeling Techniques and Development Process. Ph.D. dissertation, Ludwig-Maximilians-University of Munich, Germany (2000)
Fernandez, F., Navon, J.: Towards a Practical Model to Facilitate Reasoning about REST Extensions and Reuse. In: 1st International Workshop on RESTful Design, Raleigh, North Carolina, pp. 31–38 (2010)
Rees, J.: ACTION-434: Some notes on organizing discussion on WebApps architecture. In: W3C TAG Mailing List (2010), http://lists.w3.org/Archives/Public/www-tag/2010Oct/0061.html
ISSUE-60: Web Application State Management. W3C TAG Issues List, http://www.w3.org/2001/tag/group/track/issues/60
Fielding, R.T.: ACTION-434: Some notes on organizing discussion on WebApps architecture. In: W3C TAG Mailing List (2010), http://lists.w3.org/Archives/Public/www-tag/2010Oct/0100.html
Kemp, J.: AWWW and the Web interaction model. In: W3C TAG Mailing List (2010), http://lists.w3.org/Archives/Public/www-tag/2010Jun/0034
Vinoski, S.: RESTful Web Services Development Checklist. IEEE Internet Computing 12(6), 95–96 (2008)
Hopcroft, J.E., Ullman, J.D.: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley Publishing, Reading (1979)
Berners-Lee, T., Mendelsohn, N.: The Rule of Least Power W3C TAG Finding (2006), http://www.w3.org/2001/tag/doc/leastPower.html
Mehta, N.R.: Composing style-based software architectures from architectural primitives. Ph.D. dissertation, University of Southern California, California, USA (2004)
Hernandez, A.G., Moreno Garcia, M.N.: A Formal Definition of RESTful Semantic Web Services. In: 1st International Workshop on RESTful Design, Raleigh, North Carolina, pp. 39–45 (2010)
Decker, G., Luders, A., Overdick, H., Schlichting, K., Weske, M.: RESTful Petri Net Execution. In: Bruni, R., Wolf, K. (eds.) WS-FM 2008. LNCS, vol. 5387, pp. 73–87. Springer, Heidelberg (2009)
Alarcon, R., Wilde, E., Bellido, J.: Hypermedia-driven RESTful Service Composition. In: 6th Workshop on Engineering Service-Oriented Applications, San Francisco, California (2010)
Charlton, S.: Building a RESTful Hypermedia Agent, Part 1 (2010), http://www.stucharlton.com/blog/archives/2010/03/building-a-restful-hypermedia
Alalfi, M.H., Cordy, J.R., Dean, T.R.: Modeling methods for web application verification and testing: state of the art. In: Software Testing, Verification & Reliability Archive, vol. 19(4), pp. 265–296. John Wiley and Sons Ltd., Chichester (2009)
Stotts, P.D., Furuta, R., Cabarrus, C.R.: Hyperdocuments as Automata: Verification of Trace-Based Properties by Model Checking. ACM Transactions on Information Systems 16(1), 1–30 (1998)
Dargham, J., Al-Nasrawi, S.: FSM Behavioral Modeling Approach for Hypermedia Web Applications: FBM-HWA Approach. In: Advanced International Conference on Telecommunications and International Conference on Internet and Web Applications and Services, Guadeloupe, French Caribbean, pp. 199–199 (2006)
Trybulec, M.: Labelled State Transition Systems. Formalized Mathematics 17(2), 163–171 (2009)
Parastatidis, S., Parastatidis, S., Webber, J., Silveira, G., Robinson, I.S.: The role of hypermedia in distributed system development. In: 1st International Workshop on RESTful Design, Raleigh, North Carolina, pp. 16–22 (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Zuzak, I., Budiselic, I., Delac, G. (2011). Formal Modeling of RESTful Systems Using Finite-State Machines. In: Auer, S., Díaz, O., Papadopoulos, G.A. (eds) Web Engineering. ICWE 2011. Lecture Notes in Computer Science, vol 6757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22233-7_24
Download citation
DOI: https://doi.org/10.1007/978-3-642-22233-7_24
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-22232-0
Online ISBN: 978-3-642-22233-7
eBook Packages: Computer ScienceComputer Science (R0)