1 / 19

SOAP

Simple Object Access Protocol by Vinubalaji Gopal (Vinu). SOAP. 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.

Download Presentation

SOAP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Simple Object Access Protocol by Vinubalaji Gopal (Vinu) SOAP

  2. 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

  3. SOAP Participants

  4. SOAP Message <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header> .... </env:Header> <env:Body> ..... </env:Body> </env:Envelope>

  5. SOAP Message Header is Optional meant for SOAP Intermediary

  6. SOAP Message Example <?xml version='1.0' ?> <env:Envelope xmlns:env= "http://www.w3.org/2003/05/soap-envelope"> <env:Body> <flight xmlns:env=”urns”> list </flight> </env:Body> </env:Envelope> SOAP Sender SOAP Receiver

  7. SOAP Message Example <?xml version='1.0' ?> <env:Envelope xmlns:env= "http://www.w3.org/2003/05/soap-envelope"> <env:Body> <flightresponse xmlns:env=”urns”> <type>Singapore Airlines</type> <type>United Airlines</type> </flightresponse> </env:Body> </env:Envelope> SOAP Sender now SOAP Receiver now

  8. 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.

  9. SOAP RPC Example Request <?xml version="1.0"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Body> <m:GetPrice xmlns:m="http://urwebsite/prices"> <m:Item>Apples</m:Item> </m:GetPrice> </env:Body></env:Envelope>

  10. SOAP RPC Example Reply <?xml version="1.0"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Body> <m:GetPriceResponse xmlns:m="http://urwebsite/prices"> <m:Price>1.90</m:Price> </m:GetPriceResponse> </env:Body></env:Envelope>

  11. 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

  12. SOAP RPC Fault Example Envelope and Body headers..... <env:Fault> <env:Code> <env:Value>env:Sender</env:Value> </env:Code> <env:Reason> <env:Text xml:lang="en-US">Processing error</env:Text> </env:Reason> </env:Fault> End of headers

  13. 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.

  14. 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

  15. HTTP Response HTTP/1.1 200 OK Content-Type: application/soap+xml; charset="utf-8" Content-Length: nnnn <?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Body> <flightresponse xmlns:env=”urns”> <type>Singapore Airlines</type> <type>United Airlines</type> </flightresponse> </env:Body> </env:Envelope>

  16. HTTP SOAP Fault Example Associated with a HTTP Post HTTP/1.1 500 Internal Server Error Content-Type: application/soap+xml; charset="utf-8" Content-Length: nnnn <?xml version='1.0' ?> <env:Envelope......... <env:Body> <env:Fault> ...... ......

  17. 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)

  18. Alternatives • REST – Representative State Transfer • JSON RPC • XML RPC • WDDX – Web Distributed Data eXchange • LDO – Lightweight Distributed Objects • HTTP EXT (RFC 2744)

  19. Links SOAP Links: • http://www.w3.org/TR/soap/ • http://searchwebservices.techtarget.com/searchWebServices/downloads/what_is_soap.swf • http://www.soaprpc.com/faq.html • http://www.w3schools.com/soap/ Soap Implementations: • Apache SOAP - http://ws.apache.org/soap/ • SOAP:Lite

More Related