Herong's Tutorial Notes on Web Service and SOAP
Dr. Herong Yang, Version 2.11

SOAP Message Exchange Patterns

Part:   1  2  

(Continued from previous part...)

Rule 2: At the responding SOAP node, there will be another set of SOAP properties with the following initial values:

http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext 
   /ExchangePatternName
   = "http://www.w3.org/2003/05/soap/mep/request-response/"

http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext
   /FailureReason
   = "None"

http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext
   /Role
   = "RespondingSOAPNode/"

http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext
   /State
   = "Init"

http://www.w3.org/2003/05/soap/mep/OutboundMessage
   = (not defined yet)

http://www.w3.org/2003/05/soap/mep/InboundMessage
   = (the requesting message)

http://www.w3.org/2003/05/soap/mep/ImmediateDestination
   = (not defined)
   
http://www.w3.org/2003/05/soap/mep/ImmediateSender
   = (the URI of the requesting node)

Rule 3: In the normal process flow, the requesting node will initiate the communication call, and start sending the request message. The responding node will answer the call, and start receiving the request message. The responding node can start sending the response message once the first part of the request message has arrived at the responding node. The progress of the communication process should be presented by the "State" property at both nodes as illustrated in the following diagram:

"State" at Requesting Node           "State" at Responding Node
"Init"
   |
   |- Initialization
   v
"Requesting"        <------------>   "Init"
   |                                    |
   |- Requsting SOAP call               | - Initialization
   |                                    v
   |                <------------>   "Receiving"
   |                                    |
   |                                    | - Receiving SOAP call
   v                                    v
"Sending+Receiving" <------------>   "Receiving+Sending"
   |                                    |
   |- Sending request msg               | - Receiving request msg
   |- Receiving response msg            | - Sending response msg
   v                                    v
"Success"                            "Success"

Response Message Exchange Pattern

Response Message Exchange Pattern is a pattern where a SOAP node sends a request without any SOAP message to another node, and expects the other node sending back a SOAP message. The pattern name is: http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext /ExchangePatternName = http://www.w3.org/2003/05/soap/mep/soap-response/

Response Message Exchange Pattern shares the same additional SOAP properties as the Request-Response Message Exchange Pattern: Outbound Message, Inbound Message, Destination Node, and Sender Node.

Response Message Exchange Pattern also shares most of the processing rules with the Request-Response Message Exchange Pattern. Bus since there is no requesting SOAP message, the "State" property will have different values as shown in the following process diagram:

"Init"
   |
   |- Initialization
   v
"Requesting"        <------------>   "Init"
   |                                    |
   |- Requsting SOAP call               | - Initialization
   |                                    v
   |                <------------>   "Receiving"
   |                                    |
   |                                    | - Receiving SOAP call
   v                                    v
"Receiving"         <------------>   "Sending"
   |                                    |
   |- Receiving response msg            | - Sending response msg
   v                                    v
"Success"                            "Success"

Web Method Feature

Web Method Feature is SOAP feature that can be used with Request-Response Message Exchange Pattern or Response Message Exchange Pattern. This feature allows SOAP nodes to communicate to each other with an extra information indicates a Web method name. The feature name is: http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext /ExchangePatternName = http://www.w3.org/2003/05/soap/features/web-method/

Web Method Feature defines the following additional SOAP properties:

8. Web Method: Used to specify the method name of predefined Web methods similar to those used in the HTTP protocol. This property is named as: http://www.w3.org/2003/05/soap/features/web-method/Method and having possible values of "GET", "POST", "PUT", and "DELETE".

SOAP Action Feature

SOAP Action Feature is SOAP feature that can be used with Request-Response Message Exchange Pattern or Response Message Exchange Pattern. This features allows SOAP nodes to communicate to each other with an extra information indicates an activation identification. The feature name is: http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext /ExchangePatternName = http://www.w3.org/2003/05/soap/features/action/

SOAP Action Feature defines the following additional SOAP properties:

9. SOAP Action: Used to identification of an process action on the response node. This property is named as: http://www.w3.org/2003/05/soap/features/action/Action

If the binding layer is using "application/soap+xml" media type, the value of the SOAP action property should be included in this media type as the "action" parameter.

Part:   1  2  

Dr. Herong Yang, updated in 2006
Herong's Tutorial Notes on Web Service and SOAP - SOAP Message Exchange Patterns