| From | Sent On | Attachments |
|---|---|---|
| Simon Nash | Sep 26, 2007 6:42 am | |
| Peshev, Peter | Sep 27, 2007 8:48 am | |
| Barack, Ron | Oct 4, 2007 11:03 am | |
| Barack, Ron | Oct 4, 2007 11:07 am | |
| Peshev, Peter | Oct 4, 2007 12:03 pm | |
| Peshev, Peter | Oct 4, 2007 11:29 pm | |
| Peshev, Peter | Oct 5, 2007 1:19 am | |
| Michael Rowley | Oct 5, 2007 6:23 am | |
| Simon Nash | Jan 15, 2008 1:44 pm | |
| Peshev, Peter | Jan 16, 2008 2:22 am | |
| Mike Edwards | Jan 16, 2008 4:44 am | |
| Peshev, Peter | Jan 17, 2008 4:01 am | |
| Mike Edwards | Jan 21, 2008 9:41 am | |
| Simon Nash | Jan 31, 2008 8:56 am | |
| Mike Edwards | Feb 1, 2008 3:02 am | |
| Peshev, Peter | Feb 1, 2008 6:38 am | |
| Simon Nash | Feb 7, 2008 9:37 am | |
| Peshev, Peter | Feb 7, 2008 10:03 am | |
| Michael Rowley | Feb 7, 2008 11:33 am | |
| Mike Edwards | Feb 8, 2008 3:39 am | |
| Peshev, Peter | Feb 8, 2008 3:44 am | |
| Mike Edwards | Feb 8, 2008 3:50 am | |
| Peshev, Peter | Feb 8, 2008 4:02 am | |
| David Booz | Feb 11, 2008 1:08 pm |
| Subject: | RE: [sca-j] ISSUE 12: Relation between conversational annotation and scope conversation | |
|---|---|---|
| From: | Peshev, Peter (pete...@sap.com) | |
| Date: | Feb 8, 2008 3:44:27 am | |
| List: | org.oasis-open.lists.sca-j | |
Hi Mike,
just a clarification question for my better understanding, when you say :
If the class has conversation scope, the class benefits from the runtime maintaining state associated with the conversation, typically through routing each operation invocation associated with the conversation to the same instance of the class,
Does the word "typically" imply the runtime could do something else besides invoking the same instance, when the class is conversationally scoped ?
Besides Peter
------------------------------------------------------------------------------
From: Mike Edwards [mailto:mike...@uk.ibm.com] Sent: Friday, 8. February 2008 12:06 To: OASIS Java Subject: RE: [sca-j] ISSUE 12: Relation between conversational annotation and scope conversation Folks,
I'm not keen on double negatives, so let me try some wordsmithing of the second part:
A class which provides a service with a conversational interface can have any scope. In particular, it is not necessary for the class to have conversation scope. If the class has conversation scope, the class benefits from the runtime maintaining state associated with the conversation, typically through routing each operation invocation associated with the conversation to the same instance of the class, with state data held in instance variables within the class. However, for classes of any scope, when an operation of a conversational interface is executing, the ComponentContext.getConversationID() returns the conversation ID of the conversation. The conversation ID can be used by the class as an index to store and to look up state data associated with the conversation, using some suitable storage mechanism.
OK, this is a longer set of words, but I hope it explains things more clearly by being explicit about what is going on. Yours, Mike.
Strategist - Emerging Technologies, SCA & SDO. Co Chair OASIS SCA Assembly TC. IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain. Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431 Email: mike...@uk.ibm.com
"Michael Rowley" To "Peshev, Peter" <pete...@sap.com>, Simon <mrow...@bea.com> Nash/UK/IBM@IBMGB, <sca...@lists.oasis-open.org> cc 07/02/2008 19:33 Subject RE: [sca-j] ISSUE 12: Relation between conversational annotation and scope conversation
On todays call, we resolved the first part of this issue as follows:
Resolved: Add these words to section 2.4.4: "A conversational scoped class MUST NOT expose a service using a non-conversational interface."
We discussed possible wording for the second part of the proposal. I made some attempts at wording during the meeting that werent very good. Here is my latest attempt:
When a class provides a service with a conversational interface, it does not implicitly affect the scope of that class. If the scope is not conversational, then the runtime will not automatically maintain state that is associated with the conversation. However, when an operation of a conversation interface is executing, the ComponentContext.getConversationID() will return the conversation ID for the conversation, irrespective of the scope of the component.
Michael
------------------------------------------------------------------------------
From: Peshev, Peter [mailto:pete...@sap.com] Sent: Thursday, February 07, 2008 1:03 PM To: Simon Nash; sca...@lists.oasis-open.org Subject: RE: [sca-j] ISSUE 12: Relation between conversational annotation and scope conversation
Hi Simon,
I am Ok with that suggestion. I am just trying to clarify some parts of the spec which are left not clearly stated.
NEW PROPOSAL : It should be clarified that in the above example -
Having a StatefullClass exposing service over a non-conversational interface MUST generate an error at deployment.
The instances of the class StatelessClass are NOT REQUIRED to contain conversational state between methods; Any instance can be used for any client. An SCA runtime MAY provide a pool of such objects and reuse them among calling clients or MAY instantiate each time a new instance. ConversationalId MUST be provided since the interface was marked via @Conversational
------------------------------------------------------------------------------
From: Simon Nash [mailto:NA...@uk.ibm.com] Sent: Thursday, 7. February 2008 19:37 To: sca...@lists.oasis-open.org Subject: RE: [sca-j] ISSUE 12: Relation between conversational annotation and scope conversation I'm OK with the second part of the proposal, but not with the first part. When a conversation is initiated, action is needed on the client side as well as the service side. If the interface is not marked conversational, the client can't know that it should perform the necessary actions. These include creating a conversation ID and sending it on the wire. I think this combination of a non-conversational interface and a conversational implementation should be treated as an error. Simon
Simon C. Nash, IBM Distinguished Engineer Member of the IBM Academy of Technology Tel. +44-1962-815156 Fax +44-1962-818999
"Peshev, Peter" To <sca...@lists.oasis-open.org> <pete...@sap.com> cc Subject RE: [sca-j] ISSUE 12: Relation between 05/10/2007 09:20 conversational annotation and scope conversation
Resending the email in this mail thread, just to keep track :
DESCRIPTION: The annotation @Conversational is put on interfaces, while the annotation @Scope is put on the implementation types for POJO-s. They are used to control whether the runtime will keep state or not between invocations. (Some other future implementation types in scope of the TC may provide their own stateless and stateful semantics equivalent to the scope mechanics)
It should be clarified what should happen if @Conversational is put on a service interface however the class which is exposing that service is lacking @Scope(Conversation)
It should be clarified what should happen if there is NO @Conversational on a service interface however the class which is exposing that service is having @Scope(Conversation).
More precisely having in mind the following definitions (each in its own file) :
import org.osoa.sca.annotations.Conversational; @Conversational public interface ConversationalInterface {}
---
public interface NonConversationalInterface {public void test();}
---
import org.osoa.sca.annotations.Scope; import org.osoa.sca.annotations.Service; @Service(NonConversationalInterface.class)@Scope("CONVERSATION") public class StatefullClass implements NonConversationalInterface { public void test() {}}
---
import org.osoa.sca.annotations.Service; @Service(ConversationalInterface.class) public class StatelessClass implements ConversationalInterface{ public void test() {}}
It should be clraified whether it is legal to deploy such components and what should happen if a client calls via sca two times the method test() for ServiceReferences correspondant to the two classes. Is the runtime responsible to keep the state between the invocations ?
PROPOSAL : It should be clarified that in the above example -
Instances of the StatefullClass MUST contain conversational state which MUST be retained across methods and transactions called from the client.
The instances of the class StatelessClass are NOT REQUIRED to contain conversational state between methods; Any instance can be used for any client. An SCA runtime MAY provide a pool of such objects and reuse them among calling clients or MAY instantiate each time a new instance. ConversationalId will be provided since the interface was marked via @Conversational
-----Original Message----- From: Barack, Ron [mailto:ron....@sap.com] Sent: Thursday, 4. October 2007 21:07 To: sca...@lists.oasis-open.org Subject: [sca-j] ISSUE 12: Relation between conversational annotation and scope conversation [1]http://www.osoa.org/jira/browse/JAVA-12
-----Ursprüngliche Nachricht----- Von: Peshev, Peter [mailto:pete...@sap.com] Gesendet: Donnerstag, 27. September 2007 17:48 An: sca...@lists.oasis-open.org Betreff: [sca-j] NEW ISSUE: Relation between conversational annotation and scope conversation
TARGET:
Java Common Annotations and APIs specification
DESCRIPTION:
The specification mentions @Conversational and @Scope(Conversation) but there is no clarification how these interfere together and what should happen in all the possible combinations.
PROPOSAL:
Two new paragraphs should be added in section (3.2 @Conversational) that have the following wording :
In case an interface is marked as conversational but the scope of the target implementation is different than @Scope(Conversation), than the SCA runtime would invoke an instance as defined by the scope. In case the scope is the default one (stateless) than the container may dispatch to a new instance each time or alternatively pull one from a pool. In this case, it is assumed that the implementation itself will manage state. The implementation would be responsible for using the conversation id associated with the request (obtaining it through injection or via the SCA API) to obtain state stored somewhere (cache , database , etc.).
In case the target implementation has @Scope(Conversation) and the interface is NOT marked as conversational than there will be no conversation, attempts to retrieve conversationId will result in null, and the SCA runtime may behave as if for that particular invocation the scope has been defined as stateless.
------------------------------------------------------------------------------
Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
------------------------------------------------------------------------------
Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
References
Visible links 1. http://www.osoa.org/jira/browse/JAVA-12





