Thursday, May 26, 2016

Abstract idea of technical stuff !!!




So main goal of this project is to bring CWL UI support to the Taverna Workbench. If you want to know more about Apache Taverna  go here. Common workflow Language (CWL) is a way of describing a workflow or a command line tool. CWL is a combination of JSON, YAML.
                                   
                                                             So in this summer i will create CWL Ui plugin for Apache Taverna workbench and following points describe how approach it.



  • SnakeYaml is a library which can be used to read/parse  YAML file and get the content as a MAP.  This MAP object will hold the parsed CWL tool. This MAP object is used to configure CWL Activity.

  • CWL Activity is the place where all the magic happens. This is where the process is defined and at execution time this object will do the job. But when the tool is added to the workbench only input and output ports are configured. So UI of the tool will appear on the workbench according to how the  ports are configured. This tutorial, which  describes  how to build a UI plugin for Apache Taverna Workbench. 

  • I have to build Dummy CWL Activity to hold the CWl configuration. Here i have to go through the MAP object looking each input and output and call AddInput() and addOutput() methods. I have to figure out what is the File type and the depth (whether it is a single file or array or array of arrays) and call previously mentioned methods accordingly.

  • CWl Service Provider is responsible for providing CWL tool service descriptions to the workbench. In side this what happens is, look for cwl tools for given directory and read them and built MAP object wrap it in a  CWL configuration Bean.   
 

Sunday, May 1, 2016

Background


 Figure 01 : Abstract view of this project

  The Taverna suite is consist of Taverna Engine, which handles both Taverna Workbench and the Taverna Server. Taverna Server is used to execute remote workflows and workbench provides GUI for create, run, import workflows. This concept allow scientists who has limited knowledge in computing, limited technical resources to do complex process on Data. Also Taverna engine can be run on standard Windows, Linux or Mac OS.
At the moment Taverna workflows are constructed using SCULF2 API. So, Tavera Engine can’t execute other workflows other than Taverna workflows. This is where CWL comes in ,The Common Workflow Language (CWL). CWL allows one description of a workflow to be run on multiple different platforms as long as they all support CWL.  " CWL builds on technologies such as JSON-LD and Avro for data modeling and Docker for portable runtime environments ".
The project mission is to bring CWL UI support in the Workbench   which is a graphical way to build workflows and one of the steps in Add Common Workflow Language support to Taverna.