Reflections on the REST Architectural Style and “Principled Design of the Modern Web Architecture” | Fielding, Taylor, Erenkrantz, Gorlick, Whitehead, Khare, Oreizy

Roy T. Fielding, Richard N. Taylor, Justin Erenkrantz, Michael M. Gorlick, E. James Whitehead, Rohit Khare, Peyman Oreizy; Reflections on the REST Architectural Style and “Principled Design of the Modern Web Architecture; In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017); 2017; pages 4-11 (8 pages); landing


Seventeen years after its initial publication at ICSE 2000, the Representational State Transfer (REST) architectural style continues to hold significance as both a guide for understanding how the World Wide Web is designed to work and an example of how principled design, through the application of architectural styles, can impact the development and understanding of large-scale software architecture. However, REST has also become an industry buzzword: frequently abused to suit a particular argument, confused with the general notion of using HTTP, and denigrated for not being more like a programming methodology or implementation framework. In this paper, we chart the history, evolution, and shortcomings of REST, as well as several related architectural styles that it inspired, from the perspective of a chain of doctoral dissertations produced by the University of California’s Institute for Software Research at UC Irvine. These successive theses share a common theme: extending the insights of REST to new domains and, in their own way, exploring the boundary of software engineering as it applies to decentralized software architectures and architectural design. We conclude with discussion of the circumstances, environment, and organizational characteristics that gave rise to this body of work.


There are 59 references.


  • Roy T. Fielding, Richard N. Taylor. Principled Design of the Modern Web Architecture. In Proceedings of the 22nd International Conference on Software Engineering (ICSE). 2000. pages 407–416. IEEE, Limerick, Ireland.


  • Justin R. Erenkrantz. Computational REST: A New Model for Decentralized, Internet-Scale Applications. Ph.D. Dissertation. University of California, Irvine, Irvine, California, USA. 2009.
  • Roy T. Fielding. Architectural Styles and the Design of Network-based Software Architectures. Ph.D. Dissertation. University of California, Irvine, California, USA. 2000.
  • Michael Martin Gorlick. Computational State Transfer: An Architectural Style for Decentralized Systems. Ph.D. Dissertation. Technical Report UCI-ISR-16-3. University of California, Irvine, Irvine, California, USA. 2016.
  • David Alan Halls. Applying Mobile Code to Distributed Systems. Ph.D. Dissertation. University of Cambridge, Cambridge, UK. 1997.
  • Michael Hicks. Dynamic Software Updating. Ph.D. Dissertation. Computer and Information Science, University of Pennsylvania, Philadelphia, Pennsylvania, USA. 2001.
  • Rohit Khare. Extending the REpresentational State Transfer (REST) Architectural Style for Decentralized Systems. Ph.D. Dissertation. University of California, Irvine, California, USA. 2003.
  • Mark Samuel Miller. Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control. Ph.D. Dissertation. Johns Hopkins University, Baltimore, Maryland, USA. 2006.
  • Peyman Oreizy. Open architecture software: a flexible approach to decentralized software evolution. Ph.D. Dissertation. University of California, Irvine, Irvine, California, USA.
  • Emmet James Whitehead, Jr. An Analysis of the Hypertext Versioning Domain. Ph.D. Dissertation. Univ. of California, Irvine, Irvine, California, USA. 2000.


Separately noted.

Mozilla launches Project Things IoT framework on Raspberry Pi | LinuxGizmos

Mozilla launches Project Things IoT framework on Raspberry Pi; Eric Brown; In LinuxGizmos; 2017-07-07.


