Difference between revisions of "Web services package"
Jump to navigation
Jump to search
(15 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
* | * Assigned to Tommy | ||
* Now using SUDS library | |||
** Emanuele's pointers: | ** Emanuele's pointers: | ||
*** It is important to have in mind that we need to create Modules for methods and types on the fly. [http://pywebsvcs.sourceforge.net/ ZSI] provided a way to generate class stubs for all methods and types in a wsdl file and VisTrails used those to create the Modules. I believe the other libraries can't do that so we might have to do that ourselves. | *** It is important to have in mind that we need to create Modules for methods and types on the fly. [http://pywebsvcs.sourceforge.net/ ZSI] provided a way to generate class stubs for all methods and types in a wsdl file and VisTrails used those to create the Modules. I believe the other libraries can't do that so we might have to do that ourselves. | ||
*** Potential library: | *** Potential library: [https://fedorahosted.org/suds/ SUDS] | ||
**** | **** Simple interface | ||
**** The WSDL can be cached in different ways. | |||
**** Complex types can be stored as dict's. | |||
*** This page on stackoverflow can also be useful: [http://stackoverflow.com/questions/206154/whats-the-best-soap-client-library-for-python-and-where-is-the-documentation-fo What's the best SOAP client library for Python, and where is the documentation for it?] | *** This page on stackoverflow can also be useful: [http://stackoverflow.com/questions/206154/whats-the-best-soap-client-library-for-python-and-where-is-the-documentation-fo What's the best SOAP client library for Python, and where is the documentation for it?] | ||
*** Here's how Taverna handles Web Services: | *** Here's how Taverna handles Web Services: | ||
Line 9: | Line 12: | ||
**** They use Axis 1 to parse WSDLs and call web services, but built an [http://taverna.googlecode.com/svn/taverna/utils/net.sf.taverna.wsdl-generic/trunk/ overlay on top of Axis1 to do higher-level support], for instance caching of XSDs and header support. | **** They use Axis 1 to parse WSDLs and call web services, but built an [http://taverna.googlecode.com/svn/taverna/utils/net.sf.taverna.wsdl-generic/trunk/ overlay on top of Axis1 to do higher-level support], for instance caching of XSDs and header support. | ||
**** REST support is currently under development with an alpha due out in September. | **** REST support is currently under development with an alpha due out in September. | ||
** Status of Web Service examples in vistrails | |||
*** chebi_webservice: OK | |||
*** chembiogrid_webservice: There are no namespaces in the .vt file that indicates where to find the wsdl file. Namespace bug? | |||
*** DataTransformation_webservice: Methods not available but at least a nice message: "This service was terminated. Thank you for your access." | |||
*** DDBJ_webService: "Pipeline cannot be instantiated: Output port 'Result' has bad specification in module edu.utah.sci.vistrails.basic of package PythonSource" signature="(edu.utah.sci.vistrails.control_flow:ListOfElements)". Is this related to the removed ListOfElements type? | |||
*** EMBOSS_webservices: OK | |||
*** EntrezGeneToKEGG Pathway: OK | |||
*** KEGGPathway: OK | |||
*** KEGG_SearchEntities_webservice: OK | |||
*** KEGG_webservices: OK | |||
*** noaa_webservices: "1" has Been appended to method names. Bug/change in wsdl file? (looks like bug) OK (works now) | |||
*** protein_visualization: OK | |||
*** structure_or_id_webservice: OK | |||
** Status of translating examples to the new WebService package | |||
*** chebi_webservice: OK | |||
*** chembiogrid_webservice: Cannot construct (original broken) | |||
*** DataTransformation_webservice: OK (But service terminated) | |||
*** DDBJ_webService: Cannot construct (original broken) | |||
*** EMBOSS_webservices: OK (had to handle base64 encoding and add an enum module) | |||
*** EntrezGeneToKEGG Pathway: OK (Identical to KEGGPathway) | |||
*** KEGGPathway: OK | |||
*** KEGG_SearchEntities_webservice: OK | |||
*** KEGG_webservices: OK | |||
*** noaa_webservices: OK | |||
*** protein_visualization: OK | |||
*** structure_or_id_webservice: OK | |||
** Proxy now works | |||
** Related tickets | |||
*** [https://vistrails.sci.utah.edu/ticket/339] | |||
*** [https://vistrails.sci.utah.edu/ticket/340] |
Latest revision as of 17:02, 4 November 2010
- Assigned to Tommy
- Now using SUDS library
- Emanuele's pointers:
- It is important to have in mind that we need to create Modules for methods and types on the fly. ZSI provided a way to generate class stubs for all methods and types in a wsdl file and VisTrails used those to create the Modules. I believe the other libraries can't do that so we might have to do that ourselves.
- Potential library: SUDS
- Simple interface
- The WSDL can be cached in different ways.
- Complex types can be stored as dict's.
- This page on stackoverflow can also be useful: What's the best SOAP client library for Python, and where is the documentation for it?
- Here's how Taverna handles Web Services:
- http://www.taverna.org.uk/introduction/services-in-taverna/ the model is that any "plain" SOAP service can be used immediately, given the URL of its WSDL specification, while some special collections like caGrid, Biomoby and other services need a Taverna plugin to be used, due to their specific requirements (regarding security, for example).
- They use Axis 1 to parse WSDLs and call web services, but built an overlay on top of Axis1 to do higher-level support, for instance caching of XSDs and header support.
- REST support is currently under development with an alpha due out in September.
- Status of Web Service examples in vistrails
- chebi_webservice: OK
- chembiogrid_webservice: There are no namespaces in the .vt file that indicates where to find the wsdl file. Namespace bug?
- DataTransformation_webservice: Methods not available but at least a nice message: "This service was terminated. Thank you for your access."
- DDBJ_webService: "Pipeline cannot be instantiated: Output port 'Result' has bad specification in module edu.utah.sci.vistrails.basic of package PythonSource" signature="(edu.utah.sci.vistrails.control_flow:ListOfElements)". Is this related to the removed ListOfElements type?
- EMBOSS_webservices: OK
- EntrezGeneToKEGG Pathway: OK
- KEGGPathway: OK
- KEGG_SearchEntities_webservice: OK
- KEGG_webservices: OK
- noaa_webservices: "1" has Been appended to method names. Bug/change in wsdl file? (looks like bug) OK (works now)
- protein_visualization: OK
- structure_or_id_webservice: OK
- Status of translating examples to the new WebService package
- chebi_webservice: OK
- chembiogrid_webservice: Cannot construct (original broken)
- DataTransformation_webservice: OK (But service terminated)
- DDBJ_webService: Cannot construct (original broken)
- EMBOSS_webservices: OK (had to handle base64 encoding and add an enum module)
- EntrezGeneToKEGG Pathway: OK (Identical to KEGGPathway)
- KEGGPathway: OK
- KEGG_SearchEntities_webservice: OK
- KEGG_webservices: OK
- noaa_webservices: OK
- protein_visualization: OK
- structure_or_id_webservice: OK
- Proxy now works
- Related tickets
- Emanuele's pointers: