SOAP (Simple Object Access Protocol)

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

SOAP (Simple Object Access Protocol) is a messaging protocol that allows programs that run on disparate operating systems (such as Windows and Linux) to communicate using Hypertext Transfer Protocol (HTTP) and its Extensible Markup Language (XML).

Since Web protocols are installed and available for use by all major operating system platforms, HTTP and XML provide an at-hand solution that allows programs running under different operating systems in a network to communicate with each other. SOAP specifies exactly how to encode an HTTP header and an XML file so that a program in one computer can call a program in another computer and pass along information. SOAP also specifies how the called program can return a response. Despite its frequent pairing with HTTP, SOAP supports other transport protocols as well.

SOAP defines the XML-based message format that Web service-enabled applications use to communicate and inter-operate with each other over the Web. The heterogeneous environment of the Web demands that applications support a common data encoding protocol and message format. SOAP is a standard for encoding messages in XML that invoke functions in other applications.

SOAP is analogous to Remote Procedure Calls (RPC), used in many technologies such as DCOM and CORBA, but eliminates some of the complexities of using these interfaces. SOAP enables applications to call functions from other applications, running on any hardware platform, regardless of different operating systems or programming languages.

SOAP calls are much more likely to get through firewall servers, since HTTP is typically Port 80 compliant, where other calls may be blocked for security reasons. Since HTTP requests are usually allowed through firewalls, programs using SOAP to communicate can be sure that the program can communicate with programs anywhere.

Some of the advantages of leveraging SOAP include:

  • It is platform and language independent.
  • SOAP provides simplified communications through proxies and firewalls, as mentioned above.
  • It has the ability to leverage different transport protocols, including HTTP and SMTP, as well as others.

Some disadvantages of leveraging SOAP include:

  • SOAP is typically much slower than other types of middleware standards, including CORBA. This due to the fact that SOAP uses a verbose XML format. You need to fully understand the performance limitations before building applications around SOAP.
  • SOAP is typically limited to pooling, and not event notifications, when leveraging HTTP for transport. What's more, only one client can use the services of one server in typical situations.
  • Again, when leveraging HTTP as the transport protocol, there tends to be firewall latency due to the fact that the firewall is analyzing the HTTP transport. This is due to the fact that HTTP is also leveraged for Web browsing, and many firewalls do not understand the difference between the use of HTTP within a Web browser, and the use of HTTP within SOAP.
  • SOAP has different levels of support, depending upon the programming language supported. For example, SOAP support within Python and PHP is not as strong as it is within Java and .NET.
This was last updated in December 2014

Continue Reading About SOAP (Simple Object Access Protocol)

Dig Deeper on Service-oriented architecture (SOA)

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.


Extensiones de Documento y Formatos de Documento

Accionado por: