Hi guys. Marco asked me to write up my experiences with writing a T2 Workbench plugin and to point out my concerns, if any. So here goes!
0. Before I start, you should know that in the end I did succeed and I did produce a working plugin. So there is light at the end of the tunnel. I'm using the version of T2 Workbench that is the current download from the website (i.e. released version) - I don't believe in developing against unreleased versions unless there is a known and fixed release date for the unreleased feature I need to use. 1. It was very hard finding documentation on how to write T2 Workbench plugins. I found that the only realistic way to achieve it was to talk directly to Alex, Stuart and Stian and ask lots of questions. Also due to the complexity of the task, it was easier to do that in person than by email! 2. The platform developer workshop in Manchester was excellent. It would be good to have a similar workshop for workbench developers. 3. It would be really good to have a single document listing every single extension point, the class name to specify in a plugin in order to extend it, and what it does. Both for the workbench and for the platform. 4. In general it seems posts to this list and to the mygrid list don't get the same response rate as writing to people directly. 5. I was unaware when setting out that: a. T2 Workbench and Platform were plugin-incompatible, b. T2 Workbench has no built-in remote execution facilities, c. T2 Workbench has no (actually existing and usable) framework for working with security (the username/password HTTP basic auth setup at present is a workaround not a solution, according to Alex, and the security agents recommended by Tom don't exist yet in the workbench). 6. I noticed some usability issues with T2 Workbench: a. no user-friendly way of adding SSL certs to the keystore for services running over HTTPS (just try explaining to end-users how to achieve this using openssl tools and the java command line!), b. no ability to delay loop iterations without entering custom Java code, c. no interface-based explanation of what 'matches' means in the loop condition box, d. the loop condition box fails to render properly if you put a custom condition in (might be an issue with my Ubuntu/Java combo but not sure), e. custom loop conditions do not get saved in the workflow XML, therefore it is not possible to correctly save/reuse/distribute/share workflows that use custom loop conditions, f. no multi-activity loop or if/else facility (e.g. do tasks a, b, c, if task c says x, then loop back to a, otherwise continue onto task d). g. you need to restart the workbench after installing a plugin otherwise the plugin does not take effect, but this is not indicated, h. if you close down the workbench and reopen it, all your newly added activities in the activity palette disappear and you have to do it all again, i. there is no way to remove or alter an activity after you've added it to the activity palette, j. it would be nice if T2 could add XML splitters automatically (or even better, invisibly) to WSDL services with complex data types as they're needed more often than they're not needed, k. the default empty workflow should probably include default workflow input and output elements already in the empty workflow - or maybe when you do 'new workflow' you could choose from a list of different templates, like you can when starting a new document in a word processor? l. there's no way to stop a workflow once it has started, or check progress, or gain intermediate results, or look at current values/data, or view errors if it fails, or restart it part-way through after a failure. m. given the lack of remote execution, a 'suspend to disk' button might work nicely - saving the current workflow state and data to disk to be reloaded next time T2 Workbench is started up - thus avoiding data loss due to a predictable/known situation requiring a restart of the workbench (e.g. Windows installs an update then forces a reboot). n. in general for an end-user it's unclear where to go to report these usability issues. Of all of these, the biggest issue is remote execution. It's very disheartening for a user to set up a long workflow which might run for a week, then on the last day their desktop PC crashes and they lose everything and have to start all over again. Users really need to be able to easily submit workflows for execution on a remote server (the assumption is that a server is more reliable than their PC), and preferably without having to write any code to do it - just click a button and specify the server and off it goes. Stian pointed out the caGrid plugin which kind-of does this, but not really (it only executes simple services). Hopefully these comments will be seen as constructive criticism - I like T2 Workbench, it's just a bit frustrating to use sometimes! :) thanks, Richard -- Richard Holland, BSc MBCS Finance Director, Eagle Genomics Ltd T: +44 (0)1223 654481 ext 3 | E: [email protected] http://www.eaglegenomics.com/ ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ taverna-hackers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/taverna-hackers Developers Guide: http://www.mygrid.org.uk/usermanual1.7/dev_guide.html FAQ: http://www.mygrid.org.uk/wiki/Mygrid/TavernaFaq
