[ba-ohs-talk] REST -- Representational State Transfer -- the Web
Something to think about regarding the notion of "AddressableThing" (02)
"REST is a model for distributed computing. It is the one used by the
world's biggest distributed computing application, the Web. When applied to
web services technologies, it usually depends on a trio of technologies
designed to be extremely extensible: XML, URIs, and HTTP. XML's
extensibility should be obvious to most, but the other two may not be.
URIs are also extensible: there are an infinite number of possible URIs.
More importantly, they can apply to an infinite number of logical entities
called "resources." URIs are just the names and addresses of resources.
Some REST advocates call the process of bringing your applications into
this model "resource modeling." This process is not yet as formal as object
oriented modeling or entity-relation modeling, but it is related.
The strength and flexibility of REST comes from the pervasive use of URIs.
This point cannot be over-emphasized. When the Web was invented it had
three components: HTML, which was about the worst markup language of its
day (other than being simple); HTTP, which was the most primitive protocol
of its day (other than being simple), and URIs (then called URLs), which
were the only generalized, universal naming and addressing mechanism in use
on the Internet. Why did the Web succeed? Not because of HTML and not
because of HTTP. Those standards were merely shells for URIs.
HTTP's extensibility stems primarily from the ability to distribute any
payload with headers, using predefined or (occasionally) new methods. What
makes HTTP really special among all protocols, however, is its built-in
support for URIs and resources. URIs are the defining characteristic of the
Web: the mojo that makes it work and scale. HTTP as a protocol keeps them
front and center by defining all methods as operations on URI-addressed