Sphinx is now used to generate our documentation pages.
-
Documentation was updated to reflect the latest changes introduced in the project.
-
Usage Statistics are now cached and refreshed every hour for improved website loading times.
-
Service Status are now similarly cached and monitored every 10 minutes.
-
We now provide a Docker image which allows for JABAWS to be run in Docker containers.
-
Downloading the JABAWS distributions no longer require ‘sign in’ or ‘sign up’ to a user account.
-
The pre-configured JABAWS Amazon Machine Image (AMI), which allowed for JABAWS to be run in the Amazon EC2 cloud, is no longer provided due to very limited use by the scientific community peers.
+
Sphinx is now used to generate our documentation pages.
+
Documentation was updated to reflect the latest changes introduced in the project.
+
Usage Statistics are now cached and refreshed every hour for improved website loading times.
+
Service Status are now similarly cached and monitored every 10 minutes.
+
We now provide a Docker image which allows for JABAWS to be run in Docker containers.
+
Downloading the JABAWS distributions no longer require âsign inâ or âsign upâ to a user account.
+
The pre-configured JABAWS Amazon Machine Image (AMI), which allowed for JABAWS to be run in the Amazon EC2 cloud, is no longer provided due to very limited use by the scientific community peers.
The versions of several application programs provided by JABAWS were bumped to the latest available.
Protein secondary structure prediction with Jpred (version 3.0.3) was dropped from the list of provided services, as the use of the dedicated Jpred REST API (Jpred 4) is encouraged and recommended. This is the version that is currently provided within Jalview 2.9 or later.
Protein secondary structure prediction with Jpred (version 3.0.3) was dropped from the list of provided services, as the use of the dedicated Jpred REST API (Jpred 4) is encouraged and recommended. This is the version that is currently provided within Jalview 2.9 or later.
-
Note
-
JABAWS version 2.2 is fully backward compatible with JABAWS v1.0 and v2.0. This means all JABAWS 1.0, 2.0, 2.0.1 and 2.1 clients should also be able to use JABAWS 2.2 services.
+
Note
+
JABAWS version 2.2 is fully backward compatible with JABAWS v1.0 and v2.0. This means all JABAWS 1.0, 2.0, 2.0.1 and 2.1 clients should also be able to use JABAWS 2.2 services.
Several new web services are available in this version of JABAWS:
-
Two multiple sequence aligners (MSAprobs and GLprobs), both services return the standard Alignment object
-
RNAalifoldWS returns RNAStructScoreManager, which is the standard ScoreManager objects with several additional methods
-
JpredWS returns the JpredAligment object, which is the standard alignment with additional methods for extracting Jpred predictions. These predictions are supplied as additional sequences in the aligment
+
Two multiple sequence aligners (MSAprobs and GLprobs), both services return the standard Alignment object
+
RNAalifoldWS returns RNAStructScoreManager, which is the standard ScoreManager objects with several additional methods
+
JpredWS returns the JpredAligment object, which is the standard alignment with additional methods for extracting Jpred predictions. These predictions are supplied as additional sequences in the aligment
Some bugs have been fixed and several improvements have been done:
-
WS status servlet returns version and some additional information on each web service
-
a bug with path to help in the client
-
Fix two bug with the Google Analytics library: no-stop due to running thread
-
GoogleAnalytics gets proper JABAWS version
+
WS status servlet returns version and some additional information on each web service
+
a bug with path to help in the client
+
Fix two bug with the Google Analytics library: no-stop due to running thread
JABAWS 2.0.1 includes several bug fixes and minor updates for JABAWS Version 2.0. These are listed below:
-
Disembl returned swapped strings for HOTLOOPS and REM465
-
Jronn failed to process jobs with more than 3 sequences
-
JABAWS could not deal with FASTA records with ‘>’ symbols in the record identificator
-
Change of parameter description for AACon: parameters have been replaced with options for calculation methods. This allows a user to get several AACon’s conservation scores in one call
-
JABAWS never cleaned up job directories. Now JABAWS deletes the job directory if it exist longer than a period defined in Engine.properties
-
Default web security has been incompatible with Tomcat 7.0.31 and newer
-
Documentation has been updated
+
Disembl returned swapped strings for HOTLOOPS and REM465
+
Jronn failed to process jobs with more than 3 sequences
+
JABAWS could not deal with FASTA records with â>â symbols in the record identificator
+
Change of parameter description for AACon: parameters have been replaced with options for calculation methods. This allows a user to get several AAConâs conservation scores in one call
+
JABAWS never cleaned up job directories. Now JABAWS deletes the job directory if it exist longer than a period defined in Engine.properties
+
Default web security has been incompatible with Tomcat 7.0.31 and newer
It is important that you cite JABAWS when you use it. Citing us helps us funding the work we do and allow us to continue to improve the project further.
+
Note
+
It is important that you cite JABAWS when you use it. Citing us helps us funding the work we do and allow us to continue to improve the project further.
Peter V. Troshin, James B. Procter and Geoffrey J. Barton - Java Bioinformatics Analysis Web Services for Multiple Sequence Alignment - JABAWS:MS Bioinformatics 2011. 27 (14): 2001-2002. doi: 10.1093/bioinformatics/btr304
Peter V. Troshin, Alexander Sherstnev, James B. Procter, Daniel L. Barton, Fábio Madeira and Geoffrey J. Barton (2017) JABAWS 2.2 Distributed Web Services for Bioinformatics: Protein Disorder, Conservation and RNA Secondary Structure.Paper in preparation.
The JABAWS client is a Java application that lets you run the programs for which a JABAWS server provides web services. This command line application this is able to call any of the JABAWS web services on any instance of JABAWS Server available over the web. The basic client is useful if you would like to test or execute the programs provided by the JABAWS server in your own scripts, but you do not want to handle any web service specific details. The client is an open source software, so you can also use the source code to as an example how to manipulate with JABAWS web services in your own code. The JABA Web Services are WS-I compliant. This means that you can access them from any language that has libraries or functions for consuming interoperable SOAP web services. More information on how to develop software that access JABAWS services is provided in the documentation pages.
The command line client comes as a part of client package which you are welcome to download. The command line client can be used to align sequences using any of JABAWS supported web services. The client is OS independent and supports most of the functions which can be accessed programmatically via JABAWS API. Using this client you could align sequences using presets or custom parameters, please see examples of this below. Here is the list of options supported by the command line client.
Check if you are running the recommended version of Java.
+
Tip
+
Check if you are running the recommended version of Java.
You need Java 7 or higher installed in your machine to be able to run the JABAWS CLI client.
Please see the Java web site for up to date instructions and downloads.
Usage:
java -jar <path_to_jar_file> -h=host_and_context -s=serviceName ACTION [OPTIONS]
-h=<host_and_context> - a full URL to the JABAWS web server including context path e.g. http://10.31.10.159:8080/ws
-s=<ServiceName> - one of [MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS]
@@ -215,15 +220,15 @@ Please note that -r and -f options cannot be used together. Alignment is done wi
Content of input.fasta file is show below (please note sequences has been trimmed for clarity)
-
>Foobar
+
>FoobarMTADGPRELLQLRAAVRHRPQDFVAWL>BarMGDTTAGEMAVQRGLALHQ
@@ -232,11 +237,11 @@ Please note that -r and -f options cannot be used together. Alignment is done wi
Align as in above example, but write output alignment in a file out.clustal, using parameters defined in prm.in file
--nofft--noscore--fastaparttree--retree=10
@@ -244,13 +249,13 @@ Please note that -r and -f options cannot be used together. Alignment is done wi
The format of the file is the same for all JABAWS web services. Parameters are specified in exactly the same way as for native executables - alignment programs like Mafft etc. So parameters which you can use with command line version of an alignment program can be used with JABAWS. Most of the settings controlling alignment process are supported, but because any output has to be handled by JABAWS, settings controlling output are not allowed to be changed. For a list of parameters supported by a web service see the next example. In prm.in parameters are separated by the new line, and name of the parameter is separated from its value with an equals sign. This format is constant no matter which JABAWS web service is used.
The same client can be used to access JABAWS on different hosts. Just point the client to the host you want to use by changing the value of -h key.
-
For example you used -h=http://myhost.compbio.ac.uk:8080/jabaws server, now you want to use another server to -h=http://mylabserver.myuni.edu. This comes handy if your favorite server is off and you need to do the job yesterday.
-
-
+
For example you used -h=http://myhost.compbio.ac.uk:8080/jabaws server, now you want to use another server to -h=http://mylabserver.myuni.edu. This comes handy if your favorite server is off and you need to do the job yesterday.
+
+
@@ -303,6 +308,7 @@ Please note that -r and -f options cannot be used together. Alignment is done wi
SOURCELINK_SUFFIX: '.txt'
};
+
diff --git a/website/docs/develop.html b/website/docs/develop.html
index 17bb6a5..6459087 100644
--- a/website/docs/develop.html
+++ b/website/docs/develop.html
@@ -5,7 +5,8 @@
-
+
+
For Developers — JABAWS 2.2 documentation
@@ -30,6 +31,10 @@
+
+
+
+
Contents:
+
Each source folder depends on the upper folders for compilation. For example, the datamodel is the top level folder so it has no other dependencies on other JABAWS code. The Engine level depends on the datamodel to compile etc. The web services folder is the bottom layer and depends on all the other source code.
@@ -248,114 +253,114 @@
The second layer contains code for execution of the wrappers, which are the abstraction describing native executables. JABAWS can execute tasks locally that is on the same machine as JVM and on the cluster. Thus currently code on this layer contain two engines. This layer depends on the layer underneath, the data model layer, but is completely independent from the code above.
The third layer consists of the wrappers for the native executables and classes to handle their configuration. It depends on the engines and the data model, but know nothing about the web services.
Finally, the upper layer contains the web services, that depend on all the layers below.
-
The layer isolation is archived though specially designed compilation task which is executed sequentially in several stages so that the first layer compiles before any other layers, second layer compiles after that and process continies before all the code is compiled. Any violation of the layer boundaries results in the compilation failure. Use Ant “Compile” or “Complile_with_debug” tasks to perform the staged compilation.
+
The layer isolation is archived though specially designed compilation task which is executed sequentially in several stages so that the first layer compiles before any other layers, second layer compiles after that and process continies before all the code is compiled. Any violation of the layer boundaries results in the compilation failure. Use Ant âCompileâ or âComplile_with_debugâ tasks to perform the staged compilation.
A client package contains only classes from data model layer and a simple web services client. Framework package is for anyone who want to use JABAWS framework for controlling native executables in local or cluster environments. Framework exclude the web services layer. Server package contains all the code.
JABAWS uses TestNG framework for testing. The test results for the JABAWS package offered for download can be found at: Test Results
JABAWS uses TestNG for testing. There is a TestNG plugin available for Eclipse which has functionality similar to JUnit. However, no plugins are necessary to run the test cases, as testng jar is supplied with JABAWS together with an ant tasks to run the test cases.
Windows only tests (âAll_cluster_independent_windows_only_testsâ)
+
Performance and stability tests (âLong_testsâ)
+
Re-run failed tests (âRerun_failed_testsâ)
+
Run custom test (âCustomTestâ)
To run the tests you need to download all sources from repository. Once you have done that, enter into the command line mode, change directory to the project directory and type:
-
ant-fbuild.xml<testgroupname>
+
ant -f build.xml <test group name>
Make sure you have Apache Ant installed and path to ant executable is defined in your path environmental variable. Replace test group name with the one of the names given in the list above to run required group of tests e.g for running cluster only tests use the following command:
-
ant-fbuild.xmlRun_cluster_dependent_test
+
ant -f build.xml Run_cluster_dependent_test
-
If you work under Linux you could use a simple script from the root folder of repository called runtests.sh. This script simply contains a collection of the test commands described above and paths to java home directory and an ant executable, which you can define once for your system and then reuse.
-
A handy feature of TestNG is its ability to re-run failed tests. Failed test ant file is stored in test-output/testng-failed.xml. and is used in the ant task called Rerun_failed_tests. So re-running failed tests requires no more work than running any other test group and could be accomplished with the command:
-
ant-fbuild.xmlRerun_failed_tests
+
If you work under Linux you could use a simple script from the root folder of repository called runtests.sh. This script simply contains a collection of the test commands described above and paths to java home directory and an ant executable, which you can define once for your system and then reuse.
+
A handy feature of TestNG is its ability to re-run failed tests. Failed test ant file is stored in test-output/testng-failed.xml. and is used in the ant task called Rerun_failed_tests. So re-running failed tests requires no more work than running any other test group and could be accomplished with the command:
+
ant -f build.xml Rerun_failed_tests
-
CustomTest runs the test defined in the project root directory file called temp-testng-customsuite.xml. This file is generated by TestNG plugin every time you run the test from Eclipse. Thus an easy way to run a test in a different environment is to run it from Eclipse first and then from ant using a custom test procedure.
-
For cluster execution make sure that the property LD_LIBRARY_PATH defined in build.xml points to cluster engine LD libraries directory in your local system.
+
CustomTest runs the test defined in the project root directory file called temp-testng-customsuite.xml. This file is generated by TestNG plugin every time you run the test from Eclipse. Thus an easy way to run a test in a different environment is to run it from Eclipse first and then from ant using a custom test procedure.
+
For cluster execution make sure that the property LD_LIBRARY_PATH defined in build.xml points to cluster engine LD libraries directory in your local system.
All JABAWS multiple sequence alignment web services comply to the same interface, thus the function described below are available from all the services.
For a complete working example of JABAWS command line client please see compbio.ws.client.Jws2Client class. JABAWS command line client source code is available from the download page. Please note that for now all the examples are in Java, other languages will follow if there is sufficient demand.
Download a binary JABAWS client. Add the client to the class path. The following code excerpt will connect your program to Clustal web service deployed in the University of Dundee.
importjava.net.URL;
+importjavax.xml.namespace.QName;
+importjavax.xml.ws.Service;importcompbio.ws.client.Services// (...)
-StringqualifiedServiceName="http://msa.data.compbio/01/01/2010/";
-Stringhost="http://www.compbio.dundee.ac.uk/jabaws";
+StringqualifiedServiceName="http://msa.data.compbio/01/01/2010/";
+Stringhost="http://www.compbio.dundee.ac.uk/jabaws";// In real life the service name can come from args
-Servicesclustal=Services.ClustalWS;
-URLurl=newURL(host+"/"+clustal.toString()+"?wsdl");
-QNameqname=newQName(qualifiedServiceName,clustal.toString());
-Serviceserv=Service.create(url,qname);
-MsaWSmsaws=serv.getPort(newQName(qualifiedServiceName,clustal+"Port"),MsaWS.class);
+Servicesclustal=Services.ClustalWS;
+URLurl=newURL(host+"/"+clustal.toString()+"?wsdl");
+QNameqname=newQName(qualifiedServiceName,clustal.toString());
+Serviceserv=Service.create(url,qname);
+MsaWSmsaws=serv.getPort(newQName(qualifiedServiceName,clustal+"Port"),MsaWS.class);
Where Services is enumeration of JABAWS web services. All JABAWS multiple sequence alignment methods confirm to MsaWS specification, thus from the caller point of view all JABAWS web services can be represented by MsaWS interface. The full documentation of MsaWS functions is available from the JavaDoc.
Given that msaws is web service proxy, created as described in âConnecting to JABAWSâ section, the actual alignment can be obtained as follows:
+
List<FastaSequence> fastalist= SequenceUtil.readFasta(new FileInputStream(file));
+String jobId= msaws.align(fastalist);
+Alignment alignment= msaws.getResult(jobId);
+Line one loads FASTA sequence from the file.
Line two submits them to web service represented by msaws proxy.
Line three retrieves the alignment from a web service. This line will block the execution until the result is available. Use this with caution. In general, you should make sure that the calculation has been completed before attempting retrieving results. This is to avoid keeping the connection to the server on hold for a prolonged periods of time. While this may be ok with your local server, our public server (www.compbio.dundee.ac.uk/jabaws) will not let you hold the connection for longer than 10 minutes. This is done to prevent excessive load on the server. The next section describes how to check the status of the calculation.
Methods and classes mentioned in the excerpt are available from the JABAWS client library.
You may have noticed that there was no pause between submitting the job and retrieving of the results. This is because getResult(jobId) method block the processing until the calculation is completed. However, taking into account that the connection holds server resources, our public server (www.compbio.dundee.ac.uk/jabaws) is configured to reset the connection after 10 minutes of waiting. To work around the connection reset you are encouraged to check whether the calculation has been completed before accessing the results. You can do it like this:
-
while(msaws.getJobStatus(jobId)!=JobStatus.FINISHED){
- Thread.sleep(2000);// wait two seconds, then recheck the status
-}
+
while(msaws.getJobStatus(jobId)!=JobStatus.FINISHED){
+ Thread.sleep(2000);// wait two seconds, then recheck the status
+}
Line one obtains the RunnerConfig object that holds information on supported parameters and their values
+
Line one obtains the RunnerConfig object that holds information on supported parameters and their values
Line two retrieve a particular parameter from the holder by its name.
Lines three sets a value to this parameter which will be used in the calculation.
Line four and five do the same but for another parameter.
@@ -442,44 +447,44 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
Line seven puts the parameters into that list.
Line eight and ten is the same as in previous examples.
Line nine submit an alignment request with the sequences and the parameters.
-
The names of all the parameters supported by a web service e.g. “PAM300” can be obtained using options.getArguments() method. Further details on the methods available from RunnerConfig object are available from the JavaDoc.
+
The names of all the parameters supported by a web service e.g. âPAM300â can be obtained using options.getArguments() method. Further details on the methods available from RunnerConfig object are available from the JavaDoc.
Finally, a complete example of the program that connects to JABAWS Clustal service and aligns sequences using one of the Clustal web service presets. All you need for this to work is a JABAWS CLI client. Please make sure that the client is in the Java class path before running this example.
importjava.io.ByteArrayInputStream;
+importjava.io.FileNotFoundException;
+importjava.io.IOException;
+importjava.net.URL;
+importjava.util.List;
+
+importjavax.xml.namespace.QName;
+importjavax.xml.ws.Service;
+
+importcompbio.data.msa.MsaWS;
+importcompbio.data.sequence.Alignment;
+importcompbio.data.sequence.FastaSequence;
+importcompbio.data.sequence.SequenceUtil;
+importcompbio.metadata.JobSubmissionException;
+importcompbio.metadata.LimitExceededException;
+importcompbio.metadata.Preset;
+importcompbio.metadata.PresetManager;
+importcompbio.metadata.ResultNotAvailableException;
+importcompbio.metadata.UnsupportedRuntimeException;
+importcompbio.metadata.WrongParameterException;
+
+publicclassExample{/* * Input sequences for alignment
@@ -513,17 +518,17 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
+"LRGWGGGGRPEVFALRPAPVQVNWLAYPGTSGAPWMDYVLGDAFALPPALEPFYSEHVLRLQGAF"+"QPSDTSRVVAEPPSRTQCGLPEQGVVLCCFNNSYKLNPQSMARMLAVLREVPDSVLWLLSGPGEA"+"DARLRAFAHAQGVDAQRLVFMPKLPHPQYLARYRHADLFLDTHPYNAHTTASDALWTGCPVLTTP"
- +"GETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALASDPAALTALHARVDVLRRESI";
+ +"GETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALASDPAALTALHARVDVLRRESI";
- publicstaticvoidmain(String[]args)throwsUnsupportedRuntimeException,
- LimitExceededException,JobSubmissionException,
- WrongParameterException,FileNotFoundException,IOException,
- ResultNotAvailableException,InterruptedException{
+ publicstaticvoidmain(String[]args)throwsUnsupportedRuntimeException,
+ LimitExceededException,JobSubmissionException,
+ WrongParameterException,FileNotFoundException,IOException,
+ ResultNotAvailableException,InterruptedException{
- StringqualifiedServiceName="http://msa.data.compbio/01/01/2010/";
+ StringqualifiedServiceName="http://msa.data.compbio/01/01/2010/";/* Make a URL pointing to web service WSDL */
- URLurl=newURL("http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl");
+ URLurl=newURL("http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl");/* * If you are making a client that connects to different web services
@@ -532,38 +537,38 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
// URL url = new URL(host + "/" + Services.ClustalWS.toString() +// "?wsdl");
- QNameqname=newQName(qualifiedServiceName,"ClustalWS");
- Serviceserv=Service.create(url,qname);
+ QNameqname=newQName(qualifiedServiceName,"ClustalWS");
+ Serviceserv=Service.create(url,qname);/* * Multiple sequence alignment interface for Clustal web service * instance */
- MsaWSmsaws=serv.getPort(newQName(qualifiedServiceName,"ClustalWS"
- +"Port"),MsaWS.class);
+ MsaWSmsaws=serv.getPort(newQName(qualifiedServiceName,"ClustalWS"
+ +"Port"),MsaWS.class);/* Get the list of available presets */
- PresetManagerpresetman=msaws.getPresets();
+ PresetManagerpresetman=msaws.getPresets();/* Get the Preset object by preset name */Presetpreset=presetman
- .getPresetByName("Disable gap weighting (Speed-oriented)");
+ .getPresetByName("Disable gap weighting (Speed-oriented)");/* * Load sequences in FASTA format from the file You can use something * like new FileInputStream(<filename>) to load sequence from the file */List<FastaSequence>fastalist=SequenceUtil
- .readFasta(newByteArrayInputStream(input.getBytes()));
+ .readFasta(newByteArrayInputStream(input.getBytes()));/* * Submit loaded sequences for an alignment using preset. The job * identifier is returned by this method, you can retrieve the results * with it sometime later. */
- StringjobId=msaws.presetAlign(fastalist,preset);
+ StringjobId=msaws.presetAlign(fastalist,preset);/* This method will block for the duration of the calculation */
- Alignmentalignment=msaws.getResult(jobId);
+ Alignmentalignment=msaws.getResult(jobId);/* * This is a better way of obtaining results, it does not involve
@@ -577,7 +582,7 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
// }/* Output the alignment to standard out */
- System.out.println(alignment);
+ System.out.println(alignment);// Alternatively, you can record retrieved alignment into the file in// ClustalW format
@@ -585,89 +590,73 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
// ClustalAlignmentUtil.writeClustalAlignment(new FileOutputStream(// "output.al"), alignment);
- }
-}
+ }
+}
For a more detailed description of all available types and their functions please refer to the Data Model JavaDoc.
Add a new executable which you’d like to wrap as a JABAWS web service to the binaries folder. If it has the source code and can be recompiled for different platforms include it under binaries/src. Edit setexecutableflag.sh and compilebin.sh scripts in binaries/src accordingly.
-
-
Make sure that all the dependencies of the software being installed are satisfied. If there are other binaries they should be included as well. Keep the dependent binaries in a subfolder for the main executable. Update compilebin.sh and setexecflag.sh scripts accordingly.
-
-
Make sure that the new executable does not have any hard links to its dependencies, e.g. is able to run from any installation folder and does not contain any hard coded paths.
-
-
Describe executable in conf/Exectuable.properties file. The lowercase name of the wrapper should be included in the name of the property for example Clustal properties all include clustal as a part of the name e.g. local.clustalw.bin. The same property for MAFFT will be called local.mafft.bin. For more help please refer to the Executable.properties file.
-
-
Describe the executable supported parameters in the <ExecutableName>Parameters.xml, presets in the <ExecutableName>Presets.xml and the execution limits in the <ExecutableName>Limit.xml. By convention these files are stored in conf/settings. All of these are optional. If the executable does not support parameters you do not have to mention the XXXParameter.xml file in the Executable.properties file at all. The same is true for Presets and Limits.
-
-
Create a Java wrapper class for your executable. Create it within runner source directory. Examples of other wrappers can be found in compbio.runner.msa or in other compbio.runner.* packages. Wrapper should extend SkeletalExecutable<T> and implement PipedExecutable<T> if you need to pass the input or collect the results from the standard in/out. Please see Mafft code as example. Wrapper should expend SkeletalExecutable<T> if input/output can be set as a parameter for an executable. Please see the ClustalW code as example.
-
-
Create a testcase suit for your wrapper in testsrc and run the test cases.
-
-
Create parser for the output files of your executable. Suggested location compbio.data.sequence.SequenceUtil.
-
-
Test the parser.
-
-
Decide which web services interfaces your executable is going to match. For example if the executable output can be represented as SequenceAnnotation then SequenceAnnotation interface might be appropriate. For multiple sequence alignment an Msa interface should be used.
-
-
If you find a web interface that matches your returning data type, then implement a web service which confirms to it within a webservices source folder.
-
-
Register web service in WEB-INF/web.xml and WEB-INF/sun-jaxws.xml.
-
-
Add generated wsdl to wsbuild.xml ant script to generate the stubs.
-
-
Run build-server task in wsbuild file. Watch for errors. If the task fails that means that JAXB cannot serialize some of your new data structures. Add appropriate annotations to your data types. Also check that:
+
Add a new executable which youâd like to wrap as a JABAWS web service to the binaries folder. If it has the source code and can be recompiled for different platforms include it under binaries/src. Edit setexecutableflag.sh and compilebin.sh scripts in binaries/src accordingly.
+
Make sure that all the dependencies of the software being installed are satisfied. If there are other binaries they should be included as well. Keep the dependent binaries in a subfolder for the main executable. Update compilebin.sh and setexecflag.sh scripts accordingly.
+
Make sure that the new executable does not have any hard links to its dependencies, e.g. is able to run from any installation folder and does not contain any hard coded paths.
+
Describe executable in conf/Exectuable.properties file. The lowercase name of the wrapper should be included in the name of the property for example Clustal properties all include clustal as a part of the name e.g. local.clustalw.bin. The same property for MAFFT will be called local.mafft.bin. For more help please refer to the Executable.properties file.
+
Describe the executable supported parameters in the <ExecutableName>Parameters.xml, presets in the <ExecutableName>Presets.xml and the execution limits in the <ExecutableName>Limit.xml. By convention these files are stored in conf/settings. All of these are optional. If the executable does not support parameters you do not have to mention the XXXParameter.xml file in the Executable.properties file at all. The same is true for Presets and Limits.
+
Create a Java wrapper class for your executable. Create it within runner source directory. Examples of other wrappers can be found in compbio.runner.msa or in other compbio.runner.* packages. Wrapper should extend SkeletalExecutable<T> and implement PipedExecutable<T> if you need to pass the input or collect the results from the standard in/out. Please see Mafft code as example. Wrapper should expend SkeletalExecutable<T> if input/output can be set as a parameter for an executable. Please see the ClustalW code as example.
+
Create a testcase suit for your wrapper in testsrc and run the test cases.
+
Create parser for the output files of your executable. Suggested location compbio.data.sequence.SequenceUtil.
+
Test the parser.
+
Decide which web services interfaces your executable is going to match. For example if the executable output can be represented as SequenceAnnotation then SequenceAnnotation interface might be appropriate. For multiple sequence alignment an Msa interface should be used.
+
If you find a web interface that matches your returning data type, then implement a web service which confirms to it within a webservices source folder.
+
Register web service in WEB-INF/web.xml and WEB-INF/sun-jaxws.xml.
+
Add generated wsdl to wsbuild.xml ant script to generate the stubs.
+
Run build-server task in wsbuild file. Watch for errors. If the task fails that means that JAXB cannot serialize some of your new data structures. Add appropriate annotations to your data types. Also check that:
-
you do not have interfaces to serialize, since JAXB cannot serialize them
-
you have a default no args constructor (can be private if you do not need it)
-
JAXB cannot serialize Java Map class, use a custom data structure instead
-
Enum cannot be serialized as its abstract class (do not confuse with enum which is fine)
-
Fields serialization leaves a little more space for manoeuvre. If you do this then you may accept and return interfaces, e.g. List, Map; abstract classes etc, from your methods
+
you do not have interfaces to serialize, since JAXB cannot serialize them
+
you have a default no args constructor (can be private if you do not need it)
+
JAXB cannot serialize Java Map class, use a custom data structure instead
+
Enum cannot be serialized as its abstract class (do not confuse with enum which is fine)
+
Fields serialization leaves a little more space for manoeuvre. If you do this then you may accept and return interfaces, e.g. List, Map; abstract classes etc, from your methods
If you have the data on the server side, but nothing is coming through to the client, this is a JAXB serialization problem. They tend to be very silent and thus hard to debug. Check your data structure can be serialized!
-
Modify the client to work with your new web service. Update Services enumeration to include new service and ensure that all the methods of this enumeration take into account the new service. Update the client help text (client_help.txt) and insert it into the Constraints class.
-
-
Test the web service with the client.
-
-
Test on the cluster.
-
+
Modify the client to work with your new web service. Update Services enumeration to include new service and ensure that all the methods of this enumeration take into account the new service. Update the client help text (client_help.txt) and insert it into the Constraints class.
JABAWS are the standard JAX-WS SOAP web services, which are WS-I basic profile compatible. This means that you could use whatever tool your language has to work with web services. Below is how you can generate portable artifacts to work with JABAWS from Java. However if programming in Java, we recommend using our client library as it provides a handful of useful methods in addition to plain data types.
Server side artifacts should be rebuild whenever the data model, meta model or MSA interface were changed. To do that run build-server task from wsbuild.xml ant build file. WSDL files will be generated in webservices/compbio/ws/server/resource directory. It is not necessary to edit them if any of the JABAWS clients are used. JABAWS are the standard JAX-WS web services, which are WS-I basic profile compatible.
+
Server side artifacts should be rebuild whenever the data model, meta model or MSA interface were changed. To do that run build-server task from wsbuild.xml ant build file. WSDL files will be generated in webservices/compbio/ws/server/resource directory. It is not necessary to edit them if any of the JABAWS clients are used. JABAWS are the standard JAX-WS web services, which are WS-I basic profile compatible.
There are a number of ant tasks aimed for preparing distributives for download. Currently a few types of JABAWS packages are offered:
-
Client only (contains classes required to access JABA Web Services)
-
Platform specific JABAWS (windows and other)
-
JABAWS with and without binaries
-
JABAWS framework and complete project
+
Client only (contains classes required to access JABA Web Services)
+
Platform specific JABAWS (windows and other)
+
JABAWS with and without binaries
+
JABAWS framework and complete project
-
The easiest way to build all distributives is to call build-all ant task. There are more tasks defined in build.xml than described here. They are mostly self explanatory.
+
The easiest way to build all distributives is to call build-all ant task. There are more tasks defined in build.xml than described here. They are mostly self explanatory.
If you made any changes to the data model and would like to generate a complete JABAWS distro make sure you have rebuilt jaxws artifact as described below.
-
-
-
+
+
+
@@ -720,6 +709,7 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
SOURCELINK_SUFFIX: '.txt'
};
+
diff --git a/website/docs/docker.html b/website/docs/docker.html
index d1b6809..e3e9f04 100644
--- a/website/docs/docker.html
+++ b/website/docs/docker.html
@@ -5,7 +5,8 @@
-
+
+
Docker Container — JABAWS 2.2 documentation
@@ -30,6 +31,10 @@
+
+
+
+
Contents:
+
An alternative to running the JABAWS Virtual Appliance (VA) or the JABAWS Web Application aRchive (WAR) in your local machine, is to use Docker to handle all the requirements to deploy JABAWS in Tomcat. We provide a Dockerfile, which Docker uses to build an exact image of the required system, (i.e. Apache Tomcat server with the JABAWS WAR deployed).
In order to run JABAWS using Docker, you need docker installed and running in your system. Installation instructions are provided in the Docker documentation pages.
This will download the required Docker contexts (Tomcat, etc.) and setup JABAWS. Once the setup is finished you can run the JABAWS container with:
-
dockerrun--rm-it-p8080:8080jabaws:2.2
+
docker run --rm -it -p 8080:8080 jabaws:2.2
-
This will launch Tomcat and deploy JABAWS. By accessing localhost:8080/jabaws/ you can verify whether the JABAWS is running properly.
+
This will launch Tomcat and deploy JABAWS. By accessing localhost:8080/jabaws/ you can verify whether the JABAWS is running properly.
You can then use your Docker JABAWS container to power your analysis using Jalview or the JABAWS CLI.
JABAWS is a collection of web services for bioinformatics, and currently provides services that make it easy to access well-known multiple sequence alignment and protein disorder prediction programs (see the list of currently supported programs). Future versions of JABAWS will incorporate other tools.
JABAWS consists of a server and a client, but unlike most bioinformatics web-service systems, you can download and run both parts on your own computer! If you want a server just for yourself, then download and install the JABAWS Virtual Appliance (VA). It requires no configuration and is simple to install. If you want to install JABAWS for your lab or institution then download the JABAWS Web Application aRchive (WAR). It is slightly more complicated to configure but is very straightforward too. Finally, if you want to script against any version of JABAWS or are interested in writing your own client, the JABAWS Command Line Interface (CLI) client is what you need.
The public server based on JABAWS 2.1 at the University of Dundee has been in production since October 2013 and serviced over 442,000 jobs for users worldwide.
Can be deployed on most operating systems, as a VMware or compatible Virtual Appliance, as well as a Tomcat Java Web Application.
-
Comes complete with sources and binaries for all the bioinformatics programs that it runs.
-
Can operate as a stand alone server or one that submits jobs to a cluster via DRMAA.
-
Easy to access from Jalview using its graphical client, or using the JABAWS command line client.
-
Clients can submit jobs to any JABAWS servers that they might want to access, such as the one running on your local computer, your lab’s server, or the publicly available services at the University of Dundee.
-
Local or intranet installation eliminates any security concerns you might have about sending sensitive data over the internet.
-
Wide range of configuration options to control size of jobs accepted by a server, and the command line options available for the program run by a service.
+
Can be deployed on most operating systems, as a VMware or compatible Virtual Appliance, as well as a Tomcat Java Web Application.
+
Comes complete with sources and binaries for all the bioinformatics programs that it runs.
+
Can operate as a stand alone server or one that submits jobs to a cluster via DRMAA.
+
Easy to access from Jalview using its graphical client, or using the JABAWS command line client.
+
Clients can submit jobs to any JABAWS servers that they might want to access, such as the one running on your local computer, your labâs server, or the publicly available services at the University of Dundee.
+
Local or intranet installation eliminates any security concerns you might have about sending sensitive data over the internet.
+
Wide range of configuration options to control size of jobs accepted by a server, and the command line options available for the program run by a service.
Jalview, a multiple sequence alignment and analysis application, is a good example of a graphical JABAWS client. This client uses the same functionality as the JABAWS Command Line Interface (CLI) client, but instead allows JABAWS services to be accessed in a more user-friendly manner, through a graphical user interface. In this way, this is the easiest way to run JABAWS web services. Simply launch Jalview and run any of the methods provided under the ‘Web Service’ menu. Jalview uses the public JABAWS server by default. If you are concerned about privacy or want to run sensitive analysis on your own hardware, you can either setup a local JABAWS Virtual Appliance (VA) or configure the JABAWS Web Application aRchive (WAR) in your infrastructure.
+
Jalview, a multiple sequence alignment and analysis application, is a good example of a graphical JABAWS client. This client uses the same functionality as the JABAWS Command Line Interface (CLI) client, but instead allows JABAWS services to be accessed in a more user-friendly manner, through a graphical user interface. In this way, this is the easiest way to run JABAWS web services. Simply launch Jalview and run any of the methods provided under the âWeb Serviceâ menu. Jalview uses the public JABAWS server by default. If you are concerned about privacy or want to run sensitive analysis on your own hardware, you can either setup a local JABAWS Virtual Appliance (VA) or configure the JABAWS Web Application aRchive (WAR) in your infrastructure.
This is a single Java archive which contains the JABAWS command line interface (CLI) client. It allows anyone who wants to connect to the JABAWS web-services running at the University of Dundee’s Public Server, or to run a local private JABAWS server from their own software. You can read more about how to use JABAWS command line (CLI) client given in the CLI documentation pages, but a brief instructions are given below:
+
This is a single Java archive which contains the JABAWS command line interface (CLI) client. It allows anyone who wants to connect to the JABAWS web-services running at the University of Dundeeâs Public Server, or to run a local private JABAWS server from their own software. You can read more about how to use JABAWS command line (CLI) client given in the CLI documentation pages, but a brief instructions are given below:
Provided that you have the Java ready to run, you can get command line help by changing to the directory where you downloaded the client jar, and typing:
Provided that you have the Java ready to run, you can get command line help by changing to the directory where you downloaded the client jar, and typing:
-
java-jarjabaws-full-client-2.2.0.jar
+
java -jar jabaws-full-client-2.2.0.jar
@@ -235,78 +238,73 @@
The JABA Web Services are WS-I compliant. This means that you can access them from any language that has libraries or functions for consuming interoperable SOAP web services. More information on how to develop software that access JABAWS services is provided in the documentation pages.
The JABAWS Web Application aRchive (WAR) is for anyone who wants to run JABAWS for their group, lab or organization, or wants to enable their local JABAWS server to use the cluster or perform very large tasks. Complete documentation is provided in the WAR documentation pages, but brief instructions are given below:
Open the Jalview desktop’s preferences panel (from the Tools->Preferences menu option), elect the Webservices panel and press the New Service URL button.
-
Enter the URL for the tomcat server, including the context path for the JABAWS web app (e.g. http://localhost:8080/jabaws).
Open the Jalview desktopâs preferences panel (from the Tools->Preferences menu option), elect the Webservices panel and press the New Service URL button.
+
Enter the URL for the tomcat server, including the context path for the JABAWS web app (e.g. http://localhost:8080/jabaws).
The Virtual Appliance (VA) package allows you to run a JABAWS server installed on TurnKey Linux as a virtual machine on your laptop or desktop computer. A complete guide to the JABAWS VA is given in the VA documentation pages, but for the impatient, brief instructions are given below:
To check that your JABAWS virtual appliance is working visit the Services Status page available from the main JABAWS menu. For this enter the JABAWS URL for your new server into a web browser. This is shown once the appliance is booted up.
Alternatively you can use Jalview to complete the testing.
Open the Jalview desktop’s preferences panel (from the Tools->Preferences menu option), select the Webservices panel and press the NewServiceURL button.
-
Enter the JABAWS URL for your new server. This is shown once the appliance is booted up.
Open the Jalview desktopâs preferences panel (from the Tools->Preferences menu option), select the Webservices panel and press the NewServiceURL button.
+
Enter the JABAWS URL for your new server. This is shown once the appliance is booted up.
JABAWS comes with a web application for visualizing usage statistics. The screenshot below shows the main page of this application. The individual month is linked to detailed usage statistics (described later). Please note, that the links to the detailed monthly statistics are only available for authenticated users in the role admin. There is a link at the bottom of the page that lets you login, if you have not done so.
If you are using JABAWS VA (Virtual Appliance) then the username is jabaws and password is not defined, i.e. empty.
@@ -183,53 +188,53 @@
The table contains the number of jobs processed by JABAWS per month, for the whole period when the statistics was collected.
For each month the table contains the following information.
-
Month - the period of time for which statistics is displayed. For example Jan 2011 means period of time from the first of January to the first of February
-
Total - the total number of jobs accepted by JABAWS
-
Incomplete - the number of jobs for which the result file was not found or was empty excluding cancelled
-
Cancelled - the number of jobs cancelled by the user
-
Abandoned - the number of jobs which result(s) were not collected
+
Month - the period of time for which statistics is displayed. For example Jan 2011 means period of time from the first of January to the first of February
+
Total - the total number of jobs accepted by JABAWS
+
Incomplete - the number of jobs for which the result file was not found or was empty excluding cancelled
+
Cancelled - the number of jobs cancelled by the user
+
Abandoned - the number of jobs which result(s) were not collected
The summary for each column is displayed in the last row of the table.
Please note that if you deployed JABAWS WAR, in order to be able to navigate to the job directory from this view, the application server may need to be configured. Please see the Configuring JABAWS execution statistics section for further details.
Columns:
-
JobID - the JABAWS job id, unique for every job
-
Cluster JobID - cluster job id
-
InputSize - input size in bytes
-
ResultSize - result size in bytes
-
Runtime (s) - job’s runtime in seconds
-
Start time (s)- job’s start time and date
-
Finish time (s)- job’s finish time and date
-
isCancelled - whether the job was cancelled
-
isCollected - whether the job was collected. False for the jobs that has been initiated but which results has never been retrieved
-
isFinished - whether the job has finished. This does not necessarily mean that the job has produced the result. The job can sometime finish in failure
+
JobID - the JABAWS job id, unique for every job
+
Cluster JobID - cluster job id
+
InputSize - input size in bytes
+
ResultSize - result size in bytes
+
Runtime (s) - jobâs runtime in seconds
+
Start time (s)- jobâs start time and date
+
Finish time (s)- jobâs finish time and date
+
isCancelled - whether the job was cancelled
+
isCollected - whether the job was collected. False for the jobs that has been initiated but which results has never been retrieved
+
isFinished - whether the job has finished. This does not necessarily mean that the job has produced the result. The job can sometime finish in failure
STARTED and FINISHED files contain Unix timestamp - when the job was started and completed respectively. STARTED is replaced by SUBMITTED if the job has been submitted to the cluster, as opposed to executed locally, on the server.
@@ -240,44 +245,44 @@
input.txt file contains input into the process.
There are maybe other files depending on the nature of the job, but the one described above will be present in most cases. In this example, stat.log file stories the execution statistics generated by (clustal executable in this example) process.
If you have deployed JABAWS WAR file or made changes to JABAWS configuration you may need to make a few changes to the Tomcat configuration to be able to see the content of the job directory. Please see the Configuring JABAWS execution statistics section for further details.
JABAWS execution statistics is a multi-component system. First is a crawler whose job is to collect and preprocess the statistics from the job temporary directories and record the collected statistics into the database. The second part of the system is a web application whose job is to visualise the statistics from the database.
-
It is possible to enable/disable the statistics collector by changing the following properties in the conf/Cluster.engine.properties and conf/Local.engine.properties files.
It is possible to enable/disable the statistics collector by changing the following properties in the conf/Cluster.engine.properties and conf/Local.engine.properties files.
+
# Enable/disable cluster statistics collector true = enable, false = disable
cluster.stat.collector.enable=false# Maximum amount of time the job is considered be running in hours. Optional defaults to 7 days (168h)
cluster.stat.maxruntime=24
# Enable/disable cluster statistics collector true = enable, false = disable
local.stat.collector.enable=true# Maximum amount of time the job is considered to be running in hours. Optional defaults to 24 hours
local.stat.maxruntime=6
If the statistics collector is enabled then the crawler starts automatically soon after (10 minutes for local engine, and 60 minutes for cluster engine) the JABAWS web application and will be collecting the execution statistics every 24 hours after the start.
-
The details of the job are only available if the job temporary directory is located within a JABAWS web application. If not, the system administrator can create a symbolic link pointing to the temporary job directories outside of a web application and configure the application server to allow navigation to the links. For the Tomcat application server the context configuration file should be created and copied to the <TOMCAT_ROOT>/conf/Catalina/localhost directory. The name of the file should be the same as the web application context name, for example jabaws.xml for jabaws. Where the TOMCAT_ROOT is the location of the Tomcat web application server. Here is an example of such a file:
-
<?xml version="1.0" encoding="UTF-8"?>
+
The details of the job are only available if the job temporary directory is located within a JABAWS web application. If not, the system administrator can create a symbolic link pointing to the temporary job directories outside of a web application and configure the application server to allow navigation to the links. For the Tomcat application server the context configuration file should be created and copied to the <TOMCAT_ROOT>/conf/Catalina/localhost directory. The name of the file should be the same as the web application context name, for example jabaws.xml for jabaws. Where the TOMCAT_ROOT is the location of the Tomcat web application server. Here is an example of such a file:
The key option here is this: allowLinking="true". Please also make sure that you have defined the user in role admin as described below.
-
-
+
The key option here is this: allowLinking="true". Please also make sure that you have defined the user in role admin as described below.
+
+
Configuring a privileged access for Tomcat web application server¶
Access to configuration files, detailed job execution statistics and job directories are allowed only for authenticated users in role admin.
-
If you use Tomcat, then the simplest way to set up privileged access is to use a plain text configuration file conf/tomcat-user.xml. Here is an example of such configuration file defining user “peter” in role admin.
-
<tomcat-users>
+
If you use Tomcat, then the simplest way to set up privileged access is to use a plain text configuration file conf/tomcat-user.xml. Here is an example of such configuration file defining user âpeterâ in role admin.
+
<tomcat-users><rolerolename="admin"/><userusername="peter"password="your password here "roles="admin"/></tomcat-users>
For more information on users and roles please consult Apache-Tomcat help pages.
The JABAWS Virtual Appliance is a way to run a JABAWS server locally, without the need to connect to the internet or configure JABAWS. What the appliance provides is a ‘virtual server machine’ (or more simply - virtual machine or VM), running an installation of the JABAWS Web Application Archive (WAR) on TurnKey Linux 12.1 (Standlone Tomcat). Once this has started up, it displays a message indicating the IP address of the JABAWS server, allowing any JABAWS client (such as Jalview or the JABAWS command line client) to connect to it.
-
You can run the appliance with freely available program such as VMware Player, but you will need to install it first. We have tested the JABAWS appliance with VMware Player v 3.1.2 on Windows and Linux, and VMware Fusion on Mac. However, you are not limited to these virtualization systems and can use the JABAWS Appliance with any other virtualization platform. You can use VMware OVF tool to prepare JABAWS image for a different virtualization platform e.g. VirtualBox. VirtualBox can also use the jabaws*.vmdk directly as an existing preconfigured virtual hard disk file, when creating a new Linux 2.4 / 3.x / 4.x 64-bit VM.
+
The JABAWS Virtual Appliance is a way to run a JABAWS server locally, without the need to connect to the internet or configure JABAWS. What the appliance provides is a âvirtual server machineâ (or more simply - virtual machine or VM), running an installation of the JABAWS Web Application Archive (WAR) on TurnKey Linux 12.1 (Standlone Tomcat). Once this has started up, it displays a message indicating the IP address of the JABAWS server, allowing any JABAWS client (such as Jalview or the JABAWS command line client) to connect to it.
+
You can run the appliance with freely available program such as VMware Player, but you will need to install it first. We have tested the JABAWS appliance with VMware Player v 3.1.2 on Windows and Linux, and VMware Fusion on Mac. However, you are not limited to these virtualization systems and can use the JABAWS Appliance with any other virtualization platform. You can use VMware OVF tool to prepare JABAWS image for a different virtualization platform e.g. VirtualBox. VirtualBox can also use the jabaws*.vmdk directly as an existing preconfigured virtual hard disk file, when creating a new Linux 2.4 / 3.x / 4.x 64-bit VM.
-
Note
-
The appliance best suits users who would like to use the JABAWS web-services locally. This might be because they do not want to access systems over an internet, or just want to keep their data private. It is also the recommended option for users who want to install JABAWS on Windows, which does not support all the bioinformatics programs that JABAWS can run.
+
Note
+
The appliance best suits users who would like to use the JABAWS web-services locally. This might be because they do not want to access systems over an internet, or just want to keep their data private. It is also the recommended option for users who want to install JABAWS on Windows, which does not support all the bioinformatics programs that JABAWS can run.
For servers that will be used heavily, we recommend that a JABAWS Server WAR distribution is deployed, rather than the Virtual Appliance version of JABAWS. This is because the JABAWS appliance is pre-configured to use only 1 CPU and 512M of memory (where the minimum amount of memory required for a JABAWS server is about 378M), which is unlikely to be sufficient for heavy computation. It is possible to reconfigure the virtual appliance so it uses more computation resources, but for most production environments, the JABAWS WAR distribution will be easier to deploy and fine tune to take advantage of the available resources.
Check if you are running the recommended version of VWMare.
+
Tip
+
Check if you are running the recommended version of VWMare.
The free VMware Player can be used to run the JABAWS services from the Windows and Linux host operating systems. VMware Fusion, a commercial VMware product, offers virtual machine support for Mac.
-
To run the JABAWS server on VMware player, unpack the JABAWS VM into one of the folders on your local hard drive. Open VMware Player, click “Open Virtual Machine” and point the Player to the location of the JABAWS, then choose the jabaws*.vmx file to open an appliance.
-
When you play the machine for the first time the Player might ask you whether “This virtual machine may have been moved or copied.”, say that you have copied it. That is all.
+
To run the JABAWS server on VMware player, unpack the JABAWS VM into one of the folders on your local hard drive. Open VMware Player, click âOpen Virtual Machineâ and point the Player to the location of the JABAWS, then choose the jabaws*.vmx file to open an appliance.
+
When you play the machine for the first time the Player might ask you whether âThis virtual machine may have been moved or copied.â, say that you have copied it. That is all.
By default, the JABAWS virtual appliance is configured with 512M of memory and 1 CPU, but you are free to change these settings. If you have more than one CPU or CPU core on your computer you can make them available for the JABAWS virtual machine by editing virtual machine settings. Please bear in mind that more CPU power will not make a single calculation go faster, but it will enable the VM to do calculations in parallel. Similarly, you can add more memory to the virtual machine. More memory lets your VM deal with larger tasks, e.g. work with large alignments.
The VMware Player screen shot above displays JABAWS VM CPU settings.
After booting the JABAWS VM, you should see similar screen, however, the IP address of your VM may be different. To enable Jalview to work with your JABAWS appliance you need to go to Jalview->Tools->Preferences->Web Services -> New Service URL, and add JABAWS URL into the box provided. For more information please refer to Jalview help pages.
If you click on Advanced Menu, you will see the configuration console, similar to the one below.
By default the JABAWS VM is configured to use host-only networking. This means that the host can communicate with the VM via a network, but no other machines can. Similarly, the VM cannot communicate with any other computers apart from the host. If you want to connect to the Internet from the VM, configure your VM to use NAT network. However, you will not be able to connect to the VM from the host in such case. If you want to be able to connect to your VM and let VM connect to the internet at the same time you would have to use a Bridged network. In such a case you would have to configure the VM IP address manually (unless of course your network has a DHCP server to do that).
JABAWS Web Application aRchive can run on any host operating system that supports Java and Apache-Tomcat. JABAWS requires a Java web application server compliant with version 2.4 of the Java Servlet specification, and a Java 7 runtime environment. We recommend using an official Oracle Java 7 runtime environment, and Apache-Tomcat web application server version 8.5, but older Tomcat versions above 5.5 will work too.
-
Danger
-
The JABAWS WAR is not generally compatible with older Mac systems based on the PowerPC architecture, since Java 1.7 is not available to run JABAWS.
+
Danger
+
The JABAWS WAR is not generally compatible with older Mac systems based on the PowerPC architecture, since Java 1.7 is not available to run JABAWS.
However JABAWS depends on a number of third party programs which are not available for all operating systems. In particular, not all web services are currently available for MS Windows platform. JABAWS comes with pre-compiled MS Windows and Linux x86 binaries, as well as the source code and build scripts necessary to recompile them.
To run JABAWS on the cluster you must have shared disk space accessible from all cluster nodes.
Check if you are running the recommended versions of Java and Apache-Tomcat.
+
Tip
+
Check if you are running the recommended versions of Java and Apache-Tomcat.
-
JABAWS is distributed as a web application archive (WAR). To deploy JABAWS in Apache-Tomcat - simply drop the war file into the webapps directory of a running Tomcat, and it will do the rest. If you used this deployment procedure, do not remove the Jabaws WAR file, otherwise Tomcat will undeploy your application! The context path for your deployed application will be the same as the name of the war file. For example, assuming the Tomcat server is running on the localhost:8080 and jaba.war file is put into the <tomcatserverroot>/webapps directory, the deployed application from the jabaws.war file then can be accessed by this URL http://localhost:8080/jabaws.
-
For any other web application server, please follow your server’s specific deployment procedure for ‘WAR’ files. If you install JABAWS on a MS Windows machine, then at this point your JABAWS installation will already be up and running, and you can try its services out as described here in the documentation. If you install JABAWS on Linux you will need to compile the binaries for your system and set an executable flag for binaries (more details here and here).
+
JABAWS is distributed as a web application archive (WAR). To deploy JABAWS in Apache-Tomcat - simply drop the war file into the webapps directory of a running Tomcat, and it will do the rest. If you used this deployment procedure, do not remove the Jabaws WAR file, otherwise Tomcat will undeploy your application! The context path for your deployed application will be the same as the name of the war file. For example, assuming the Tomcat server is running on the localhost:8080 and jaba.war file is put into the <tomcatserverroot>/webapps directory, the deployed application from the jabaws.war file then can be accessed by this URL http://localhost:8080/jabaws.
+
For any other web application server, please follow your serverâs specific deployment procedure for âWARâ files. If you install JABAWS on a MS Windows machine, then at this point your JABAWS installation will already be up and running, and you can try its services out as described here in the documentation. If you install JABAWS on Linux you will need to compile the binaries for your system and set an executable flag for binaries (more details here and here).
JABAWS is supplied as a Web Application aRchive which can be dealt with as any other web applications. So it is perfectly possible to run two JABAWS instances from the same server. Just make two different contexts on your application server and unpack JABAWS in both of them. For example if your server name is http://www.align.ac.uk, and the context names are public and private. Than one group of users could be given a URL http://www.align.ac.uk/public and another http://www.align.ac.uk/private. These contexts will be served by two independent JABAWS instances, and could be configured differently. If you keep local engine enabled, make sure you reduce the number of threads local engine is allowed to use to avoid overloading the server. Alternatively two completely separate web application server instances (e.g. Apache-Tomcat) could be used. This will give you a better resilience and more flexibility in memory settings.
@@ -201,24 +206,24 @@
JABAWS supported cluster batch management systems
JABAWS uses DRMAA v1.0 library to send and manage jobs on the cluster. DRMAA supports many different cluster job management systems. Namely Sun Grid Engine, Condor, PBS, GridWay, Globus 2/4, PBSPro, LSF. For up to date information please consult DRMAA web site. We found that DRMAA implementation differ from platform to platform and were trying to use only the basic functions. We have only tested JABAWS on Sun Grid Engine v 6.2. Please let use know if you have any experience of running JABAWS on other platforms.
Make sure Tomcat has sufficient access rights to read your war file.
-
Restart the Tomcat, sometimes it will not restart after the new war file is added without restart
-
If Tomcat still refuses to unpack the war file, unpack it manually into web application folder (the war file is just a zip archive). Restart the Tomcat.
+
Make sure Tomcat has sufficient access rights to read your war file.
+
Restart the Tomcat, sometimes it will not restart after the new war file is added without restart
+
If Tomcat still refuses to unpack the war file, unpack it manually into web application folder (the war file is just a zip archive). Restart the Tomcat.
If Tomcat undeployes your application:
-
If the war file is automatically removed by Tomcat use an explicit application descriptor. Add a context descriptor file into <tomcatRoot>conf/Catalina/localhost directory. Name your context file the same as your application folder e.g. if your JABAWS resides in webapps/jabaws folder, then call the context file jabaws.xml. Below is an example of content this file might have.
-
<?xml version="1.0" encoding="UTF-8"?>
+
If the war file is automatically removed by Tomcat use an explicit application descriptor. Add a context descriptor file into <tomcatRoot>conf/Catalina/localhost directory. Name your context file the same as your application folder e.g. if your JABAWS resides in webapps/jabaws folder, then call the context file jabaws.xml. Below is an example of content this file might have.
This should be sufficient to prevent Tomcat from removing your JABAWS from WEBAPPS. For more information about the Tomcat deployer read this documentation on the Apache-Tomcat web site.
Provided that you have the Java ready to run, you can get command line help by changing to
the directory where you downloaded the client jar, and typing:
-
@@ -152,7 +152,7 @@
JABAWS CLI, or
with your own program.
The latest versions of Jalview (version 2.9 or later) are fully compatible
- with JABAWS 2.2 and are configured to use the public JABAWS server by default.
+ with JABAWS 2.2.1 and are configured to use the public JABAWS server by default.