SOAP MEPs and Abstract MEPs

I have a long-standing action item to detail how SOAP MEPs and WSDL MEPs (or
what I will refer to as Abstract MEPs) relate, and how they might be changed
in order to work together.  I realize that SOAP MEPs are 'abstract', but
could not come up with a better destinction.  I don't think changing MEP to
Pattern would help -- but cause more confusion, given the similarities
between the two.

Soap MEPs are defined here [1].  An Abstract MEP is essentially the same
definition, but with the following minor modifications:

o 'SOAP node' is replaced with 'participating node'
o 'SOAP feature' is replaced with 'feature'
o 'SOAP fault' is replaced with 'fault'

Note that the WS Architecture group has already created a template document
based on the SOAP Features/Properties/MEPs extension mechanism and plans to
make these general across all Web service specifications -- a very rough
draft can be found here (essentially takes the SOAP words verbatim) [2].

Give the above changes, the definition of an Abstract MEP would be:

<definitionAMEP>

An Abstract Message Exchange Pattern (MEP) is a template that establishes a
pattern for the exchange of messages between participating nodes. MEPs are a
type of feature, and unless otherwise stated, references in this
specification to the term "feature" apply also to MEPs.  The
request-response MEP illustrates the specification of a MEP feature.

The specification of a message exchange pattern MUST:

 - provide a URI to name the MEP.

 - Describe the life cycle of a message exchange conforming to the pattern.

 - Describe the temporal/causal relationships, if any, of multiple messages
   exchanged in conformance with the pattern (e.g. responses follow requests
   and are sent to the originator of the request.)

 - Describe the normal and abnormal termination of a message exchange
   conforming to the pattern.

Higher level specifications can declare their support for one or more named
MEPs.  For example, SOAP MEPs can specifically refer to Abstract MEP
specifications.

MEPs are features, so an MEP specification MUST conform to the requirements
for feature specifications. An MEP specification MUST also include:

 - Any requirements to generate additional messages (such as
   responses to requests in a request/response MEP).

 - Rules for the delivery or other disposition of faults
   generated during the operation of the MEP.

</definitionAMEP>

Given the above definition, a SOAP MEP could be redefined simply as:

<definitionSOAP-MEP>

  A SOAP MEP is an Abstract MEP [as defined above] where:
   - the participating nodes are 'SOAP nodes'
   - all faults are mapped to SOAP faults
   - can reference an Abstract MEP and provide additional
     SOAP-specific semantics

</definitionSOAP-MEP>

Now, if we take a look at the SOAP MEPs provided in Part II of the SOAP
specification [3], it seems clear that we can adopt the same property
conventions for Abstract MEPs, namely:
  o ExchangePatternName
  o FailureReason
  o Role
  o State

There may be some debate on whether 'State' is appropriate as part of an
Abstract MEP specification.  I'll leave that open for now.

The SOAP spec defines two SOAP MEPs, 'SOAP Request-Response Message Exchange
Pattern' [4] and 'SOAP Response Message Exchange Pattern' [5].  Both of
these are request-response MEPs, where the first has the request coming in
as a SOAP message, and the second the request is made via a 'non-SOAP
message.'  A close look at the two SOAP MEPs reveals the fact that they are,
indeed, almost identical, so both of the SOAP MEPs could refer to the same
Abstract MEP that defines input-output (or request/response).

In WSDL, the <interaction> or <operation> would refer to the Abstract MEP.
The SOAP binding would then specify which of the SOAP MEPs would be used.

[1] http://www.w3.org/TR/2002/CR-soap12-part1-20021219/#soapmep
[2] http://dev.w3.org/cvsweb/~checkout~/2002/ws/arch/wsa/wd-wsa-ext.html
[3] http://www.w3.org/TR/2002/CR-soap12-part2-20021219/#soapsupmep
[4] http://www.w3.org/TR/2002/CR-soap12-part2-20021219/#singlereqrespmep
[5] http://www.w3.org/TR/2002/CR-soap12-part2-20021219/#soapresmep

Don Mullen

Received on Thursday, 16 January 2003 08:43:10 UTC