Overview of SOAP Protocol

SOAP based webservices uses a special form of XML called SOAP to exchange messages (requests and responses). SOAP originally stood for Simple Object Access Protocol, but now also called as Service Oriented Architecture (SOA) protocol. 

 

Important characteristics of SOAP

  1. SOAP protocol is based on XML and hence platform independent

  2. Though HTTP is the most commonly used transport protocol with SOAP-based webservices, it is not limited to just HTTP, but can also use other protocols like SMTP, JMS etc.

  3. SOAP message must NOT contain a DTD reference

  4. SOAP message must NOT contain XML Processing Instructions

 

Components of SOAP message

A SOAP message is an XML document with following elements:

  • Envelope element

    • identifies the XML document as a SOAP message

    • root element of a SOAP message

  • Header element

    • contains header information

    • If present, it must be the first child element of the Envelope element.

  • Body element

    • contains the actual SOAP message (request or response)

  • Fault element

    • containing errors and status information

    • optional element

    • If present,

      • it must appear as a child element of the Body element.

      • can only appear once in a SOAP message.

    • faultcode values must be used in the faultcode element when describing faults:

      • VersionMismatch

        • invalid namespace for the SOAP Envelope element

      • MustUnderstand    

        • An immediate child element of the Header element, with the mustUnderstand attribute set to "1", was not understood

      • Client

        • message was incorrectly formed or contained incorrect information

      • Server

        • problem with the server so the message could not proceed.

 

Typical usage scenario for a SOAP based web service

  • A SOAP – based web service will expose some operations

  • A consumer (client) will make a remote procedure call against the service by invoking one of the operations.

    • The client sends an HTTP request to the web service (provider) and the request body will be a SOAP message.

  • On the web server side,

    • the web service provider process the HTTP request with the help of some java libraries,

    • extract the SOAP envelope,

    • determine the requested service operation,

    • invoke the corresponding java method and then

    • generate an appropriate SOAP message as response and

    • return it back to the client.

Note:

  • This message ecxhange pattern (MEP) is called Request-Response. 

  • WSDL is also exchanged as part of every client request. First client requests for the wsdl and get back the wsdl, and then client sends a soap request and gets back a soap response.

Comments

Hi Heartin Sir,

While reading i found a spelling mistake in Document.

Last paragraph, first line.

A good SOA implementation requires easy and platform independen interoperability between \

I think its should be independent.

 

Thanks

Pushpendra

Was it useful?

Thanks for pointing it out.

You voted 'UP'.
Was it useful?

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)