requirements for a standard WSDL

Paul Harrison pah at jb.man.ac.uk
Fri Jun 18 01:28:33 PDT 2004


The Astrogrid Common Execution Architecture (CEA) has been designed, in 
part, as a possible solution to this problem. The approach that we have 
taken is to have a single set of WSDL and schema that describe the meta 
information about the real parameters to a particular service. This meta 
information for the parameters allows them to have many of the 
attributes that are desired below e.g. being optional, having defaults, 
descriptions etc.

I am preparing a note on this

http://www.astrogrid.org/maven/docs/snapshot/applications/design/CEADesignIVOANote.html

It contains links to all the WSDL and schema that we are currently using 
in our live implementation.

Cheers,
    Paul.



Doug Tody wrote:

>I think I agree with everything Ray said below but I would like to say more
>about the concept of optional parameters to a service call.
>
>The issue here is whether our service has a simple "function with
>arguments" method call, as when SOAP is used to serialize a distributed
>method call from some language, or a higher level "parameter" mechanism,
>where parameters may be optional, may have default values, constraints,
>and so forth.  The higher level parameter mechanism is what is most
>needed to interface complex services such as SIA/SSA, or to expose most
>astronomy components (tasks) as services.  Such tasks may have many
>(dozens) of parameters, most of which are optional and have default values.
>
>In general, for each service, what we want is to be able to define a
>"parameter set" schema which defines a set of parameter objects, some of
>which are required, some of which are optional, each of which may have a
>default value, and possibly other attributes such as minimum and maximum
>values, an enumerated list of values, a descriptive string, possibly
>a units specifier, etc.  This could then be used on the client side to
>compose a valid parameter set instance before invoking the remote service,
>or it could be used on the service side to implement a parameter handling
>front-end to the service.  The actual invocation would pass parameters as a
>simple parameter and value whether rendered into in GET or SOAP.  Ideally it
>should be possible to input parameters in any order, and services should
>be permitted to extend the interface to add service-specific parameters.
>
>Below Ray also suggests permitting interfaces to be extended to add non-standard
>methods, which is also desirable.    Doug
>
>
>
>
>On Thu, 17 Jun 2004, Ray Plante wrote:
>
>  
>
>>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
>>
>>
>>
>>
>>    
>>
>
>
>  
>

-- 
Dr. Paul Harrison, Astrogrid Developer
MERLIN/VLBI National Facility, University of Manchester,
Jodrell Bank Observatory, Macclesfield, Cheshire SK11 9DL, U.K.
tel +44 (0)1477 572681 (direct), 571321 (switch) - 07904025192 (mobile).



More information about the grid mailing list