SOAP (Simple Object Access Protocol)

Contributor(s): Tom Nolle, Moriah Sargent, David Linthicum and Duraisamy Sivaram

SOAP ( Simple Object Access Protocol) is a message protocol that allows distributed elements of an application to communicate. SOAP can be carried over a variety of lower-level protocols, including the web-related Hypertext Transfer Protocol (HTTP).  SOAP defines a header structure that identifies the actions that various SOAP nodes are expected to take on the message, in addition to a payload structure for carrying information. The concept of routing a message through a string of nodes that perform different functions is how SOAP supports things like addressing, security and format-independence. Essentially, the headers identify roles, which in turn provide the SOA features which SOAP then routes to. Stringing messages through a sequence of steps is uncommon in today’s microservice-centric development environments.

SOAP Advantages and Disadvantages

SOAP is an integral part of the service-oriented architecture (SOA) and the Web services specifications associated with SOA. Because it allows the sender to create a message route based on the logical services that have to be applied to the message on the way to its destination, it lends itself to providing secure and compliant connections, controlling access, offering reliable delivery and failure recovery, and supporting dynamic service discovery. SOA without SOAP is difficult to imagine.

SOAP’s messages are defined at a high level in XML, but most SOAP applications use Web Services Definition Language (WSDL), which is authored in XML.  The XML structure of SOAP makes it handy for applications that expect their information to be provided in XML form, and the fact that SOAP can ride on a variety of network protocols, including HTTP, means it’s easily passed through firewalls, where other protocols might require special accommodation.

The data structure of SOAP is based on XML, which is similar in many ways to the HTML used to define web pages. Like HTML, XLM is largely human-readable, which makes it fairly easy to understand a SOAP message, but also makes the messages relatively large in comparison to the Common Object Request Broker Architecture (CORBA) and its Remote Procedure Call (RPC) protocol that will accommodate binary data.

The biggest disadvantage of SOAP (and SOA overall) is that it’s a heavyweight protocol for a heavyweight architecture.  The notion of a message passing through a string of nodes to be processed by each seems to mix protocols and service bus architectural models for software, and neither of those two are considered optimal for microservice-based development as popularly used today.


SOAP is a protocol that’s almost always used in the context of a Web Services/SOA framework.  As such, it’s application programming interface (API) is typically hidden by the higher-level interface for SOA. There are SOA API middleware tools available for nearly all modern programming languages, and Microsoft offers a variety of .NET SOAP/SOA tools.


SOAP is designed to break traditional monolithic applications down into a multi-component, distributed form without losing security and control. In contrast, REST is a model of distributed computing interaction based on the HTTP protocol and the way that web servers support clients. REST over HTTP is almost always the basis for modern microservices development and communications. RESTful APIs uses HTTP requests to GET, PUT, POST and DELETE data.

REST/HTTP is simple, flexible, lightweight, and offers little beyond a way of exchanging information. SOAP can ride on HTTP as well, but it connects the elements of a complex set of distributed computing tools (the Web Services and SOA framework) as well as application components, and this forms a part of a total service-oriented framework.

Future of Simple Object Access Protocol

SOAP was the first widely used protocol for connecting web services in a Service Oriented Architecture (SOA). Today, nearly all modern development of distributed applications is based on RESTful principles. SOAP is almost always confined to legacy applications and projects, and over time its use is declining.

This was last updated in February 2019

Continue Reading About SOAP (Simple Object Access Protocol)

Dig Deeper on Distributed application architecture

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

Do you have any questions or expertise about SOAP to share? Sound off here.
SOAP is a specification in the web services used for exchanging structured information. It uses XML information set for the format of its messages. However, it is dependent on other protocols such as the HTTP and SMTP for the negotiation and transmission of messages. Three characteristics of SOAP define its advantages. These are extensibility, neutrality, and independence. It can operate on any transport protocol and supports any programming model.
Thanks for sharing your expertise, Garry!
I read somewhere that SOAP was more secure than REST? Or is this a misunderstanding of what the two types of API services provide and are implemented?
Yes, SOAP is more secure because it uses its own security.
I do not have experience in SOAP protocol however i am interested in hearing some performance case studies where 100mil of small messages have been transmitted from many devices to another.
Also keen to hear about Veretax (previous) question about some standard security measurements taken.

Is there some knowledgeable expert on board?
Why it is called simple object access protocol? please define these 4 word.
And when is it needed application on SOAP?
This article may give interesting perspectives on SOAP vs. REST:

Regarding SOAP: I remember it was at times defined as "Service Oriented Architecture Protocol", is it a deprecated meaning now?
It's a little old, but this will give you a basic intro to SOAP:

If you want to explore the SOAP vs. REST argument, look here. Again, it's not a new article, but neither are SOAP or REST:

Without SOAP by using only XML and HTTP we can exchange information between two systems. What's the role of SOAP?
Reads a bit confusing...
I'd suggest definitions and examples given here:
How we can linked on SOAP into XML mean the method shell we download?
I am new in web service kindly explain what is XML in web service.
How SOAP can be used for functional oriented communication?
Explain the structure of SOAP message in message oriented communication, indicating the elements used

Hi Margaret Rouse,

you have provided excellent information and explanation about SOAP. I am new in web services and REST.

I have an issue in my scripting, that I have to capture "Session ID: and SOAP doesn't provide  this function due to its nature of Stateless, some one can help me to resolve this issue, I will appreciate,

Shakil ASLAM