W3C home > Mailing lists > Public > www-ws-arch@w3.org > June 2002

Why GET is an application semantic

From: Mark Baker <distobj@acm.org>
Date: Mon, 17 Jun 2002 12:58:52 -0400
To: www-ws-arch@w3.org
Message-ID: <20020617125852.O18595@www.markbaker.ca>

Hi everyone,

At the f2f, JeffM and I briefly discussed HTTP GET and whether or not it
was an application semantic.  Jeff initially claimed that it was not, so
I asked him what he thought one was.  IIRC, his reply included
"getPurchaseOrder".  I'd like to demonstrate why HTTP GET is an
application semantic the same as getPurchaseOrder, or
getStockQuote.

There are of course, many different RPC methods that can do the job of
retrieving a stock quote.  Some very specific ones would include;

getSunwStockQuoteRealtime()
getIbmStockQuoteDelayed()

The problem with these is obviously that they're not readily reusable.
They do one thing and one thing only.  So we typically generalize them
by parameterization; permitting a single method to be used for multiple
quotes, by moving identifying information away from the method name
and into the parameters.  An obvious next iteration would be;

getStockQuote( "SUNW", "realtime" );
getStockQuote( "IBM", "delayed" );

However, generalization doesn't have to stop there.  We could do this;

getQuote( "Stock", "SUNW", "realtime" );

Which would permit other types of quotes to be retrieved, such as
insurance quotes, quotes for auto repairs, etc..

Eventually however, generalization has to end.  I suggest that this
is as far as one can go with it;

get( http://nasdaq.org/quotes/stock/realtime/sunw )

otherwise known as;

GET http://nasdaq.org/quotes/stock/realtime/sunw

I hope that helps explain at least this little piece of Web
architecture.

MB
-- 
Mark Baker, CTO, Idokorro Mobile (formerly Planetfred)
Ottawa, Ontario, CANADA.               distobj@acm.org
http://www.markbaker.ca        http://www.idokorro.com
Received on Monday, 17 June 2002 12:48:51 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:00 GMT