A brief introduction to the Simple Object Access Protocol (SOAP) on which the system API is based.
Summary
The Simple Object Access Protocol (SOAP) is a simple XML based communication protocol between applications. It is is meant for applications to send messages and communicate with each other over a network especially the Internet, independent of platform and programming language. SOAP works with valid application layer protocols like SMTP or HTTP for transport. HTTP is the preferred transport protocol because it is supported by all Internet browsers and servers and also because HTTP works well with network firewalls and proxies.
SOAP is not tied down to any particular programming language or operating system, so clients and servers using SOAP can be running on any platform and be written in any programming language as long as they can understand and create valid SOAP messages. This makes it an indispensable tool for building applications that can be published as services on the Internet or any other network.
Consider the (cliche'd) example of a simple database record retrieval. Imagine a simple database that contains records which detail an employee's name, ID and department and can be queried by using the employee ID. This needs to be made available on the network as a service using SOAP.
The client which is requesting this information formulates a SOAP request and sends it to the server which has a service listening for such requests. Once the server receives such a request, it parses the XML and queries the database for the fields requested and formulates a SOAP response and sends it to the client. The client now needs to parse the SOAP response and display the result in the desired format. The following figure illustrates the steps involved in this process.

A SOAP message is an ordinary XML document containing the following elements:
- A required Envelope element that identifies the XML document as a SOAP message
- An optional Header element that contains header information
- A required Body element that contains call and response information
- An optional Fault element that provides information about errors that occurred while processing the message.
More Information