1 / 22

SOAP

SOAP. Chandra Dutt Yarlagadda. Introduction. Why ? What ? How ? Security Issues in SOAP Advantages Uses Conclusion. Why Do We Need SOAP. Heterogeneous systems must be able to communicate Need for a protocol that uses that already available resources A firewall-friendly protocol

eagan
Télécharger la présentation

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. SOAP Chandra Dutt Yarlagadda

  2. Introduction • Why ? • What ? • How ? • Security Issues in SOAP • Advantages • Uses • Conclusion

  3. Why Do We Need SOAP • Heterogeneous systems must be able to communicate • Need for a protocol that uses that already available resources • A firewall-friendly protocol • An extensible framework • KISS • Easy to Implement

  4. WHAT IS SOAP • Simple Object Access Protocol • SOAP is a specification for defining... • an encoding style that uses XML to represent information graphs • a standard way to move XML with HTTP • rules for passing messages • error (fault) definition • a medium for performing Remote Procedure Calls (RPC) • one layer in a multi-layer architecture

  5. What do we have to work with? • XML - An extensible framework that is easy-to-use and has a low-cost of entry • HTTP/SMTP - Industry accepted transport protocols that are already supported by Enterprise servers and are friendly with firewalls • In a simple equation SOAP = XML + HTTP

  6. Where are we? Application Web Service Interface Semantics Interface Semantics SOAP Envelope/Header/Body Envelope/Header/Body Message Encoding Message Encoding Transport (e.g. HTTP) Transport (e.g. HTTP) TCP/IP TCP/IP

  7. Header Body How It Works • Envelope package • Header/Body pattern • Similar to how HTTP works

  8. Header • Contains Information such as • Authentication information • Message routes • Logging • Transaction flow

  9. Body • Contains Interface – Specific Information • RPC method name and parameters • Serialized objects (instances of types) • Messages

  10. c = Add(a, b) A Simple Example <Envelope> <Header> <transId>1234</transId> </Header> <Body> <Add> <a>3</a> <b>4</b> </Add> </Body> </Envelope>

  11. System Flow Request <Envelope> <Header> <transId>1234</transId> </Header> <Body> <Add> <a>3</a> <b>4</b> </Add> </Body> </Envelope> Response <Envelope> <Header> <transId>1234</transId> </Header> <Body> <AddResponse> <c>7</c> </AddResponse> </Body> </Envelope>

  12. Client process SOAP Serialization/ De-serialization HTTP Encoding/ Decoding Client code Serialize Method Call Into a SOAP-XML Request Wrap SOAP-XML Request into HTTP Request Make Method Call 1 2 3 HTTP Request sent to SOAP server De-serialize Method Call Into a SOAP-XML Response Extract SOAP-XML Response from HTTP Response Return value HTTP Response received from SOAP server 6 5 4 SOAP Package Process at Client

  13. Server Side Process

  14. Actual SOAP Request <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”> <SOAP-ENV:Header> <t:transId xmlns:t=“http://a.com/trans”>1234</t:transId> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:Add xmlns:m=“http://a.com/Calculator”> <a xsi:type=“integer”>3</a> <b xsi:type=“integer”>4</b> </m:Add> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  15. Actual SOAP Response <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”> <SOAP-ENV:Header> <t:transId xmlns:t=“http://a.com/trans”>1234</t:transId> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:AddResponse xmlns:m=“http://a.com/Calculator”> <c xsi:type=“integer”>7</c> </m:AddResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  16. Binding to HTTP (Request) POST /Calculator.pl HTTP/1.0 Host: www.a.com Accept: text/* Content-type: text/xml Content-length: nnnn SOAPAction: “http://www.a.com/Calculator#Add” <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”> <SOAP-ENV:Header> <t:transId xmlns:t=“http://a.com/trans”>1234</t:transId> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:Add xmlns:m=“http://a.com/Calculator”> <a xsi:type=“integer”>3</a> <b xsi:type=“integer”>4</b> </m:Add> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  17. Binding to HTTP (Response) HTTP/1.0 200 OK Content-type: text/xml Content-length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/”> <SOAP-ENV:Header> <t:transId xmlns:t=“http://a.com/trans”>1234</t:transId> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:AddResponse xmlns:m=“http://a.com/Calculator”> <c xsi:type=“integer”>7</c> </m:AddResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  18. Security • SOAP spec says nothing • Delegated to other levels • Transport (HTTPS/SSL) • Included in interface semantics • Needs standardization • Digital Signature

  19. Uses of SOAP • Databases • Internetworking • E-Commerce Systems • Intelligent Devices

  20. Advantages • Interoperability • Simplicity • Free from Firewalls • Industry Support • Easy to Implement

  21. Conclusion :A Quick Comparison • COM – DCOM • CORBA – IIOP • JAVA - RMI

  22. QUESTIONS

More Related