Essential Reading on HTTP and REST
Okay, so it's a bit risky to refer to this giant of contemporary computer science as a horse. But, as the saying goes, this is straight from the horse's mouth. Trust me, it doesn't get any more authoritative than this!
Roy Fielding is co-author of the HTTP specification and the ubiquitous Apache Web Server. He created the Representational State Transfer (REST) paradigm as an architectural style for the Web. Since then REST has received much well-deserved attention.
His doctoral thesis (FREE PDF!) is a seminal work that contains an excellent discussion on the following.
System architectures are explained as follows.
Fielding defines architectural styles as named, coordinated sets of architectural constraints. He uses styles as a mechanism for categorizing architectures and for defining their common characteristics. Styles can be combined to form hybrid styles as long as their constraint don't conflict. Especially useful is Fielding's catalog of network-based architectural styles organized under the following categories.
It is generally felt that most post-graduate work produces theoretical results with limited practical applications. This is an example to be held up as both an exception and a model.
Finally, follow Roy Fielding on Twitter to receive a regular dose of his insights. (Thanks Alex!)
Roy Fielding is co-author of the HTTP specification and the ubiquitous Apache Web Server. He created the Representational State Transfer (REST) paradigm as an architectural style for the Web. Since then REST has received much well-deserved attention.
His doctoral thesis (FREE PDF!) is a seminal work that contains an excellent discussion on the following.
- Software architectures in general, well worth reading for the survey and rigor contained herein, especially given the lack of consensus on what entails an architecture definition
- How network-based application architectures (e.g. the Web) are unique, an impressive discourse on the nature and function of the Internet
- Why Fielding proposed the REST architectural style for distributed hypermedia systems.
- Finally, Fielding uses the REST style as a mirror to illuminate areas of the Web that have gone rogue and require refactoring
System architectures are explained as follows.
- An abstraction of the run-time elements of a software system, as distinct from software structures that describe the static code
- Recursions of component/layer architectures down to the most basic system elements that cannot be further decomposed
- One per operational phase of the system, e.g. start-up, initialization, normal processing, re-initialization, shutdown
- A configuration of architectural elements (components, connectors, and data)
- The realization of an architectural design, not the design itself or even the rationale behind the design
- Compared in terms of the architectural properties or software qualities (relevant to the system domain) as induced by each architectural style (and the constraints therein)
Fielding defines architectural styles as named, coordinated sets of architectural constraints. He uses styles as a mechanism for categorizing architectures and for defining their common characteristics. Styles can be combined to form hybrid styles as long as their constraint don't conflict. Especially useful is Fielding's catalog of network-based architectural styles organized under the following categories.
- Data-flow
- Replication
- Hierarchical
- Mobile Code
- Peer-to-Peer
It is generally felt that most post-graduate work produces theoretical results with limited practical applications. This is an example to be held up as both an exception and a model.
Finally, follow Roy Fielding on Twitter to receive a regular dose of his insights. (Thanks Alex!)
0 Response to "Essential Reading on HTTP and REST"
Post a Comment