Web Services
Developing with SOAP and REST
There are currently two schools of thought in developing Web Services – one being the standards-based traditional approach [SOAP] and the other, simpler school of thought [REST].
What is SOAP?
Defined
as Simple Object Access Protocol, it is a specification for exchanging
structured information using Extensible Markup Language (XML) and usually HTTP
protocol for transmission. SOAP also uses Web Services Description Language
(WSDL) documents that provide a model for describing web services. Basically,
it defines what the SOAP request (client-side) and response (server-side)
should look like.
What is REST?
The
acronym REST stands for Representational State Transfer, meaning each unique
URL represents some object. The architecture was developed by Roy Fielding, one
of the authors of the Hypertext Transfer Protocol (HTTP). A REST Web Service
uses HTTP and supports the HTTP GET, POST, PUT or DELETE methods.
How popular is REST?
All
of the major web services on the Internet now use REST: Twitter, Yahoo’s web
services use REST, others include Flicker, del.icio.us, pub.sub, blog, lines,
techno and several others. Both eBay and Amazon have web services for both REST
and SOAP.
Basic differences:
REST
|
SOAP
|
||
Pros
|
Cons
|
Pros
|
Cons
|
Lightweight
|
Point-to-point communication
|
Easy to consume
|
More difficult to setup
|
Human Readable
|
Lack of standards
|
Standards (WSDL,XSD, policy etc)
|
More verbose
|
Easier to build
|
Tied to HTTP
|
Distributed computing
|
Harder to develop
|
Detail level comparisons for SOAP and REST:
REST
|
SOAP
|
Assumes a point-to-point
communication model–not usable for distributed computing environment where message
may go through one or more intermediaries
|
Designed to handle distributed
computing environments
|
Minimal tooling/middleware is
necessary. Only HTTP support is required
|
Requires significant
tooling/middleware support
|
URL typically references the resource
being accessed/deleted/updated
|
The content of the message
typically decides the operation
|
Not reliable – HTTP DELETE can
return OK status even if a resource is not deleted
|
Reliable
|
URL typically references the
resource being accessed/deleted/updated
|
The content of the message
typically decides the operation
|
Not reliable – HTTP DELETE can
return OK status even if a resource is not deleted
|
Reliable
|
Formal description standards not
in widespread use. WSDL 1.2, WADL are candidates.
|
Well defined mechanism for
describing the interface e.g. WSDL+XSD, WS-Policy
|
Better suited for point-to-point
or where the intermediary does not play a significant role
|
Well suited for intermediated
services
|
No constraints on the payload
|
Payload must comply with the SOAP
schema
|
Only the most well established
standards apply e.g. HTTP, SSL. No established standards for other
aspects. DELETE and PUT methods often disabled by firewalls, leads to
security complexity.
|
A large number of supporting
standards for security, reliability, transactions.
|
Built-in error handling (faults)
|
No error handling
|
Tied to the HTTP transport model
|
Both SMTP and HTTP are valid
application layer protocols used as Transport for SOAP
|
Less verbose
|
More verbose
|
No comments:
Post a Comment