RE: [wsrm] Rel 82

From
Jacques Durand <>
Date
2003-10-15T22:50:56+00:00
ID
Thread
RE: [wsrm] Rel 82
I 
would try to avoid faulting such cases...

If we 
push a proposal where any group-level semantics does not need be repeated in all 
messages

but 
only be determined unambiguously by - ideally - the first message of the group, 

we 
must handle the cases where the first ("start") message is lost, 
or is not the first to be received. 

We 
could do:

 

- when 
the group is "ordered" (and therefore acks are sent back) the Sender must 
keep repeating

[identical] group info in each message until it receives first ack. 

Receiver would take first  received "group info" as the decisive 
one.

Any 
different or absent "group info" will be ignored by receiver after this. 

 

 - when group is unordered, and not even with guaranteed delivery, 
the Ack can't be used.

Receiver still behaves like above:

if the 
first , or few first messages of a group have not been received yet but say 
message N is received first,

then 
Receiver 
would take first  received "group info" (here in  mesg(N)) as the 
decisive one. 

 If none is there, Receiver would default on some 
general parameter, e.g. for max duration of the group. 

If no 
group info and no parameter, in last resort, a fault would be sent back so the 
Sender is reminded to insert group info

in its 
next message (note that receiver can still correctly process previous 
messages... group "attributes"

like 
removeAfter do not need be known right away)

 

Nothing prevents of course a Sender to repeat "group info" in every 
message. But even so, the spec should be clear as 

how to 
treat possible discrepancies or changes within a group.

 

In 
spite of the elaborate "rules" above,  I believe things would be much simpler 
implementation-wise if we decide to treat 

all messages of a group the same way 
w/r to reliability features 
(G.Ordering, DE, GD), as well as other parameters,

and that could be determined by what is in first 
received message of the 
group.

 

Jacques

  
-----Original Message-----
From: John Fuller 
  [mailto:]
Sent: Wednesday, October 15, 2003 
  5:57 AM
To: Jacques Durand
Cc: 
  ''
Subject: Re: [wsrm] Rel 
  82

  
If the first received message in the group is not the "start" message do we 
  just fault then? 

  
On Tuesday, October 14, 2003, at 07:57 PM, Jacques Durand wrote: 

  
John: inline. 

  
-----Original Message----- 

  
From: John Fuller [mailto:] 

  
Sent: Tuesday, October 14, 2003 4:25 PM 

  
To: '' 

  
Subject: [wsrm] Rel 82 

  
82 

  
The original document was difficult to work from as far as how 
  to deal 

  
with conceivably different 

  
values for the optional group removeAfter attribute for 
  messages in the 

  
same group. 

  
For example, most recent message's value could take 
  precedence, or the 

  
maximum or minimum value 

  
could win.  

  
<JD> There is a more general issue that you raise here: 
  when the semantics 

  
of some value (header element or attribute) is about the 
  entire group, 

  
not just about the individual message that carries it, we only 
  

  
need -in theory- to pick these values from the first message 
  of a group. 

  
So a bold way to address the possible "contradiction" issue 
  across messages 

  
of the same group is to pick the values of the first 
  message(s) of the group, 

  
and ignore what the other messages say about it. 

  
We have the case also with "MessageOrder" element: if it is in 
  the 1st 

  
message of a group, I'd say the entire group is ordered... 
  regardless 

  
of whether it is or not in following messages. 

  
Any "dynamic" readjustment or exception within a group, would 
  be 

  
confusing and make implemenations more complex. 
  

  
Rel 57 clarified that the most recent timeout takes 

  
precedence, though I don't believe 

  
it's in the original specification. 

  
<JD> I think the spec did not restrict what kind of 
  ExpiryTime 

  
each messages of a same (ordered) group, should have/not, so 
  we 

  
are allowed to consider any possible sequence of ExpiryTime 
  values. 

  
(note this is a message-level value , not group-level, so 
  several 

  
messages could not conflict with each other here). 

  
We take the "earliest" of all ExpiryTime, which may come frm 
  any message 

  
in the broken sequence... 

  
Maximum idle time also seems legitimate, but it would be 
  helpful to 

  
clarify which parameters 

  
take precedence over which when in conflict, and explicitly 
  that the 

  
last group values 

  
overwrite previous assumptions, and if null values indicate 
  default to 

  
service-level parameters 

  
or default to previous parameters in the group if any? 
  

  
<JD>, yes, we need to state some general rule for 
  group-level values. 

  
I'd propose that unless we accept the trouble of allowing 
  group-level 

  
parameters to change mid-way or have exceptions 

  
 (e.g. removeAfter be re-adjusted during a group), 
  

  
the initial value is the good one. 

  
I think it would be good to have service-level default 
  

  
parameters/policies for cases where 

  
the header doesn't contain the parameters. 

  
<JD> Agree some "configuration" values/parameters should 
  have a standalone 

  
existence, as it would be contrived to put them in headers 
  just to be able to 

  
talk about them... Such parameters don't have to be described 
  as RMP parameters 

  
(implementation level), but rather as part of the RM agreement 
  between two parties. 

  
Even so, I believe we can keep referring to them in an 
  "abstract" way 

  
(no need to come-up with an XML schema) 

  
 

  
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.