> And yet still no acronym expansion. Off with his head!
Lucas does have a tendency to start in the middle of a discussion,
doesn't he? I am going to enter an amicus brief in his defense,
arguing that he should be found Not Guilty by Reason of Temporary
Caffeine Poisoning.
REST stands for Representation State Transfer, and suggests that what
the Web got right is having a small, global set of verbs (GET, POST,
PUT, HEAD, etc) applied to a potentially infinite set of nouns (URIs).
Roy Fielding, REST's coiner, says
The World Wide Web architecture has evolved into a novel
architectural style that I call "representational state transfer."
Using elements of the client/server, pipe-and-filter, and
distributed objects paradigms, this style optimizes the network
transfer of representations of a resource. A Web-based application
can be viewed as a dynamic graph of state representations (pages)
and the potential transitions (links) between states. The result is
an architecture that separates server implementation from the
client's perception of resources, scales well with large numbers of
clients, enables transfer of data in streams of unlimited size and
type, supports intermediaries (proxies and gateways) as data
transformation and caching components, and concentrates the
application state within the user agent components.
However, we need to distinguish between the architectural style and
its current instantiation in WWW technology (URL, HTTP, HTML, Java
applets, etc.). Understanding the style reveals why the current WWW
protocols are successful, where they are deficient, and provides a
model for evaluating proposals for future enhancements and new
protocols. Similarly, when a proposed application requires a pattern
of communication that is contrary to representational state
transfer, an awareness of architectural styles should help the
designer choose a more appropriate architecture, perhaps acting in
parallel with the Web, rather than shoehorn the application into
existing WWW technology.
A presentation is at
http://www.ics.uci.edu/~fielding/talks/webarch_9805/index.htm
-clay
ps. I am not a big believer in REST, though I do know some Certified
Smart People who have recently gotten religion. I'm more interested in
its implicit criitque of current trends in web services.