SOAP Explained
By Stephen Bucaro
In the early days of computers, every application contained all the code required to perform
every operation. For example,a word processing application would contain its own code for
spell checking. When software components (COM) was developed, the spell checking code could be
contained in a separate module that can be shared by several different word processor programs.
As computer networking grew, it was recognized that software components didn't need to reside
on the same computer as the application. Distributed COM (DCOM) allows applications to communicate
with components installed on other computers on the same network.
The Internet is a network that allows computers all over the globe to communicate with each
other. It was recognized that software components could reside on any computer on the planet
and they could communicate over the Internet.
An Internet application doesn't need its own code to perform functions such as retrieve a stock
quote, make a reservation, find a best price, or validate a credit card number. Using a "Universal
Description Discovery and Integration" (UDDI) protocol, an application can locate software on
the Internet, or "Web Services" that can perform those functions.
Client applications and Web services communicate using messages in a format called Simple Object
Access Protocol (SOAP). SOAP messages are simply XML documents constructed to SOAP specifications.
These messages are communicated using standard Internet protocols, like http, smtp, and ftp.
Internet authorities like
using the word "protocol". Everything is a "protocol". When they get ready for work in the morning,
they call it their Standard Morning Bathroom Protocol (SMBP). You can think of SOAP as an XML text
file message formatted according to the SOAP specification. Describing SOAP as a protocol, however,
is correct because a "protocol" is simply a set of rules.
A client application might send the SOAP document shown below via http to a Web server hosting
a Web service that provides information about customers' accounts.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SendAccountBalance>
<accountNumber xsi:type="xsd:int">12345678</accountNumber>
</SendAccountBalance>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The Web service might respond, again via http, with the SOAP document shown below.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<AccountBalanceResponse>
<accountNumber xsi:type="xsd:int">12345678</accountNumber>
<accountBalance xsi:type="xsd:decimal">932.73</accountBalance>
<ResponseDateTime xsi:type="xsd:datetime">2005-06-15T11:21:00-06:00</ResponseDateTime>
<AccountBalanceResponse>
/SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|