[Date Prev] [Date Next] [Thread Prev] [Thread Next] Indexes: Main | Date | Thread | Author

[ba-ohs-talk] REST -- Representational State Transfer -- the Web


http://www.xml.com/lpt/a/2002/02/20/rest.html    (01)

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 
resources."    (03)