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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

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


Subject: ISSUE 59: Conversations with more than 2 participants



http://www.osoa.org/jira/browse/ASSEMBLY-59

On Mar 20, 2008, at 1:39 PM, Michael Rowley wrote:
>
> RAISER: Michael Rowley
>
> TARGET: SCA Assembly Specification WD03, section 8.3 “Conversational  
> Interfaces”
>
> DESCRIPTION:
>
> Line 2386 says: “Conversations occur between one client and one  
> target service.”
>
> However, we have encountered situations where the user would like  
> for a single conversation to occur among a larger group of  
> participants, rather than considering every conversation to be  
> limited to two parties.
>
> In many circumstances, you can’t really tell.  If a call chain looks  
> like this:
>   A – B – C
>
> Then it isn’t obvious how it would be different if you consider the  
> A/B conversation to be the same conversation as the B/C conversation  
> or different.  However, if you have a diamond calling pattern like  
> this:
>
>   B1
>  /  \
> A    C
>  \  /
>   B2
>
> Then it is important.  If there are multiple conversations, then  
> there will be multiple instances of C, one for its conversation with  
> B1 and one for its conversation with B2.  If it is all considered to  
> be one conversation, then there will only be one instance of C.  (It  
> is easiest to think of this in terms of instances, but even if C  
> were “stateless”, it would still be semantically sharing state for  
> the conversations with B1 and B2).
>
> In a common case, all of the components within a composite should  
> share a single conversation.  However, the mechanism should also  
> allow for conversation sharing at a smaller scope.
>
> Note that the diamond pattern shown above is the way that the SCA  
> Java specification treats the request scope.  The request scope is  
> like a conversation that is shared among all of the local services  
> involved in the handling of a single remotable request.  If the  
> assembly specification introduced N-ary conversations, then the SCA- 
> J specification would be able to eliminate the concept of the  
> request scope in favor of this more general mechanism.
>
> PROPOSAL:
>
> Introduce a new “propagateConversation” annotation on components (or  
> possibly an implementation intent).
>
> If component B is so marked, then the conversation ID that is sent  
> by its client (A) will also be passed to any downstream services  
> that are also conversational.  If a component that does not offer a  
> conversational service is marked with “propagateConversation” then  
> it just means that all of the conversational references will share  
> the same conversation ID (this is what would occur with “A” in the  
> diamond pattern above).
>
> If a composite is marked with propagatesConversation, then it is as  
> if all of the components of the composite were similarly marked.
>
> It is unclear what should happen in an A – B – C pattern if A and C  
> are conversational, but B is not.  Should B be required to be able  
> to propagate the transaction, even if it is not itself conversational?
>
>
>
>



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