Optional discussion

Hi Umit et al,

I'd like to comment on Umit's earlier discussion on the usage on the  
optional tag. From what I understand Umit is raising the issue around  
what is the expected behavior when a client initiates a request to a  
service that has some policy as optional. Specifically should the WG  
specify the expected behavior in the Framework or Primer.  I think  
Umit raises a good point. (If of course I understand the issue  
correctly)

[If this is the wrong way to discuss this please let this novice know  
the right way]

At the endpoint level:
The example that seems to be bantered about is regarding MTOM.  
Suppose the MTOM is optional. The client knows MTOM and initiates a  
request using MTOM. Surely it is a fair enough assumption that the  
server would reply using MTOM. I would assume that on an optional  
policy the initiator then decides the conversation. And so from then  
on, in the conversation, all is MTOM. If the client decides to use  
the service again and initiates without using MTOM then the server  
should assume that they are not using MTOM (and should assume that  
they can't or do not want to) and therefore reply appropriately. (I  
know if I am shopping and someone makes a service claim as an option  
and I intend to us it then I expect them to behave a certain way -  
e.g. advertising that they take AmEX  and then refusing my AmEx card  
is NOT good behavior unless of some extra circumstances)

At the message level it seems to me that it would be in very poor  
taste for a service to have defined optional on the inbound and  
required on the outbound - when you're talking about transports/ 
protocols etc. e.g. optional encryption on the inbound message and  
then require it on the outbound. Why would someone design their  
interface like this? And surely the client would see the assertion on  
the outbound and go look for this service elsewhere. And if it's  
optional on the inbound and the client doesn't use it then the same  
behavior of client-is-right holds.

I'm bet I'm missing some other examples or points here. Am I missing  
some more complicated issues? But I do think Umit raises a good point  
about documenting some best practices at the very least about the use  
of optional.

The good news is that practitioners will very quickly come to some  
understanding about this when their services don't get used :-)

But should the WG have something to say on the matter? Either  
recommendations or requirements?

Please let me know if I'm supposed to be logging this elsewhere. In  
bugzilla under Umit's issue? Some of you kind folks will put me  
right! :-)

Regards,
William

Received on Wednesday, 2 August 2006 21:12:19 UTC