Simple Object Access Protocol (SOAP) is a lightweight XML-based messaging protocol. Software programmers use this easy-to-understand convention to encode information in a web service messaging request/response to send and receive data over a network. Independent of using an operating system, it can easily be transported using any number of Internet protocols including HTTP, MIME, and SMTP.
The beauty of running a simple object access protocol is its ability to communicate over cross platforms, such as Windows talking to Linux, or most any other platform. It does this by using Extensible Markup Language (XML) along with Hypertext Transfer Protocol (HTTP) as the transporting mechanism to exchange information. The simplicity of using XML over HTTP is accomplished because of an existing fully developed at-hand solution designed to allow variable programs, all using separate operating systems on a single network, to easily communicate with one another.
SOAP is a software encoding interface that determines exactly how an XML file and an HTTP header from one computer can call a specific program in another computer and then pass along its data. The encoding also provides an avenue to return a response from the second computer back to the first.
Developed by UserLand software, DevelopedMentor, and Microsoft, SOAP was originally proposed to be the standard interface to IETF (Internet Engineering Task Force). Built almost identically to the logic standards of I IOP (Internet Inner-ORB Protocol), a standardized protocol that is hierarchically is situated under CORBA (Common Object Request Broker Architecture), this client/server inner program protocol can easily generate communication written in Java.
Through the Firewall
A large advantage of SOAP over competing protocols is that the program calls are designed to make its way through firewall servers that have been created to screen out most requests. Built on the premise that a HTTP request are generally allowed to easily pass through firewalls, any program designed with SOAP should be able to communicate with any other platform program anywhere on the Internet.
A common SOAP message is written as a typical XML document that must contain specific elements including a “Header” element containing pertinent information, along with a “Body” element that defines all of the relevant call and response data. Additionally, it will have a “Fault” element that contains status and errors information. It is all housed in an “Envelope” element which adds all identifying XML document information stating it is a SOAP message.
Every SOAP message must be specified with a SOAP Envelope namespace, along with an Encoding namespace. Additionally, all encoding must use XML (Extensible Markup Language) processing instructions and must notcontain any reference to DTD. The SOAP envelope element must be written to be the root element of the message.
Differences from Other RPCs
There are various other Remote Procedure Calls (RPC) style protocols that are designed as a communication link between applications including I IOP (Internet Inter-ORB Protocol), RMI (Remote Method Invocations) and DCOM (Distributed Component Object Model). The single largest advantage of SOAP over these other varieties of protocols is that it uses XML, a text based interface, unlike these others that are heavily dependent on specific object model protocols. Most other remote procedure calls are not developed around the unrestrictive HTTP protocol and cannot be adapted to the Internet.
Built as a versatile protocol it easily transports a variety of other protocols including SMTP, and JMS. Using the adaptable HTTP get/response model, SOAP has the ability to push through proxies and firewalls without modifying its protocol. It has the ability to take full advantage of the proven existing infrastructure.
Both ICE and CORBA are competing middleware technologies that operate significantly faster than SOAP. However, this is typically a problem only when there are just a few messages being sent. As a way to circumvent this issue, the Message Transmission Optimization Mechanism (MTOM) was introduced to improve performance as a way to work around embedded binary objects.
Because SOAP is built on a foundation layer of web services protocol stack, it creates an effective messaging framework to enable Web services. It can easily send and respond between two separate computers across the Internet using transport protocols including JMS, TCP, SMTP and most effectively, HTTP.