Formal Modeling of RESTful Systems Using Finite-State Machines

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.

[1]  Lisa Dusseault,et al.  PATCH Method for HTTP , 2010, RFC.

[2]  Nora Koch,et al.  Software Engineering for Adaptive Hypermedia Systems: Reference Model, Modeling Techniques and Development Process , 2001, Softwaretechnik-Trends.

[3]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[4]  Savas Parastatidis,et al.  The role of hypermedia in distributed system development , 2010, WS-REST '10.

[5]  Andrew D. Gordon,et al.  Verified Reference Implementations of WS-Security Protocols , 2006, WS-FM.

[6]  Previous version: , 2004 .

[7]  Steve Vinoski RESTful Web Services Development Checklist , 2008, IEEE Internet Computing.

[8]  Federico Fernandez,et al.  Towards a practical model to facilitate reasoning about REST extensions and reuse , 2010, WS-REST '10.

[9]  Mathias Weske,et al.  RESTful Petri Net Execution , 2008, WS-FM.

[10]  Vlad Trifa,et al.  Design of a Web-based distributed location-aware infrastructure for mobile devices , 2010, 2010 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops).

[11]  Erik Wilde,et al.  RESTler: crawling RESTful services , 2010, WWW '10.

[12]  Florian Rosenberg,et al.  Composing RESTful Services and Collaborative Workflows: A Lightweight Approach , 2008, IEEE Internet Computing.

[13]  P. David Stotts,et al.  Hyperdocuments as automata: verification of trace-based browsing properties by model checking , 1998, TOIS.

[14]  Cesare Pautasso,et al.  RESTful Web service composition with BPEL for REST , 2009, Data Knowl. Eng..

[15]  Erik Wilde,et al.  Hypermedia-Driven RESTful Service Composition , 2010, ICSOC Workshops.

[16]  守屋 悦朗,et al.  J.E.Hopcroft, J.D. Ullman 著, "Introduction to Automata Theory, Languages, and Computation", Addison-Wesley, A5変形版, X+418, \6,670, 1979 , 1980 .

[17]  Nenad Medvidovic,et al.  Composing style-based software architectures from architectural primitives , 2004 .

[18]  Roy T. Fielding,et al.  Principled design of the modern Web architecture , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[19]  James R. Cordy,et al.  Modelling methods for web application verification and testing: state of the art , 2009, Softw. Test. Verification Reliab..

[20]  Joumana Dargham,et al.  FSM Behavioral Modeling Approach for Hypermedia Web Applications: FBM-HWA Approach , 2006, Advanced Int'l Conference on Telecommunications and Int'l Conference on Internet and Web Applications and Services (AICT-ICIW'06).

[21]  María N. Moreno García,et al.  A formal definition of RESTful semantic web services , 2010, WS-REST '10.

[22]  Michal Trybulec Labelled State Transition Systems , 2009, Formaliz. Math..

[23]  Erik Wilde,et al.  Linking Data from RESTful Services , 2010 .