W3C home > Mailing lists > Public > public-ws-desc-comments@w3.org > July 2005

RE: Faults that are not described in WSDL?

From: Jonathan Marsh <jmarsh@microsoft.com>
Date: Mon, 25 Jul 2005 07:33:14 -0700
Message-ID: <7DA77BF2392448449D094BCEF67569A50854F7CD@RED-MSG-30.redmond.corp.microsoft.com>
To: "Booth, David \(HP Software - Boston\)" <dbooth@hp.com>
Cc: <public-ws-desc-comments@w3.org>

The WG reexamined this issue, but felt that there is no easy way to
classify these undeclared faults; if they could be declared they would
be declared in the WSDL.  It did not feel that it was necessary to add
the text you provided.

> -----Original Message-----
> From: David Booth [mailto:dbooth@w3.org]
> Sent: Thursday, June 02, 2005 5:57 AM
> To: Jonathan Marsh
> Cc: public-ws-desc-comments@w3.org
> Subject: RE: Faults that are not described in WSDL?
> 
> I think this needs more attention, and perhaps I was not clear enough
> about my concern.  I'm fine with faults being an open set.  That is
> not
> my concern.
> 
> My concern is that the spec is not clear about how faults that are not
> described by the WSDL interface would be recognizable as faults when
> they are received.  In other words, if a client receives an unexpected
> message X, how does it know whether message X represents a well-
> formed,
> undeclared fault message or is an erroneous message containing random
> gibberish?  Something must indicate to the client, in a
> machine-processible language that the client understands, that message
> X
> represents a fault.
> 
> I think there is an implicit assumption being made that either:
> 
> a. binding/transport-level mechanisms will permit undeclared faults to
> be recognizable as undeclared faults (for example, by the use of SOAP
> fault codes or HTTP error codes); or
> 
> b. the parties must agree out-of-band (i.e., outside of the WSDL
> description) how undeclared faults can be recognized as undeclared
> faults.
> 
> Section 2.3.1 seems to be saying that conceptually every interface has
> one more fault type implicitly declared -- call it UndeclaredFault --
> in
> addition to the explicitly declared faults, and this is a catch-all
> fault type that can indicate any kind of fault.  Thus, an application
> written against the interface must be prepared to handle an
> UndeclaredFault in addition to the declared faults.  But how is this
> UndeclaredFault at the abstract level bound to an underlying
> binding/transport mechanism?  AFAICT, the spec does not say.  In other
> words, if a party wishes to send an UndeclaredFault, what mechanism
> must
> be used to send it?  Both parties need to know what mechanism will be
> used, thus either the WSDL document or the WSDL spec should say
> explicitly what that mechanism is.  Rather than being silent and
> assuming that "magic occurs", I think it would be much better for the
> spec to discuss these UndeclaredFaults explicitly.
> 
> In general, the binding is responsible for indicating how notions at
> the
> abstract level are manifested at the transport level.  In theory, a
> binding extension could provide syntax to permit UndeclaredFaults to
> be
> bound explicitly to an underlying mechanism via wsdl:bindings.
> However,
> in practice, the binding extensions may always bind UndeclaredFaults
> in
> a fixed, default way.  For example, UndeclaredFaults might always be
> bound to SOAP fault codes if the WSDL SOAP binding extension is used,
> or
> using HTTP error codes if the HTTP binding extension is used.
> 
> In summary, I think clarification along the following lines would
> help:
> 
> 1. Part 1 should give some indication of how UndeclaredFaults are
> expected to be bound.  For example, it could add a subsection like:
> [[
> Undeclared Faults
> Faults other than the ones described in the Interface component can
> also
> be generated at run-time, i.e. faults are an open set.  Faults that
> are
> not declared in the Interface component are known as Undeclared
> Faults.
> 
> Note: It is the binding extension's responsibility to specify how
> Undeclared Faults are transmitted.  For examples, see Part 2 SOAP
> Binding Extension section @@BindingUndeclaredFaults@@ or Part 2 HTTP
> Binding Extension section @@BindingUndeclaredFaults@@.
> ]]
> 
> 2. The binding extensions should say explicitly how UndeclaredFaults
> are
> transmitted.  For example, the WSDL SOAP MEP Binding Extension could
> add
> a subsection to section 4.7 like:
> [[
> Binding Undeclared Faults
> In addition to any faults that are explicitly declared for an
> interface,
> the WSDL SOAP Binding Extension can transmit Undeclared Faults
> @@reference Part 1 Undeclared Faults@@ associated with the interface.
> Undeclared Faults are always transmitted using SOAP fault code/subcode
> combinations that are not associated with any declared faults for the
> interface.
> ]]
> (The above might need to be stated in a little tighter spec-ese, but
> hopefully this gives you the idea.)
> 
> The WSDL HTTP Binding Extension could say something similar.
> 
> Please let me know if further clarification would help.
> 
> Thanks,
> David Booth
> 
> 
> On Fri, 2005-05-20 at 20:44 -0700, Jonathan Marsh wrote:
> > Thank you for your comment - we tracked this as a Last Call comment
> LC72
> > [1].  The Working Group declined to make any changes to the spec as
> a
> > result.  Faults by their very nature need to be an open set.
> >
> > If we don't hear otherwise within two weeks, we will assume this
> > satisfies your concern.
> >
> > [1] http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC72
> >
> > > -----Original Message-----
> > > From: public-ws-desc-comments-request@w3.org [mailto:public-ws-
> desc-
> > > comments-request@w3.org] On Behalf Of David Booth
> > > Sent: Thursday, October 28, 2004 8:37 AM
> > > To: public-ws-desc-comments@w3.org
> > > Subject: Faults that are not described in WSDL?
> > >
> > >
> > > Part 1 section 2.3.1 says "Note that faults other than the ones
> > > described in the Interface component can also be generated at run-
> > > time,
> > > i.e. faults are an open set.".
> > >
> > > I think this needs clarification.  How can a client application or
> Web
> > > service know what additional faults to expect, and what message
> > > schemas
> > > would describe such faults?
> > >
> > > --
> > >
> > > David Booth
> > > W3C Fellow / Hewlett-Packard
> > >
> >
> --
> David Booth <dbooth@w3.org>
Received on Monday, 25 July 2005 14:33:46 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:20:31 GMT