Distributed Computing – SOAP
May 25, 2010 Leave a comment
No, this post is not about the slippery block of nice smelling soap! SOAP in Distributed Computing is another form of message exchanging between peers, and here we describe how it does this.
So, lets answer that one question that on everyone’s mind right now – what does SOAP stand for?
When SOAP first came about it originally stood for Simple Object Accessed Protocol. But, times move on. Nowadays the name is considered to be outdated, so in reality SOAP now stands for absolutely nothing! 🙂 Don’t believe me? Go Wikipedia it!
So, what is SOAP then? Well:
SOAP provides a simple lightweight mechanism for exchanging structured and typed information between peers in a decentralised, distributed environment using XML.
Everything has a structure in computing, and it should come as no surprise that SOAP also has one 🙂
SOAP is constructed via 4 components:
- Body, and a
- Message Pay Load
The envelope in SOAP contains the whole SOAP message to be sent. That is, the envelope contains the other 3 components; the Header, Body and Message Pay Load.
The Header in SOAP is optional, you either have one, or you don’t. If you do decide to use one, it contains the header information – this is application-specific information (like authentication, payment, etc) about the SOAP message. 
The Body of SOAP contains the application pay load.
In actual fact, the required SOAP Body element contains the actual SOAP message intended for the ultimate endpoint of the message., so this really is the next part.
Message Pay Load
This is the part of the message that is intended for the Application. (Above)
The image above is a visual representation of the elements that form a SOAP message.
SOAP can also contain – within the envelope – a Fault element. The fault element can contain the following:
- FaultCode – An error code that the service can pass to the Client.
- FaultString – An error message that the service can provide.
- FaultActor – Where did the error originate from.
- Detail – Details about the error that occurred.