220 likes | 481 Views
What is the task?. You have (or someone else has) one or more command-line analysis toolsYou want to access them from other computers, eventually over an InternetYou want to access them using your (or someone else's) programs, not just by filling the forms and clicking on web pages. How it fits with the rest of the world.
E N D
1. SoaplabSOAP-based Analysis Web Services Martin Senger <senger@ebi.ac.uk>
http://industry.ebi.ac.uk/soaplab
2. What is the task? You have (or someone else has) one or more command-line analysis tools
You want to access them from other computers, eventually over an Internet
You want to access them using your (or someone else’s) programs, not just by filling the forms and clicking on web pages If these three points are close enough to your task then Soaplab can help you.
Additionally, Soaplab is especially useful if you have more tools, perhaps spread on many computers, because all of them will be able to be accessed in a uniform way. Also, their descriptions will be uniform. An example of such suitable package is EMBOSS (http://www.emboss.org).
If these three points are close enough to your task then Soaplab can help you.
Additionally, Soaplab is especially useful if you have more tools, perhaps spread on many computers, because all of them will be able to be accessed in a uniform way. Also, their descriptions will be uniform. An example of such suitable package is EMBOSS (http://www.emboss.org).
3. How it fits with the rest of the world Phase 1: Describe your command-line tool (preferable using an ACD file)
http://www.hgmp.mrc.ac.uk/Software/EMBOSS/Acd/index.html
Phase 2: Soaplab
this whole presentation is about this phase
Phase 3: Write your own programs (GUIs and others) to access tools via Soaplab
part of this presentation is about this
Taverna: an example of a workflow system using Soaplab (and other) web services as components Phase 1:
Description of the ACD files is tight closely to EMBOSS. But the syntax allows some extension which can be useful for non-EMBOSS applications. More about it later in the “Advanced topics”.
Phase 2:
It includes Soaplab architecture, resources, and to install and use Soaplab.
Phase 3:
Samples of programs in Java and Perl…
Phase 1:
Description of the ACD files is tight closely to EMBOSS. But the syntax allows some extension which can be useful for non-EMBOSS applications. More about it later in the “Advanced topics”.
Phase 2:
It includes Soaplab architecture, resources, and to install and use Soaplab.
Phase 3:
Samples of programs in Java and Perl…
4. What Web Services are in Soaplab? By resources that are being accessed:
command-line tools (sub-project: AppLab)
web pages (sub-project: Gowlab)
By results that are being delivered:
Analysis/Gowlab Factory Service (misnomen)
produces a list of all available services
Analysis Service
represents one analysis tool and allows to start it, to control it, and to exploit it, or it represents a remote web page accessible using the same API as other Soaplab analysis services
does it in loosely type manner using the same API for all analysis
Derived Analysis Service
does the same as the Analysis Service above but in a strongly typed manner having individual API for any individual analysis tool
5. The hard job is to describe your analysis tool in an ACD file.
Another job is to write your own client (if it is hard depends what else the client foes; connection with the Soaplab web services is not hard)
Everything in between is a matter of downloading, installing (supported by an installation script), and starting two servers(Applab and Tomcat).The hard job is to describe your analysis tool in an ACD file.
Another job is to write your own client (if it is hard depends what else the client foes; connection with the Soaplab web services is not hard)
Everything in between is a matter of downloading, installing (supported by an installation script), and starting two servers(Applab and Tomcat).
6. The hard job is to describe your analysis tool in an ACD file.
Another job is to write your own client (if it is hard depends what else the client foes; connection with the Soaplab web services is not hard)
Everything in between is a matter of downloading, installing (supported by an installation script), and starting two servers(Applab and Tomcat).The hard job is to describe your analysis tool in an ACD file.
Another job is to write your own client (if it is hard depends what else the client foes; connection with the Soaplab web services is not hard)
Everything in between is a matter of downloading, installing (supported by an installation script), and starting two servers(Applab and Tomcat).
7. A. Client developer Needs to know the Soaplab API
Can develop in any programming language
Needs to know a place (an endpoint) with a running Soaplab services
http://industry.ebi.ac.uk/soap/soaplab (EMBOSS)
Can use the ready, pre-prepared Java and Perl clients
8. Soaplab APIhttp://industry.ebi.ac.uk/soaplab/API.html
9. Once you know API…
10. Once you know API… …or using BioPerl modules Note that neither of these examples sends any input data (the ‘showdb’ analysis just shows what databases it can reach).Note that neither of these examples sends any input data (the ‘showdb’ analysis just shows what databases it can reach).
11. What names to use for inputs? Ask getInputSpec()
some inputs are mutually exclusive (but Soaplab does not tell you ?)
supported types: basic types
And the results? Ask getResultSpec()
expected types: basic types, byte[], byte[][]
better check org.embl.ebi.SoaplabClient.AxisUtils.aa2bb()
12. What else… Code examples at:
http://industry.ebi.ac.uk/soaplab/UserGuide.html
Play also with existing clients:
run-analysis-client –h
run-factory-client –h
run-registry-client –h
run-tutorial
13. B. Service provider EMBOSS provider
contains pre-generated XML files for all EMBOSS analysis (but not EMBOSS itself)
Provider of your own analysis tools
contains for creating XML files
14. Installation Run perl INSTALL.pl
and you will be asked many questions
or prepare your answers in environment variables and run: perl INSTALL.pl –q
Do you want to add your analyses?
write an ACD file (e.g. metadata/bigdeal.acd)
run: generator/acd2xml –d –l MyApps.xml bigdeal
see generator/README for details
15. What questions to expect?
16. And run it! ./run-AppLab-server
check AppLabServer.log
(start your Tomcat)
./ws/deploy-web-services
try any client
check soaplab.log
…complain to senger@ebi.ac.uk
17. Deploying services That can be tricky…because it includes many things:
move your classes to Tomcat
create service descriptors (files *.wsdd)
generate and compile code for the derived services
etc.
Therefore, use a Soaplab admin client:
run-admin-client –help
which is used by ws/deploy-web-services, anyway
18. Practical session
19. A. Main steps Download various Soaplab distributions
Try several ready clients
Code your own client (calling EMBOSS at EBI)
Run Soaplab on top of your own EMBOSS installation on your machine
Code your own ACD file and run Soaplab service on top of it
20. Code your own client Calling EMBOSS at EBI:
class Seqret.java
usage:java Seqret [format] < input_sequence > reformatted_sequence
where format represents output sequence format and is used as parameter osformat, and input_sequence is used as parameter sequence_direct_data or sequence_usa (check for double colon)
check it by calling:
java Seqret ncbi < embl:v08008
it does the same as:
21. Run Soaplab on top of your EMBOSS Install EMBOSS
Install the rest ?
run AppLab and Tomcat servers
deploy Soaplab services
check with Soaplab and your clients
22. Add your own analysis add a “real” analysis
cal [–m] [–j] [–y] [[month] year]
write an ACD file
convert it to XML, create MyApp.xml
edit run-AppLab-server script
restart AppLab and Tomcat server
deploy:
ws/deploy-web-services –n cal –l
try by: ws/run-analysis-client
add a Gowlab-based resource