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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

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


Subject: Re: [sca-assembly] [ASSEMBLY-89] Need for a Callback annotation for WSDLinterface files - PROPOSAL update



Dave,

Yes, this is a good point - and a hole in the existing specs since it's a case where the different markings of an
interface turn up in different specifications today. (eg Java and Assembly)

Currently, it is possible to mark a Java interface with a Java @Callback annotation to point to the callback interface.
Clearly, it is then possible in the SCDL that uses such a marked interface to use the @callback attribute of the
<interface/> element to point to a different interface.  This would be an error, but it is not stated anywhere.
This new proposal for WSDL interfaces just makes this more obvious - and everything in this case belongs to
the Assembly spec ;-)

So, let me take this on board and propose adding the following to the Assembly specification (where the error
would get spotted in reality):


Add to the end of Section 8.2, following line 2521:
----------------------------------------------------------------------------
Note that an interface document such as a WSDL file or a Java interface can contain annotations that declare a
callback interface for a particular interface.  Whenever such an interface is used in the declaration of an <interface/>
element in SCA, it MUST be treated as being bidirectional with the declared callback interface.  [ASM80010]  In such
cases, there is no requirement for the <interface/> element to declare the callback interface explicitly.

Where a component uses an implementation and the component configuration declares an interface for a service or a
reference, if the matching service or reference declaration in the component type declares an interface which has a
callback interface, then the component interface declaration MUST also declare a compatible interface with a
compatible callback interface. [ASM80011]

Where a composite declares an interface for a composite service or a composite reference, if the promoted service
or reference has an interface which has a callback interface, then the interface declaration for the composite service
or the composite reference MUST also declare a compatible interface with a compatible callback interface. [ASM80012]

See Section 6.4 Wires for a definition of "compatible interfaces".

----------------------------------------------------------------------------

I note that there is no normative description of the interface.wsdl element, so:
Add new subsection to Section 8, following line 2635:
----------------------------------------------------------------------------

8.5 WSDL Interface Type

The WSDL interface type is used to declare interfaces for services and for references, where the interface is defined in
terms of a WSDL document.  This WSDL document MUST conform either to the WSDL 1.1 specification or to the WSDL 2.0 specification.  [ASM80009]
An interface is defined in terms of a  WSDL Port Type for WSDL 1.1 and in terms of a WSDL Interface for WSDL 2.0.

A WSDL interface is declared by an interface.wsdl element.  The following shows the pseudo-schema for the interface.wsdl element:

<!-- ConstrainingType schema snippet -->

<interface.wsdl interface="xs:anyURI"

                     callbackInterface="xs:anyURI"?>


The interface.wsdl element has the following attributes:



8.5.1 Example of interface.wsdl

<interface.wsdl interface=”http://www.stockquote.org/StockQuoteService#wsdl.porttype(StockQuote)”

                callbackIinterface=”http://www.stockquote.org/StockQuoteService#wsdl.porttype(StockQuoteCallback)”/>

This declares an interface in terms of the WSDL 1.1 port type "StockQuote" with a callback interface defined by the "StockQuoteCallback" port type.

----------------------------------------------------------------------------


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: David Booz <booz@us.ibm.com>
To: sca-assembly@lists.oasis-open.org
Date: 19/11/2008 21:45
Subject: Re: [sca-assembly] [ASSEMBLY-89] Need for a Callback annotation for WSDL interface files - PROPOSAL





What happens if both @callbackInterface and @callback are in use at the same time for a service or reference and they point to different interfaces? I would presume that's an error.

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 ---11/19/2008 09:08:00 AM---Folks, The following is a proposal for resolving Issue 89:Mike Edwards ---11/19/2008 09:08:00 AM---Folks, The following is a proposal for resolving Issue 89:

From:

Mike Edwards <mike_edwards@uk.ibm.com>

To:

"OASIS Assembly" <sca-assembly@lists.oasis-open.org>

Date:

11/19/2008 09:08 AM

Subject:

[sca-assembly] [ASSEMBLY-89] Need for a Callback annotation for WSDL interface files - PROPOSAL






Folks,


The following is a proposal for resolving Issue 89:


(sca-assembly-1.1-spec-cd01-rev3.doc)


Add the following at the end of Section 8.4, following line 2678:


SCA defines an attribute which is used to indicate that a given WSDL Port Type element (WSDL 1.1) or WSDL Interface

element (WSDL 2.0) has an associated callback interface. This is the @callback attribute, which can be applied to

a WSDL <portType/> element or a WSDL <interface/> element.


The @callback attribute is defined as a global attribute in the SCA namespace, as follows:

<attribute name="callback" type="QName"/>

The value of the @callback attribute is the QName of a Port Type (WSDL 1.1) or the QName of an Interface (WSDL 2.0).

The Port Type or the Interface declared by the @callback attribute is the callback interface to use for the service which

is annotated by the @callback attribute.


Here is an example of a porttype element with a callback attribute:

<portType name="LoanService" sca:callback="foo:LoanServiceCallback">

<operation name="apply">

<input message="tns:ApplicationInput"/>

<output message="tns:ApplicationOutput"/>

</operation>

...

</portType>


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











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








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