SOAP vs REST
-
Upload
mario-almeida -
Category
Technology
-
view
5.868 -
download
0
description
Transcript of SOAP vs REST
SOAP vs RESTPresentation by Mario Almeida
● What is a webservice?● Services interoperability● What is SOAP?● What is REST?● Peek at competition● Characteristics
○ Popularity○ Simplicity○ Bandwidth○ Security○ Caching○ State
● Problems● Conclusion
Index
What is a Webservice?
"Software system designed to support interoperable machine-to-machine interaction over a network" - W3C
Systems interact with the web service using messages sent through HTTP generally with an XML serialization.
Services interoperability!
Simple Object Access Protocol
What is SOAP?
Representational State Transfer
What is REST?
● Yahoo and all its services such as Flickr and deli.ici.ous use REST
● Amazon and Ebay provide both though Amazon's internal usage is nearly all REST.
● Google used to provide SOAP for all their services, but in 2006 they deprecated in favor of REST.
Lets take a peek on the competition!
REST:● Is easy to build - no toolkits required!● Just figure how to create and modify the URI
to access different web resources! SOAP:● Requires a toolkit to form requests and
parse results!● Requires specific knowledge of a new XML
specification.
Characteristics: Simplicity
REST:● can be short! SOAP:● requires an XML wrapper around every
request and response● once namespaces and typing are declared
can take 10 times as many bytes as the same message in REST.
Characteristics: Bandwidth!
REST:● easy to analyze the intent of each message by checking
the HTTP command!● Certificates and LDAP can delegate authentication and
authorization to the network layer.● Secure data should never be sent as parameters in the
URI.SOAP:● Needs to look into SOAP envelope!● Authentication and authorization in the application layer.
Characteristics: Security!
Caching?● take advantage of all the caching infrastructure that is
built into the Web infrastructure.
Characteristics: Caching!
Session State is Evil! (SOAP)● Enormous impact on scalability and avalability.
Characteristics: State!
● Banking transactions?○ ACID properties!○ Reliable messaging!○ Enterprise security features!
● Language support? (SOAP)
○ Good: .NET, Java (Axis)○ Ok: C++ (gSOAP), PERL (SOAP::Lite)○ Poor: Phyton (SOAPpy, ZSI, PHP
● File transfers?
Other problems?
Conclusion: What purpose?
How important are the ACID properties?What security measures?Scalability? Availability?
What is the Learning curve?How is the Testing?How is the Error Handling?
Conclusion: How fast?
Future?
● SOAP has been evolving in a way that it is more similar to REST by allowing other HTTP commands.
● Hypermedia as the engine of application state.
● Uniform interfaces● Stateless communications between servers
and clients.
References● http://geeknizer.com/rest-vs-soap-using-http-choosing-the-right-
webservice-protocol/● http://davidvancouvering.blogspot.com/2007/09/session-state-is-evil.html● http://www.javaworld.com/javaworld/jw-03-2002/jw-0308-soap.html -
caching SOAP services on client side● http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven● http://tomayko.com/writings/rest-to-my-wife● http://www.25hoursaday.
com/weblog/2005/03/17/ETech2005TripReportBuildingANewWebServiceAtGoogle.aspx
ImagesAll of the following images have creative common rights: ● http://www.flickr.com/photos/ahmadnawawi/3808452611 - stock market● www.flickr.com/photos/soldiersmediacenter/4723608143 - handshake● http://www.flickr.com/photos/oceanflynn/6638184545 - networks● http://www.flickr.com/photos/mybloodyself/5659661793 - clock● http://www.flickr.com/photos/tim_norris/2789759648 - snail● http://www.flickr.com/photos/garrette/53235940/ - pc● http://www.flickr.com/photos/legofenris/5410534167 - darth vader