Details
-
Bug
-
Status: To Do
-
Minor
-
Resolution: Unresolved
-
None
-
None
Description
Some WSDLs, like http://funcnet.eu/soap/CodaCath.wsdl (attached) specify several portTypes, which each has the same operation name.
Taverna 1.7 and 2.0 lists each of these (but without really showing the port type) in the service palette, while 2.1 beta 1 only shows one of the operations.
When adding to the workflow the port type information is lost, so at runtime only the first matching operation will be used.
This is due Taverna using the WSDL location and the operation name as the defining attributes - to support multiple port types also the name of the port type would have to be included in the WSDL Activity configuration bean and in the WSDL Service description's identifying data.
Not sure if this is WS-I compliant, but Andrew Clegg who posted this to taverna-users on 2009-05-19 believe it is:
I'm a complete newbie to Taverna, I hope this isn't an obvious
question, but I haven't found an answer via Google.If I add a WSDL-based activity from a WSDL that describes several
distinct services, Taverna 2.0 doesn't appear to distinguish between
the services.For example, one of our WSDLs at:
http://funcnet.eu/soap/CodaCath.wsdl
describes four distinct services, but in Taverna they're only referred
to by the WSDL and the operation. In this case the problem is
particularly emphasized because each of the services – by design –
supports the same operation with the same parameters. (They are
different prediction algorithms which each expose the same interface.)So, in Taverna I get four operations called 'ScorePairwiseRelations',
with no way to tell which of the four services in the WSDL they're
referring to.Is this intentional? If so, it seems a bit strange – multiple-service
WSDLs are schema-valid, and compliant with the WS-I interop
guidelines. And the URL of a WSDL file is surely an entirely arbitrary
construct that doesn't really describe what's in it. The URI of each
service in the WSDL would be a better discriminator, right?
Sorry, I meant "the qualified name of each service in the WSDL" –
i.e. namespace + servicename.
Alan says:
I agree. The namespace + servicename + operation would seem to be
better. I will ask Stuart Owen (our WSDL expert) what he thinks.
although Stian thinks the port type should be used.