The XML data model is rich enough to represent virtually any data
object. Initially, a group working at Microsoft came up with the
idea of doing Remote Procedure Calls using XML as the "serializing"
technology. Their original work has spun off to become the "XML-RPC"
project, which has the aim of "...remote procedure calling
using HTTP as the transport and XML as the encoding. XML-RPC is
designed to be as simple as possible, while allowing complex data
structures to be transmitted, processed and returned.".
XML-RPC is based on HTTP's POST request for the "procedure call"
and an ordinary HTTP response to return the results.
A separate project team, at Microsoft, decided to extend the basic
idea of XML-based RPC to a much more elaborate protocol, calling it
the "Simple
Object Access Protocol (SOAP)". It has been submitted
to W3C as a proposed standard. It can
run over HTTP or SMTP (?), and allows arbitrary objects to be
encoded (or serialized). SOAP has the backing of several
influential companies (Microsoft, IBM, etc).
The (recently invented) expression "Web Services"
is based on SOAP, and describes a range of proposed
"Business-to-Business" XML-based services running over HTTP (port
80). Perhaps the most significant aspect of SOAP-based Web Services
is that both the protocol (usually HTTP) and the core language
(XML) are public standards, and are well understood. Even more
significant is that SOAP builds on the knowledge gained from a
decade of "The Web", and from this perspective alone is likely to
succeed.
Lecture 24: Data
Formats and Encoding -- A Philosophy Lecture