← Prev in month ← Prev in thread
Next in thread → Next in month →

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

From
Mike Edwards <>
Date
2008-11-20T10:48:58+00:00
ID
Thread
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:

interface (1..1) - the
URI of a WSDL Port Type (WSDL 1.1) or of a WSDL Interface (WSDL 2.0)

callbackInterface(0..1)
- an optional callback interface, which is the URI of a WSDL Port Type
(WSDL 1.1) or of a WSDL Interface (WSDL 2.0)

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:  

From:
David Booz <>

To:


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:

Mike
Edwards ---11/19/2008 09:08:00 AM---Folks, The following is a proposal
for resolving Issue 89:

From:

Mike Edwards <>

To:

"OASIS Assembly" <>

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: 

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
← Prev in month ← Prev in thread
Next in thread → Next in month →