OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

provision message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [provision] Async execution (was "Re: [provision] Asynchronou s requests").


Gary, 

I think we are close and I agree to the way you put it, however, with the
risk I am repeating myself, I would like to stress that I do not really
object to the optimization involved in changing a async request to sync. I
am concerned with the way one would design an RA client app. If I have a
client that issue async operations to PSP and use separate thread to check
for the results, then the fact that the PSP does the optimization and return
the results to the requesting thread is of little help to me. In fact, it
may well introduce to me more burden of enhancing the client code to handle
that situation.

Now, I agree that for the sake of satisfying the optimization requirement,
we would need to enables the RA to specify to the PSP, "handle the request
async, but in case you can do it quickly, do a sync". If we choose to go
this way we need to provide a clear definition on how the implementation is
supposed to achieve this. For me it is sufficient that we state it in a
clear manner either by adding a new mode or by explicit description in the
normative text for the case no mode is specified.

Does this help?

Doron

-----Original Message-----
From: Gary P Cole [mailto:Gary.P.Cole@Sun.COM] 
Sent: Monday, October 25, 2004 6:24 PM
To: Cohen, Doron
Cc: PSTC
Subject: Re: [provision] Async execution (was "Re: [provision] Asynchronou s
requests").

Doron,

I'm not sure that you're in the minority.  I agree with you that 
honoring a request for explicit execution mode (or failing the request) 
is more straightforward.  The notion that a client can simply omit the 
'execution' attribute (in order to indicate that the client will accept 
either mode) makes this argument even more compelling. 

However, it seems to me that Jeff Bohren's point is also very good: 
    If a service processes an asynchronous request synchronously,
    there is no reason to return an asynchronous response.
    The service knows the request was processed synchronously,
    and it should be reported as such.

Executing an operation synchronously (whenever a provider knows that it 
can do this) seems to be a reasonable optimization.  It does seems a 
little silly to make a provider 1) generate and return a requestID and 
2) hold onto results waiting to be asked for status. 

I suppose that I could live with a little bit of silliness (since the 
provider always has the option of failing the request if it is 
absolutely unwilling to execute asynchronously an operation that the 
provider could execute synchronously), but it would be nice to have a 
better answer to Jeff Bohren's point. 

If a request for asynchronous execution will always receive a 
synchronous response
(that contains the requestID), and
if a provider can execute the requested operation synchronously, then
why not let the provider return the results of the completed operation 
(rather than a requestID)?

gary

Cohen, Doron wrote:

>1) I may be in a minority here, but I still feel differently about this
>point. To me ,honoring the client request with regard to the mode of the
>operation is key. Allowing the PSP to behave differently than requested
>means more complexity on the RA side since the RA must be able to handle
>both scenarios instead of maintaining a simplicity of acting in one manner.
>Also, the RA has no way to predict the time that the request would execute
,
>and I must admit that in most cases, even the PSP would not really know
>that. 
>Overall, I find a design that honors the RA request more straight forward
>and recommend that if we choose to allow the PSP to convert the execution
>mode, let the RA say so by providing an additional indication that he is
>capable of handling PSP change of mode.
>  
>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]