[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: appropriateness of combination of controls (new suggestion)



At 03:35 PM 5/10/2004, Ted Hardie wrote:
>At 2:45 PM -0700 05/10/2004, Kurt D. Zeilenga wrote:
>>
>> When considering whether a control is appropriate for the
>> operation, the implementation is not only to consider whether the
>> control is attached to a message it was intended to be used
>> with, but whether the control is being used appropriately
>> in combination with other controls (of same or different
>> controlType).
>>
>> When a server is faced with a sequence
>> of controls which are not appropriate for the operation,
>> the server may attempt, by ignoring any number of
>> non-critical controls (including controls whose criticality
>> field is to be ignored as discussed above), a sequence which
>> is appropriate for the operation.
>
>What does it do if there is more than one potential result,
>depending on which of the non-critical controls it ignores?
>Does it then fail the operation as ambiguous?

Server's choice.  It the client requests X+A+B (X being a base
request, the client is asking that either:
        X+A+B
        X+A
        X+B
        X
be performed.  Otherwise, it should have marked either A or
B or both as being critical.  As it didn't, it specifically
requested the server to ignore controls are not approrpriate.

As A and B being non-critical controls, the server which
doesn't view A+B as appropriate for X can perform
        X+A
        X+B
        X

or fail to perform.  Note that, from an interoperability stand point,
failing is likely worse response as it not any of the four behaviors
the client asked to be performed.

>And does this impose a burden on servers for a combinatorial calculation?

No.  The servers is not obligated to attempt to find such a
sequence, and if the server does choose to attempt to find such
a sequence, it can use any algorithm (which doesn't cause
critical controls to be ignored).  Existing servers use simple linear
algorithm.

        operation = base semantics
        foreach attached control
          if control is recognized and appropriate for operation
           then operation += control semantics
           else ignore control if non-critical
           otherwise fail.
        perform operation

Kurt