<html>
  <head>
    <meta content="text/html; charset=MacRoman" http-equiv="Content-Type">
    <link rel="stylesheet" href="./basic.css" type="text/css">
    <meta name="generator" content="Helen">
    <title>BioCatalogue Plugin - Features</title>
  </head>
  <body>
    <h2>
      BioCatalogue Plugin - Features
    </h2>
    
    <h3>
      BioCatalogue Perspective
    </h3>
    <p>
      This perspective is designed for searching and browsing the BioCatalogue
      data. It aids with discovery of Processors that may be used in a workflow.
    </p>
    
    <p>
      In the BioCatalogue perspective you may:
      <ul>
        <li>Search for Web Services by free text queries of by tags;</li>
        <li>Filter search results by the same set of criteria as available on the BioCatalogue website;</li>
        <li>Save favourite filters and search queries for re-use at a later point;</li>
        <li>View search history;</li>
        <li>Immediately see the types and monitoring statuses of all found Web
            Services directly in the results listings;</li>
        <li>Preview Web Services.</li>
      </ul>
    </p>
    
    <p>
      Web Service previews display a similar set of information to
      that shown on the BioCatalogue website: service description,
      type, location, provider and other details are shown. Listing
      of all operations and their descriptions within that Web Service
      is shown. Any operation may be added directly into the current
      workflow or into the Service Panel in the Design Perspective
      for later use.
    </p>
    
    <h3>
      Integration into Design Perspective
    </h3>
    
    <p>
      <ul>
        <li>Any Web Service operations added to the Service Panel from the BioCatalogue
            perspective can be dragged into the Workflow Diagram like any other Processors.
            They are saved by the plugin, so that when Taverna is restarted, those services
            can still be found in the Service Panel.
        </li>
        <li>Right mouse click on a Processor in the Workflow Explorer or Workflow Diagram
            will display options provided by the plugin - for all WSDL Processors it is
            possible to check their monitoring status or launch the Processor Preview.
        </li>
        <li>Right mouse click on an empty space in the Workflow Diagram will let to launch
            the workflow "health check" - currently this feature will identify a list of all
            WSDL activities in a workflow and will fetch the latest monitoring data about
            each of the from BioCatalogue.
        </li>
        <li>"Details" tab in the contextual view area (bottom-left corner of the Design
            Perspective) will display information about the WSDL Processors and their
            input or output ports (if they are registered in BioCatalogue). These contextual
            views are only shown if BioCatalogue knows how to handle the selected type of
            workflow element.
        </li>
      </ul>
    </p>
    
    
    <h3>
      Choosing the BioCatalogue Instance to Work With
    </h3>
    
    <p>
      The BioCatalogue is an open-source project and anyone can setup their
      own instance of the BioCatalogue software. By default, the plugin is
      configured to use the main BioCatalogue website
      (at <font color="blue">http://www.biocatalogue.org</font>) as a source
      of data.
    </p>
    <p>
      Should this be necessary, the plugin can be configured to use another
      instance of BioCatalogue. This can be done through the Preferences dialog
      of Taverna by going to: <pre>File -> Preferences -> BioCatalogue</pre>
    </p>
    
    
    <h3>
      Known Issues and Missing Functionality
    </h3>
    
    <p>
      Below are the most important known issues. These will be fixed in the later releases.
    </p>
    
    <p>
      <ul>
        <li>Previews are only available for SOAP services, but not REST services
            or users, registries, service providers.
        </li>
        <li>Search history, favourite search queries and filters are not persisted.
            This means that this data will only be available for the current working
            session and will be lost after Taverna is switched off.
        </li>
        <li>Only read access to the BioCatalogue data is currently provided.</li>
      </ul>
    </p>
  </body>
</html>
