Lecture Notes for Client-Server Interfaces

3 May 2001 - The Simple Object Access Protocol


  1. what - an absolute joke

    1. consider rpc; consider differing host architectures

    2. consider presentation protocols - xdr, ascii text

    3. consider xml

  2. but first, consider sgml

    1. sgml - standard (or simple) generalized (or generic) mark-up language

    2. standard - iso 8879

    3. generalized - applicable to a wide range of information; the dtd

    4. mark-up - describe structure, not content or presentation

    5. language - generators, checkers, parsesr

    6. html is the best-known instance of sgml (sorta)

  3. now consider xml

    1. sgml is complicated - description, macros, parsing can be hard

    2. enter xml - simpler, less general, "the parts of sgml that microsoft understood."

    3. dtds are still around; it's still text-based; tags are less unruly; less emphasis on representation issues

    4. there are many aligned protocols - style, linking, and so on

    5. xhtml, mathml defined using xml

  4. on to xml-rpc

    1. xml-rpc is the result of confusing transport and presentation protocols

    2. nominally, xdr is "no good", although why isn't made clear

    3. xml is much better - oh, and by the way, use http as the transport

    4. people who can't comprehend xdr certainly won't be able to use it with http

      1. hint - use the post method

    5. xml-rpc components

      1. identifies supported types - int, bool, string, blob, structs; no user-defined data structures

      2. request-response structure - posts mostly
        POST /RPC2 HTTP/1.0
        User-Agent: Frontier/5.1.2 (WinNT)
        Host: betty.userland.com
        Content-Type: text/xml
        Content-length: 181
        

      3. xml call-response structures

        1. <methodCall>
            <methodName>examples.getStateName</methodName>
            <params>
              <param>
                <value><i4>41</i4></value>
              </param>
            </params>
          </methodCall>
          

        2. <methodResponse>
            <params>
              <param>
                <value><string>South Dakota</string></value>
              </param>
            </params>
          </methodResponse>
          

    6. it is unclear of procedure-call naming conventions are defined anywhere

    7. asynchronous extensions to the rpc model - call and continue; multi-calls

  5. simple object access protocol - like xml-rpc, but more

    1. defines an envelope document to containing requests and responses

    2. defines extensions to the xml-rpc model

  6. those who don't know the past are doomed to repeat it, usually as farce


This page last modified on 3 May 2001.