Abstract
REST is a software architectural style used for the design of highly scalable web applications. Interest in REST has grown rapidly over the past decade, spurred by the growth of open web APIs. On the other hand, there is also considerable confusion surrounding REST: many examples of supposedly RESTful APIs violate key REST constraints. We show that the constraints of REST and of RESTful HTTP can be precisely formulated within temporal logic. This leads to methods for model checking and run-time verification of RESTful behavior. We formulate several relevant verification questions and analyze their complexity.
Chapter PDF
Similar content being viewed by others
References
Abdulla, P.A., Cerans, K., Jonsson, B., Tsay, Y.K.: General decidability theorems for infinite-state systems. In: LICS (1996)
Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, & Tools, 2nd edn. Addison-Wesley, Reading (2007)
Bizer, C., Heath, T., Idehen, K., Berners-Lee, T.: Linked data on the web (LDOW2008). In: WWW, pp. 1265–1266 (2008), talk by Tim Berners-Lee at TED (2009), http://www.w3.org/2009/Talks/0204-ted-tbl/
Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, Springer, Heidelberg (1982)
Emerson, E., Clarke, E.: Proving correctness of parallel programs using fixpoints. In: de Bakker, J.W., van Leeuwen, J. (eds.) ICALP 1980. LNCS, vol. 85, Springer, Heidelberg (1980)
Erenkrantz, J.R., Gorlick, M.M., Suryanarayana, G., Taylor, R.N.: From representations to computations: the evolution of web architectures. In: ESEC/SIGSOFT FSE, pp. 255–264 (2007)
Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., Berners-Lee, T.: W3C RFC 2616 (June 1999), http://www.w3.org/Protocols/rfc2616/rfc2616.html
Fielding, R.T.: Architectural Styles and the Design of Network-based Software Architectures. Ph.D. thesis, University of California, Irving (2000)
Fielding, R.T.: (2008), http://roy.gbiv.com/untangled/2008/no-rest-in-cmis#comment-697
Fielding, R.T.: (2008), http://roy.gbiv.com/untangled/2008/rest-apis-mustbe-hypertext-driven
German, S., Sistla, A.: Reasoning about systems with many processes. Journal of the ACM (1992)
Herlihy, M., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)
Hernández, A.G., GarcÃa, M.N.M.: A formal definition of RESTful semantic web services. In: WS-REST, pp. 39–45 (2010)
Holzmann, G.J.: The SPIN Model Checker. Addison-Wesley, Reading (2003), http://spinroot.com
Klein, U., Namjoshi, K.S.: Formalization and Automated Verification of RESTful Behavior. Tech. rep., Bell Labs; Courant Institute of Mathematical Sciences, NYU TR2011-938 (2011)
Lichtenstein, O., Pnueli, A., Zuck, L.: The glory of the past. In: Proc. of the Conf. on Logics of Programs (1985)
Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs (1990)
Namjoshi, K.S.: Symmetry and completeness in the analysis of parameterized systems. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol. 4349, pp. 299–313. Springer, Heidelberg (2007)
Papadimitriou, C.H.: Computational Complexity. Addison-Wesley, Reading (1994)
Pnueli, A.: The temporal logic of programs. In: FOCS (1977)
Pnueli, A., Ruah, S., Zuck, L.D.: Automatic deductive verification with invisible invariants. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 82–97. Springer, Heidelberg (2001)
Pnueli, A., Rosner, R.: On the synthesis of a reactive module. In: POPL, pp. 179–190 (1989)
Queille, J., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, Springer, Heidelberg (1982)
Vardi, M., Wolper, P.: An automata-theoretic approach to automatic program verification. In: IEEE Symposium on Logic in Computer Science (1986)
Visser, W., Havelund, K., Brat, G.P., Park, S., Lerda, F.: Model checking programs. Autom. Softw. Eng. 10(2), 203–232 (2003), http://babelfish.arc.nasa.gov/trac/jpf
SOAP version 1.2 part 1: Messaging framework (second edition). W3C Recommendation (2007), http://www.w3.org/TR/soap12-part1/
Uniform Resource Identifier (URI): Generic Syntax. W3C RFC 3986 (2005)
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
Klein, U., Namjoshi, K.S. (2011). Formalization and Automated Verification of RESTful Behavior. In: Gopalakrishnan, G., Qadeer, S. (eds) Computer Aided Verification. CAV 2011. Lecture Notes in Computer Science, vol 6806. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22110-1_43
Download citation
DOI: https://doi.org/10.1007/978-3-642-22110-1_43
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-22109-5
Online ISBN: 978-3-642-22110-1
eBook Packages: Computer ScienceComputer Science (R0)