SOAP Simple Object Access Protocol by Vinubalaji Gopal (Vinu)
What is SOAP? W3C Recommendation Simple Object Access Protocol XML based Can use SMTP or HTTP transport Can be used for RPC or Message exchange Works through Firewall Platform Independent
SOAP Participants
SOAP Message
SOAP Message Header is Optional meant for SOAP Intermediary
SOAP Message Example SOAP Sender <env:Envelope xmlns:env= " list SOAP Receiver
SOAP Message Example SOAP Receiver now <env:Envelope xmlns:env= " Singapore Airlines United Airlines SOAP Sender now
What about RPC? Messaging model is extensible SOAP defines additional elements that facilitates RPC SOAP is very flexible and lets you define any method signature. A unique URI needs to be passed which identifies the SOAP Node that contains or supports the RPC.
SOAP RPC Example Request <env:Envelope xmlns:env=" envelope "> Apples
SOAP RPC Example Reply <env:Envelope xmlns:env=" envelope"> 1.90
SOAP Fault Message env:Fault – a Subelement of env:Body two mandatory sub-elements - env:Code (which mandates env:Value) - env:Reason – Human Readable Optional env:Detail subelement element Optional env:Node subelement Optional env:Role subelement
SOAP RPC Fault Example Envelope and Body headers..... env:Sender Processing error End of headers
SOAP HTTP Bindings Relates the HTTP Response codes with SOAP responses. Provides a mechanism to specify the URI which identifies the SOAP node which “contains” or “supports” RPC.
HTTP Request Example GET/travelcompany.example.org/reservations? code=FT35ZBQ HTTP/1.1 Host: travelcompany.example.org Accept: text/html;q=0.5, application/soap+xml
HTTP Response HTTP/ OK Content-Type: application/soap+xml; charset="utf-8" Content-Length: nnnn Singapore Airlines United Airlines
HTTP SOAP Fault Example Associated with a HTTP Post HTTP/ Internal Server Error Content-Type: application/soap+xml; charset="utf-8" Content-Length: nnnn <env:Envelope
Where is it used? Key component of.Net Architecture Google services through SOAP Amazon store SOAP API Flickr Services SOAP with AJAX (Eg: W3C validator through Soap)
Alternatives REST – Representative State Transfer JSON RPC XML RPC WDDX – Web Distributed Data eXchange LDO – Lightweight Distributed Objects HTTP EXT (RFC 2744)
Links SOAP Links: nloads/what_is_soap.swf nloads/what_is_soap.swf Soap Implementations: Apache SOAP - SOAP:Lite