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

SOAP:Simple Object Access Protocol -XML-RPC

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