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 supportinteroperable machine-to-machine interactionover a network" - W3C
Services interoperability!Systems interact with the web service usingmessages sent through HTTP generally with anXML serialization.
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 Amazons 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: SimplicityREST:● 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.
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.