(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
Ø 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
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
Ø SOAP also
specifies how the called program can return a response. Despite its frequent
pairing with HTTP, SOAP supports other transport protocols as well.
defines the XML-based message format that Web service-enabled applications use
to communicate and inter-operate with each other over the Web.
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.
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
Ø 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
ü 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.
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.