OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] P2P and URIs

[ Lists Home | Date Index | Thread Index ]

Rich Salz wrote:
> 
> ...
> 
> I'm still waiting for someone to show me that the Web was something
> designed and guided by REST principals (as claimed in the link above),

How could I show you what was in Roy Fielding's head? And if I could,
what would it matter? The best I could do is say that the Web largely
adheres to REST principles and these principles provide a plausible
explanation for its success, as architectural principles provide a
plausible explanation for the success of my house in standing up.

If you belive that making a house stand up is easy then I won't be able
to convince you that architecture is important. But I've heard of houses
falling down due to poor architecture and I know for a fact that there
is a vast graveyard of dead protocols and dead hypertext systems. So I
believe in architecture.

> and not something that we all just happened to fall in, and by massive
> effort, made work.

You cannot, by sheer force of will, make a fundamentally broken
architecture work. If a builder fixes a mistake the architect has 
made then the builder has changed the architecture for the
better.

Of the various REST design principles, the Web has adhered to most since
day one. 

They are:

 * statelessness

The 1993 version of HTTP billed itself as a "stateless object oriented
protocol."

 * generic interface to components (whatever their access protocol)

Fielding: "For example, the Web's primary transfer protocol is HTTP, but
the architecture also includes seamless access to resources that
originate on pre-existing network servers, including FTP [107], Gopher
[7], and WAIS [36]. Interaction with those services is restricted to the
semantics of a REST connector."

Berners-Lee (1992): "One is that it turns out that almost all other
information systems can be represented in terms of W3 documents. A W3
user can interrogate WAIS indexes ( example ) and Gopher servers (
example ). This comes from the flexibility of the W3 model to describe
other structures. A WAIS database is a searchable document. The hit-list
returned by a WAIS server (or any other query engine) is a hypertext
document with links to the documents found.

This flexibility has allowed lots of different kinds of data to be put
on-line by writing a simple script to generate a hypertext "view" of the
database. "

 * identification of resources; 

One of the core concepts of the very first Web was URIs. In 1993, Tim BL
identifies URI-based links as the central differentiator between the
(quickly growing) Web and the (stagnating) Gopher and WAIS protocols:

	http://www.w3.org/History/1992/WWW/FAQ/WAISandGopher.html

 * manipulation of resources through representations; 

This one probably legitimately came later with REST. It only became
important to distinguish between resources and their representations
when we started thinking about caching and metadata. Nevertheless, it
was always explicit in HTTP's design that the thing you get back is not
necessarily the abstract object that is addressed.

 * self-descriptive messages; 

The Web's messages have been self-descriptive since day 1, and
presumably this was a conscious choice. Still, this too became much more
crucial in the face of caching.

 * and, hypermedia as the engine of application state.

For instance, here is something that Tim Berners-Lee wrote in 1989 about
"Hypermedia as the engine of application state":

"In 1980, I wrote a program for keeping track of software with which I
was involved in the PS control system. Called Enquire, it allowed one to
store snippets of information, and to link related pieces together in
any way. To find information, one progressed via the links from one
sheet to another, rather like in the old computer game "adventure"."

"What is required is a gateway program which will map an existing
structure onto the hypertext model, and allow limited (perhaps
read-only) access to it. This takes the form of a hypertext server
written to provide existing information in a form matching the standard
interface. One would not imagine the server actually generating a
hypertext database from and existing one: rather, it would generate a
hypertext view of an existing database."

In short, most of REST was built-into the Web since day 1. Most of it
was explicit but some (like self-descriptiveness) was just taken for
granted. Other stuff was added as it became necessary for the Web to
scale (in particular the model had to be extended to allow for
intermediares).

> > But anyhow, the point is that BitTorrent is extremely non-invasive in
> > user experience, standards and technology. Gnutella et. al. are
> > extremely invasive along all axes.
> 
> Perhaps relative success and GUI agents have more to do with this than
> anything architectural.

I don't know what you are saying here.
-- 
"When I walk on the floor for the final execution, I'll wear a denim 
suit. I'll walk in there like Willie Nelson, John Wayne, Will Smith 
-- Men in Black -- James Brown. Maybe do a Michael Jackson moonwalk."
Congressman James Traficant.




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS