SOAP
or Simple Object Access Protocol
is a messaging protocol that is mainly used to communicate between different application elements. SOAP is very popular in enterprise applications for messaging and data transmission.
SOAP History
- SOAP is not an old protocol that is created in 1998. This version was named as
XML-RPC
where the XML messages and data are transmitted over remote procedure calls via HTTP protocol. - The second SOAP version release was 1.1 which is released in May 2000.
- The more popular used version SOAP 1.2 is released in June 2003 and became a W3C recommendation.
SOAP Features
SOAP became popular because of the features it provided. Here are some of the features which make SOAP.
- SOAP is designed to be used to communicate via the internet.
- SOAP uses HTTP for transmission of the XML messages.
- SOAP provides data transport and transmission features for the Web Services.
- SOAP can exchange different data and document types.
- SOAP can broadcast messages into different nodes or hosts.
- SOAP provides a platform or language-independent usage.
- SOAP enables clients to connect remote services and servers.
- SOAP is a format for sending and receiving messages and call remote procedures.
- SOAP is based on XML language which is structured and readable.
SOAP Terminology
Before starting to explain the SOAP protocol in details we need to learn some basic SOAP terminology to define SOAP protocol.
SOAP Node
is a physical or logical system that can process SOAP messages by receiving or sending.SOAP Roles
is used to set specific roles and duties to the specified SOAP Nodes like only read or no process etc.-
SOAP Protocol Binding
is connecting the SOAP Node to the remote SOAP Nodes by using TCP and HTTP protocols. -
SOAP Module
is an extension of the existing SOAP semantics. SOAP Message
represents information exchanged between SOAP Nodes.-
SOAP Envolope
is the enclosing element of an XML message identifying as a SOAP message. -
SOAP Body
contains the body of the messaged for the SOAP receiver. SOAP Header
contains the collection of one or more header blocks target at each SOAP Receiver.-
SOAP Sender
is the SOAP Node sending the message. SOAP Receiver
is the SOAP Node receiving the message.SOAP Message Path
is the SOAP Nodes which will process the SOAP message in given precedence and queue.
SOAP Building Blocks
As a standard SOAP provides some rules and building blocks to make SOAP popular and reliable protocol. Let’s take the following simple SOAP message which has a very basic structure.
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
We can see that its a SOAP Envelope which contains Header, Body and Fault parts.

SOAP Advantages
SOAP protocol provides some advantages which make is a popular protocol.
- SOAP can be transmitted to reliable well-known protocol HTTP.
- SOAP messages can be also transmitted through different methods and protocols like SMTP, JMS or message queues.
- SOAP can be transmitted through different network and security devices like Firewall, IPS/IDS without any restriction.
- SOAP is extensible to meet different requirements.
SOAP Disadvantages
Event SOAP provides a lot of advantages it also poses some disadvantages.
- SOAP is heavyweight protocol where it needs a lot of processing.
- SOAP is complex which is some time makes things slow.
- Reading a SOAP is more difficult then alternatives like REST or JSON etc.