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

Issue - 182 - Proposal For Vote

From
Yaron Y. Goland <>
Date
2005-05-31T23:06:35+00:00
ID
Thread
Issue - 182 - Proposal For Vote
The following is a friendly amendment to Alex's proposal but my guess is 
that Alex and I will need to discuss it.
	Yaron

Alex Yiu wrote:
> Hi all,
> 
> Yaron and I have been working together to come up the wordings for the proposal 
> to tackle Issue 180, 182, and 185 in a consistent manner (since all these 3 
> issues are highly inter-related.)
> 
> Please take a look into the proposal attached. I guess we shall try to discuss 
> it in F2F, if time allows.
> 
> (Note:
> 
>     * Parts of this proposal draft comes from Yaron. I just finished the draft
>       of combining pieces right before the long weekend. Hence Yaron has NOT got
>       a chance to review this version of text yet. (But I personally would not
>       expect Yaron would have any major disagreement with that.)
>     * I still decide to send it off to the TC list, since I want to give enough
>       time for people to read on this proposal before the F2F
>     * This proposal draft has been shared in a smaller group. Particularly
>       factoring in some of the Satish's friendly amendments.
> 
> )
> 
> 
> Thanks!
> 
> 
> Regards,
> Alex Yiu
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 
>       Proposal for Issue 180, 182, 185
> 
> 
> Last modified date: May 30, 2005 - 1:30 pm PDT
> 
> Parts of Proposal to address: Issue 180 and Issue 185
> 
> (Adopting Satish's friendly amendment concern about resolving contradictory texts)
> 
> The related pargraph quoted from Section 11.3:
> 
> From:
> --------------------------------
> Note that a WSDL fault is identified in WS-BPEL by a qualified name formed by 
> the target namespace of the corresponding portType and the fault name. This 
> uniform naming mechanism must be followed even though it does not accurately 
> match WSDL's faultnaming model. Because WSDL does not require that fault names 
> be unique within the namespace where the service operation is defined, all 
> faults sharing a common name and defined in the same namespace are 
> indistinguishable in WS-BPEL. In WSDL 1.1 it is necessary to specify a portType 
> name, an operation name, and the fault name to uniquely identify a fault. This 
> limits the ability to use fault-handling mechanisms to deal with invocation 
> faults. This is an important shortcoming of the WSDL fault model that will be 
> removed in future versions of WSDL.
> --------------------------------
> 
> To:
> --------------------------------
> Note that a WSDL fault is identified in WS-BPEL by a qualified name formed by 
> the target namespace of the corresponding portType and the fault name. This 
> uniform naming mechanism must be followed even though it does not accurately 
> match WSDL's faultnaming model. WSDL 1.1 does not require that fault names be 
> unique within the namespace where the service operation is defined. In WSDL 1.1 
> it is necessary to specify a portType name, an operation name, and the fault 
> name to uniquely identify a fault. This limits the ability to use fault-handling 
> mechanisms to deal with invocation faults.
> --------------------------------
> 
> In Section 11.3, add the following after the paragraph which starts with "Note 
> that a WSDL fault is identified ... "
> --------------------------------
> When a BPEL processor needs to differentiate faults (e.g. for different handling 
> logic in <faultHandlers>), neither a portType nor an operation name is used to 
> identify a fault, because of the preference of keeping WS-BPEL fault model 
> simple and consistent. That implies, all faults sharing a common name and 
> defined in the same namespace are indistinguishable in WS-BPEL, if no fault 
> message or variable types are provided. Faults of a particular fault name can be 
> associated with multiple variable types and the <catch> construct in WS-BPEL 
> facilitates differentiation of faults with different message / variable types of 
> the same fault name. For details for <faultHandlers> and <catch>, please see 
> section "Fault Handlers".
> 
> On the other hand, when a fault is replied back to a web-service invoker by a 
> WS-BPEL process with a <reply> activity, finer grain level of fault related 
> analysis is possible, since the portType and operation name information is 
> already associated with a <reply> activity and a WS-BPEL processor is able to 
> identify which exact fault the <reply> activity refers to. For details of 
> <reply> activity, please see section "Providing Web Service Operations".
> --------------------------------
> 
> 
> Parts of Proposal to address: Issue 182 and Issue 185
> 
> (After getting an agreement from Satish on "symmetrical" design on <catch>)
> 
> 
> In Section 13.4
> 
> Change #1:
> From:  (copied from Issue 12.1 resolution)
> ===================================
> 
> In the case of faults thrown with associated data the fault will be caught as 
> follows:
> 
> ·        If there is a catch activity with a matching faultName value that has a 
> faultVariable whose type matches the type of the fault data then the fault is 
> passed to the identified catch activity.
> 
> ·        Otherwise if the fault data is a WSDL message type where the message 
> contains a single part defined by an element and there exists a catch activity 
> with a matching faultName value that has a faultVariable whose type matches the 
> type of the element used to define the part then the fault is passed to the 
> identified catch activity with the faultVariable initialized to the value in the 
> single part’s element.
> 
> ·        Otherwise if there is a catch activity without a faultName attribute 
> that has a faultVariable whose type matches the type of the fault data then the 
> fault is passed to the identified catch activity.
> 
> ·        Otherwise if the fault data is a WSDL message type where the message 
> contains a single part defined by an element and there exists a catch activity 
> without a faultName attribute that has a faultVariable whose type matches the 
> type of the element used to define the part then the fault is passed to the 
> identified catch activity with the faultVariable initialized to the value in the 
> single part’s element.
> 
> ·        Otherwise if there is a catchAll handler then the fault is passed to 
> the catchAll handler.
> 
> ·        Otherwise the fault is thrown to the immediately enclosing scope.
> 
> ===================================
> 
> To:
> ===================================
> 
> In the case of faults thrown with associated data the fault will be caught as 
> follows:
> 
>    1. If there is a catch activity with a matching faultName value that has a
>       faultVariable whose type matches the type of the fault data then the fault
>       is passed to the identified catch activity.
>    2. Otherwise if the fault data is a WSDL message type and there exists a
>       catch activity a matching faultName value and a matching faultMessageType,
>       then the fault is passed to the identified catch activity with the
>       faultVariable initialized.
>    3. Otherwise if the fault data is a WSDL message type where the message
>       contains a single part defined by an element and there exists a catch
>       activity with a matching faultName value that has a faultVariable whose
>       type matches the type of the element used to define the part then the
>       fault is passed to the identified catch activity with the faultVariable
>       initialized to the value in the single part’s element.
>    4. If there is a catch activity with a matching faultName value that does not
>       specify a faultVariable value then the fault is passed to the identified
>       catch activity. Note that in this case the fault value will not be
>       available from within the fault handler but will be available to the
>       <rethrow> activity. 
>    5. Otherwise if there is a catch activity without a faultName attribute that
>       has a faultVariable whose type matches the type of the fault data then the
>       fault is passed to the identified catch activity.
>    6. Otherwise if the fault data is a WSDL message type and there exists a
>       catch activity without a faultName attribute but a matching
>       faultMessageType, then the fault is passed to the identified catch
>       activity with the faultVariable initialized.
>    7. Otherwise if the fault data is a WSDL message type where the message
>       contains a single part defined by an element and there exists a catch
>       activity without a faultName attribute that has a faultVariable whose type
>       matches the type of the element used to define the part then the fault is
>       passed to the identified catch activity with the faultVariable initialized
>       to the value in the single part’s element.
>    8. Otherwise if there is a catchAll handler then the fault is passed to the
>       catchAll handler. (Note: there is always a default <catchAll> fault
>       handler, even when users do not specify explicitly.)
> 
> ===================================
> 
> Note:
> 
>     * Only item (4) is added for this issue.
>     * Some suggests to move item (4) down the list of preference of matching to
>       right before item (8).
> 
> 
> Changes NOT related to this issue:
> 
>     * For the addition of Items (2) and (6), it seems to me that we forgot to
>       specify those cases in Issue 12.1 resolution. 
>     * Changes in Item (8) is to remove the last bullet and clarify the role of
>       default fault handler. We need to apply similar changes to the bullet list
>       for "the case of faults thrown without associated data".
> 
> 
> Change #2:
> From:
> ---------------------------------
> A fault caught by a <catchAll> handler or by a custom fault handler that does 
> not specify a faultName, may need to be rethrown. However the <throw> activity 
> that requires a faultName can not be used here as the faultName is not 
> available.  Hence all fault handlers are allowed to rethrow the original fault 
> with a <rethrow> activity that is defined to be an empty element....
> ---------------------------------
> 
> To:
> ---------------------------------
> It is sometimes necessary to rethrow a caught fault. However the <throw> 
> activity requires both a fault name and the fault value. In the case of a 
> <catchAll> handler or a custom fault handler that does not specify a faultName 
> the fault's name won't be accessible for use in the <throw> activity. In the 
> case that a fault with associated data was caught by a customer fault handler 
> that only specified the fault's name  the fault's data won't be accessible for 
> use in the <throw> activity. Hence all fault handlers are allowed to rethrow the 
> original fault with a <rethrow> activity that is defined to be an empty element....
> ---------------------------------
> 
> Other corrections not related to this issue:
> --------------------------------
> From: faultMessageType="qname"
> To: faultMessageType="qname"?
> (Note: this was just a typo in the text.
> AYIU: I already fixed this typo on May 1st editorial.)
> --------------------------------
> 
> 
> 
> 
>
← Prev in month ← Prev in thread
Next in thread → Next in month →