SOAP:Simple Object Access Protocol XML-RPC Ganapathy Raman GRA-Netsolve Group ICL
SOAP: Introduction <ul><li>XML - last week talk  </li></ul><ul><li>MathML, SMIL, VML </li></ul><ul><li>Distributed Computi...
SOAP:Is this Hype?  <ul><li>Lack of standard - Hurts Interoperability </li></ul><ul><li>In-memory representation </li></ul...
SOAP:Is this Hype? <ul><li>Security Issues </li></ul><ul><li>Firewalls allow only specific ports </li></ul><ul><li>HTTP,FT...
Possible solutions <ul><li>Use Ascii </li></ul><ul><ul><li>fprintf/fscanf instead of fwrite/fread </li></ul></ul><ul><ul><...
XML to the rescue <ul><li>XML is  not  about content </li></ul><ul><li>XML is about  structure of content </li></ul><ul><l...
SOAP in a Nutshell <ul><li>1. XML for encoding data </li></ul><ul><ul><li>LANGUAGE OF COMMUNICATION </li></ul></ul><ul><li...
An example <ul><li>www.weather.com </li></ul><ul><li>float CurrentTemp(zip_code) </li></ul><ul><li>The process </li></ul>A...
REQUEST Example POST /Temperature HTTP/1.1 Host: www.weather.com Content-Type: text/xml Content-Length: <whatever> SOAPMet...
<ul><li>RESPONSE Example </li></ul><ul><li>HTTP/1.1 200 OK </li></ul><ul><li>Content-Type: text/xml </li></ul><ul><li>Cont...
SOAP: What it’s NOT <ul><li>Object Activation </li></ul><ul><ul><li>who invokes CurrentTemp function? </li></ul></ul><ul><...
SOAP: Analysis <ul><li>Size of Messages </li></ul><ul><li>Latency is key, not Bandwidth </li></ul><ul><li>High factors of ...
SOAP:Analysis <ul><li>Strings - no conversion needed </li></ul><ul><li>Floating Point - sprintf,sscanf </li></ul><ul><li>“...
SOAP: What the Grid needs <ul><li>A standard that can find a balance between performance and inter-operability  </li></ul>...
SOAP: Analysis <ul><li>Stateless Nature - Independent transactions </li></ul><ul><li>Most distributed applications are sta...
SOAP: Analysis <ul><li>Programming complexity  </li></ul><ul><li>Standards are in flux  </li></ul><ul><li>Maturity of tool...
SOAP: Birds-eye-view DCOM OTHER CORBA JAVA Islands of in-compatibility interconnected by SOAP bridges Philosophy of “Do on...
SOAP: What can it teach us? <ul><li>Use XML for data exchange </li></ul><ul><ul><li>can define our own xml-rpc if needed <...
SOAP: Summary <ul><li>Its not something path-breaking </li></ul><ul><li>“Right mix of technology at the right time” </li><...
SOAP: Resources <ul><li>www.cs.utk.edu/~raman/soap/soap.html </li></ul><ul><ul><li>links to whitepapers, spec, articles et...
Upcoming SlideShare
Loading in...5
×

SOAP:Simple Object Access Protocol -XML-RPC

