axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deepal Jayasinghe" <dee...@opensource.lk>
Subject Re: [Axis2] Deploying MessageReceivers per Operation
Date Tue, 26 Apr 2005 06:37:45 GMT

Hi all;

Srinath I will do that changes and I was also +1 for doing so finally I 
understood the requirement operation specific receivers.

Deepal


> +1 to moving Messagereiver to Operation level
>
>> -----Original Message-----
>> From: Srinath Perera [mailto:hemapani@gmail.com]
>> Sent: Tuesday, April 26, 2005 10:01 AM
>> To: axis-dev@ws.apache.org
>> Subject: Re: [Axis2] Deploying MessageReceivers per Operation
>>
>> Yes in theory AFAIK MessageReceiver per Operation (MEP) make sense. 
>> Itmake
>> writing a Web Service bit complex. But as users are reusing the in built
>> MessageReceiver I think that is ok. So Deepal shall we movethe
>> messageReceiver attribute to the Opeartion level rather than atthe 
>> service
>> level?
>> ThanksSrinath
>> On 4/26/05, Jaliya Ekanayake <jaliya@opensource.lk> wrote:> Chathura
>> Herath wrote:> > >Hi Jaliya, Deepal, all> >> >Its exactly my
point, the
>> MessgeReceiver is per MEP not per operation as the heading of this thread
>> implies(nor its per service). MEP is a real pain and there is an
>> unprecedented need for properly handling it.> >> >You are right about
>> there is a need of a MessageReciever per given MEP and the fact that 
>> given
>> service can have operations with different MEP can be resolved making 
>> sure
>> we select the right receiver in the Dispatch phase. Anyway we are doing 
>> it
>> now but apparently we have only the IN_OUT MEP Receiver and infact we are
>> in the process of writing a general framework for MEPs. I.e. Proper
>> figuring out of MEP aware receives and MEP aware MEPContexts.> >So we are
>> converging I think....> >> >Btw any thought of my use case stated in
the
>> earlier mail. Restating.. If both the ping operation and the echo
>> operation requires to use the same transport (e.g. HTTP would be a 
>> likely)
>> due to some external constraint like RM, we ll have to get the engine to
>> reuse same transport for two or more different MEP.> >> >Is this a valid
>> use case??> >> >Comments??> >> >Thanks,> >Chathura>
>>
>> >________________________________________> >From: Jaliya Ekanayake
>> [mailto:jaliya@opensource.lk]> >Sent: Thursday, April 21, 2005 5:22 PM>
>> >To: axis-dev@ws.apache.org> >Subject: RE: [Axis2] Deploying
>> MessageReceivers per Operation> >> >Hi Chathura, Deepal and All,>
>> >I
>> would like to pay your attention to the following class.> >> >public

