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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

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


Subject: RE: [wsbpel] Issue - 77 - Under specified operation definitions


Ron,
 
> What, exactly is the relationship between an operation defined in a port type, and that operation as bound
> to a particular protocol?  Is this why you are concerned about relying on port types for our message descriptions?
 
I am not sure I understand your question. What I was saying is that there is no substantial difference between a binding for a portType and a binding for an abstract message not belonging to a port type. In either case, the associated parts might or might not be used by the binding. So, you might find variables in current BPEL activities that, for some bindings, have parts not mapped to the wire (so are uninitialized), despite the fact that they belong to what you consider the "true" abstract interface.
 
> "A binding defines message format and protocol details for operations and messages defined by a particular portType."
> This clearly separates the layers. I don't see any mention of  "extra" abstract messages becoming part of the abstract endpoint type.
The fact that a reference to "extra" abstract messages binding is missing is just an example of how poorly "extra" abstract messages are described in the spec. (That's, after all, the source of all these discussions). Or are you saying that this binding rule does not apply to "extra" abstract messages? Then where is that binding rule specified? And if those "extra" abstract messages have no binding defined, how would you be able to map them to a soap:header, the same way you do for a part defined in a portType?
 
> Can you provide us with a definition of an abstract endpoint using WSDL terminology?
Here it is. "An abstract endpoint is defined by a particular portType plus all the abstract messages not belonging to any portType. A particular binding will specify which parts in those "extra" abstract messages will belong the concrete endpoint (the same way that the binding will specify which parts in the portType will belong to the concrete endpoint)".
 
You certainly can say that this interpretation is arbitrary, but yours is too for the simple reason that the WSDL 1.1 spec *does not* define what an abstract endpoint is. Any such definition can only be derived by interpretation of certain parts of the spec. Since the spec itself is unfortunately unclear, different interpretations can be derived from it.
 
Ugo
 
 -----Original Message-----
From: Ron Ten-Hove [mailto:Ronald.Ten-Hove@Sun.COM]
Sent: Tuesday, November 25, 2003 12:03 PM
To: Ugo Corda
Cc: wsbpel@lists.oasis-open.org
Subject: Re: [wsbpel] Issue - 77 - Under specified operation definitions

Ugo,

Ugo Corda wrote:
Ron,
 
> Some bindings will include extra message parts (possibly as SOAP headers, or JMS headers), while others will not (perhaps an EJB or MDB binding?).
> The only message parts guaranteed to be delivered to the service by all of the possible bindings are those declared in the port type.
 
No, there is no guarantee that the parts declared in a port type will be delivered by all possible bindings. A binding can select any subset of those parts (possibly the empty subset). This is clearly specified in the SOAP binding where the soap:body element can select which parts are going to be mapped to concrete messages and which ones are not.
 
This is exactly the same thing that happens with abstract messages that are not part of a port type. A particular binding will select some of them and leave others out. The only difference is that, in the case of SOAP bindings, portType parts can map to either bodies or headers, while non portType parts can only map to headers. Nothing is said, of course, about bindings other than SOAP which don't have the concept of a header.
    What, exactly is the relationship between an operation defined in a port type, and that operation as bound to a particular protocol?  Is this why you are concerned about relying on port types for our message descriptions?
 
> How could any reasonable interpretation or use of WSDL conclude that a specific binding type (namely SOAP)
> has the ability to jump across the logical layers that WSDL has defined (albeit imperfectly!).
> This is fundamental: we are talking about the WSDL model of messaging, not SOAP.
 
I am talking about any possible binding, not just SOAP. It really all depends on how you define the logical layers. We all agree there is an abstract layer and a concrete layer. So far nobody has shown me that the WSDL 1.1 states that abstract messages outside portTypes are not part of the abstract layer. In particular, your quotations below do not say anything about that either.
    WSDL 1.1, Section 2.5:
"A binding defines message format and protocol details for operations and messages defined by a particular portType."
    This clearly separates the layers. I don't see any mention of  "extra" abstract messages becoming part of the abstract endpoint type. Microsoft has a nice article on the MSDN site that includes a diagram that illustrates this nicely.

    Perhaps we a suffering from terminology differences here. Can you provide us with a definition of an abstract endpoint using WSDL terminology? I hold that an abstract endpoint is defined by the port type (or interface, if you prefer WSDL 2.0 terminology).

Cheers,
-Ron


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