http://docs.oasis-open.org/ws-rx/issues/
WS-RX TC Public Review Issues List
Date: 2006/10/31
Revision: 3
spec
schema
soap
wsdl
policy
all
New
Active
Pending
Review
Deferred
Closed
Dropped
WS-Addressing comment on ws-rm related to use of extended anonymous uri
In July comment was made to the WS-Addressing group concerning
interoperability issues related to the WS-Addressing WSDL binding and
the specific use of the anonymous address specified in the WS-RM public
review specification.
A WS-Addressing issue cr33
was subsequently opened.
It seems clear that after several meetings almost wholly focused on this
issue; the WS-Addressing working group is not converging on a
resolution. The working group is evenly split between "close with no
action" and "keep working toward some resolution".
There is a reasonable potential that close with no action may be the
result.
We therefore request that an issue be raised related to this use of
anonymous within the WS-RX Working Group such that alternative forms of
reconciliation may be explored.
ws-rm
spec
editorial
W3C WS-Addressing WG
WS-RM editorial comment concerning MakeConnection
1) It's not specified in line 809 that MakeConnection appears as a
body element rather than a header. In fact, MakeConnection isn't
described as an element at all - it's described as an operation. See
line 312 as an example of clearer text.
2) Line 811 says "no SOAP envelopes will be returned on the
back-channel." I think "envelopes" should be singular.
ws-rm
spec
editorial
W3C WS-Addressing WG
Assigned to editors to resolve on Sept. 28th TC call.
WS-Addressing comment/question related to WS-RM MakeConnection
As chair of WS-Addressing I am forwarding the following comment made by
one of our members.
I've been puzzling through the spaghetti of dependant specs for a while,
and haven't determined conclusively how to reconcile the WSDL in
Appendix B with the MakeConnection example in Appendix C.6.
The WSDL describes request-response operations such as CreateSequence,
with input CreateSequence and output CreateSequenceResponse messages.
While the WSDL doesn't describe a binding for this, it is easy to
imagine a straightforward way to bind this to a SOAP/HTTP
request-response.
However, the MakeConnection example shows a MakeConnection message
resulting in a CreateSequence response message, which then results in a
CreateSequenceResponse messages, followed by an HTTP 202. That is, the
first request corresponds to a one-way message (no problem here), the
first response corresponds to a request of a request-response, and the
second request corresponds to the response of a request-response.
What standard binding could be used to describe this behavior? I can't
find any of the specs (WSDL 1.1, WSDL 2.0, WS-I BP) that explicitly say
the WSDL-described request message must be mapped to an HTTP request,
but I'm also not aware of any implementation that allows requests to be
mapped to anything else. Is this just a too-obvious-to-state loophole
or am I missing something?"
ws-rm
spec
editorial
W3C WS-Addressing WG
Editorial comments
Comments from Gil
Comments from Marc
ws-rm
ws-rmp
spec
editorial
Gilbert Pilz
Proposed changes (in description) accepted on Oct 26th TC call.
Seq Ack Ranges overlap
The RM spec says, w.r.t. Seq Ack Ranges:
The ranges SHOULD NOT overlap.
Why isn't this a MUST NOT? It smells like an interop issue if we don't know if the other side can deal with it.
ws-rm
spec
design
Doug Davis
Change it to a MUST NOT
Proposal 1 accepted on Oct 26th TC call.
Destination of Seq faults
From spec: Line 893
RM Destinations that generate Sequence faults SHOULD send those faults to the same [destination] as Acknowledgement messages.
The text is a bit unclear. Does it mean that sending it is optional or is the EPR it sends it to optional? I think the intent was just the act of sending it is option, but it must go to the AcksTo EPR.
ws-rm
spec
editorial
Doug Davis
RM Destinations that generate Sequence faults SHOULD transmit those faults. If the fault is transmitted, it MUST be transmitted to the same [destination] as Acknowledgement messages.
Destinations that generate faults related to known sequences SHOULD transmit those faults. If transmitted, such faults MUST be transmitted to the same [destination] as Acknowledgement messages.
Proposal 2 arrived at and accepted on Oct 26th TC call.
RM Destination lacks a mechanism for cleanly terminating inbound sequences.
Stipulate the following scenario: a client and server communicate using asynchronous, two-way, reliable messaging. During the initial sequence creation the client offers a sequence to the server and this offer is accepted. Some number of requests and responses are exchanged using the requested and offered sequences. At some later time the user of the client application causes that application to exit. It is obvious that the client-side RMS should clean up the outgoing, client-to-server sequence by sending a wsrm:TerminateSequence message (possibly preceded by a wsrm:CloseSequence message) to the server-side RMS. What is not clear is what steps the client-side RMD should take to clean up the incoming, server-to-client sequence. There are three basic courses of action:
1.) The client-side RMD could do nothing to clean up the incoming sequence. From a distributed systems viewpoint this seems less than optimal as it leaves the server-side RMS with a "dangling sequence". If the server-side RMS ever tried to use this dangling sequence it would engage the entire RMS machinery for messages that would never get through (send, retry, request acks, retry, request acks, etc.).
2.) The client could wait for a length of time sufficient for it to consider the inbound sequence to be "inactive", then exit. There are a couple of problems with this. Firstly the user that caused the client to exit may grow impatient and attempt to terminate the client by other means. Secondly, outside of the optional expiration time, there is no mutually agreed upon inactivity period for a sequence.
3.) The client-side RMD could send a message to the server-side RMS to indicate that the inbound, server-to-client sequence is being cleaned up. Since the direction of the wsrm:TerminateSequence message is specified by WS-ReliableMessaging 1.1 as being from the RMS to the RMD only, this leaves either the wsrm:SequenceTerminated or wsrm:SequenceClosed faults as the only viable messages for the client-side RMD to use. This brings up all the problems attendant with using faults/exceptions to indicate "normal" application behavior. The server-side RMS may construe the appearance of a fault as an indication of some lower-level problem, etc.
Note that, although this issue is discussed in the context of a client application attempting to exit, it is applicable in any situation where the process/VM that "contains" an RMD must exit in a relatively short period of time for whatever reason.
ws-rm
spec
design
Gilbert Pilz
Amend the wording of section 3.6 (Sequence Termination) to indicate that a wsrm:TerminateSequence/wsrm:TerminateSequenceResponse exchange may be initiated by the RMD.
Underlying protocol bindings
There is interoperability issue with this specicication, since it doesn't define underlying protocol bindings (e.g.,HTTP bindings). The spec or its profile should explicitly define underlying protocol bindings.
ws-rm
spec
design
eBusinss Asia Committee
Closed without action on the Oct 26th TC call.
Protocol bindings are out of scope of this group, but could be dealt with in WS-I RSP group
"Duplicate Elimination" and "Message Ordering"
2.1 This specification dose not define how to realize "Duplicate Elimination" and "Message Ordering".
It is a serious issue for industry organizations in Japan and Asia to adopt the specification.
We strongly recommend to define them to make various implementations interoperable.
ws-rm
spec
design
eBusinss Asia Committee
Can AckRequested be sent independently or not
2.2 It is not clear whether AckRequest message can be sent independently or not.
The 3.8 describes:
"The RM Source MAY request an Acknowledgement Message from the RM Destination at any time by including an
AckRequested header block in any message targeted to the RM Destination."
In detail, is the following message which doesn't include <wsrm:Sequence>
, allowed to send? If so, the above sentence should explicitly describe it. See the first four lines in
Section 3.9.
<soap:Envelope>
<soap:Header>
<wsrm:AckRequested>
<wsrm:Identifier>http://example.com/test</wsrm:Identifier>
</wsrm:AckRequested>
</soap:Header>
</soap:Envelope>
By the way, the section 3.9 describes:
"The RM Destination informs the RM Source of successful message receipt using a SequenceAcknowledgement
header block. The RM Destination MAY Transmit the SequenceAcknowledgement header block independently or it
MAY include the SequenceAcknowledgement header block on any message targeted to the AcksTo EPR."
And it is clear the SequenceAcknowledgement can be sent independently.
ws-rm
spec
design
eBusinss Asia Committee
Editorial issues from eBusinss Asia Committee
2.3 Line697 Editorial
"see Section 3.5" should be "see Section 3.8" ?
2.4 Line667 Editorial
"see Section 3.1" seems not appropriate. It should be other appropriate section.
ws-rm
spec
editorial
eBusinss Asia Committee
Anonymous and AcksTo EPR scenarios
2.5 Line 704-709
The following sentences needs to be refined or requires examples.
" When the RM Source specifies the WS-Addressing anonymous IRI as the address of the AcksTo EPR,
the RM Destination MUST Transmit any SequenceAcknowledgement headers for the created Sequence in a
SOAP envelope to be Transmitted on the protocol binding-specific channel. Such a channel is provided
by the context of a Received message containing a SOAP envelope that contains a Sequence header block
and/or a AckRequested header block for that same Sequence identifier."
Maybe some examples help reader understand what it meant.
It is not clear whether the SequenceAcknowledgement must be sent on
*its* back-channel of the underlying transport protocol.
e.g.,
Here is the following scenario:
1.CreateSequence has "Anonymous" value for AcksTo element.
2.RM Source sends a message A with AckRequested on HTTP Request.
3.RM Source sends a message B on HTTP Request.
Question:
In this scenario, does RM Destination have to send Sequence Acknowledgement for message A on the HTTP Response in 2, but disallow to send it on HTTP Response in 3?
Or does the spec allow to send it on the HTTP Response in 3?
The spec is not clear about the above scenario. The spec should clarify it.
ws-rm
spec
design
eBusinss Asia Committee
SequenceAcknowledgement protocol response for AcksTo = wsa:anonymous
2.6 Line339-348
It is not clear what the following sentences means:
CreateSequence\AcksTo = wsa:anonymous
Does it mean the SequecenAcknowledgement must be on the HTTP Response to the original message?
If so, it is beyond the WS-Addressing definition, I believe.
By the way, the spec doesn't allow wsrm:Anonymous to be used in AcksTo.
If the spec doesn't allow wsa:anonymous in AcksTo, then it should be explicitly described
ws-rm
spec
design
eBusinss Asia Committee
Composition with WS-Addressing
2.7 Section3.9 and Appendix B
Needs explanation of ws-addressing composability.
It is not clear how ws-addressing/soap request message and response message maps to AckRequested and
SequenceAcknoweldgement message.
ws-rm
spec
design
eBusinss Asia Committee
RMD polling
2.8 Section3.10
It is not described how you can identify whether the RM destination is polling a message.
This could be in RM policy assertion.
ws-rm
ws-rmp
spec
design
eBusinss Asia Committee
2nd Protocol Invariant, none and nack
The 2nd Protocol Invariant (sec 2.3) says:
Within every Acknowledgement Message it issues, the RM Destination MUST include one or more
AcknowledgementRange child elements that contain, in their collective ranges, the message number of every message accepted by the RM Destination. The RM Destination MUST exclude, in the AcknowledgementRange elements, the message numbers of any messages it has not accepted.
This isn't true in the case when the SequenceAck is either None or Nack.
ws-rm
spec
design
Paul Fremantle
What is the purpose of the WSDL?
The purpose of the WSDL is not terribly clear. I doubt one would actually describe a Web service
using this WSDL, as RM is generally considered an infrastructure-level protocol and WSDL typically
describes an application-level message exchange. In addition, if machine-processing of this WSDL is
expected, not all message exchanges are described – after a MakeConnection message comes _in_ to the service, a CreateSequence message may come _out_, yet CreateSequence is only described as an _in_ message in the WSDL. The limits of the WSDL in describing the complete exchanges of messages should be noted.
ws-rm
spec
design
Jonathan Marsh
fix this editorially by adding the following explanatory text to "Appendix B. WSDL":
This WSDL describes the RM protocol from the point of view of an RM Destination. In the case where an endpoint acts both as an RM Destination and an RM Source, note that additional messages may be present in exchanges with that endpoint.
Also note that this WSDL is intended to describe the internal structure of the RM protocol, and will not generally to appear in a description of an RM-capable Web service. See RM-Policy [ref] for a higher-level mechanism to indicate that RM is engaged.
Piggyback message combinations
1. Section 3.2 (P. 10)
This section describes piggy-back messages, but does not mention receivable
message combinations. So, which message combinations can be received could
be implementation-dependent.
ws-rm
spec
design
Sadao Yashiro
Use of AckRequested
2. Section 3.8 (P. 19)
According to the specification, a receiver must return an Acknowledgement
when a message contains an AckRequested element, which requests an
Acknowledgement. However, it is not specified that a receiver must not
return an Acknowledgement when a message contains no AckRequested element.
So, I think the implementation should return an AckRequested element
whenever a user payload is received.
ws-rm
spec
design
Sadao Yashiro
Message ordering and duplication
3. No description on guaranteed message ordering and duplication
elimination.
Neither did the previous version. Did the TC determine to set them out of
scope?
ws-rm
spec
design
Sadao Yashiro
Message ordering and duplication
WS-RM allows for the possibility of adding the wsrm:AckRequested and wsrm:SequenceAcknowledgement headers to
unrelated messages that are targeted to the "same" endpoint; a concept it refers to as "piggy-backing".
There are a number of problems with this concept:
See message for complete description.
ws-rm
spec
design
Gilbert Pilz
RMD cannot detect some incomplete Sequences
WS-RM 1.0 [1] defined a sub-element of the wsrm:Sequence header that served to mark the containing message as the last message in a Sequence. WS-RM 1.1 [2] has removed this element. Consequently the RMD has no guaranteed way of determining whether it has received all the messages in a Sequence. This presents obvious drawbacks to an Application Destination that may wish to know if it has received all the data that the Application Source sent it. In addition to this it makes correctly implementing the "incomplete sequence behavior" semantics impossible since the RMD cannot always determine what is and isn't an "incomplete Sequence".
For example, suppose an RMS creates a Sequence, sends messages 1-10, then sends a CloseSequence. Suppose that messages 9 and 10 get lost but the CloseSequence message is received by the RMD. The RMS can determine that the Sequence is incomplete (final ack is missing 9 and 10 from the range), but the RMD has no way of knowing, nor is there any way for it to discover, that the Sequence is incomplete. If the IncompleteSequenceBehavior was "DiscardEntireSequence" then the RMS will conclude that all of the messages will be discarded whereas the RMD will, in all likelihood, deliver all of the messages to the Application Destination under the assumption that the Sequence is complete.
ws-rm
spec
design
Gilbert Pilz
CreateSequenceRefused fault should apply to sender and receiver
In section 4.6 the CreaetSequenceRefused fault is defined as a sender fault. This fault should apply to sender or receiver.
ws-rm
spec
design
Marc Goodner
When to send CloseSequenceResponse vs. SequenceClosedfault
In section 4.7 describing the SequenceClosed fault one reason the fault must be returned is that an RMD is “…asked to close a Sequence that is already closed.” However, in section 3.5 that describes CloseSequence it says that for a closed sequence the RMD must process all Sequence Lifecycle messages including CloseSequence. It also says that subsequent CloseSequence messages have no further effect.
ws-rm
spec
design
Marc Goodner
Proposal 1 accepted on Oct 26th TC call.
When to send CloseSequenceResponse vs. SequenceClosedfault
Inside wsrm-1.1-schema-200608.xsd, the following constructs are invalid, according to my XML schema
processor. See message...
ws-rm
schema
design
Eric Rajkovic