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 An extensible framework KISS Easy to Implement
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
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
Where are we? Transport (e.g. HTTP) Application Envelope/Header/Body TCP/IP Message Encoding Transport (e.g. HTTP) Web Service Envelope/Header/Body TCP/IP Message Encoding Interface Semantics SOAP
Envelope package Header/Body pattern –Similar to how HTTP works How It Works Header Body
Header Contains Information such as –Authentication information –Message routes –Logging –Transaction flow
Body Contains Interface – Specific Information –RPC method name and parameters –Serialized objects (instances of types) –Messages
c = Add(a, b) A Simple Example
System Flow Response Request
Make Method Call Serialize Method Call Into a SOAP-XML Request De-serialize Method Call Into a SOAP-XML Response Extract SOAP-XML Response from HTTP Response Wrap SOAP-XML Request into HTTP Request Return value HTTP Response received from SOAP server HTTP Encoding/ Decoding SOAP Serialization/ De-serialization Client code 6 HTTP Request sent to SOAP server SOAP Package Client process Process at Client
Server Side Process
Actual SOAP Request <SOAP-ENV:Envelope xmlns:SOAP-ENV=“ SOAP-ENV:encodingStyle="
<SOAP-ENV:Envelope xmlns:SOAP-ENV=“ SOAP-ENV:encodingStyle=" Actual SOAP Response
Binding to HTTP (Request) POST /Calculator.pl HTTP/1.0 Host: Accept: text/* Content-type: text/xml Content-length: nnnn SOAPAction: “ <SOAP-ENV:Envelope xmlns:SOAP-ENV=“ SOAP-ENV:encodingStyle="
Binding to HTTP (Response) HTTP/ OK Content-type: text/xml Content-length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV=“ SOAP-ENV:encodingStyle="
Security SOAP spec says nothing Delegated to other levels –Transport (HTTPS/SSL) Included in interface semantics Needs standardization Digital Signature
Uses of SOAP Databases Internetworking E-Commerce Systems Intelligent Devices
Advantages Interoperability Simplicity Free from Firewalls Industry Support Easy to Implement
Conclusion :A Quick Comparison COM – DCOM CORBA – IIOP JAVA - RMI
QUESTIONS