Official Definition of SOAP
W3 described SOAP as “SOAP Version 1.2 is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment ”
We can define it as a simple messaging framework .It build on XML technologies.
Two version of SOAP protocol is available now , 1.1 and 1.2 . Her I will focus on version 1.2.
Major Use Case : Exchanging information between systems.
Power of SOAP 1.2 :
This framework designed such a way that it is “independent of any particular programming model and other implementation specific semantics ”.
SOAP makes communication with web services smooth and more solid.
Example : SOAP message containing a SOAP header block and a SOAP body
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header> <n:alertcontrol xmlns:n="http://example.org/alertcontrol"> <n:priority>1</n:priority> <n:expires>2050-06-22T14:00:00-05:00</n:expires> </n:alertcontrol> </env:Header> <env:Body> <m:alert xmlns:m="http://example.org/alert"> <m:msg>Hello World SOAP Message</m:msg> </m:alert> </env:Body> </env:Envelope>
SOAP Terminology :
- Conceptual :
- SOAP :
- Simple object protocol.
- SOAP node
- A SOAP node is responsible for enforcing the rules that govern the exchange of SOAP messages
- SOAP role :
- A SOAP receiver's expected function in processing a message. A SOAP receiver can act in multiple roles.
- SOAP binding
- Set of rules to exchange SOAP message in top of another protocol or a part of another protocol. Usually SOAP message exchanged with in an HTTP entity-body or over Tcp stream.
- SOAP feature
- "reliability", "security", "correlation", "routing", and "Message Exchange Patterns" (MEPs).
- SOAP module
- A SOAP Module is a specification that contains the combined syntax and semantics of SOAP header blocks.
- SOAP message exchange pattern (MEP)
- A template for the exchange of SOAP messages between SOAP nodes.
- SOAP application
- Can be a web service provider or a web service consumer system.
- Data Encapsulation :
- SOAP message
- The basic unit of communication between SOAP nodes.
- SOAP envelope
- The outermost element information item of a SOAP message.
- SOAP header
- A collection of zero or more SOAP header blocks each of which might be targeted at any SOAP receiver within the SOAP message path.
- SOAP header block
- An element information item used to delimit data that logically constitutes a single computational unit within the SOAP header. The type of a SOAP header block is identified by the XML expanded name of the header block element information item.
- SOAP body
- A collection of zero or more element information items targeted at an ultimate SOAP receiver
- SOAP fault
- A SOAP element information item which contains fault information generated by a SOAP node.
Message Sender and Receiver Concepts
- SOAP sender
- A SOAP node that transmits a SOAP message.
- SOAP receiver
- A SOAP node that accepts a SOAP message.
- SOAP message path
- The set of SOAP nodes through which a single SOAP message passes. This includes the initial SOAP sender, zero or more SOAP intermediaries, and an ultimate SOAP receiver.
- Initial SOAP sender
- The SOAP sender that originates a SOAP message at the starting point of a SOAP message path. It can be a client application.
- SOAP intermediary
- A SOAP intermediary is both a SOAP receiver and a SOAP sender and is targetable from within a SOAP message. It processes the SOAP header blocks targeted at it and acts to forward a SOAP message towards an ultimate SOAP receiver.
- Ultimate SOAP receiver
- The SOAP receiver that is a final destination of a SOAP message. It can be a web service end point.