Proposal for clarifying relationship between MEPs and RPC convention

I volunteered to assist on an action item for clarifying two points:

1) Whether the two message exchange patterns we define are between
immediate SOAP nodes
2) The relationship between these two MEPs and the RPC convention and
the HTTP binding respectively

Here is a first rough proposal for addressing both.

Current Situation
-----------------

Currently, the "SOAP Request-Response Message Exchange Pattern" is
described [1] as

"The Request-Response MEP defines a pattern for the exchange of two
messages between two adjacent SOAP nodes along a SOAP message path. One
message is exchanged in each direction between a requesting SOAP node
and a responding SOAP node...."

Similarly, the "SOAP Response Message Exchange Pattern" is described [2]
as

"The SOAP Response MEP defines a pattern for the exchange of a non-SOAP
message acting as a request followed by a SOAP message acting as a
response. In the absence of errors or faults, this message exchange
pattern consists of two messages, only one of which is a SOAP
envelope...."

That is, one talks about the message path whereas the other one doesn't.
My impression is that they should be consistent in the "scope" of the
message path.

The RPC convention mentions that it uses the two MEPs defined by SOAP
1.2 but that others are possible, from [4]:

"The SOAP RPC Representation employs the 6.2 SOAP Request-Response
Message Exchange Pattern and 6.3 SOAP Response Message Exchange Pattern.
Use of the SOAP RPC Representation with other MEPs MAY be possible, but
is beyond the scope of this specification."

The HTTP binding is also mentioned to use both of the MEPs, from [3]:

"An implementation of the SOAP HTTP Binding MUST support the following
message exchange patterns (MEPs):

   * "http://www.w3.org/2002/06/soap/mep/request-response/" 
     (see 6.2 SOAP Request-Response Message Exchange Pattern) 

   * "http://www.w3.org/2002/06/soap/mep/soap-response/" 
     (see 6.3 SOAP Response Message Exchange Pattern)"

and also mentions how other MEPs can be supported by adding other
bindings, from [5]

"The SOAP version 1.2 specification does not preclude development of
other bindings to HTTP or bindings to other protocols, but communication
with nodes using such other bindings is not a goal. Note that other
bindings of SOAP to HTTP MAY be written to provide support for SOAP
Message exchange patterns other than 6.2 SOAP Request-Response Message
Exchange Pattern or the 6.3 SOAP Response Message Exchange Pattern."

Proposal
--------

Overall, I think the current situation is close to being right with the
exception of the inconsistency between the scope of the two MEPs. In
particular, it is important that both the HTTP binding and the RPC
convention provides text for how to support additional MEPs.

However, I think the paragraphs describing the MEPs can be made more
consistent. Here is a proposal for doing so:

A) Clarify the paragraph describing the "SOAP Request-Response Message
Exchange Pattern" [1] as follows:

"The SOAP Request-Response MEP defines a pattern for the exchange of a
SOAP message acting as a request followed by a SOAP message acting as a
response. The MEP does not support the presence of SOAP intermediaries
in the message path. In the absence of failure in the underlying
protocol, this MEP consists of exactly two SOAP messages."

B) Clarify the paragraph describing the "SOAP Response Message Exchange
Pattern" [2] as follows:

"The SOAP Response MEP defines a pattern for the exchange of a non-SOAP
message acting as a request followed by a SOAP message acting as a
response. The MEP does not support the presence of SOAP intermediaries
in the message path. In the absence of failure in the underlying
protocol, this MEP consists of exactly two messages, only one of which
is a SOAP message."

Comments?

Henrik Frystyk Nielsen 
mailto:henrikn@microsoft.com 

[1] http://www.w3.org/2000/xp/Group/2/06/LC/soap12-part2.xml#bindinfdesc
[2]
http://www.w3.org/2000/xp/Group/2/06/LC/soap12-part2.xml#bindinfdesc2
[3]
http://www.w3.org/2000/xp/Group/2/06/LC/soap12-part2.xml#http-suptransme
p
[4] http://www.w3.org/2000/xp/Group/2/06/LC/soap12-part2.xml#soapforrpc
[5]
http://www.w3.org/2000/xp/Group/2/06/LC/soap12-part2.xml#httpoptionality

Received on Wednesday, 6 November 2002 00:13:28 UTC