Title: *Proposed Agenda:*
I have some comments to the
minutes:
I thought we have agreed to
RefToMessageIDs
But the minutes said we picked up
:
RefToMessageID
I would like to make sure which are our
choice.
And additional comment is:
Should we make it follows? (lower
"d")
RefToMessageIds
Thanks,
Iwasa
--
Change name “RefToMessageID” to
RefToMessageIDs
RefToGroupedMessages
Ref
toMessages
RefToMessageIdSet
RefToGroupSubset
RefToSubGroup
The winner was RefToMessageID.
----- Original Message -----
From:
Tom Rutt
To: wsrm
Sent: Thursday, January 15, 2004
10:44 AM
Subject: [wsrm] Prelim Wed
Minutes:
attached are the minutes.
--
----------------------------------------------------
Tom Rutt email: ;
Tel: +1 732
801 5744 Fax: +1 732 774
5133
2004-01-15T01:41:00Z
1
5571
31760
Coast Enterprises
264
74
37257
10.4219
WSRM Face To Face Proposed Agenda:
Wednesday Jan 14 –
16, 2004
Oracle
Conference
Center
350 Oracle Parkway
Redwood Shores CA 94065
Conference Bridge
Call in Info: Each day
(9:00 AM to 11:00
AM
Pacific Standard Time, with possible extension to 12:00 Noon if required each
day)
Host: Fujitsu
Toll only : 1-512-225-3050
Participant code:
89772
(NOT toll-free !)
Wed Jan 14: AM: Note: Roll call is on Wednesday
Morning you must be present or on bridge to have attendance count for voting
rights.
0
Draft Agenda
Wed Jan 14: AM: Note: Roll call is on Wednesday
Morning you must be present or on bridge to have attendance count for voting
rights.
8:30 Coffee
and Continental Breakfast
9:00 Start
Roll Call, Review of Agenda and Identification of input contributions
9:15 Approval
of 1/06 minutes
9:30 Walk
thru of WS draft/ Schema to confirm reflection of accepted resolutions
10:15 Triage of Open
Issues (arrange in priority)
10:30
Break
10:45
Resolution of Config Parameter Issues Rel(56,
83 84, 85, 86)
12:00 Lunch
begins
PM
1:00 PM
- Detailed WS-Reliability Editor’s Draft Walk thru
a)
Check for usage of Optionality “SHOULD, MUST,
MAY, etc” (Rel 22)
b)
Determine candidates for Optional Implementation (Rel 29)
2:30 Break
3:00 Discussion of
Rel 49 Non normative wsdl
annotation Specification
3:30 Discussion of
UML
State Charts
5:00 Homework
assignments and meeting recess
Thursday Jan 15
AM:
8:30
Coffee
9:00
Review of Homework Assignments and Continued Issue
Resolution
10:30
Break
10:45 Resolution of
“Requirements” Issues (Rel 59-79)
PM
12:00
Lunch
1:00
Continue Resolution of Requirements issues
2:30
Break
3:00
Resume Discussion of Issue resolutions
3:30
Discussion on Conformance issues (Rel 29) for
Sender and Receiver RMPs
5:00
Discussion of Homework Assignments, and meeting recess
Friday Jan 16:
AM:
8:30 Coffee
9:00
Review of Homework Assignments/proposals
9:30
Continuation of Conformance Discussion
10:30
Break
10:45
Review WS-Reliability Spec / Schema and assign subteams to clean up descriptions and
examples.
12:00
Lunch
PM
1:00
Discussion of Timing for Deliverables and Future Interop Demo plans
2:30
Break
3:00
Concluding discussions
4:00
Future Meeting Planning and Wrapup
5:00
Meeting Adjourns
1
Introduction
1.1
Earliest Possible timeline
Tom Rutt displayed the following
possible timeline
Jan 27 – CD 1 7 day Ballot issued
Feb 3 – CD 1 ballot closes
Feb 4 – 30 day Review initiated
March 5 – 30 Day public Review ends
March 15, submit to oasis staff for member vote
April 1 – Membership two week review
April 15 – start member two week vote
April 30 – member vote concludes. Earliest Oasis
Standard.
1.2
Roll Call
First
Name
Last
Name
Email
Role
Company
Robert
Freund
Member
Hitachi
Peter
Furniss
Member
Choreology
Ltd
J
Durand
Member
Fujitsu
Kazunori
Iwasa
Secretary
Fujitsu
Tom
Rutt
TC
Chair
Fujitsu
Eisaku
Nishiyama
Member
Hitachi
Nobuyuki
Yamamoto
Member
Hitachi
Junichi
Tatemura
Member
NEC
Corporation
Sunil
Kunisetty
Secretary
Oracle
jeff
mischkinsky
Member
Oracle
Pete
Wenzel
Member
SeeBeyond
Doug
Bunting
Secretary
Sun
Microsystems
Tony
Graham
Member
Sun
Microsystems
Chi-Yuen
Ng
Member
University of
Hong
Kong
Goodner
Mark
ProsMem
SAP
1.3
Identification of input contributions
Iwasa prepared a new spec Version
updated with Sunil’s comments and some technical fixes to meet resolved
comments.
Doug asked that we use the 1-06 document, because his annotation were against that
version.
Doug uploaded a new version of the issues list, dated
1/14/2004.
2
Approval of 1/06 minutes
Sunil moved to approve the 1/6 minutes. Bob seconded.
No opposition , minutes
approved.
3
Discussion of Active Issues
3.1
Rel 56, and 83 thru
86
Jacques email sent on 1/6/2004
Here is a proposal for Rel 56, attached, for further review.
It already reflects some earlier
comments from some of you (most from Doug).
As for the former list of REL
83-84-85-86:
REL 83: current proposed
resolution for R83 is assumed by R56, although parameter is renamed in
R56.
REL 84: current proposed
resolution for R84
is assumed by R56, although parameter is renamed in
R56.
REL 85: propose to close without
action: not relevant anymore since we can guarantee to NOT deliver
duplicate
regardless of scope (i.e. "forever", thanks to the
semantics of ExpiryTime)
REL 86: propose to
close without action: REL 57 is handling the termination of pending out-of-order
sequences.
Any other reason to cancel an out-of-order sequences hinges on storage capacity, which
should be
handled
separately (and in a consistent way across several other RM features. E.g. with appropriate Faults.)
Jacques
<<RM-agreement.txt>>
REL 56: Proposal
================
Summary:
- the
proposal is independent from resolution for REL 83-84-85-86,
although
we
assume here that REL 85-86 are dropped. (rationale to
be sent separately)
- Instead of talking of
"configuration parameters", this proposal will talk
more
abstractly (and more generally) of "reliability agreement items", or
RM-agreement items.
- "RM-agreement items" describe
the reliability contract between parties.
They cover both the RM
parameters that show up in the protocol, and those which do not
(like
"retry interval", "number of retries"). This distinction is not essential at
this level.
Some items may, at
implementation level, translate into configuration parameters for RMPs.
- the
proposal is that the spec identifies and describes the RM-agreement items, so
they
have a
formal existence independent from their protocol representation (as some do
not
appear
in protocol). This allows for treating all of them in a uniform way in the
spec.
The proposal does not mandate a
concrete representation.
Later on, a formal
representation could be recommended (e.g. a policy language,
an
agreement representation...)
Detailed
proposal:
Reliability Agreement (or RM
Agreement):
-----------------------------------------
An RM Agreement describes the
set of agreed contracts between:
- a
Sending "application layer" and the associated RMP.
- a
Sending RMP and a Receiving RMP.
- a
Receiving "application layer" and the associated RMP.
The way these contracts are
established or communicated to each party is out of scope,
although for the contract RMP-RMP, the assumption is that
all the needed synchronization
is
achieved through the message protocol, i.e. the Receiver RMP does not need
other
input
than the message headers.
The highest-level items of the
RM Agreement are the main RM features themselves:
- Guaranteed delivery (or
at-least-once delivery):
When a Sender application
submits a well-formed business payload to the RMP,
the
agreement requires that either:
(1) the
payload is delivered to the Receiver application, or
(2) the
Sender application is notified in case of failure.
- Duplicate elimination (or
at-most-once delivery):
When an RMP delivers a business
payload to a Receiver application, the agreement requires
that no
future business payload from a message with same identity as the message
containing
the
first payload (GroupId and SequenceNumber if any) will ever be delivered
to the
Receiver application.
- Guaranteed ordered delivery:
When a Sender application
submits an ordered sequence of business payloads to an RMP,
the
agreement requires that when delivering a business payload to the Receiver
application,
all
previous payloads in the sequence have already been delivered.
RM Agreement
Items:
-------------------
An RM Agreement is a list of
Agreement Items.
An RMP implementation MUST be
capable of:
(1) taking knowledge (e.g. either via configuration, or via an
API call, or via a message,
or via
the result of an algorithm) of a set of values that represent the RM Agreement
Items
described in this specification,
(2) processing them according to the semantics described in
this specification.
Some of these items will map to
some message header field, some will not.
They are:
- GuaranteedDelivery (enabled/disabled): for setting guaranteed
delivery.
- GuaranteedOrdering (enabled/disabled): for setting guaranteed message
ordering.
- AtMostOnceDelivery (enabled/disabled): for setting message
delivery without duplicates.
- GroupMaxIdleDuration (number of seconds):
For setting the elapsed time
limit from the last message sent or received in a group,
after
which the group can be terminated.
- GroupExpiryTime (number of seconds):
For setting
the date and time after which the group can be
terminated.
- ExpiryTime (number of seconds):
For setting the date and time
after which a message must not be delivered
to the
receiving application.
- RetryMaxTimes (integer number):
For setting how many times a
message must be resent if not acknowledged.
- RetryTimeInterval (number of seconds):
For setting
the minimal elapsed time between two re-sending of the same message.
- ReplyPattern ("response", "callback",
"poll")
For setting
the mode of response for Acks or
Faults.
Messaging Scope of Agreement
Items:
-----------------------------------
The messaging scope of these
agreement items may be:
(s1) All messages sent over a
connection between a Sender RMP and a Receiver RMP (default).
(s2) All messages sent within a
Group.
(s3) a single message, within a
group of several messages (non-singleton group).
Some agreement items obviously
relate to a particular scope, e.g. ExpiryTime
is
affecting each message separately, while GroupExpiryTime is an agreement about groups.
Such scopes are "required"
scopes that must be supported.
The smallest required scope for
each RM agreement item is:
Message scope
(s3):
- ExpiryTime
- RetryMaxTimes
- RetryTimeInterval
- ReplyPattern
- GuaranteedDelivery
- AtMostOnceDelivery
Group scope (s2):
- GuaranteedOrdering
- GroupExpiryTime
- GroupMaxIdleDuration
NOTE: although an RMP must
support each agreement item at the scope level above,
the RMP
implementation may also provide a way to specify these values for a broader
scope.
Example: an RMP implementation
may decide to provide a way to specify the ExpiryTime
value
for all messages of a group.
Rules about Agreement Items,
when used in an RM Agreement:
---------------------------------------------------------
- If GuaranteedOrdering is enabled for a messaging scope, then
GuaranteedDelivery and
AtMostOnceDelivery MUST also be
enabled for that messaging scope.
- If GuaranteedDelivery is enabled for a messaging scope, then
the items
(RetryMaxTimes, RetryTimeInterval) MUST also be defined
for that scope.
- If GroupExpiryTime is enabled for a messaging scope, then the
item GroupMaxIdleTime
must
not be enabled, and vice versa.
Jacques summarized that the notion of RM-agreement, without
explicit representation in protocol, allows these terms to be used in the
specification.
Jacques moved to adopt his proposal. Bob seconded.
If motion passes, this text will be put into the spec. Editoral
changes could be incorporated later.
No opposition. Motion passes. Close 56, 83 to 86.
3.2
Rel 49 WSDL
annotation
Sunil Email:
This proposal not only addresses
the main issue as mentioned in REL 49,
but it also
touches upon the client side config that was
mentioned in other
issues. I'd like to discuss this more at the
F2F
Salient points are:
* This should either be
normative and optional (wrt to compliance) or should
be made non-normative. Oracle prefers former.
* Has 2 different schema
elements. <service-config> is defined for
service side WSRM config to be used in the Service
WSDL. <client-config> element is used for
client side config to be used in vendor specific
client property/config file.
* <service-config>
o Based
wsdl
extensibility elements concept.
o Per operation or per binding. Note that
while wsdl 1.1 is ambiguous about extensible
elements under portType/operation, BP does allow
it.
o This extensible element can be either used
in portType/operation or binding/operation. If it
has to be shared by all bindings, then it could be used in the portType/operation [abstract part]. If this (wsrm usage) is per binding, then it can be defined only in
the binding operation It can also be used at the
binding level directly, if it is common for all the binding operations (note
that extensibility elements are prohibited at the portType level though).
o This service element could be used inside
any vendor specific policy elements or directly. If used directly, one could
use the wsdl:required (set to true) attribute, to enforce
the config element..
Once we finalize the schema, we could
define them in the same schema we are
defining for
the WSRM SOAP Headers and use the same namespace.
Example of a
<service-config> usage inside the operation
'foorBar'.
<portType name="fooPortType">
<operation name="fooBar">
<wsrm:service-config xmlns:wsrm="some URI" wsdl:required="true">
<!-- Spec. version>
<wsrm:version>1.0</wsrm:version>
<!-- We can also have some kind of
capability parameters
<wsrm:batching-support>
{true|false}
</wsrm:batching-support>
<wsrm:piggyback-support>
{true|false}
</wsrm:piggyback-support>
-->
<wsrm:guaranteed-delivery>
<!-- List the reply patterns supported by
this service.
Can have one or more such patterns -->
<wsrm:reply-pattern>
Callback
<!—possible values are Response/Callback/Polling
->
</wsrm:reply-pattern>
</wsrm:guaranteed-delivery>
<wsrm:duplicate-elimination>
true
</wsrm:duplicate-elimination>
<wsrm:message-ordering>
true
</wsrm:message-ordering>
</wsrm:service-config>
<input
message="fooMessageIn" />
<input
message="fooMessageOut>
</operation>
</portType>
Client side config sample:
<wsrm:client-config xmlns:wsrm="some URI">
<!-- No. of retries to send for non ack. messages
and return interval -->
<wsrm:retry-config>
<wsrm:retry-count>5</wsrm:retry-count>
<wsrm:retry-interval>10</wsrm:retry-interval> <!-- 10 secs
</wsrm:retry-config>
<!-- Can have only one such pattern. If the pattern is
'Callback',
the reply-to attribute can also be used
-->
<wsrm:reply-pattern wsrm:reply-to="SomeURIToSendAcksAndFaults">
Callback
<!—possible values are Response/Callback/Polling
->
</wsrm:reply-pattern>
<wsrm:group-config>
<wsrm:group-expiry-time>dateTime</wsrm:group-expiry-time>
<wsrm:group-max-idle-duration>dateTime</wsrm:group-max-idle-duration>
</wsrm:group-config>
</wsrm:client-config>
-Sunil
Sunil summarized some issues:
Client side config
Optionality/conformance
WSDL extensibility
element usage (on which wsdl 1.1 elements.
If we decide on the general approach, we can refine the
schema.
Jacques: at high level this is to specify capability of a
service with respect to Reliable message capabilities
Sunil: others have used ws-policy
for such things.
Jacques – is someday a standard policy language is adopted
we will have collistion.
Sunil – this would be replaced by the WSDL 2 features and
properties (F&P).
Jacques: Some of thes
capabilities may not depend on the web service itself
, but on the deployment.
Sunil: at abstract level it is less useful. It would be more useful at the port
level (or perhaps binding).
Sunil : it definitely would be
optional.
Tom: what requirement are we trying to solve here.
Bob: I have a concern about finishing this in the 1.0
timeframe. I suggest postponing
this beyond ws-reliability 1.0 as a future
feature.
We only have a few weeks to reach or committee draft
status.
Sunil: This thing is high level concept, once we decide the
specifics are not that difficult.
Bob: we should focus on fundamentals required to get us to
1.0.
Bob: we should focus on getting a tightly specified
document in the limited time we have.
There are activites being
started, WS-PL as part of WS-XACML
Bob F suggestd to close the issue
49 be closed, and that the annotation be put on the “wish list” for future
protocol versions.
Doug: is the problem that this solution appears large at
this late date, or whether it is addressing something separate from the raised
issue.
Bob: both. I
would like to be able to use features which have not yet been adequately baked
in standards committees.
Doug: there is that and the WSDL 2.0 approach of
F&P.
Doug: how about a simple annotation: this endpoint requires
the use of WS-Reliablity (or a list of the three
Reliability features).
Tom: thus the main requirement in R49 is to allow a WSDL
service definer to specify which of the three QOS features are required to be
used with a service instance.
Sunil we would not put wsdlrequired true on these extensibility elements.
The group decided to keep issue open for now, perhaps
decide later in the week.
Bob: we are on the fence about an optional feature, I would like to close now.
Leave it open for now.
4
Walk thru of WS draft/ Schema to confirm
reflection of completed resolutions
Doug: there are 6 accepted issues to check if they have
been applied to the document.
Iwasa and I can do this online.
There are 20 completed issues to confirm that they are
reflected in the document. We need to decide on moving from completed to closed.
All in order:
4.1
Rel 14
– in appendix c line 997 this is
done
4.2
Rel 16
- Issue resolution for (a) carried, will maintain MUST link
between message ordering and use of the AckRequested
element. Issue resolution for (b) carried, will maintain MUST link between
message ordering and use of the DuplicateElimination
element.
Done in 3.2.3 – line 715
4.3
Rel 31
– Meaning of
Guarantee – done in 2.7.
4.4
Rel 32
– editorial definition of reply
patterns, done in section1.8
4.5
Rel 33
– meaning of acknowledgement –
done in definition of Acknowledgement message. However, the first paragraph
now needs to be removed (lines 177 to 180) since the third paragraph is
better. It was agreed to remove
the first paragraph.
This was reopened below.
4.6
Rel 36
- Eliminate message id from WSRM headers, and use the groupID/sequence number as a concatenated unique ID for
WSRM identity purposes. Note: The
sequence number defaults to zero for senders that choose not to implement
order delivery (though that does not help recipients). - Search for message ID Line 251 on page 9 , section 2.4 needs to have messageID fully spelled out. This needs another check by the
editor.
Question for group: is it worth linking, at least
informally, from occurrences of message Identifier back to definition in 2.2.
Leave this as requiring further
checks.
4.7
Rel 37
– Use of MessageID – agreed to
make URI with rec for MID scheme. Done in Section
3.1.1, however rfcn 2392 does not appear in refs
The sentence” It
is RECOMMENDED to use a syntax of Message-ID, as
defined in [RFC2392].”
Agreed
to editorial change from “a syntax of Message-ID” to “the Message-ID
scheme”
4.8
Rel 38
– remove timestamp.
There were some changes made in latest document. These will be closed
later. Need to remove the timestamp fault
4.9
General Fault Cleanup
ACTION: Need to endure faults in general being Cleaned
up Sunil
will try to get a proposal to clean up fault text before the end of the
F2f..
4.10Rel 40
– time to live is change to expiry
time, and made mandatory. There
is a comment on 3.1.3, which it was agreed can be removed.
The text states “delivery to the application”, where the
definition of delivery uses “next processing entity”.
In 3.1.3 we agreed to
Change “MUST
NOT deliver a received message to the application.” To “ MUST NOT
invoke the deliver operation for the received message.”
Agreed to change “modified
in any case by Sender,” to “modified in any manner by
the Sending RMP”
Sunil : the pictures show the
rmp communicating with the receiving
application.
It was agreed to reopen Rel 33 to
refine the definition of Message Delivery.
4.11Rel 33 reopened
Propsed to Change resolution to Rel 33: Doug: suggested: add “(application layer)”
immediately after the term “next processing entity” in the definition of
Message Delivery. Agreed as important editorial.
Doug: either define application layer as next application
entity, or redefine ack in terms which are visible
on the wire.
Eg: “message in ordered sequence is not
acknowledge until all previous messages are acknowledged.”
Doug: we could eliminate the need for formal definition of
delivery.
Tom: Maybe use the term delivery, informally, in the def of
ack.
But the formal semantics required for acks,
should be defined directly.
Doug: there is no way to test delivery.
Doug: Two approaches
1)
Define application layer, and use as we do in
this spec. This is a little bit
messy for a protocol spec.
2)
Do our best to avoid discussion of Application
layer matters entirely within a single system.
Jacques: define a delivery operation that every Receiving
RMP must support in some application manner. Then define, send ack after invoking this abstract operation.
Tom: eg: Delivery – an abstract operation invoked by the
Receiving RMP to transfer responsibility for Reliable message.
Doug: delivery can be defined as some operation that
transfers responsibility for message shifting from RMP to application
layer.
Doug: I agree that for ordered delivery, non ordered
delivery of acks is not quite sufficient to cover
the semantics we want.
Doug: I like leaving the application layer in the spec, so
that ordered delivery has a useful meaning.
Jacques: we should define two abstract operations: Submit from application to sending
rmp, and deliver from Receiving RMP to
application.
Tom: Delivery: an abstract operation (implementation
specific realization) which is used by the Receiving RMP to transfer
responsibility of the Reliable message to the application layer.
Jacques: Require that the RMP invokes an operation called
deliver. Then have examples
(e.g, RMP transfers responsibility for the message
to the application layer through an implementation specific mechanism, such as
putting the message into persistent storage.)
Proposal: add new definitions.
Deliver: an abstract operation
the Receiving RMP may invoke per Reliable Message (e.g, a request to the application layer to.take responsibility for the Reliable message).
Submit: an abstract operation
the Sending RMP supports, invoked per Reliable message (e.g., a request to the
sending RMP to take responsibility for the reliable message.
Notify: an abstract operation
the Sending RMP may invoke per Reliable Message (e.g, a notification that the Sending RMP cannot insure
that the Requested Reliability feature were realized)
Everywhere else use words “deliver
operation invoked” to describe the action of delivery.
Change first sentence of
definition of Message Delivery to
“Message Delivery:
Message
delivery is the action of invoking the deliver operation for a Reliable
Message.
“
This is a new resolution to Rel
33.
The group also agreed to add labels of these
operations to the arrows in Figures 1, 2, 3. 7. 8. and 9. Remove the arrow showing a receiving
app invoking an operation on the Receiving RMP.
4.12Rel 44
Senders must not reuse message IDs
Doug: We need to add statement in definition of group id
that states it must not be reused.
Change second sentence of 3.1.1 from:
“This
element MUST have a globally unique identifier as its
value.”
To
“The sending RMP MUST use a
distinct globally unique Group ID for any distinct Group of messages. Any group of messages will have a
common Group ID value”
Action: Iwasa to apply changes,
then we will change status after done.
4.13Rel 50 Semantics of Expiry Time
Iwasa incorporated the email from
Tom, verbatim into the document.
Agreed to close this issue
4.14Rel 51 Message Piggybacking
Proposal:
Enable acknowledgement piggybacking by removing the distinction between
Reliable Message and Acknowledgement Message. Specifically:
1)
Remove the MessageType element. – This was done
2)
Any RMResponse
element could coexist with other elements."
Change “is containing” to “contains” in definition of
message Acknowledgment.
There are problems in English phrasing in four lines:
“
This
Response element can co-exist with Request element, and it enables to send
back
Acknowledgment
message with the business response to the original message.
It also enables
the
receiver sending an another independent message to the sender with an
Acknowledgment
message
to reduce network traffic.
“
to
“A
Response element can coexist with a Request element, enabling the combination
of an Acknowledgment message with the business response to the original
message. This coexistence also enables a receiver sending another independent
message to the sender with an Acknowledgment message (e.g., to reduce network
traffic).”
Doug: we need to globally change (as part of rel 22) the tables “ required –
no” to “cardinality – 0 or 1”, and “required – yes” to “cardinality – 1”.
4.15Rel 52 New rules for persistence
Message 70 in December had the agreed resolution.
This added all the new timing rules, and termination
stuff.
Section 2.5. and parameters are defined in section 3.
Doug: it would be better to move abstract definitions for
the group termination parameters to section 2. Section 3 should simply state that the
“xxx” attribute”corresponds to the abstract
definition in section 2.
Move everything after table in 3.1.1 (lines 546 thru 571)
into a new section 2.5.1, after the lead in text, pushing the rest of 2.5
down.
Change:
“
A
request message MAY contain one of the following
group
termination parameters:
–
a
groupExpiryTime
attribute
–
a
groupMaxIdleDuration
attribute
“
To:
“
A
request message MAY contain one of the following
Attributes
corresponding to the group termination parameters specified in section
2.5.1:
–a
groupExpiryTime
attribute
–a
groupMaxIdleDuration
attribute
“
Agreed to add new issue to update Section
2.6 “message persistence”, now that we have resolved the timing parameter
issues.
Mark Rel 57 as closed.
Leave Rel 53 open until we verify
that the changes are complete.
Action: Iwasa is to produce a
change barred version of all the changes made from the 1-06 document.
Use compare documents under Edit to do it.
4.16Rel 58 Namespace Identifier update
Done in 3.0 an also in the schema.
Agreed to close this issue.
4.17Rel 82
Agreed to close as resolved by resolution to timing
parameters.
4.18Rel 87
Fixes to resolve Rel 87 are in
Sunil’s comments in his email from 1/06:
Technical
Change second 3.3.1 to 3.4.1 and
fix is sub-clause numbers as well.
Delete “(to be added)” from 3.3
and 3.3.1
- Section 3 (Message
Format).
- replyTo is not an element rather an attribute of
ReplyPattern (pgs. 15 & 16) -
AGREED
- For PollRequest, GroupId is a
required element (minOccurs = 1) (pg. 16) -
AGREED
- Section 3.1/Table1 (pg.
17)
- Timestamp should be
removed from the child elements. It was removed when - AGREED
- Many more Faults to be
added - SUNIL Took Action item to
complete this.
- Section 3.1.1/Table 2 (pg.
18)
- Add InvalidGroupParameter fault to the table (also change
INVALID_GROUP_PARAMETER to InvalidGroupParameter on
line 555) - AGREED, but this will be in the
new section 2.5.1
- Section 3.3.1/Pg. 24
- GroupId under PollRequest is
different from GroupId in MessageHeader in 2 ways.
i) It has zero or more SequenceNumberRange elements - AGREED
ii) It also
has an attribute called 'value'. it's type is the
same as the type of GroupId in MessageHeader - AGREED
(because of REL-94)
- Section
3.3.1.1/SequenceNumberRange
- It has 2 attributes
called 'from' and 'to', both of type unsignedLong
(pg. 24-25) (because of REL-94) - AGREED to ADD two new attrbutes
- Section 3.4/ResponseElement (pg.
25).
- Response Element has
only one child element called RefToGroupId. – AGREED
to delete ref to seq no range in table and delete
line 747
- Section (now 3.4.1/Table 14 (RefToGroupId/pg. 26)
- Should have a new
attribute called 'value' - AGREED
- RefToGroupId has an attribute called 'value' of type MIDType and can have zero or more RefToSequenceNumber elements. - AGREED
- Section now 3.4.1.1/Table 15 (RefToSequenceNumber/pg. 26)
- Should have 2 new
attributes called 'from' and 'to', and no value - AGREED
These agreed changes resolve Rel
87.
Delete (needs updating ) from the
new section 3.4.1 section and subsection headers.
4.19Rel 88
Agree it has be implemented in the
spec.
Agreed to Close it.
4.20Rel 94 – Polling support
Tom: does it clearly state that the poll can only be done
for messages which were originally send with this pattern set.
Sunil: it does state this.
Need to add a section about polling in section 2, with the
model.
Sunil: there is no general section on the model for
polling.
The header elements are properly defined in sections 3.3
and 3.4.
ACTION: Sunil took action to come up with additions to the
model text for section 2.1 by Friday.
Left open until modeling text is complete.
4.21Rel 98 – sequence number usage
The informative note in second para of 2.4 was questioned by the meeting.
“
Informative
NOTE: It is recommended that an RMP removes the ID of a singleton
message
(message with GroupId but no SequenceNumber) from its persistent store after it
expires.
However,
unlike for singletons, it is recommended to not remove the ID of a message
that
belongs
to a non-singleton group, when the message expires. The reason is that message
IDs
for
groups can be stored efficiently as intervals of integers. When doing
duplicate checks for
messages
of a group, there is no loss of performance in checking over all past message
IDs of
the
group, whether expired or not. The check will in fact be faster, because not
discarding
expired
IDs means fewer intervals to look up.
”
Jacques agreed that the informative not is not needed with
normative text. It could go in
implementation guidelines, but we do not have them.
AGREED to remove the informative
NOTE.
Doug:: a message that does not contain
a sequence number is semantically identical to a message containing the
explicit sequence number zero.
Tom: need to update section 2.10 to correspond to
3.1.2.
Sunil: everything is based on existence of sequence no.
Doug: my real concern is that you are allowed to leave
sequence number out, but the conditions are not clear.
Tom:
Sequence no is
required to be used for Ordered delivery.
Sequnece no is not required to be used for Guaranteed delivery, however it may be present.
Sequnece no is not required to be used for Duplicate
elimination, however it may be present.
Tom: For interoperability, all receivers MUST be able to
handle sequence numbers for non-ordered messages.
Doug: I agree with this statement of Tom.
Tom: For interoperability, all receivers MUST be able to
handle non-ordered messages which do not use sequence numbers.
Doug: the sender is deciding whether this “optimization” is
used, even though the receiver benefits.
Doug: eg. Sun version only uses
sequence number for Ordered delivery. Fujitsu Receiver RMP works much more
efficiently when ordering is used.
In this case the sun sending implementation would make the Fujitsu
receiver work very inefficiently.
Doug: we are describing an allowed optimization. Some senders may choose to generate a
new group ID for each un-ordered message, and they would conformant. The simplest sender may not want to
maintain the state of the last sequence number used in each group. This could be a significant cost for
some minimal sending implementations.
It is easier to generate global unique ids, not being concerned with
separate integer sequences per group.
Tom: A receiver implementation must be able to deal with
singleton groups for non-ordered messages.
Doug: Any receiver implementation of an optimization for
un ordered groups is not likely to be exercised,
given that may senders will not implement sequence numbers with un-ordered
group.
Jacques: Agree that there is no way to enforce the sender
to use sequence numbers for non-ordered delivery. However, if the sender and receiver
agree together to use the feature, it would be realized in practice.
The last sentence in 2.2 is incorrect:
“
Presence
of SequenceNumber indicates the Group has more than
one message.
”
Replace with “SequenceNumbers are
required only for groups that have more than one message.
Doug: what is def of group.
Bob: a group is a collection of one or more messages with
the same group ID.
Doug: then there can be groups of one.
Doug, there are semantics we do not capture in the
text. The sequence numbers when
used must be unique within the group, and monotonic. We do not say that no two messages in
a group can leave out the sequence number.
It needs to be stated
“
Groups with more than one message must have the sequence
number included for all messages in that group.
“
One logical place for this text to go is 2.10. This needs to be consolidated with
3.1.2 text on sequence number.
Bob: some of this belongs in 3.1.2, other stuff is in 3.1
The section about groupID needs
to be enhanced to discuss the definition of group and its use of sequence
numbers.
Jacques- we could have a section to define groups in
section 2.
ACTION: Jacques will make a proposal to fix these group
semantic concerns.
Doug has another schema issue with the messageID structure being a sequence with two elements,
while the ref to group ID is different.
Have sequence number be a child of group ID would allow
more expressive schema.
Currently:
“
<xsd:element name="GroupId"
type="wsrm:GroupIdType" />
<xsd:element name="SequenceNumber" type="wsrm:SequenceNumberType" minOccurs="0" />
“
Doug proposed to unify the schema for the message Id with
the schema for the refs.
Agreed to change “SequenceNumber”
to “SequenceNum”
Agreed to keep name of the attribute of
a new messageId element “groupId”
Change name “RefToMessageID”
to
RefToMessageIDs
RefToGroupedMessages
Ref toMessages
RefToMessageIdSet
RefToGroupSubset
RefToSubGroup
The winner was RefToMessageID.
Action: Jacques is to
5
Editorial Cleanup
Sunil sent the following email against the 1/04 draft:
Hi Iwasa,
Editorial:
- The Termination conditions (in pg.
11) uses GroupExpiryTime
and GroupMaxIdleDuration.
It should be consistent with the
actual attribute names (starting with lower cases).
- When attributes are mentioned in the
Table, please list their types. Ex. status (string)
- ReplyTo
attribute (in Section 3.1.4/pg. 21) should be replyTo (all attributes start with lower
case).
- Please add the schema as an
appendix
- Section 2.4/Line no.
259.
It should read "after the
message has been processed and delivered to the "next processing
layer".
- Figures
1-2-3 on pgs. 8-9 may
need to be updated to show the "next processor entity" as per
our
new
definitions.
- All the new terms such as Group
Termination, Removal, Complete etc... should be
defined
in the
terminology section
Thanks,
-Sunil
AGREED to accept these editorial comments
5.1
General Parameter Name Cleanup
e.g. ID, Identifier, Number,
etc.
Agreed to add a new issue
6
Discussion of
UML
State Charts
Tom showed two simplifications to the state diagram he sent
out in early Jan:
1)
The sending of an expiry fault was removed from
the state machine.
2)
the ack of duplicate delivered messages was removed. It is proposed to simplify by not
acking duplicates.
There was a large number of
concerns about the second change.
Doug stated it is not good to have the sender keep
resending in a lost ack case and never get an ack.
Jacques stated his major concern is the ability for the
sending rmp to be sure that the earlier receipt of
the duplicate message was actually delivered.
Tom stated: if the messages was received, and it is not in
the held queue waiting for prior, then you know it is delivered.
Doug: there are other ways to know the message was
delivered.
Tom: the key point is whether the protocol requires the
Receiving RMP to know what messages were received as well as what messages
were delivered.
Agree do not ack a resend on a
held message, also do not ack an expired message.
Tom will prepare a new receiver state diagram reflecting
these simplifications to send out for review.
Agreed that duplicate of held message will not have to be
acked.
7
Homework assignments and meeting recess
Iwasa will come up with a new
doc, change marked against 1/6
Doug will send out a new issues list.
Tom Will send out new receiver
stae
Jacques will send new proposal for group and sequence.
Sunil will send email about schema changes for group
ID.
To unsubscribe from this mailing list (and be removed from the roster
of the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrm/members/leave_workgroup.php.