A.3. Simple Object Access Protocol

A.3.1. SOAP overview

The Simple Object Access Protocol (SOAP) is a simple XML protocol for exchanging structured information over the Internet. It was, and is still, actively being developed by several working groups of the World Wide Web Consortium (W3C). Their goal was to bring the concept of "web services" to their full potential [6].

The W3C provides a formal definition of a web service: "A Web service is a software application identified by a URI, whose interfaces and binding are capable of being defined, described and discovered by XML artefacts and supports direct interactions with other software applications using XML based messages via internet-based protocols." [7]

The World Wide Web is increasingly being used as a medium to transfer data between applications, and SOAP is designed to facilitate these transfers. It has been intentionally kept fairly simple, and as such does not contain complexities such as sequencing, etc. It has been likened to a "web datagram service" [8] insomuch as it provides encapsulation of standalone elements of information.

The data transferred by a SOAP datagram is represented in an XML document, which would typically have an associated schema defining its structure. The schemas defining SOAP itself are still being finalised, and the current state of this work is represented by a draft of SOAP version 1.2. Information on this draft is available from the W3C.

A.3.2. SOAP is not the only way

"There's more than one way to do it" is an oft-quoted phrase used to refer to Larry Wall's Perl. The same is true of the web services approach. Many different organisations and groups of people have their own ideas to achieve different parts of the web services concept. Some of these approaches, such as Microsoft's .NET framework are all-encompassing, where as others take a more focused, and thus simpler approach.

SOAP was used in this implementation for three main reasons: Firstly, SOAP is a project of the W3C, which is a widely respected authority on matters related to the web - they are, for example, the defining body for both HTML and XML. It seems appropriate, therefore, to choose a framework that is standardised by the same people responsible for defining the underlying mark-up language.

More significantly, SOAP is a definition, rather than an implementation. Developers are not tied to specific platforms or languages, which makes services based on it very flexible.

One of the philosophies behind SOAP is that it should be kept as simple as possible. It leaves dealing with the complexities of services to the services themselves. This helps avoid unnecessary overheads in the data encapsulation. The lack of complications was the third reason for the decision to use the Simple Object Access Protocol.