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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

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


Subject: RE: [wsbpel] Topics for the "Review input from TC members" session of the F2FSome


>The question is, do you really need it to be exactly once? Isn't at most once 
>semantics sufficient? For example, if the message from the client application 
>gets lost then the client application will find out eventually and can take 
>some application-level (or workflow specific) course of action to correct 
>(e.g., retry or do an alternate task). By saying we need exactly once 
>semantics we're placing more of a burden on the delivery mechanism than is 
>perhaps needed in general. That's not to say that some service interactions 
>won't need to be exactly once, only that I don't think it's the general case.

The idea of allowing messages to be lost and having the process recover from such a condition seems much less appealing  than mandating a mechanism for detecting duplicate messages. With such a mechanism in place a questionable message may simply be resent, while the alternative requires cluttering the proces definition or client application with logic to detect the error condition. Although exactly-once semantics may not be "needed" they do greatly simplify process design when they can be taken for granted.

>In at least one workflow system I examined in HP, the solution to this was to 
>use the equivalent of a session-id that accompanied every request and a form 
>of retained-results, so that if a duplicate request was seen by a service, it 
>didn't re-execute (unless the operation was explicitly marked as being 
>idempotent) but obtained the result from a cache of previously generated 
>results.

Correlation Sets could be used to provide this kind of functionality; instead of identifying the process instance, a correlation set would identify an "invocation instance", with a caching mechanism of the sort you describe consulted before the process is actually invoked. 

>>b- Invoking an operation, with input and output, that is implemented by
>>a process using receive and replay requires the WSDL operation to be
>>asynchronous. A process may take days or weeks between the receive and
>>the reply, so the client cannot keep a connection open waiting for the
>>reply. Although WSDL 1.1 talks about asynchronous operations; it does
>>not seems to be any support for it in the WSDL specification.

>Agreed. The use of the correlation ID (tracking ID) helps here because I can 
>return hours, days or weeks later to see what happened, even if I expected to 
>get an explicit ack.

I have seen so far no mention of handling for long-running synchronous invocations and would suggest that they be explictly  mentioned in the specification. Using asynchronous callbacks for all long-running interactions is a bit of a burden; with increased adoption of web services technology it seems inevitable that more web services will be deployed on reliable asynchronous messaging systems where the issue is very pronounced. Specifically I am proposing that the notion that a synchronous request/reply operation is always completed in a "reasonable amount of time"  (ie in one HTTP session) be eliminated.

Maciej Szefler
Vice President - Product Development
FiveSight Technologies Inc.
213 N. Morgan Street
Suite 1A
Chicago, Illinois 60607
phone: 312-432-0556 ext 226
email: mbs@fivesight.com



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