Resolving endpoints

Paul Harrison pah at jb.man.ac.uk
Fri Jul 2 08:27:35 PDT 2004



Ray Plante wrote:

>Hey Paul,
>
>Thanks for your suggestion.  I think we're beginning to understand a bit 
>more of what we need in the Web Service description.  
>
>I like your use of 'use="wsdl"', and I think we'll need to list the 
>different port names as you suggested.  (Wil suggested the use of standard 
>names for standard ports/operations.  We can still have this and clients 
>can take advantage of this; however, we would need to allow names to be 
>listed for non-standard Web Services.)
>
>One question is, should we include each endpoint address along with the 
>names?  If you want to save the consumer the trouble of pulling them out 
>of the WSDL, then I think including them in the resource record makes more 
>sense than an extra method a la lookupEndpoint().  Consider that for 
>lookupEndpoint() to work, it needs (in addition to the desired port name) 
>to know which WSDL to extract it from, that means an argument that is either:
>  a.  the resource ID
>  b.  the resource record
>  c.  the service endpoint
>  d.  the WSDL
>
>This method is not such a great idea because...
>  o  c. and d. demonstrates that this is really a convenience
>     function--like a static function, if you will; it does not really
>     depend on special knowledge held only by that registry.  I'd
>     rather not impose another method on a registry to do something
>     that a client could go anywhere (including an generic library) to
>     have done.  
>
>  o  a. and b. imply that the registry has to look up the WSDL itself.  If 
>     it has to do that, it might as well do it once at harvest time and 
>     cache the info in its copy of the resource record.  If the
>     harvested record already has this info in it, you save on the lookup.
>
>  
>
I was really thinking of option a

>  o  the method is only relevant to Web Services.  There's nothing
>     else in our registry interface that is specific only to one
>     resource type, except getRegistries(), which I don't think we
>     need either.  
>  
>
I take this point about the registry interface - it was just a convience 
suggestion

>So, should we iterate on a revision to the Web Service interface
>description in the VODataService schema?  Just to set the baseline,
>the description looks like this in v0.5:
>
>   <interface xsi:type="vs:WebService">
>      <accessURL>http:www.astrogrid.org/astrogrid-applicationsCommonE
>xecutionConnectorService.wsdl</accessURL>
>   </interface>
>
>Your suggested modifications would change this to:
>
>   <interface xsi:type="vs:WebService">
>      <accessURL use="wsdl">http:www.astrogrid.org/astrogrid-applicat
>ionsCommonExecutionConnectorService.wsdl</accessURL>
>      <servicePort>MyService</servicePort>
>      <servicePort>HeartBeat</servicePort>
>   </interface>
>
>Now can we get the endpoints in?  We could either put it in as an
>attribute to servicePort, or we make servicePort a complex type with
>children.  What do you think?
>
>  
>
perhaps to be more in keeping with the form of the WSDL we should do 
something like

   <interface xsi:type="vs:WebService">
      <accessURL use="wsdl">http:www.astrogrid.org/astrogrid-applicat
ionsCommonExecutionConnectorService.wsdl</accessURL>
      <serviceEndpoint portname="MyService">http://any.org/endpoint1</serviceEndpoint>
      <serviceEndpoint portname="HeartBeatNonStandardName" type="heartbeat">http://any.org/endpoint2</serviceEndpoint>
   </interface>

with the type attribute being a enumeration of the standard services as 
well as a value meaning that this is intended to be a port offering the 
functional service (I cannot think of a good word to describe this at 
the moment!)

Paul.

-- 
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 registry mailing list