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


Anish Karmarkar wrote:
> Mike Edwards wrote:
>>
>> Folks,
>>
>> I think we've lost sight of something here.
>>
>> If the intention is to use the whole of an implementation class as the 
>> definition of a service interface (case of
>> unannotated POJO implementing 0 remotable interfaces), I find it very 
>> odd that the client of such a
>> service is not able to use that class as the type of the reference.
>>
>> It has been stated that this is not possible, but instead the client 
>> must obtain or create an */interface class/*
>> that implements "an interface that is compatible with the target 
>> implementation class".
>>
>> If this is the case, then I think the average developer will think we 
>> have gone off our heads!  They will have
>> a very hard time understanding why they cannot use the POJO class 
>> directly - and there are no easy tools
>> that will build the implied interface.
>>
>> I think that EITHER:
>>
>> 1) We should suppress the ability for an unannotated implementation 
>> class to be treated as the definition of
>> a service interface.
>>
>> 2) We should permit the use of an unannotated implementation class as 
>> the definition of the interface for a
>> reference.
>>
> 
> OR (3) require a clean separate of service interfaces and implementation 
> classes. I.e., all service contracts are specified only with Java 
> interfaces.
> 
> -Anish
> -- 
> 
>>
>> I recognise that option 2) may give SCA runtime implementations some 
>> fun in implementing what is required
>> which may in turn cause there to be restrictions on the form of the 
>> unannotated POJO.  On the other hand let us
>> remember that this can ONLY apply to local services that are certainly 
>> running in the same JVM as the client.
>>
The use of a Java class to define a service contract isn't limited
to local services.  The resolution to JAVA-134 has made it possible
for @Remotable to be applied to a service implementation class that
is used as an SCA service contract.

Even if we were to reverse JAVA-134 to prevent @Remotable from being
used in this case, I don't see how one-way semantics could be supported
for an invocation though a reference whose type is a Java class.
The reference would have to contain an instance of the class, and
a method call through the reference would execute the implementation
method synchronously rather than asynchronously.

   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:     30/04/2009 20:29
>> Subject:     Re: [sca-j] [NEW ISSUE] Section 10.13 on @OneWay requires 
>> a normative statement
>>
>>
>> ------------------------------------------------------------------------
>>
>>
>>
>> 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
>>
>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> /
>> /
>>
>> /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
> 
> 




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