W3C home > Mailing lists > Public > public-ws-addressing@w3.org > March 2005

RE: MAPs and SOAP

From: David Orchard <dorchard@bea.com>
Date: Wed, 16 Mar 2005 08:43:57 -0800
Message-ID: <32D5845A745BFB429CBDBADA57CD41AF0E4453B8@ussjex01.amer.bea.com>
To: "Anish Karmarkar" <Anish.Karmarkar@oracle.com>, "David Hull" <dmh@tibco.com>
Cc: <public-ws-addressing@w3.org>

I'm quite against the approach of "generifying" the MAPs.  I believe in
names that reflect the type, ala ReplyTo and FaultTo.

I think structures of the form
<bag type="type1">type1content</bag>
<bag type="type2">type2content</bag>

Are not very readable and add little value.  I much prefer
<type1>type1content</type1>
...

Whether type1 is re-usable in multiple MAPs has nothing to do with
whether the type is in the instance or in the schema.

Cheers,
Dave

> -----Original Message-----
> From: public-ws-addressing-request@w3.org
[mailto:public-ws-addressing-
> request@w3.org] On Behalf Of Anish Karmarkar
> Sent: Tuesday, March 15, 2005 5:17 PM
> To: David Hull
> Cc: public-ws-addressing@w3.org
> Subject: Re: MAPs and SOAP
> 
> 
> It seems to me that providing a general mechanism (such as
> wsa:associatedEndpoint) would enable implementors to implement
patterns
> beyond simple request-response. Request-response is certainly a very
> important usecase that must be supported, but by providing a framework
> where users plug in URIs for specific "roles" in an interaction
pattern
> seems like a win-win situation. We can define a 'reply' and 'fault'
URI
> which would mean that there is a built in support for the oft-used
> req-response pattern. The ability to reuse an MAP (btw, this set is
> *not* extensible) to enable various interesting interactions lower the
> bar for supporting additional interactions. With such a generic
> mechanism all that is required for new interaction patterns is to
define
> a new URI and associated semantics as opposed to a new SOAP
> header/module/feature that then has to be processed by all SOAP
stacks.
> I agree that providing such extensibility is a good thing for the same
> reason that providing extensibility for [relationship] is a good
thing.
> Most people view ws-addressing as a fundamental building block and
> providing the right extensibility hooks in our spec would go a long
way.
> 
> -Anish
> --
> 
> David Hull wrote:
> > I've been going back through the core and SOAP specs after today's
> > discussion, and I'm still concerned about the difference between
> > reply/fault and any other kind of endpoint.  I also have an at least
> > partially worked out example below the horizontal line, which I'd
> > encourage everyone to look through and comment on even if the
concerns
> > below hold no interest.
> >
> > To take Dave O's example, as I understand it, if I have a MEP that's
> > basically request/reply but also has an alternate reply, then two of
the
> > three endpoints are considered MAPs, have properties defined for
them in
> > the SOAP addressing module, and appear in the wsa:namespace.  The
third
> > is just some random SOAP header.
> >
> > While it is true that one can always put an EPR wherever one wants,
> > whether as a header or in some distinguished place in the body, or
> > someplace out of band for that matter, it still seems strange to
have
> > such an asymmetry instead of somehow allowing for an extensible set
of
> > endpoints.  It seems particularly strange when we explicitly make
> > [relationship] extensible.  We could just as well have (and maybe
once
> > did have?) an [in-reply-to] property and depend on SOAP
extensibility
> > for anything further.
> >
> > I would think that the reasons for making [relationship] extensible
are
> > the usual ones: People are bound to define relationships other than
> > in-reply-to, and we would like to give them a standard place to put
> > those, in such a way that a processor could generically gather "all
> > related messages" from a message without having to understand what
> > in-reply-to and whatever other headers mean.  I'm not precisely sure
> > what the use case would be for this, but it seems like a good thing
> overall.
> >
> > I'm hard-pressed to see why it wouldn't be equally good to do the
same
> > thing with associated endpoints.  As with [relationship], one could
then
> > generically determine what endpoints might be expected to receive
> > messages due to a given message, without having to understand what
my
> > custom "alternate-reply" header means (or assume that any unknown
EPR in
> > a header is liable to carry ongoing traffic).  This might make
routing
> > easier, or help predict traffic volume, or have entirely other uses.
If
> > anything, this seems like it might be more directly useful than
handling
> > [relationship] generically.
> >
> > If nothing binding documents for new interactions might be somewhat
> > easier to read.  Along those lines, here is a draft of what an
> > "in-out-alternateOut" MEP might look like under the status quo.  I'm
> > neither endorsing nor disparaging this version (at this point).  I'm
> > more interested in whether this looks about right so far as what
would
> > be required.  Any feedback would be welcome.
> >
> >
------------------------------------------------------------------------
> >
> >
> >         XXX. In-out-alternateOut
> >
> > This is a two-way MEP. A reply is expected hence mandating [reply
> > endpoint] in the request message. The response message might be a
> > fault.  */In addition, an alternate reply may occur, hence mandating
> > [alternate reply endpoint] in the request message.  The [alternate
reply
> > endpoint] property is an abstract property like the standard Message
> > Addressing Properties.  If present, it MUST be mapped to the SOAP
> > yatns:AlternateReply header, analogously to the mapping of Message
> > Addressing Properties described in sections 3 and 4 of the
WS-Addressing
> > SOAP binding.
> > /*
> >
> > */When formulating an alternate reply, follow the rules in section
3.2
> > of the WS-Addressing Core Spec (Formulating a Reply Message), but
with
> > rule 1 carrying the following additional clause:
> > /*
> >
> >     * */If the reply is an alternate reply message, select the EPR
from
> >       the incoming message's [alternate reply endpoint] property. If
> >       none is present, the processor MUST fault./*
> >
> > */
> > /*
> >
> > Table xxx-1. Message addressing */and other /*properties for in
message.
> > Property 	Mandatory 	Description
> > [destination] 	Y 	Provides the address of the intended
receiver of
> this
> > message
> > [action] 	Y 	Identifies the semantics implied by this message
> > [source endpoint] 	N 	Message origin. Unused in this MEP, but
may
> be
> > included to facilitate longer running message exchanges.
> > [reply endpoint] 	Y 	Intended receiver for the reply to this
> message.
> > /[alternate reply endpoint]/
> > 	/Y/
> > 	/Intended receiver for alternate replies to this message./
> > [fault endpoint] 	N 	Intended receiver for faults related to
this
> > message. May be included to direct fault messages to a different
> > endpoint than [reply endpoint].
> > [message id] 	Y 	Unique identifier for this message. Used
in the
> > [relationship] property of the out message.
> > [relationship] 	N 	Indicates relationship to a prior
message. Unused
> in
> > this MEP, but may be included to facilitate longer running message
> > exchanges.
> >
> >
> > */
> > /*
> > Table xxx-2. Message addressing /*and other */properties for out
> > message. Property 	Mandatory 	Description
> > [destination] 	Y 	Provides the address of the intended
receiver of
> this
> > message
> > [action] 	Y 	Identifies the semantics implied by this message
> > [source endpoint] 	N 	Message origin. Unused in this MEP, but
may
> be
> > included to facilitate longer running message exchanges.
> > [reply endpoint] 	N 	Intended receiver for replies to this
> message.
> > Unused in this MEP, but may be included to facilitate longer running
> > message exchanges.
> > /[alternate reply endpoint]/
> > 	/N/
> > 	/Intended receiver for alternate replies to this message.
Unused in
> > this MEP, but may be included to facilitate longer running message
> > exchanges./
> > [fault endpoint] 	N 	Intended receiver for faults related to
this
> > message. Unused in this MEP, but may be included to facilitate
longer
> > running message exchanges.
> > [message id] 	N 	Unique identifier for this message.
Unused in this
> MEP,
> > but may be included to facilitate longer running message exchanges.
> > [relationship] 	Y 	Indicates that this message is a
response to the
> in
> > message using the in message [message id] value and the predefined
> > |http://www.w3.org/@@@@/@@/addressing/reply| IRI.
> >
> >
> > */
> > /**/
> > /*
> > Table xxx-3. Message addressing /*and other */properties for
> > alternateOut message. Property 	Mandatory 	Description
> > [destination] 	Y 	Provides the address of the intended
receiver of
> this
> > message
> > [action] 	Y 	Identifies the semantics implied by this message
> > [source endpoint] 	N 	Message origin. Unused in this MEP, but
may
> be
> > included to facilitate longer running message exchanges.
> > [reply endpoint] 	N 	Intended receiver for replies to this
> message.
> > Unused in this MEP, but may be included to facilitate longer running
> > message exchanges.
> > /[alternate reply endpoint]/
> > 	/N/
> > 	/Intended receiver for alternate replies to this message.
Unused in
> > this MEP, but may be included to facilitate longer running message
> > exchanges./
> > [fault endpoint] 	N 	Intended receiver for faults related to
this
> > message. Unused in this MEP, but may be included to facilitate
longer
> > running message exchanges.
> > [message id] 	N 	Unique identifier for this message.
Unused in this
> MEP,
> > but may be included to facilitate longer running message exchanges.
> > [relationship] 	Y 	Indicates that this message is a
response to the
> in
> > message using the in message [message id] value and the predefined
> > |http://www.alternate.org/addressing/alternateReply| IRI.
> >
> >
> > */
> > /*
Received on Wednesday, 16 March 2005 16:44:08 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:35:04 GMT