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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ws-caf message

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


Subject: Re: [ws-caf] ACTION for optimization of registration


+1

I definitely believe that the text belongs in CF.

Mark.


Greg Pavlik wrote:

> Mark Little wrote:
>
>> Conscious of the telecon today, I'd like to keep this rolling.
>>
>> I think the original issue of optimizing registration calls should be 
>> orthogonal to checked transactions. As was discussed at the f2f, this 
>> issue is only concerned with reducing the number of cross-domain 
>> registration calls. With that in mind ...
>>
> yes, I agree. This has been the one problem point in the discussion so 
> far. To clarify my early statement on WS-CF: I'm in favor of 
> optimizing registration at that level but not in adding any additional 
> semantic implications: my view is that CF  provides the building 
> blocks for organizing the participant graph but nothing more.
>
>>>
>>> Actually I think that we have two different ways of approaching the 
>>> same problem.
>>>
>>> (i) a WS-Context context that flows back on the response; none of 
>>> our specifications actually restrict context flows on "outbound" 
>>> messages, since we're in a one-way domain, and this is conceptually 
>>> appealing as it continues to tie together message exchanges within 
>>> the same activity because the messages are all contextualised. Put 
>>> it another way: all one-way messages are contextualised and we are 
>>> simply providing another specific element within the extension 
>>> capability we already support, to address this. The precedent for 
>>> this is the OTS and various commercial implementations.
>>>
>>> (ii) a "boxcar" (a la BTP) of enlistment messages that accompany the 
>>> one-way "response" message. The precedent for this is BTP.
>>>
>>> Now it seems to me that (ii) could be dealt with by the underlying 
>>> SOAP infrastructure - that's always been the argument against 
>>> putting boxcarring into the protocol. Whereas (i) is a specific 
>>> approach for a very specific problem.
>>>
>>> Pros and cons both ways.
>>
>>
>>
>> We have to make a choice. Fairly obviously, there's an implied (iii) 
>> in the above, which is "do nothing", i.e., drop the issue. Assuming 
>> we don't want to go that route just yet (afterall, we're still in the 
>> discussion phase), let's return to the original text which I had the 
>> AI for generating:
>>
>> "A service that receives a transaction context on an application 
>> request  SHOULD enlist participants with the corresponding activity 
>> group. The transaction service implementation associated with the 
>> service MAY decide to use the following protocol to optimize remote 
>> registration invocations: this optimization MAY occur transparently 
>> to the service. Rather than register participants directly, the EPRs 
>> of the participants (and the protocols they should be enlisted with) 
>> are retained by the service-side transaction service component until 
>> the response to the original invocation is sent; in which case a 
>> context containing these EPRs and associated data is propagated back 
>> with the response.
>>
>> If a receiver of a response obtains this context it MUST either be 
>> able to perform the enlistment itself or, if it does not support this 
>> optimization, send back a wsacid:CannotOptimizeEnlistment fault code 
>> message and mark the transaction so that its only outcome is to 
>> rollback. If enlistment fails then the transaction MUST be rolled 
>> back; an implementation MAY retry transient registration failures.
>>
>> If the sender of the response receives an indication that there was a 
>> non-recoverable failure (e.g., in delivery of the message or 
>> registration of the participant EPRs) then it MUST rollback the work 
>> it has performed in the scope of that transaction. When using this 
>> optimization, the service MUST still see a wscf:participantAdded 
>> message in order to be compliant with WS-CF. However, this message 
>> SHOULD be generated by the service-side transaction component for 
>> this optimization to work."
>>
>> This all presupposes something along the lines of (i) above. I'm 
>> going to continue to recommend that approach because I think general 
>> boxcarring as outlined in (ii) is something that the runtime 
>> infrastructure will take care of. However, that still leaves open the 
>> issue of what is meant by "context" in the provided text. Is is a) a 
>> WS-Context as I original indicated, or is it b) the specific 
>> addParticipant messages, i.e., a very specific form of boxcarring for 
>> this very specific problem? As I've already said, I prefer the 
>> conceptual model of contextualising all of the one-way messages, so 
>> a) probably edges out b) for me, but at the moment I can't think of 
>> any technical reasons for one over the other. I think how the 
>> information is conveyed is less important than agreeing to convey 
>> that information in the first place.
>>
>> Mark.
>>
>

-- 
Mark Little
Chief Architect
Arjuna Technologies Ltd
(www.arjuna.com)



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