Difference between revisions of "Web services package"

From VistrailsWiki
Jump to navigation Jump to search
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
* ''Tommy investigate what a good web service library that can be integrated with VisTrails''
* 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: SUDS (https://fedorahosted.org/suds/)
*** Potential library: [https://fedorahosted.org/suds/ SUDS]
**** Tommy: It looks like a good alternative.
**** 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:
**** http://www.taverna.org.uk/introduction/services-in-taverna/
**** 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).
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 [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