[
Lists Home |
Date Index |
Thread Index
]
Rex Brooks wrote:
>
> Actually, I was asking what the reasons are, i.e. those impedence mismatches.
http://www.prescod.net/rest/versus_soap.html
* HTTP has four main methods. SOAP only uses one of them. Rather it
"tunnels" other methods through POST. Tunnelling is a violation of REST
because (among other things) it confuses intermediaries.
* The concept of address is central to the Web and optional in SOAP.
This means that SOAP users cannot depend on REST-compatibility being
available in a SOAP toolkit.
* SOAP has no predefined method for "get the representation of a
resource". Every web service does it in a different manner, using its
own method name and its own addressing model. Of course the same goes
for "put the representation of a resource." This lack of standardization
is a violation of the REST constraint that interfaces should be generic
and standardized.
* REST has a resource/representation/address model. SOAP has an
endpoint/message model. Were it not for the points above you might be
able to treat "resources" as "endpoints" and "representations" as
"messages" -- but at the very least you're stuck with a terminology
divergence.
* The SOAP spec encourages a component/method view of the world, rather
than a resource manipulation view.
At a meta-level, SOAP is designed to be a technology for tunnelling
through the Web. Therefore its core parts rely on the web infrastructure
for as little as possible. That's a common excuse for why it doesn't use
HTTP properly.
Paul Prescod
|