Hi Eran, The concept of sequence can extend upto several IN-OUT or IN-ONLY operations. So I agree that it will not fit into call API. However either we can use call API to set it into some internal context or use that context outside handled by the client code itself as follows.
In the client Code--> RMContext rmContext = new RMContext(); rmContext.add(call1,...); rmContext.add(call2,..); .. rmContext.setLastMessage(); rmContext.endSequence(); So if we have some mechanism as Paul mentioned, then we can handle this context inside the RM module without letting it to be handled by the client code. Thanks, Jaliya ----- Original Message ----- From: Eran Chinthaka To: [email protected] Sent: Sunday, October 30, 2005 11:40 AM Subject: Re: [Axis2] Implications of WSRM interfaces on Axis2 ClientAPI This is just a thought came to my mind about the LastMessage. Facts : 1.ON-OUT MEP is very clear about the messages. Server receives a message (client sends a message), Server sends out a message (Client receives a message). 2. Call API represents IN-ONLY MEP interaction. ==>it shoould be used to send a message and get the response back. So I feel there is no notion of Last Message w.r.t. Call api, at least logically. You have ONLY two message, one goes out and one comes in. So I see there is no reason to add a way for the Call to set a last message. Some one from higher level should handle that. Just a thought. Paul Fremantle wrote: Guys I agree we don't want to add RM specific APIs to Axis2. However, as I think my long post, and Chamikara's much neater append point out, there is a way of looking at these as being general concepts in WS and not specific RM concepts. In fact the Key concept is something that the Sandesha guys invented and is not part of the RM spec. I believe that the same Key and Last Message concepts could also help when you switch on WS-SecureConversation. They are just basic ideas about how WS works when not everything is a single call and we start building conversations. What is driving this is a belief in COMPOSABILITY. Composability should mean not having to change my code for a given WS-* standard. But it also means that the core model has to support composability. WS-Security was lucky, we didn't need to change any code, but its also inefficient, so we've had to invent SecureConversation. I think that the idea of sequences and conversations are generic new change the core model of WS and should be reflected in the Axis2 API. Paul On 10/29/05, Jaliya Ekanayake <[EMAIL PROTECTED]> wrote: I agree, that we don't need RM methods without RM. jar, but if we analsye the common requirements from RM or WS-SecCon etc, we may endup with maximum 5-10 new setters for the call API. Afterall these moduels are intended for axis and it will be easy and clear for the users to use them in the Call API rather than having another Context or some other Object to transfer properties. Thanks, Jaliya ----- Original Message ----- From: "Srinath Perera" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Saturday, October 29, 2005 10:11 AM Subject: Re: [Axis2] Implications of WSRM interfaces on Axis2 ClientAPI why u need RM methods when u do not have RM jar in the classpath? On 10/29/05, Jaliya Ekanayake <[EMAIL PROTECTED]> wrote: This is what we have in Sandesha 1.0. It introduce this new RMContext that requires the jar to be in the classpath. Thanks, Jaliya ----- Original Message ----- From: "Srinath Perera" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Saturday, October 29, 2005 7:37 AM Subject: Re: [Axis2] Implications of WSRM interfaces on Axis2 ClientAPI I am 0- on moving the constants to the core how about following Call call = new Call(); call.engageModule("RM"); RMContext rcontext = (RMContext)call.getExtentionContext(RM_MODULE); //return the RMContext from extension registry RMContext will have RM specific methods and provide way to monitor the RM IMHO once the user enable RM, user is not allowed to set sequence id ect .. at the first message RM will automatically call create sequence ..ect and provide sequenceIDs/UUID for the messages. Once the RM is started Axis and RM control what happen .. User can quary status via RMContext .. He may have a terminateSequence method() .. for premature termination Thanks Srinath