Mozilla Project Things is announced.
Mozilla Firefox Connect Devices project is abandoned.


  • Project Things
    • of Mozilla
    • Concept
      • a framework
      • a brand
      • a specification
    • And more
      • the theory, the Web of Things (WoT)
      • the framework, the architecture
        a meta-layer among the Great Cultures.
      • three flavors
  • Web of Things
    • specifications
    • Components
      • device
      • gateway
      • cloud
  • Things Gateway
    • Raspberry Pi
    • Software tack, shown later
  • Proprietary lock-in at the core; Internet of Things (IoT) is a “Great Cultures” system; <quote><snip>most home and industrial IoT vendors <snip/> align themselves with <snip/> IoT ecosystems pushed by a handful of the world’s largest tech companies. </quote>
    <quote>All of these stacks include proprietary technology, as well as varying degrees of more open technologies that are more or less controlled by a single company.</quote>


  • JSON
  • HTTP
  • REST
  • WebSockets
  • TLS (Transport Layer Security)


  • Web Thing API
    A Specification Proposal
    “simple” <ahem>nobody ever comes out with a “complex” specification, now do they?</ahem>
    but extensible
  • Web Thing Description, a format
  • JSON, an encoding
    a default [meaning something else could replace that?]
  • REST + WebSockets
  • Web Thing API

“Great Cultures”, a.k.a. “The Ecosystems”

The three more Linux-oriented ecosystems listed here —

  • Nest
  • Weave
  • AWS IoT
  • Greengrass

Amazon AWS IoT

  • Artik
  • Tizen
  • SmartThings

Latest Samsung Module runs Tizen RT on a Cortex M4<
>Linux-Based Smart Home Hubs Advance into AI


Something talking Apple to Apple.
Something talking Microsoft to Microsoft


  • Web Thing Description Format <ahem>like RDF, but different</ahem>
  • [A new] RESTy style Web Thing API
  • [A new] HTTP for IoT and low-function processing <ahem>MQTT</ahem>

via Ben Francis, Mozilla


of Project Things

  • device (smart node/endpoint)
  • gateway
  • cloud components
Things Devices
use a Direct Integration Pattern in the Things Framework to directly expose a WoT API
<ahem>what does this even mean?</ahem>

  • L2 is WiFi
  • L4 is TCP/IP
  • L7 is HTTP
Things Gateway
runs on gateways <ahem/> It aggregates communications from low-end or PAN networked devices.
Things Cloud
Uses a cloud server to expose a WoT API. It controls zero or more gateways and “smart” IoT devices within its domain of control.

The Prototype (Things Gateway)

  • Raspberry Pi 3 Single Board Computer (SBC)
  • Linux
  • NodeJS, JavaScript
  • Rust
    something aspirational, later

Polish: “experimental pre-release software”

Use Case

  • Discover the Gateway on the local network
  • Zero configuration (Zeroconf?) the Gateway to the Cloud
    • Choose a Web Address (a DNS name? An URL?)
    • A TLS tunnel requiring zero configuration
  • Create a username and passwordo on the Gateway
  • Discover zero or more Smart Plugs attached to the Gateway
    • ZigBee
    • Z-Wave
  • Control the Smart Plugs from the Cloud
    • on
    • off




… and brands

  • AllJoyn
  • Cortex M4
  • Iotivity
  • Personal Area Network (PAN)
  • Single Board Computer (SBC)
  • Tizen
  • Web of Things (WoT)
  • Z-Wave
  • ZigBee


  • Hyper-Text Transport Protocol (HTTP)
    The transfer of hypertext
  • JavaScript Object Notation (JSON)
  • Representational State Transfer (REST)
    The manifestation and transfer of a representation of the (internal) state of a workflow in zero or more remote applications; the workflow execitomg among the client and server(s)
  • Transport Layer Security (TLS)
  • Web Socket (WebSockets)
    Yes, everywhere except Opera


  • Ben Francis, Mozilla



In LinuxGizmos


The Real-time Web in REST Services at IMVU

The Real-time Web in REST Services at IMVU; Jon Watte (IMVU); In Their Blog; 2014-12-27.
tl;dr =&gr; graph-shaped REST (REpresentational State Transfer) API (Application Programming Interface)

Richardson Maturity Model: Steps Toward the Glory of REST | Martin Fowler

Martin Fowler; Richardson Maturity Model: Steps Toward the Glory of REST; In His Blog; 2010-03-18.

Original Sources


Figure 1

Figure 2

Figure 3

Figure 4

Figure 5