The document compares SOAP and REST web services. SOAP uses XML envelopes and defines standards like WS-Security, but requires more complex infrastructure. REST uses a simpler architecture based on HTTP methods, is more lightweight and performs better. It supports multiple representations like JSON and is easier to build, maintain and test. While REST provides less standardized enterprise features, it enables more scalable and cacheable solutions.
6. SOAP Mature tool support Transport Independence Headers are inside the message Send SOAP envelope over SMTP, FTP, MSMQ, JMS, … WS-* WS-Security WS-ReliableMessaging WS-AtomicTransaction WS-BusinessActivity
7. Why REST Good performance Scalable Easy to build and maintain (simplicity) Easy monitoring Reliable (handling failure, failover, …) Easy to use and test Constraints: Uniform interface Addressable Connectedness Stateless Cacheable
8. ROA Resource Oriented Architecture Addressability Connectedness (guide from state to state) Stateless Uniform Interface Every resource should be addressable Bookmark Email Link Monitoring Easy to test
10. REST (Advanced) Security SSL – encryption: proven track record (SSL1.0 from 1994) Basic authentication Digest authentication WSSE Username Token Transactions No specific HTTP headers are available Many options are available, can use multiple POST/PUT Think of “shopping cart”
12. REST (Advanced) Caching Expires: {date} Cache-Control: {age/no-cache} Look Before You Leap (saves bandwidth) PUT /…/{id} Expect: 100-Continue Result codes: 417 (Expectation Failed) // If service rejects request 100 (Continue) // If service accepts request
18. REST Weaknesses Confusion (high REST vs. low REST) Is it really 4 verbs? (HTTP 1.1. has 8 verbs: HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS, and CONNECT) Mapping REST-style synchronous semantics on top of back end systems creates design mismatches (when they are based on asynchronous messaging or event driven interaction) Cannot deliver enterprise-style “-ilities” beyond HTTP/SSL Challenging to identify and locate resources appropriately in all applications Apparent lack of standards (other than URI, HTTP, XML, MIME, HTML) Semantics/Syntax description very informal (user/human oriented)
19. WADL WADL (Web Application Description Language) Not a widely used as WSDL My opinion: overkill Most REST services are self-documented or have a textual description
21. So what’s RDF? Resource Description Framework Doesn’t require fore-knowledge of type Applies common ontology High discoverability Great framework. Terrible metaphor. Subject/Predicate/Object ?? Entity/Attribute/Value !!