requirements for a standard WSDL
Ray Plante
rplante at ncsa.uiuc.edu
Thu Jun 17 11:58:21 PDT 2004
Hi,
In this week's NVO MWG telecon, we discussed the topic of how best to
define standard interfaces using WSDL. Among the issues we discussed were
how one supports optional and non-standard arguments (like the HTTP
version of SIA allows). This discussion spilled a little onto our NVO
metadata mailing list. This led me to jot down a strawman set of
requirements for an IVOA standard WSDL document which I thought I would
share with this list, too. That message appears below.
(Hopefully, this intro gives you enough context to get something out my
list.)
cheers,
Ray
---------- Forwarded message ----------
Date: Thu, 17 Jun 2004 13:51:26 -0500 (CDT)
From: Ray Plante <rplante at poplar.ncsa.uiuc.edu>
Reply-To: Ray Plante <rplante at ncsa.uiuc.edu>
To: metadata at us-vo.org
Subject: Re: Optional elements in WSDL
On Thu, 17 Jun 2004, Matthew Graham wrote:
> I suspect that you are using something like:
[snip]
> <message...>
> <part name="GETRequest" type="fooType"/>
> </message>
Yes that is correct.
> but what happens if someone comes along with their own version of, say, a
> SIAP service which uses an extended schema from the above; is there any
> way we can write the standard schema that would allow compatibility with
> this so that the same client could handle both types?
That's a good question (that I don't have an answer to) and would be
good to prototype.
I think the base requirements for the standard service definition is
something like the following:
1. A client developer (or application) should be able to download
the standard WSDL from the IVOA web site (i.e. as a static file)
and from it generate a client interface. That client can then
interact with any compliant implementation of the WSDL by
plugging in the appropriate endpoint address. It should *not*
be necessary for the client to download and process the WSDL
associated with the specific service instance (apart possibly
from determining the endpoint address).
2. To create an implementation of the standard service, it should
be sufficient download the WSDL and use it to create a service
binding; the standard WSDL is then sufficient to describe that
particular instance apart from inserting the endpoint address.
3. Standard WSDLs must defined in such a way that optional operations
(i.e. methods) incur no (or negligible) cost to implementers
that choose not to support them.
4. It should be straight-forward for a client to determine which
(optional) operations an instance supports.
5. When the WSDL is retreived from a particular service instance,
it should be possible to determine that whether it (claims to)
comply with a standard WSDL.
6. The standard WSDL be able to, in effect, "import" the so-called
"VO Support" operations to include them as part of the standard
interface.
Augmentation of the interface in terms of "added-value" capabilities
should be okay as long as the base requirements are met. So here are
some of the augmentations that we've come up with that we *might* want
to allow. (Whether we do allow it depends on how easy it is leave the
door open in the standard WSDL and the cost to the implementor doing
the simplest implementation.)
o allow an implementation to support additional, non-standard
operations.
o allow an implementaton to support standard operations using
extended types.
o allow different portions of the interface to be supported via
different endpoints.
It is assumed that a client that wishes to make use of this
specialized capability would have to retrieve that instance's WSDL (as
opposed to the standard one at the IVOA site) to create a proper
interface to it.
So what we need to develop is a "best practice" specification for
defining standard WSDLs that meet these requirements.
cheers,
Ray
More information about the grid
mailing list