W3C home > Mailing lists > Public > xml-dist-app@w3.org > October 2002

RE: Proposal for new last call issue: Some unprocessed headersshould stay

From: Henrik Frystyk Nielsen <henrikn@microsoft.com>
Date: Thu, 17 Oct 2002 10:53:45 -0700
Message-ID: <5C39F806F9939046B4B1AFE652500A3A03265A66@RED-MSG-10.redmond.corp.microsoft.com>
To: "Jacek Kopecky" <jacek@systinet.com>, "Jean-Jacques Moreau" <moreau@crf.canon.fr>
Cc: "Noah Mendelsohn" <noah_mendelsohn@us.ibm.com>, "XMLP Dist App" <xml-dist-app@w3.org>


I think you may have flipped (pun intended :) my point of view. I have
on several occasions argued that we should have only one concept of
identifying a node. In the current terminology, this means that we
*only* think of identity in terms of roles:

* A node is the actual processor of SOAP messages

* A role is a URI identifying a node

This model is very similar to the relationship between a resource and a
URI in traditional Web terminology--and for a good reason! As a result
of this model, a message path only contains a set of roles that are
linked to specific nodes through late binding. In other words, this is
the Web as we know and love with respect to URIs vs. resources.

I completely agree that targeting is about establishing a contract
between the sender and a receiving role. Flipping the default has
nothing to do with the node/role model above but everything to do with
how we think of the contract. In addition, we use the mU flag to
indicate whether the contract is mandatory or optional. I think we all
agree that when combined, targeting and mU provide a very powerful
processing model.

The reason why the default is that a contract is between the sender and
the first receiver acting in the specified role is that the receiver can
not know whether the sender intended the contract automatically to be
extended to downstream nodes acting in that role. As Jean-Jacques points
out, there are scenarios where this is the case and there are scenarios
where this is not the case.

Mark Jones originally asked the question of how a sender can request the
contract to be extended to other SOAP nodes acting in the same role in
the case that the first node didn't understand the optional header
block.

This question is based on the assumption that the sender has some
knowledge of the role being targeted. At least, it has to know that the
role may be acted in by a number of SOAP nodes and not just uniquely
identify a SOAP node. That is, an implicit assumption is that roles have
properties and characteristics. This is in fact in line with the roles
we define in the spec, for example:

* "ultimateReceiver" is the last role in a message path indicating that
a node acting as the ultimateReceiver has to process the body.

* "next" always identified a node which means that contracts are always
for you.

That is: a sender needs to know something about a role in order to
target a header block at it and a receiver needs to know something about
a role in order to be able to act in it.

Given this, I think we really only have two options: the "relay" role or
an "RelayIfIgnored" attribute. I would evaluate them as follows:

1) Based on where we are at the current time, I prefer the "relay" role
as it does solve Mark's scenario. It has the smallest impact on the spec
and can be defended in the same manner that "next" can--the two are in
fact very similar.

2) After that I prefer a separate attribute as this also solves Mark's
problem. My concern is that it has a bigger impact on the spec.

Flipping the default, by itself, doesn't solve anything, and if we have
either a "relay" role or a separate attribute then it is not necessary.
I therefore see this as a dead end.

Henrik Frystyk Nielsen
mailto:henrikn@microsoft.com

>Jean-Jacques, others,
>
>there are two different views of the world competing here. The 
>views concern in particular how a sender node views the 
>message path in terms of nodes and roles:
>
>1) (status quo) the message path contains some nodes and some 
>roles, and the mapping from a role to a node is unambiguous. 
>In other words, a role name identifies at most one node (from 
>the POV of the sender) and the contract is between the sender 
>and that node.
>
>2) (after proposed default flip) the message path contains 
>some roles, the contract is between the sender and the role 
>(anyone playing the role).
>
>I think Henrik assumes the first view but wants to make an 
>exception for a specific scenario.
>
>I think the specific scenario is very close to the second view 
>so I thought that view was being adopted here.
Received on Thursday, 17 October 2002 13:54:17 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:59:11 GMT