W3C home > Mailing lists > Public > public-ws-chor@w3.org > March 2003

RE: [Requirements] Non-requirement for MEPs

From: Burdett, David <david.burdett@commerceone.com>
Date: Wed, 19 Mar 2003 15:12:12 -0800
Message-ID: <C1E0143CD365A445A4417083BF6F42CC053D182A@C1plenaexm07.commerceone.com>
To: "'Patil, Sanjaykumar '" <sanjay.patil@iona.com>, "'Assaf Arkin '" <arkin@intalio.com>
Cc: "'public-ws-chor@w3.org '" <public-ws-chor@w3.org>

 +1

I would also further suggest a list of lower level errors which can
**optionally** be included. Many of the errors will require human
intervention to fix and the better the information available, the easier and
quicker they will be to fix.

David

-----Original Message-----
From: Patil, Sanjaykumar
To: Assaf Arkin
Cc: public-ws-chor@w3.org
Sent: 3/19/2003 12:47 PM
Subject: RE: [Requirements] Non-requirement for MEPs



I completely agree that it will be useful for the choreography layer to
handle the business exceptions (product unavailable, quote expired,
etc).

The issue I was trying to raise is how to deal with the errors that
originate in the functional layers  underneath the choreography layer,
and which necessarily need attention of the higher layer (choreography
in our case) for making progress. 

For example, a choreography employing Reliable Messaging layer is NOT
interested in knowing when the messages are reliable delivered by the RM
layer, but it IS interested in knowing if a message can not be delivered
after all attempts in the RM layer. Some of its choreography logic
subsequent to the activity of sending the message would be assuming
successful delivery and may prefer to take alternative course in the
case of failures. 

For example, a real time broker hunting for the best price of an item
may ignore the vendors who can not be reached by reliable messaging and
process the responses from the ones who were reachable at the time of
the query.

I however agree that not each and every error of the low level stack
would be of any value to the higher layers. However, those errors, which
if not handled would necessarily violate the assumptions (and therefore
interfere with the business logic) of the higher layers need to be
popped up. Perhaps the choreography layer needs to be capable of
handling such coarse grained/generic errors for the functionality down
the stack.

Sanjay Patil
Distinguished Engineer
sanjay.patil@iona.com
-------------------------------------------------------
IONA Technologies
2350 Mission College Blvd. Suite 650
Santa Clara, CA 95054
Tel: (408) 350 9619
Fax: (408) 350 9501
-------------------------------------------------------
Making Software Work Together TM


-----Original Message-----
From: Assaf Arkin [mailto:arkin@intalio.com]
Sent: Wednesday, March 19, 2003 11:58 AM
To: Patil, Sanjaykumar
Cc: public-ws-chor@w3.org
Subject: RE: [Requirements] Non-requirement for MEPs




> -----Original Message-----
> From: public-ws-chor-request@w3.org
> [mailto:public-ws-chor-request@w3.org]On Behalf Of Patil, Sanjaykumar
> Sent: Wednesday, March 19, 2003 10:20 AM
> To: Assaf Arkin
> Cc: public-ws-chor@w3.org
> Subject: RE: [Requirements] Non-requirement for MEPs
>
>
>
>
> >> <Assaf>
> >> I'm not sure there is much value in identifying specific
> faults, I think
> >> some coarse distinction will suffice.
>
> >> For example, the seller may send a message that the buyer
> cannot validate.
> >> The buyer can send back some fault. But the seller may
> validate the message
> >> on its side before sending it, determine the fault without
> having to receive
> >> it from the buyer. The seller may find that it's
> implementation is wrong and
> >> it cannot proceed. It's able to fix the implementation but
> that may take
> >> longer than the transaction timeout. So suffice that the seller can
say
> >> 'oops, something went wrong, let's decide to cancel the
transaction'. I
> >> don't think there's need to delve into the what went wrong in
> much detail,
> >> coarse grain would work fine for all the scenarios I've seen.
> >> </Asaaf>
>
> Even to say that "oops, something went wrong, let's decide to
> cancel the transaction", you need to know the exact type of the
> error. That is, if you wanted to define the behavior of the
> system to cancel the transaction for certain types of errors, you
> are already assuming that you can identify the types of errors.
> Isn't specifying the type of the error already getting into
> defining details of the error message!

But I can do that in a very generic way.

It's possible that a message has a well formed error, validation error,
attachment corrupt error, mandatory header not supported error, or
decryption failure error. At the choreography level do I care which of
these
errors prevented the message from being processed? Or can I just
forumlate
the behavior in terms of a very generic error (like error = SOAP server
fault) ignoring the details?

This is different from business errors, which may have more specific
effect
on the flow, errors like:

- The product is not available, please update your catalog
- The quoted price is no longer accepted, please obtain a new quote
- Cannot possibly ship by this date, alternative date provided

You would want to clearly define these errors and use suitable messages.
Usually these are messages, not specifically faults (in the WSDL term).
Even
if you decide to use faults, you can still define these faults precisely
using WSDL and address them specifically using a fault handler.

The issue here - as I understood from reading Edwin's e-mail - is that
the
faults listed above (invalid, unsupported header, etc) are not well
defined.
For the implementation this is an issue, but for the choreography I have
yet
to see a use case that distinguishes between failure due to invalid vs
failure due to malformed. I do see a difference between these generic
"server faults" and other type of errors, but the other type of errors
can
be well defined by creating specific message definitions for them.

arkin


> Once we support certain types of errors,  we may also have to
> augment the error message definitions with the exact information
> of the error instance. For example, a content-validation-failed
> error message can include the details of which element in which
> document was the culprit.
>
> Yes, a coarse grained error type is useful in its own merit and
> we could include such a category to account for unidentified
> errors. However, for those functionalities that will be directly
> supported by the choreography specification, we need to clearly
> support the relevant error messages also.
>
>
> Sanjay Patil
> Distinguished Engineer
> sanjay.patil@iona.com
> -------------------------------------------------------
> IONA Technologies
> 2350 Mission College Blvd. Suite 650
> Santa Clara, CA 95054
> Tel: (408) 350 9619
> Fax: (408) 350 9501
> -------------------------------------------------------
> Making Software Work Together TM
Received on Wednesday, 19 March 2003 18:12:14 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 18 December 2010 01:00:06 GMT