SOAP vs REST
Presentation by Mario Almeida
Index
● What is a webservice?
● Services interoperability
● What is SOAP?
● What is REST?
● Peek at competition
● Characteristics
  ○ Popularity
  ○ Simplicity
  ○ Bandwidth
  ○ Security
  ○ Caching
  ○ State
● Problems
● Conclusion
What is a Webservice?




"Software system designed to support
interoperable machine-to-machine interaction
over a network" - W3C
Services interoperability!




Systems interact with the web service using
messages sent through HTTP generally with an
XML serialization.
What is SOAP?




Simple Object Access Protocol
What is REST?




Representational State Transfer
Lets take a peek on the competition!




● 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.
Characteristics: Simplicity


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: Bandwidth!


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: Security!


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: Caching!




Caching?
● take advantage of all the caching infrastructure that is
  built into the Web infrastructure.
Characteristics: State!




Session State is Evil! (SOAP)
● Enormous impact on scalability and avalability.
Other problems?


● 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?
Conclusion: What purpose?




How important are the ACID properties?
What security measures?
Scalability? Availability?
Conclusion: How fast?




What is the Learning curve?
How is the Testing?
How is the Error Handling?
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/ETech2005TripReportBuildingANewWebServiceA
    tGoogle.aspx
Images
All 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

SOAP vs REST

  • 1.
    SOAP vs REST Presentationby Mario Almeida
  • 2.
    Index ● What isa webservice? ● Services interoperability ● What is SOAP? ● What is REST? ● Peek at competition ● Characteristics ○ Popularity ○ Simplicity ○ Bandwidth ○ Security ○ Caching ○ State ● Problems ● Conclusion
  • 3.
    What is aWebservice? "Software system designed to support interoperable machine-to-machine interaction over a network" - W3C
  • 4.
    Services interoperability! Systems interactwith the web service using messages sent through HTTP generally with an XML serialization.
  • 5.
    What is SOAP? SimpleObject Access Protocol
  • 6.
  • 7.
    Lets take apeek on the competition! ● 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.
  • 8.
    Characteristics: Simplicity REST: ● Iseasy 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.
  • 9.
    Characteristics: Bandwidth! REST: ● canbe 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.
  • 10.
    Characteristics: Security! REST: ● easyto 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.
  • 11.
    Characteristics: Caching! Caching? ● takeadvantage of all the caching infrastructure that is built into the Web infrastructure.
  • 12.
    Characteristics: State! Session Stateis Evil! (SOAP) ● Enormous impact on scalability and avalability.
  • 13.
    Other problems? ● Bankingtransactions? ○ 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?
  • 14.
    Conclusion: What purpose? Howimportant are the ACID properties? What security measures? Scalability? Availability?
  • 15.
    Conclusion: How fast? Whatis the Learning curve? How is the Testing? How is the Error Handling?
  • 16.
    Future? ● SOAP hasbeen 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.
  • 17.
    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/ETech2005TripReportBuildingANewWebServiceA tGoogle.aspx
  • 18.
    Images All of thefollowing 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