- From: <noah_mendelsohn@us.ibm.com>
- Date: Wed, 27 Feb 2002 13:14:53 -0500
- To: Marc Hadley <marc.hadley@sun.com>
- Cc: xml-dist-app@w3.org
Mark Hadley writes:
>> I therefore think that nodes are allowed to change the roles they play
during message processing and we adequately describe the rules for doing
so.
I think we need to be very careful here. I think the formulation we have
in the spec is indeed OK [1], but your informal summary is only right if
viewed very carefully and an almost legalistic prism. It is indeed true
that you can change your roles during message processing, but not during
header or body processing. The text on optimistic methods is really a way
of saying that we don't unduly constrain implementations, but the
processing logic is strictly ordered. Roles are determined in step 1 (and
indeed you can inspect the message while doing this, but you MUST NOT
proceed to processing headers and bodies in this step.) Header and body
processing is later in step 4, by which time the roles are fixed.
[1]
------------------------------------------------------------------
Noah Mendelsohn Voice: 1-617-693-4036
IBM Corporation Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------
Marc Hadley <marc.hadley@sun.com>
Sent by: xml-dist-app-request@w3.org
02/22/2002 08:27 AM
To: xml-dist-app@w3.org
cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
Subject: Issue 154: Role invariance - proposed resolution
On wednesdays telcon I was assigned the action to draft resolution text
for issue 154 [1] ahead of the F2F:
<quote>
Section 2.2 SOAP Actors and SOAP Node
The roles assumed MUST be invariant during the processing of an
individual SOAP message; because this specification deals only
with the processing of individual SOAP messages, no statement is
made regarding the possibility that a given piece of software
might or might not act in varying roles when processing more than
one SOAP message.
"invariant" - so if during the processing of a message a SOAP node
determines that it should also assume additional "roles", this would
be illegal? I think this should be allowed.
</quote>
Proposed resoltion:
Since this issue was raised the text of the processing model has changed.
Section 2.6 now states:
"This section sets out the rules by which SOAP messages are processed.
Unless otherwise stated, processing must be semantically equivalent to
performing the following steps separately, and in the order given. Note
however that nothing in this specification should be taken to prevent
the use of optimistic concurrency, roll back, or other techniques that
might provide increased flexibility in processing order as long as all
SOAP messages, SOAP faults and application-level side effects are
equivalent to those that would be obtained by direct implementation of
the following rules in the order shown below.
1. Determine the set of roles in which the node is to act. The contents
of the SOAP envelope, including header blocks and the body, MAY be
inspected in making such determination."
According to rule 1 above we explicitly allow a node to inspect the
message contents when deciding on the set of roles it is to play. We
also allow a node to change the set of roles it plays after starting to
process blocks provided that the outcome of this is "semantically
equivalent to performing the following steps separately, and in the
order given".
I therefore think that nodes are allowed to change the roles they play
during message processing and we adequately describe the rules for doing
so.
Regards,
Marc.
[1] http://www.w3.org/2000/xp/Group/xmlp-issues.html#x154
--
Marc Hadley <marc.hadley@sun.com>
XML Technology Centre, Sun Microsystems.
Received on Wednesday, 27 February 2002 14:40:02 UTC