1,804

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,804
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
118
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SOAP:Simple Object Access Protocol -XML-RPC

  1. 1. SOAP:Simple Object Access Protocol XML-RPC Ganapathy Raman GRA-Netsolve Group ICL
  2. 2. SOAP: Introduction <ul><li>XML - last week talk </li></ul><ul><li>MathML, SMIL, VML </li></ul><ul><li>Distributed Computing is here to stay </li></ul><ul><li>Computation thro Communication </li></ul><ul><li>Resource Heterogenity </li></ul><ul><li>Common Language for Data exchange </li></ul><ul><li>Leverages XML to solve the above problem </li></ul>
  3. 3. SOAP:Is this Hype? <ul><li>Lack of standard - Hurts Interoperability </li></ul><ul><li>In-memory representation </li></ul><ul><li>On-the-wire representation </li></ul><ul><li>DCOM - DCE/NDR </li></ul><ul><li>CORBA - IIOP/CDR </li></ul><ul><li>JAVA - RMI/JRMP </li></ul><ul><li>Netsolve - XDR </li></ul><ul><li>Tied to a single middleware (Monopoly?) </li></ul>
  4. 4. SOAP:Is this Hype? <ul><li>Security Issues </li></ul><ul><li>Firewalls allow only specific ports </li></ul><ul><li>HTTP,FTP </li></ul><ul><li>Most middleware dynamically assign ports </li></ul><ul><li>This is a real problem for internet applications </li></ul>
  5. 5. Possible solutions <ul><li>Use Ascii </li></ul><ul><ul><li>fprintf/fscanf instead of fwrite/fread </li></ul></ul><ul><ul><li>flat stream of data </li></ul></ul><ul><ul><li>not rich enough to represent structure </li></ul></ul><ul><ul><li>producer and consumer forced to ‘know’ each other </li></ul></ul><ul><li>Use CGI </li></ul><ul><ul><li>http + ascii </li></ul></ul>
  6. 6. XML to the rescue <ul><li>XML is not about content </li></ul><ul><li>XML is about structure of content </li></ul><ul><li>XML + DTD provides a standard way for anyone to understand data using the same set of tools </li></ul><ul><li>Producer and consumer can be ‘strangers’ </li></ul>
  7. 7. SOAP in a Nutshell <ul><li>1. XML for encoding data </li></ul><ul><ul><li>LANGUAGE OF COMMUNICATION </li></ul></ul><ul><li>2. HTTP as transport </li></ul><ul><ul><li>MEDIUM OF COMMUNICATION </li></ul></ul><ul><li>Do not let Microsoft Hype fool you!! </li></ul><ul><li>“Simplicity over Complexity” </li></ul><ul><li>Surely a step in the right direction </li></ul><ul><li>Deserves a detailed look </li></ul>
  8. 8. An example <ul><li>www.weather.com </li></ul><ul><li>float CurrentTemp(zip_code) </li></ul><ul><li>The process </li></ul>Application Middleware SOAP HTTP Application Middleware SOAP HTTP icl.cs.utk.edu www.weather.com Request Reply Error
  9. 9. REQUEST Example POST /Temperature HTTP/1.1 Host: www.weather.com Content-Type: text/xml Content-Length: <whatever> SOAPMethodName: <some-URI>#CurrentTemp <SOAP:Envelope xmlns:SOAP=&quot;urn:schemas-xmlsoap-org:soap.v1&quot;> <SOAP:Body> <m:CurrentTemp xmlns:m=&quot;some-URI&quot;> <zip_code>37919</zip_code> <m:CurrentTemp> </SOAP:BODY> <SOAP:Envelope> URI- Uniform Resource Identifier some-URI -> www.netsolve.com or www.globus.com Http Header Xml Payload Soap Extensions
  10. 10. <ul><li>RESPONSE Example </li></ul><ul><li>HTTP/1.1 200 OK </li></ul><ul><li>Content-Type: text/xml </li></ul><ul><li>Content-Length: <whatever> </li></ul><ul><li><SOAP:Envelope xmlns:SOAP=&quot;urn:schemas-xmlsoap-org:soap.v1&quot;> </li></ul><ul><li><SOAP:Header> </li></ul><ul><li><t:Transaction xmlns:t=&quot;some-URI&quot;> </li></ul><ul><li>5 </li></ul><ul><li></t:Transaction> </li></ul><ul><li></SOAP:Header> </li></ul><ul><li><SOAP:Body> </li></ul><ul><li><m:CurrentTempResponse xmlns:m=&quot;some-URI&quot;> </li></ul><ul><li><return>42</return> </li></ul><ul><li></m:CurrentTempResponse> </li></ul><ul><li></SOAP:Body> </li></ul><ul><li></SOAP:Envelope> </li></ul>Http Header Xml Payload
  11. 11. SOAP: What it’s NOT <ul><li>Object Activation </li></ul><ul><ul><li>who invokes CurrentTemp function? </li></ul></ul><ul><li>Bi-directional Communications </li></ul><ul><li>Distributed Garbage Collection </li></ul><ul><li>Language Bindings unspecified </li></ul><ul><ul><li>good for interoperability </li></ul></ul><ul><ul><li>Perl,C,java </li></ul></ul><ul><ul><li>Source of xml-rpc payload is immaterial </li></ul></ul>
  12. 12. SOAP: Analysis <ul><li>Size of Messages </li></ul><ul><li>Latency is key, not Bandwidth </li></ul><ul><li>High factors of Compression </li></ul><ul><li>Ascii + repetitive Tags </li></ul>Client Server Client Server 100 bytes 1000 bytes 100 bytes 200 bytes No compression Compression
  13. 13. SOAP:Analysis <ul><li>Strings - no conversion needed </li></ul><ul><li>Floating Point - sprintf,sscanf </li></ul><ul><li>“ e-commerce” applications --- GOOD </li></ul><ul><ul><li>text + integers </li></ul></ul><ul><li>“ grid” applications --- BAD </li></ul><ul><ul><li>numeric intensive </li></ul></ul><ul><li>There is always a tradeoff involved </li></ul>encode decode In-memory In-memory xml-rpc
  14. 14. SOAP: What the Grid needs <ul><li>A standard that can find a balance between performance and inter-operability </li></ul><ul><li>XDR,NDR,CDR - possible candidates </li></ul><ul><li>Ability to represent structure is key </li></ul><ul><li>Maybe an extension to xml-rpc </li></ul><ul><li>Will enable grid infrastructures to inter-operate </li></ul>
  15. 15. SOAP: Analysis <ul><li>Stateless Nature - Independent transactions </li></ul><ul><li>Most distributed applications are stateful </li></ul><ul><li>Programming model is different </li></ul><ul><li>State info with every transaction </li></ul><ul><li>Size of state info need </li></ul><ul><ul><li>“ A cookie may not satisfy hunger”!! </li></ul></ul><ul><li>Good for scalability </li></ul>
  16. 16. SOAP: Analysis <ul><li>Programming complexity </li></ul><ul><li>Standards are in flux </li></ul><ul><li>Maturity of tools </li></ul><ul><li>Need open-source xml parsers </li></ul><ul><li>xml.apache.org </li></ul><ul><ul><li>xerces : parsers in xml,perl,c++ </li></ul></ul><ul><li>A minor obstacle at best </li></ul>
  17. 17. SOAP: Birds-eye-view DCOM OTHER CORBA JAVA Islands of in-compatibility interconnected by SOAP bridges Philosophy of “Do one thing and do it well” Focus on Interoperability
  18. 18. SOAP: What can it teach us? <ul><li>Use XML for data exchange </li></ul><ul><ul><li>can define our own xml-rpc if needed </li></ul></ul><ul><ul><li>the idea of encoding is what is important </li></ul></ul><ul><ul><li>can use TCP as transport </li></ul></ul><ul><li>HTTP tunneling </li></ul><ul><li>Would be a short-sight on our part to ignore because of Microsoft tag </li></ul>
  19. 19. SOAP: Summary <ul><li>Its not something path-breaking </li></ul><ul><li>“Right mix of technology at the right time” </li></ul><ul><li>Structure more important than content </li></ul><ul><li>XML - ASCII of the future </li></ul><ul><li>Holds lot of promise </li></ul><ul><li>Step in the right direction </li></ul>
  20. 20. SOAP: Resources <ul><li>www.cs.utk.edu/~raman/soap/soap.html </li></ul><ul><ul><li>links to whitepapers, spec, articles etc </li></ul></ul><ul><ul><li>link to this presentation </li></ul></ul><ul><li>Questions??? </li></ul><ul><li>Thank you </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×