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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-j message

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


Subject: Re: [sca-j] [NEW ISSUE] Section 10.13 on @OneWay requires a normativestatement


Simon,

I agree with you that it has to be (1). I don't see how it could ever be 
(3) -- how does a service advertise and implement a fire-and-forget 
method (queuing scenario) that may or may not have reliability 
guarantees? The reference side and the service side must have the same 
view wrt whether a method is one way or not. @Oneway annotation can 
affect bindings.

This is a separate issue, but there is no RFC2119 statement about the 
fact that the one-way method return type must be void and not have any 
declared exceptions. It is mentioned in section 7.1 but without any 2119 
keywords. In any case, I think it should be part of section 10.13

-Anish
--

Simon Nash wrote:
> Simon Nash wrote:
>> Dave,
>> Thanks, this is a more useful way to express the issue.
>>
>> The question is whether one-way invocation is
>>  1) a property of the service, that the reference must obey
>>  2) a property of the service, that the reference can choose
>>     whether to use or not
>>  3) a property of the reference, that the service doesn't
>>     know is happening
>>
> After a little bit of further thought, I think the answer has
> to be 1).  This is because the @OneWay annotation maps to a
> one-way MEP in the WSDL portType.  By the Assembly compatibility
> rules, if either the reference or the service uses a one-way MEP,
> then both sides would have to do this.
> 
> If we agree on this, the conclusion is that we do need to allow
> @OneWay on service implementation classes for the case where the
> service interface is defined using the implementation class.
> In this case, @OneWay would also need to be specified on the
> reference interface.
> 
>   Simon
> 
>>   Simon
>>
>> David Booz wrote:
>>> Thanks for clarifying. I see that you're questioning the validity of 
>>> specifying @OneWay methods on service interfaces.
>>>
>>> I was a bit surprised to find that the Assemlby spec doesn't say 
>>> anything about one-way/non-blocking behavior. There's a hole here in 
>>> that another CI spec could define it as a service runtime behavior, 
>>> resulting in no one performing the asynchronous dispatch. Is this a 
>>> discussion we've had before?
>>>
>>> Java CAA certainly hints that it's the client runtime (probably the 
>>> binding) which implements the behavior but we could definitely make 
>>> this more explicit with RFC2119 words.
>>>
>>> Dave Booz
>>> STSM, BPM and SCA Architecture
>>> Co-Chair OASIS SCA-Policy TC and SCA-J TC
>>> "Distributed objects first, then world hunger"
>>> Poughkeepsie, NY (845)-435-6093 or 8-295-6093
>>> e-mail:booz@us.ibm.com
>>>
>>> Inactive hide details for Simon Nash ---04/29/2009 05:12:29 PM---Mike 
>>> Edwards wrote: >Simon Nash ---04/29/2009 05:12:29 PM---Mike Edwards 
>>> wrote: >
>>>
>>>
>>> From:   Simon Nash <oasis@cjnash.com>
>>>
>>> To:   OASIS Java <sca-j@lists.oasis-open.org>
>>>
>>> Date:   04/29/2009 05:12 PM
>>>
>>> Subject:   Re: [sca-j] [NEW ISSUE] Section 10.13 on @OneWay requires 
>>> a normative statement
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>>
>>> Mike Edwards wrote:
>>>  >
>>>  > Simon,
>>>  >
>>>  > So, if an unannotated Java POJO implements only local interfaces 
>>> and is
>>>  > introspected as a single local service
>>>  > typed by the POJO class itself, as described in JAVA CI spec sections
>>>  > 2.3 and 8, what does the componentType
>>>  > of that service look like and how would a <reference/> element be
>>>  > configured in order to invoke the service offered
>>>  > by a component using the unannotated POJO as an implementation?
>>>  >
>>> The componentType of the service component would have a <service>
>>> element with <interface.java interface="name-of-the-impl-class"/>
>>>
>>> So far, so good.  On the reference side, things get more tricky.
>>> For example, if the reference is an injected field, the type of
>>> this field can't be declared in Java code with a type of
>>> "name-of-the-impl-class".  In order for the SCA runtime to
>>> successfully inject a reference proxy, the type of the field
>>> would need to be an interface type that is compatible (in the SCA
>>> sense) with the class that is used for the service's interface.
>>>
>>> For any one-way methods that are part of the service contract,
>>> the @OneWay annotation would need to appear on that method in
>>> the reference's interface, so that the reference side SCA runtime
>>> would know that a non-blocking invocation is required.
>>>
>>> It is an interesting question whether or not @OneWay would also
>>> need to appear on the corresponding method of the service's
>>> interface (aka impl-class).  The non-blocking invocation is
>>> performed on the reference side, so from that perspective it
>>> would make no difference whether or not @OneWay appears on
>>> the service side.  If the Assembly compatibility rules required
>>> matching one-way annotations on methods, this would require @OneWay
>>> to appear on the service side as well.  However, the interface
>>> compatibility rules as currently written don't require this, so
>>> the following would be legal:
>>>
>>> (on service side)
>>>
>>> public class MyServiceImpl {
>>>     public void myAsyncMethod() {
>>>         ...
>>>     }
>>> }
>>>
>>> (on reference side)
>>>
>>> public interface MyService {
>>>     @OneWay
>>>     public void myAsyncMethod();
>>> }
>>>
>>> public class MyClientImpl {
>>>
>>>     @Reference
>>>     protected MyService ref;
>>>
>>>     ...
>>>     ref.myAsyncMethod(); // non-blocking invocation
>>>     ...
>>> }
>>>
>>> In this example, it makes no difference whether or not the
>>> method myAsyncMethod() of MyServiceImpl has a @OneWay
>>> annotation.
>>>
>>>   Simon
>>>
>>>  >
>>>  > 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_edwards@uk.ibm.com
>>>  >
>>>  >
>>>  > From: Simon Nash <oasis@cjnash.com>
>>>  > To: sca-j@lists.oasis-open.org
>>>  > Date: 28/04/2009 14:38
>>>  > Subject: Re: [sca-j] [NEW ISSUE] Section 10.13 on @OneWay requires a
>>>  > normative statement
>>>  >
>>>  >
>>>  > 
>>> ------------------------------------------------------------------------
>>>  >
>>>  >
>>>  >
>>>  > The problem with this interpretation is that @OneWay would need
>>>  > to appear on the reference side, and a reference must use a
>>>  > Java interface and not a Java class.
>>>  >
>>>  >   Simon
>>>  >
>>>  > David Booz wrote:
>>>  >  > +1
>>>  >  >
>>>  >  > Dave Booz
>>>  >  > STSM, BPM and SCA Architecture
>>>  >  > Co-Chair OASIS SCA-Policy TC and SCA-J TC
>>>  >  > "Distributed objects first, then world hunger"
>>>  >  > Poughkeepsie, NY (845)-435-6093 or 8-295-6093
>>>  >  > e-mail:booz@us.ibm.com
>>>  >  >
>>>  >  > Inactive hide details for Mike Edwards ---04/28/2009 08:59:22
>>>  >  > AM---Simon, I don't think it was the intention of the original 
>>> woMike
>>>  >  > Edwards ---04/28/2009 08:59:22 AM---Simon, I don't think it was 
>>> the
>>>  >  > intention of the original wording of the spec to
>>>  >  >
>>>  >  >
>>>  >  > From:                 >  > Mike Edwards <mike_edwards@uk.ibm.com>
>>>  >  >
>>>  >  > To:                 >  > OASIS Java <sca-j@lists.oasis-open.org>
>>>  >  >
>>>  >  > Date:                 >  > 04/28/2009 08:59 AM
>>>  >  >
>>>  >  > Subject:                 >  > Re: [sca-j] [NEW ISSUE] Section 
>>> 10.13 on @OneWay requires a normative
>>>  >  > statement
>>>  >  >
>>>  >  > 
>>> ------------------------------------------------------------------------
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  > Simon,
>>>  >  >
>>>  >  > I don't think it was the intention of the original wording of 
>>> the spec
>>>  >  > to permit the implementation
>>>  >  > pattern that you describe below.
>>>  >  >
>>>  >  > I think that the case of class methods being annotated was 
>>> there to
>>>  >  > cover the case where the
>>>  >  > whole class defines the interface - as occurs for unannotated 
>>> classes
>>>  >  > with purely local interfaces.
>>>  >  >
>>>  >  > Maybe I have this wrong, but that is how I understand it.
>>>  >  >
>>>  >  >
>>>  >  > 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_edwards@uk.ibm.com
>>>  >  >
>>>  >  > From:                  Simon Nash <oasis@cjnash.com>
>>>  >  > To:                  OASIS Java <sca-j@lists.oasis-open.org>
>>>  >  > Date:                  28/04/2009 12:43
>>>  >  > Subject:                  Re: [sca-j] [NEW ISSUE] Section 10.13 on
>>>  > @OneWay requires a
>>>  >  > normative statement
>>>  >  >
>>>  >  >
>>>  >  > 
>>> ------------------------------------------------------------------------
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  > Mike,
>>>  >  > I agree that this needs to be made normative.
>>>  >  >
>>>  >  > I had always thought that @OneWay applied only to interface 
>>> methods.
>>>  >  > The reference to class methods (in the original text and your 
>>> proposal)
>>>  >  > surprises and intrigues me, because this suggests that @OneWay 
>>> could
>>>  >  > be applied to a service implementation method without being 
>>> applied to
>>>  >  > the corresponding interface method.  If this is legal, it would 
>>> mean
>>>  >  > that the client invokes the service synchronously, and the service
>>>  >  > returns back to the client immediately and dispatches the 
>>> method for
>>>  >  > subsequent execution.
>>>  >  >
>>>  >  > Do we want to allow this interaction pattern?  If we do want to 
>>> allow
>>>  >  > it, then I think we need to make this more explicit in the text.
>>>  >  >
>>>  >  >  Simon
>>>  >  >
>>>  >  > Mike Edwards wrote:
>>>  >  >  >
>>>  >  >  > *** NB I am happy for this new issue to be treated as a 
>>> comment on the
>>>  >  >  > Public Review draft - I just don't want this item lost ***
>>>  >  >  >
>>>  >  >  > Raiser:                Mike Edwards
>>>  >  >  >
>>>  >  >  > Target:                sca-javacaa-1.1-spec-cd02-rev6.doc
>>>  >  >  >
>>>  >  >  > Description:
>>>  >  >  >
>>>  >  >  > There is a sentence in section 10.13 about @OneWay which in 
>>> effect
>>>  >  >  > describes a normative requirement but is not in the
>>>  >  >  > form of a normative statement:
>>>  >  >  >
>>>  >  >  > Lines 1923 - 1925:
>>>  >  >  >
>>>  >  >  > "The @OneWay annotation is used on a Java interface or class 
>>> method to
>>>  >  >  > indicate that invocations will be dispatched
>>>  >  >  > in a non-blocking fashion as described in the section on 
>>> Asynchronous
>>>  >  >  > Programming."
>>>  >  >  >
>>>  >  >  > This must be recast into the form of a normative statement
>>>  >  >  >
>>>  >  >  > Proposal:
>>>  >  >  >
>>>  >  >  > Replace lines 1923 - 1925 with the following normative 
>>> statement:
>>>  >  >  >
>>>  >  >  > When a Java interface method or a Java class method is 
>>> annotated with
>>>  >  >  > @OneWay, the SCA runtime MUST ensure that all
>>>  >  >  > invocations of that method are executed in a non-blocking 
>>> fashion, as
>>>  >  >  > described in the section on Asynchonous Programming.
>>>  >  >  > [JCA90052]
>>>  >  >  >
>>>  >  >  >
>>>  >  >  > 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_edwards@uk.ibm.com
>>>  >  >  >
>>>  >  >  >
>>>  >  >  >
>>>  > 
>>> ------------------------------------------------------------------------
>>>  >  >  >
>>>  >  >  > /
>>>  >  >  > /
>>>  >  >  >
>>>  >  >  > /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/
>>>  >  >  >
>>>  >  >  >
>>>  >  >  >
>>>  >  >  >
>>>  >  >  >
>>>  >  >  >
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  > 
>>> ---------------------------------------------------------------------
>>>  >  > To unsubscribe from this mail list, you must leave the OASIS TC 
>>> that
>>>  >  > generates this mail.  Follow this link to all your TCs in OASIS 
>>> at:_
>>>  >  >
>>>  > 
>>> __https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php_ 
>>>
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  > 
>>> ------------------------------------------------------------------------
>>>  >  > /
>>>  >  > /
>>>  >  >
>>>  >  > /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/
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >  >
>>>  >
>>>  >
>>>  >
>>>  > ---------------------------------------------------------------------
>>>  > To unsubscribe from this mail list, you must leave the OASIS TC that
>>>  > generates this mail.  Follow this link to all your TCs in OASIS at:
>>>  > 
>>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>>>  >
>>>  >
>>>  >
>>>  >
>>>  >
>>>  >
>>>  > 
>>> ------------------------------------------------------------------------
>>>  >
>>>  > /
>>>  > /
>>>  >
>>>  > /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/
>>>  >
>>>  >
>>>  >
>>>  >
>>>  >
>>>  >
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this mail list, you must leave the OASIS TC that
>>> generates this mail.  Follow this link to all your TCs in OASIS at:
>>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>>>
>>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this mail list, you must leave the OASIS TC that
>> generates this mail.  Follow this link to all your TCs in OASIS at:
>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail.  Follow this link to all your TCs in OASIS at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php


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