Hi, I am sorry i didn't understand what you mean by "minimal go" .I can collaborate with the person who will be doing TAVERNA-878 and adjust accordingly is that okay.
Now i will make proposal and send it to you so you can say where should i improve :) . regards, Thilina. On Tue, Mar 15, 2016 at 10:50 PM, Stian Soiland-Reyes <[email protected]> wrote: > Yes, that's pretty much it! Good investigation. > > For #3 you will have to make a best effort as to what is to be > contained in the JSON as it might have to be adjusted for TAVERNA-878. > > > Are you considering also having a minimal go at TAVERNA-878? :) > > On 15 March 2016 at 15:17, Thilina Manamgoda <[email protected]> > wrote: > > Hi, > > For TAVERNA-880 (discovery) these are the things i should do ? > > > > 1). Build service discovery plugin for CWL . > > > > 1. Implement AbstractConfigurableServiceProvider which will > > look for *.cwl files in given directory. > > 2. provide ServiceDescriptions which holds configurations > for > > CWL when findServiceDescriptionsAsync is called.These configurations > > should be in JSON . > > 3.These JSON configuration should have details to build > > CWLActivity.class like How Input port and output port are defined . > > > > 2) Testing and documentaion > > > > > > > > Am i correct ? > > > > regards , > > Thilina. > > > > > > On Tue, Mar 15, 2016 at 8:24 PM, Thilina Manamgoda < > [email protected]> > > wrote: > > > >> Hi, > >> > >> > >> On Tue, Mar 15, 2016 at 8:00 PM, Stian Soiland-Reyes <[email protected]> > >> wrote: > >> > >>> On 15 March 2016 at 08:07, Thilina Manamgoda <[email protected]> > >>> wrote: > >>> > >>> > I have gone through the tutorials Service invocation plugin > >>> > < > >>> > http://dev.mygrid.org.uk/wiki/display/developer/Tutorial+-+Service+invocation+plugin > >>> > > >>> > and Service discovery plugin > >>> > < > >>> > http://dev.mygrid.org.uk/wiki/display/developer/Tutorial+-+Service+discovery+plugin > >>> >. > >>> > >>> Great! Did you find any issues while doing so? > >>> > >>> > >>> > So in order to bring CWL workflows to the Taverna i have to implement > >>> Service > >>> > discovery plugin > >>> > < > >>> > http://dev.mygrid.org.uk/wiki/display/developer/Tutorial+-+Service+discovery+plugin > >>> > > >>> > for CWL right ?. > >>> > >>> Yes, the TAVERNA-880 task is basically to implement a service > >>> discovery plugin for CWL. > >>> > >>> The Service Invocation tutorial would be more relevant for > >>> TAVERNA-878. It could be that to test your UI, to be able to drag a > >>> CWL Tool into a workflow, you need to have a "dummy" Activity similar > >>> to the one in the tutorial, even if it doesn't actually do any actual > >>> invocation when it is run. That is, it would be a placeholder. > >>> > >>> > >>> > 1. SCULF2 workflows are saved as workflow bundle document . > >>> > >>> Correct.. except it's a ZIP file of XML files, not a single document > :-) > >>> > >>> > >>> > 2. Service discovery plugin > >>> > < > >>> > http://dev.mygrid.org.uk/wiki/display/developer/Tutorial+-+Service+discovery+plugin > >>> > > >>> > Service > >>> > Description is java bean and it's build using corresponding workflow > >>> > bundle document . > >>> > >>> It's a java beans (in the Configuration), but as the tutorial is > >>> according to Taverna 2.5 you will later need to update your Service > >>> Discovery code for Taverna 3, where you will use the Taverna Language > >>> SCUFL2 API - which is a java bean approach to the Workflow Bundle. > >>> (those beans are then saved to the Workflow Bundle ZIP file, but that > >>> is already handled). > >>> > >>> The beans are different though, the Taverna 2.5 beans have a > >>> Configuration subclass per activity type, e.g. a ToolConfiguration - > >>> while in Taverna 3 the Configuration class is not subclassed (instead > >>> it declares a type URI), and all the actual configuration is in the > >>> linked JSON object - which content would vary per configuration type. > >>> > >>> > >>> > >>> > 3. Activity has the logic of workflow .For example let's say service > is > >>> > addtiion of two numbers . Then two numbers are input and the > addition is > >>> > inside the Activity class . > >>> > >>> Exactly, the Activity is the thing that actually 'happens' in a box in > >>> the workflow. The rest of the workflow is basically connections, > >>> iterations and controls. > >>> > >>> > >>> > 4.Activity class is also configured (build) using corresponding > >>> workflow > >>> > bundle document . > >>> > >>> Yes. When a WorkflowBundle is set to run, the Taverna Engine will > >>> select the corresponding Activity subclass based on its type URI, > >>> instantiate it, and then configured it with a JsonObject (which exists > >>> as a JSON file if the Workflow Bundle is saved as a ZIP file.) > >>> > >>> > >>> There are different types of activities depending on what kind of > >>> invocation they are doing, e.g. a RESTActivity that can do HTTP calls > >>> (the configuration says which URI and headers), the ToolActivity can > >>> execute a local or SSH command line (the configuration says which > >>> command/host), or the BeanshellActivity can run a Beanshell script > >>> (the configuration contains the script). There are thus different > >>> configuration types, and a corresponding JSON Schema that says which > >>> keys and value types to expect for a given type. > >>> > >>> > >>> The imagined CWLActivity (TAVERNA-878) will be either a new kind of > >>> activity, or just an alternative configuration of the ToolActivity - > >>> as basically a CWL Tool is a command line that in theory may be > >>> executed using the correct "docker run" syntax. In Taverna 3 it is > >>> possible to have different kinds of configuration for the same > >>> activity, the ToolActivity could be changed to recognize both its > >>> existing "classic" Tool configuration and a new "CWL tool" > >>> configuration. > >>> > >>> If you are interested in this execution logic, then it is probably > >>> worth having an early stage investigation in the beginning of your > >>> GSOC project to see to what extent the existing execution logic of the > >>> ToolActivity can run a docker command line - e.g. experimenting in the > >>> 2.5 Workbench and adding a Tool that executes a tool as in the CWL > >>> Tool description, and then you would be able to see the configuration > >>> mapping in a way. (But it could be that this reveals that say the > >>> data handling of CWL Tools is different to how the Tool activity > >>> handles input and output files - in which case a new CWLActivity would > >>> be a better approach). > >>> > >>> As you write up your project proposal now, you should have some rough > >>> estimates and time plans. Doing both TAVERNA-878 (activity) and > >>> TAVERNA-880 (discovery) could be too much for the short duration of > >>> GSOC, so if you are interested in both I would suggest to do one of > >>> them only minimally. > >>> > >>> > >>> > *5. when designing a CWL * Service discovery plugin > >>> > < > >>> > http://dev.mygrid.org.uk/wiki/display/developer/Tutorial+-+Service+discovery+plugin > >>> > > >>> > i > >>> > Have to implement dummy Activity class for CWL . > >>> > >>> > >>> Yes, with a "dummy activity" I mean one that can't actually execute > >>> anything, it might just always say "Hello" on the output so that you > >>> can see in the workbench that you have added something from your CWL > >>> Service Discovery plugin. > >>> > >>> Also when you do this in Taverna 2.5 you need to have an actual > >>> Activity subclass to add to the workflow - this is a problem in 2.5 in > >>> that you couldn't build workflows with activities your local Taverna > >>> didn't know how to execute. In Taverna 3 the workflow building is done > >>> with plain java beans from the Taverna Language API, and those don't > >>> know anything about execution, and so there it would be possible to > >>> build workflows with activities that only run elsewhere (e.g. build a > >>> workflow in Windows even though its activity can only run in Linux). > >>> > >>> > >>> Alan - do you think in Taverna 2.5 phase we could let the CWL > >>> Discovery plugin add a DisabledActivity instance and then chuck the > >>> configuration JSON inside the XML? Would not then that XML be saved > >>> directly to the .t2flow? It would be a bit cheating.. but then this > >>> would be cheating anyway, and also it would mean it would both save > >>> from Taverna Workbench 2 and load in Taverna 3. (We would need to add > >>> a translator on the Taverna Language side though). > >>> > >>> > It should have logic to > >>> > execute cwl-runner with corresponding tool and inputs and get the > >>> output . > >>> > >>> > >>> Executing cwlrunner from Taverna (configured with a CWL workflow > >>> rather than a CWL tool) could be an interesting thing - that would be > >>> a way to include a CWL workflow as a nested workflow in Taverna. > >>> However I think that would be a different approach, so I've tracked > >>> that as a new Jira task > >>> https://issues.apache.org/jira/browse/TAVERNA-938 > >>> > >>> This could be some kind of intermediate approach you could explore if > >>> you want, as you can execute any cwl tool by generating a one-step cwl > >>> workflow and run cwlrunner. However then the user would need to have > >>> cwlrunner AND Taverna installed, so it would be more of an > >>> intermediate solution, which would however be great for demonstration > >>> purposes - and mean that your GSOC work would be usable without > >>> waiting for the other tasks. > >>> > >>> > >>> Personally I am also going to try to work on the CWL support during > >>> this spring/summer - so whatever tasks are not picked by an accepted > >>> GSOC student would be something I would try to do - however I wouldn't > >>> want the students to have to rely on this arriving in time, as your > >>> GSOC evaluation (which determines if you get paid!) should be > >>> independent of other concurrent work, including different GSOC > >>> students. That doesn't mean you can't collaborate and discuss > >>> solutions on this list - I would hope you do! Just don't build other > >>> people's work into your project proposal like a blocker. > >>> > >>> > >>> You are asking the right questions! Feel free to ask if you need help > >>> with your project proposal! > >>> > >>> > >>> -- > >>> Stian Soiland-Reyes > >>> Apache Taverna (incubating), Apache Commons RDF (incubating) > >>> http://orcid.org/0000-0001-9842-9718 > >>> > >> > >> > > > > -- > Stian Soiland-Reyes > Apache Taverna (incubating), Apache Commons RDF (incubating) > http://orcid.org/0000-0001-9842-9718 >
