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

Reply via email to