>> class
>> MyService {> >    public void ping(String pingStr){> >        //Ping
>> implementation> >    }> >> >    public String echo(String echoStr){>
>
>> //Echo String implementatino> >        return echoStr;> >    }> >}>
>>
>> >Now if we need to deploy this as a web service containing two operations
>> (one with IN-ONLY MEP and the other with IN-OUT MEP) we are in trouble if
>> we just allow the user to mention one message receiver per service.> >>
>> >Further, I am referring to the following lines( in the Axis 1.2
>> JavaProvider)> >> >--------------------------------> >> >if
(operation !=
>> null &&   operation.getMep() == OperationType.ONE_WAY) {> >
>> msgContext.setResponseMessage(null);> >            } else {> >
>> Message        resMsg  = msgContext.getResponseMessage();> >> 
>>  >-----------
>> --------------------> >> >Now in our MessageReceiver we don't need to
>> check the operation type, since we have some special MEP aware
>> MessageReceivers. Only problem is that we may have many operations in one
>> service with different MEPs> >> >Comments?> >> >Thanks,>
>> >Jaliya> >> 
>>  >>
>> >________________________________________> >From: Chathura Herath
>> [mailto:chathura@opensource.lk]> >Sent: Thursday, April 21, 2005 2:48 PM>
>> >To: axis-dev@ws.apache.org> >Subject: RE: [Axis2] Deploying
>> MessageReceivers per Operation> >> >Hi Jaliya, Deepal, all> >>
>I think 
>> we
>> haven't looked at the problem in the correct angle. MEP and Operation 
>> have
>> a one to many relation ship so it will not be right to say we let each
>> operation have its own message receiver, neither it is correct to say we
>> should have a message receivers per service because the MEP is defined 
>> per
>> operation.> >> >Many Operation → use→ One MEP> >> >The
problem that 
>> jaliya
>> has pointed out is very valid and believe we need to give proper
>> attention. But we have missed out one salient point here. The original 
>> MEP
>> was an IN_ONLY MEP but since the operation requires secure conversation
>> the security module need to send out a message  and get a message back.>
>> >The point in that in this case the security module has created a new
>> MEP(OUT_IN if you consider this EPR to be a server or it's the client 
>> side
>> of the IN_OUT MEP ) which is orthogonal to the original MEP IN_ONLY.
>> Further more now the endpoint has two parallel MEP's running> >1) 
>> Original
>> IN_ONLY MEP :- This will have a receiver – a InOnlyReceiver> >2) OUT_IN
>> MEP created by the security module :- This will have its own receiver.
>> (Like a normal client)> >> >Now I believe there are no misunderstanding

>> of
>> having MessageReceivers because above two message receivers will be
>> provided and this operation and the security module can use them. And any
>> other service who has IN_ONLY MEP can use the above message receiver. Am 
>> I
>> right?> >> >Complications come when you want to use the same transport
to
>> get everything done. That we have to figure out a way to get the engine 
>> to
>> reuse our old same transport.> >> >Comments?> >> >Cheers>
>Chathura> >> 
>>  >>
>> >________________________________________> >From: Deepal Jayasinghe
>> [mailto:deepal@opensource.lk]> >Sent: Thursday, April 21, 2005 10:30 AM>
>> >To: axis-dev@ws.apache.org> >Subject: Re: [Axis2] Deploying
>> MessageReceivers per Operation> >> >Hi Jaliya;> >> >I think
we can handle
>> operation basic receivers inside Message receiver , that is because when
>> some one implement a service he has to write a MessageReciver for his
>> service  , so inside the messagereciver he can write all the logic he
>> needs to handle operation basis reciever , that is inside
>> messagereciver.recive() he can implement those logic.> >> >as an example>
>> >> >MyReciver extends MessageReciver {> >> > public void
>> recieve(MessageContext context){> >    MyOperationReciever myop = new
>> MyOperationReciever();> >    myop.recieve(context);> >  }> >}>
>> >> >so
>> if we do that in this way I think we do not need to define per operation
>> basis receivers.> >> >Comments ....> >> >Deepal> >>
>Hi All,> >>
>> >According the current implementation of Axis2, when we deploy a service,
>> we can specify one MessageReceiver (InOnlyMessageReceiver,
>> InOutMessageReceiver etc..) per service. According to my understanding we
>> should let the user to register one MessageReceiver per operation basis.
>> Possible example would be as follows.> >> >We have a web service with
IN-
>> ONLY operation. However we need to let the service to implement the
>> RequestSecurityToken operation according to the WS-SecCon. This operation
>> is an IN-OUT operation. In this situation we have to register two message
>> receivers to these two operations. In addition, the MEP is bind to an
>> operation and the MessageReceiver is the one who is driving the MEP. So I
>> think we have let each operation to have its own message receiver.> >>
>> >thoughts ??> >> >Thanks,> >> >Jaliya> >> >>
>> >> >> >> >> Hi Chathura,>
>> > IMHO, there may not be a use case similar to what you have mentioned.>
>> There may be a case for one MEP to use the same transport or different>
>> transports, but not between MEPs> > Thanks,> > Jaliya>
>
>
>
>
>
> 



Mime
View raw message