Anybody following the discussions around “Web Services” in recent years is aware
of the fuzzy definition of the term, and a little bit of history can quite easily explain
some of the confusions around current terminology (or use of terminology). The
general idea of using Web technologies to not only deliver Web pages (HTML
documents) between HTTP clients and servers appeared probably more than 10
years ago, when it became clear that theWeb and its technical foundations of URIs,
HTTP, and HTML were becoming a very widely deployed information delivery and
service platform. Late in the 1990s, one major approach of implementing this idea
gained a lot of traction, the Simple Object Access Protocol (SOAP) (Box et al. 1999).
SOAP used the new Extensible Markup Language (XML) (Bray et al. 1998) as a
packaging format for a Remote Procedure Call (RPC) mechanism, and thus simply
used the well-established pattern of using RPC mechanisms for implementing
distribution, and packaged it using the Web technologies XML and HTTP. Before
that, most RPC mechanisms used their own packaging/marshalling formats, and
oftentimes even their own delivery protocols, so reusing existing Web technologies
for this made sense, and reduced the amount of proprietary technologies required
for RPC implementations. Additionally, tunneling SOAP messages through HTTP
had the great advantage of using a protocol which would – by default – go
through corporate firewalls and thus greatly facilitate the integration of distributed
applications in business to business scenarios.