Re: SOAP & REST

> > > http://numbers.com/?operation="multiply"+inputnumber1="3"+inputnumber2="4"
> >
> > Right.  The difference between this URI (and its SOAP equivalent), and
> > the other URI is that this one requires the client know what "multiply"
> > means.
> 
> Well both will require that, you need to know what the target will do with
> your message anyway, otherwise, why doing discovery and description? :)

In the hypertext case, you know that multiplication is occuring because
your current context says so, i.e. you've followed a link that says that
you are now at a resource that is a multiplier.  For humans, this
context can be provided via a link such as;

 <a href="http://number.org/multiply">multiplier</a>

which is an assertion, just not an easy one for a machine to process;

One form of assertion that is both machine and human processable would
be;

 <a rel="http://math.org/multiplier" href="http://number.org/multiply">
    multiplier</a>

slightly abusing the "rel" attribute, but not by much.  This is machine
processable if there is some description behind that URI of what
multiplication entails.  Or perhaps the client already knows what a
multipler is so it recognizes that URI.

> Well in the first URI you access a resorce that does one thing, multiply
> two numbers. In the second one, you target a generic arithmetic processor.
> Both are different resources, but both will do things that are cacheable,
> and will respect the GET semantic (export one view of the object).

Sure.  But the first order issue here is who fills in the operation
field to the value "multiply", the client or the server?

Let's look at this another way.  What's the difference between these two
approaches;

http://numbers.com/multiply exposing a "multiply" method (in some
way) that somebody has to know in order to multiply

and

http://numbers.com/mulitply being authoritatively described, via an
assertion, that it is a multiplier

Off the top of my head, the differences are;

- the latter is safer, as a firewall doesn't know whether the "multiply"
operation is safe or not, but it does know that GET is safe.
- the latter is extensible within the Web itself, as instead of new
verbs, you only need new nouns/resources ("multipler" vs. "multiply")
- the latter is usable by humans using human language as the means of
assertion.

Can we at least agree that exactly the same things can be accomplished
with both approaches, i.e. that they are computationally complete?
Because what we're talking about here is Web Services (the RPC
definition) vs. the Semantic Web.

MB
-- 
Mark Baker, Chief Science Officer, Planetfred, Inc.
Ottawa, Ontario, CANADA.      mbaker@planetfred.com
http://www.markbaker.ca   http://www.planetfred.com

Received on Wednesday, 6 February 2002 13:37:21 UTC