You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@taverna.apache.org by Ian Dunlop <ia...@gmail.com> on 2017/01/11 15:53:04 UTC

Using Taverna server directly with mobile app

Hello,

I mentioned a while ago that it might  make more sense to use the
taverna server directly rather than via the player. So I did some
experimenting on a branch and added the ability to create a workflow run
on a tavserver via tavmob. It uses basic auth so is similar to how the
player works but makes more use of http headers to return info about the
run. I haven't got much further because the next bit is definitely
harder. When you get the uuid back for a run you then need to ask the
server for details about the inputs and show these in the app.

You can find the code in the branch  ian_taverna_server

I set up a "part secured" tavserv and used the webapp to create a user
which you set inside the mobile app using the settings page just as you
would for the player.

There are a few curl commands below which I used to interact with the
server so I could figure out what urls and http verbs to use. So in
principle it seems it is possible. One thing I wondered is whether the
server can connect to LDAP which would be good for 'enterprise' use.

Curl commands:

curl -k -i -X POST -d @Fetch_today_s_xkcd_comic-v1.t2flow --header
"Content-Type:application/vnd.taverna.t2flow+xml"
http://user:password@localhost:8080/TavernaServer-2.5.4/rest/runs >> res.txt

Response should be a 201 created with a Location header containing the
url for the run eg Location:
https://localhost:8443/TavernaServer-2.5.4/rest/runs/26723ea5-a622-4986-9f01-5d201358b624

curl -k -i -X PUT -d "Operating" --header "Content-Type:text/plain"
http://user:password@localhost:8080/TavernaServer-2.5.4/rest/runs/26723ea5-a622-4986-9f01-5d201358b624/status
>> start.txt

Response should be a 202 accepted with content "starting run..."

curl -k -i -X GET
http://user:password@localhost:8080/TavernaServer-2.5.4/rest/runs/26723ea5-a622-4986-9f01-5d201358b624/status
>> status.txt

If finished will be 200 OK with "Finished"

Then get an xml document with the output ports

curl -k -i -X GET
http://user:password@localhost:8080/TavernaServer-2.5.4/rest/runs/26723ea5-a622-4986-9f01-5d201358b624/wd/out
>> out.xml

And ask for one  of  them

curl -k -i -X GET
http://user:password@localhost:8080/TavernaServer-2.5.4/rest/runs/26723ea5-a622-4986-9f01-5d201358b624/wd/out/todaysXkcd
>> output.xml

Then get the actual output (which could be an error)

curl -k -i -X GET
http://user:password@localhost:8080/TavernaServer-2.5.4/rest/runs/26723ea5-a622-4986-9f01-5d201358b624/wd/out/todaysXkcd/1.error
>> error

Cheers,

Ian