--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Getting Started</c:param>
+</c:import>
+
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Choose a JABAWS distribution</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Choose the JABAWS distribution that better suits your needs and read the quickstart guides below.
+ Detailed information is available in the <a href="${pageContext.request.contextPath}/man_docs.jsp">JABAWS docs pages</a>.
+ </p>
+ <br>
+ <div class="row">
+ <!--<div class="col-md-1"></div>-->
+ <div class="col-md-10">
+ <table class="table">
+ <tr>
+ <th>Quick Guide</th>
+ <th>I want to use JABAWS for...</th>
+ </tr>
+ <tr>
+ <td><a href="#va">JABAWS Virtual Appliance (VA)</a></td>
+ <td>Running Multiple Sequence Alignments through Jalview on my
+ <strong>own</strong> computer</td>
+ </tr>
+ <tr>
+ <td><a href="#war">JABAWS Web Application aRchive (WAR)</a></td>
+ <td>Running JABAWS for my group, lab, or organization on the
+ <strong>local</strong> infrastructure </td>
+ </tr>
+ <tr>
+ <td><a href="#client">JABAWS Java Client</a></td>
+ <td>Accessing a JABAWS server from my own code</td>
+ </tr>
+ </table>
+ </div>
+ <div class="col-md-2"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="va">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Virtual Appliance (VA)</h1>
+ </div>
+ <div class="panel-body">
+ <!--<h4>Running JABAWS on your local machine</h4>-->
+
+ <p class="justify">
+ 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 <a href="man_servervm.jsp#whenvm">complete guide
+ to the JABAWS VA</a> is given in the manual, but for the impatient, a brief instructions are given below:
+ </p>
+
+ <p class="justify">
+ If you work on Windows, Linux or Unix:
+ </p>
+ <ol>
+ <li>Download <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">JABAWS Virtual Appliance</a></li>
+ <li>Download and install <a href="http://www.vmware.com/products/player">VMWare Player</a>.</li>
+ <li>Unpack the JABAWS virtual appliance and open it with VMware Player.</li>
+ </ol>
+
+ <p class="justify">
+ If you work on Mac do the same using
+ <a href="http://www.vmware.com/products/fusion/overview.html">
+ VMware Fusion</a>, or for free alternative use a WAR JABAWS package.
+ </p>
+
+ <p><strong>Testing</strong></p>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="justify">
+ Alternatively you can use Jalview to complete the testing.
+ </p>
+ <ol>
+ <li>Launch the desktop version of <a href="http://www.jalview.org/download.html">Jalview</a></li>
+ <li>Open the Jalview desktop's preferences panel (from the Tools->Preferences menu option), select the
+ <em2>Webservices</em2> panel and press the
+ <em2>New Service URL</em2> button.</li>
+ <li>Enter the JABAWS URL for your new server. This is shown once the appliance is booted up.</li>
+ </ol>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="war">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Web Application aRchive (WAR)</h1>
+ </div>
+ <div class="panel-body">
+
+ <!--<h4>Installing a JABAWS Server Web Application Archive (WAR) package</h4>-->
+ <p class="justify">
+ This is for anyone who wants to run JABAWS for their group, lab or organization, or wants to enable
+ their local JABA server to use the cluster or perform very large tasks.
+ </p>
+ <ol>
+ <li>Download the <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">JABAWS WAR file</a></li>
+ <li>Download and install <a href="http://tomcat.apache.org/download-70.cgi">Apache-Tomcat</a>.<br/>
+ <em2>You will need at least Tomcat version 5.5 of
+ (we would recommend version 7.0) and at least Java 1.6 (i.e. JAVA 6).</em2>
+ </li>
+ <li>Drop the JABAWS WAR file into <em2>tomcat/webapps</em2> directory.</li>
+ <li>(Re)start the Tomcat.</li>
+ <li>Once the tomcat has started, it should automatically unpack the WAR
+ into the webapps directory (if it doesn't, then you'll need to do this
+ manually, it's just a zip archive in the end).</li>
+ <li> If you are on Mac or other unix-like architecture with GNU compilers
+ available or you'd like to get a maximum performance <br/>
+ <em2>cd</em2> to
+ <em2>webapps/jabaws/binaries/src/</em2>
+ and execute <em2>./compilebin.sh</em2>
+ script to compile all binaries JABAWS depends on.
+ </li>
+ </ol>
+
+ <p><strong>Testing</strong></p>
+ <p class="justify">
+ You can test that your JABAWS server is working in several ways.
+ </p>
+ <ol>
+ <li>Visit Services Status page available from the JABAWS main page using your web browser.</li>
+
+ <li>If you are working on the command line, then use the command line client shipped with the
+ JABAWS war to test it by running:
+ <pre><code class="bash">java -jar <Path to tomcat WebApp directory>/jabaws/WEB-INF/lib/jaba-client.jar -h=http://localhost:8080/jabaws</code></pre>
+ In this example we assumed that your JABAWS server URL is
+ <em2>http://localhost:8080</em2> and JABAWS context path is
+ <em2>jabaws</em2>
+ </li>
+ <li>Alternately, you can point Jalview at your new server:
+ <ul>
+ <li>Launch the desktop version of <a href="http://www.jalview.org/download.html">Jalview</a></li>
+ <li>Open the Jalview desktop's preferences panel (from the Tools->Preferences menu option),
+ elect the <em2>Webservices</em2> panel and press
+ the <em2>New Service URL</em2> button.</li>
+ <li>Enter the URL for the tomcat server, including the context path for the
+ JABAWS web app (e.g. http://localhost:8080/jabaws).</li>
+ </ul>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="client">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Command Line Java Client</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ This is a single java archive which contains the JABAWS command line client. It requires Java
+ version 1.6 to run, and allows anyone who wants to connect to and to use JABAWS from their own
+ software.
+ </p>
+ <ol>
+ <li>Download <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">the Client Jar file</a></li>
+ </ol>
+ <p class="justify">
+ You can read more about how to use command line client <a href="man_client.jsp">in
+ the CMD Client</a> section of the manual. You can also get command line help by changing to
+ the directory where you downloaded the client jar, and typing:
+ </p>
+ <pre><code class="bash">java -jar jaba-client.jar</code></pre>
+ <p class="justify">
+ A 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.
+ <!-- TODO Provide list of libraries for different languages -->
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Main Page</c:param>
+</c:import>
+
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Welcome to the JABAWS website</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ <p style="color:black; font-weight:normal; text-align:left;">
+ <span style="border-bottom:dotted 1px #666" title="JAva Bioinformatics Analysis Web Services">JABAWS</span>
+ is free software which provides <a href="http://en.wikipedia.org/wiki/Web_service">web services</a> conveniently
+ packaged to run on your local computer, server or cluster.
+ </p>
+ <p class="justify">
+ Services for multiple sequence alignment include
+ <a href="http://www.clustal.org/omega">Clustal Omega</a>,
+ <a href="http://www.clustal.org/clustal2">Clustal W</a>,
+ <a href="http://align.bmr.kyushu-u.ac.jp/mafft/software/">MAFFT</a>,
+ <a href="http://www.drive5.com/muscle">MUSCLE</a>,
+ <a href="http://www.tcoffee.org/Projects_home_page/t_coffee_home_page.html">T-Coffee</a>,
+ <a href="http://probcons.stanford.edu/">ProbCons</a>,
+ <a href="http://msaprobs.sourceforge.net/">MSAProbs</a>, and
+ <a href="http://sourceforge.net/projects/glprobs/">GLProbs</a>.
+ Analysis services allow prediction of the protein disorder with
+ <a href="http://dis.embl.de/">DisEMBL</a>,
+ <a href="http://iupred.enzim.hu">IUPred</a>,
+ Jronn (a Java implementation of <a href="http://www.strubi.ox.ac.uk/RONN">Ronn</a> by P. Troshin and G. Barton, unpublished), and
+ <a href="http://globplot.embl.de/">GlobPlot</a>; and calculation of amino acid alignment conservation
+ with <a href="http://www.compbio.dundee.ac.uk/aacon">AACon</a>.
+ The secondary structure for an RNA aligment can be predicted with the RNAalifold program from the
+ <a href="http://www.tbi.univie.ac.at/RNA">Vienna RNA package</a>.
+ </p>
+ <p class="justify">
+ <span style="color:black; font-weight:normal; text-align:left;">
+ JABAWS 2.2 installation can be accessed from the <strong><a href="http://www.jalview.org">Jalview</a> desktop
+ application</strong> (version 2.8 onwards) and the <a href="man_client.jsp">JABAWS command-line client</a>.
+ JABAWS is able to provide multiple alignment and sequence analysis calculations limited only by your own
+ computing resources.<br/>
+ </span>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row">
+ <div class="col-md-4">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">For Users</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ <strong>The Server: </strong><a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=JABAWS201.pack.tar.gz">JABAWS Virtual Appliance:</a> (440M)
+ or <a href="2.1/man_awscloud.html">JABAWS on Amazon Webservices Cloud</a><br/>
+ <strong>The Main Client: </strong><a href="http://www.jalview.org/download.html">Jalview</a> (18M)
+ </p>
+ <p class="justify">
+ To use JABAWS web services on most operating systems, just download and <a href="2.1/manual_qs_va.html#qsc">install</a>
+ the JABAWS Virtual Appliance (VA). Or even easier - just start JABAWS machine on the cloud and point Jalview at it!
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-4">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">For System Administrators</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ <strong>The Server: </strong><a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=jabaws.war">JABAWS Web
+ Application aRchive</a> (55M)
+ </p>
+ <p class="justify">
+ JABAWS requires a Servlet 2.4 compatible servlet container like <a href="http://tomcat.apache.org">Apache Tomcat</a>
+ to run. Please check the <a href="2.1/manual_qs_war.html#qsc">quick start guide</a> for installation instructions.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-4">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">For Bioinformaticians/Developers</h1>
+ </div>
+ <div class="panel-body">
+ <strong>The Server: </strong><a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=jabaws.war">JABAWS Web Application aRchive</a> (55M)
+ <br/>
+ <strong>The Client: </strong>
+ Command Line Client <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=min-jaba-client-2.1.jar">binary</a> |
+ <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=jaba-client-src-2.1.jar">source</a>
+ <p class="justify">
+ You can either use the JABAWS Virtual Appliance or the JABAWS Web Application aRchive (WAR) from your own computer or a lab server.
+ The WAR version gives greater flexibility but requires a bit more configuration. Alternatively you can script against our public
+ server (see below) with the command line client or you own script.
+ Check out the <a href="2.1/manual_qs_client.html#qsc">quick start guide</a> for further details.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Public JABAWS Server</h1>
+ </div>
+ <div class="panel-body">
+
+ <p class="justify">
+ You can access our public JABAWS web services with our
+ <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=min-jaba-client-2.1.jar">command line client</a>,
+ <a href="http://www.jalview.org/download.html">Jalview</a>,
+ or with your own program. Jalview version 2.8 or later is fully compatible with JABAWS 2.1.
+ The latest versions of Jalview are configured to use public JABAWS server by default.</p>
+ <ul>
+ <li>The JABAWS public web services address is <strong>http://www.compbio.dundee.ac.uk/jabaws</strong> </li>
+ <li>A detailed web services description is available from here:
+ <a href="http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?"
+ title="http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?" rel=nofollow">WSDL List</a></li>
+ </ul>
+ <p class="justify">
+ These web services accept submissions of <strong>less than one thousand sequences</strong>.
+ Should you find this to be insufficient for your needs, or if you are concerned about privacy
+ or on an unreliable network connection, then you can
+ <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">download</a> and
+ run the JABAWS Server on your own hardware.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Previous versions of JABAWS</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ We advise you to update to JABAWS 2.1 as this version is fully backward compatible with JABAWS v1.0 and v2.0 and contains
+ <a href="man_about.jsp#jaba2.2">some important bug fixes</a>. Please consult the <a href="man_about.jsp#jalviewsup">manual</a>
+ for more information on compatibility between versions.</p><p>Should you require them, however, old versions of JABAWS are available here:</p>
+ <ul>
+ <li><strong><a href="http://www.compbio.dundee.ac.uk/jabaws1">http://www.compbio.dundee.ac.uk/jabaws1</a></strong></li>
+ <li><strong><a href="http://www.compbio.dundee.ac.uk/jabaws2">http://www.compbio.dundee.ac.uk/jabaws2</a></strong></li>
+ <li><strong><a href="http://www.compbio.dundee.ac.uk/jabaws201">http://www.compbio.dundee.ac.uk/jabaws201</a></strong></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Reference</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Peter V. Troshin, James B. Procter and Geoffrey J. Barton -
+ Java Bioinformatics Analysis Web Services for Multiple Sequence Alignment - JABAWS:MS
+ <em>Bioinformatics</em> 2011. 27 (14): 2001-2002. doi: <a href="http://bioinformatics.oxfordjournals.org/content/early/2011/05/18/bioinformatics.btr304.abstract?keytype=ref&ijkey=gd0DwuYBzFRhe4T">
+ 10.1093/bioinformatics/btr304</a>.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+ <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+ <li><a href="man_docs.jsp">Documentation</a></li>
+ <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">What is JABAWS?</h1>
+ </div>
+ <div class="panel-body">
+ <!--<h4>About</h4>-->
+ <ul>
+ <li><a href="#wisjaba">What is JABAWS?</a></li>
+ <li><a href="#wjaba">JABAWS Benefits</a></li>
+ <li><a href="#alprog">JABA Web Services Programs</a></li>
+ <li><a href="#jaba2.2">What is new in JABAWS 2.2?</a> </li>
+ <li><a href="#jabaclient">What is JABAWS Client</a>?</li>
+ <li><a href="#jalviewsup">JABAWS versions compatibility and Jalview support </a></li>
+ <li><a href="#cmdclient">Programmatic access to JABAWS</a></li>
+ </ul>
+ <!--<p class="justify">-->
+ <!--</p>-->
+ </div>
+ </div>
+ </div>
+</div>
+
+<div class="row" id="wisjaba">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">What is JABAWS?</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS stands for JAva Bioinformatics Analysis Web Services. As the name suggests, 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 <a href="#alprog">the list of currently supported programs</a>) from <a href="http://www.jalview.org">Jalview</a>.
+ Future versions of JABAWS will incorporate other tools.
+ </p>
+ <strong>Getting JABAWS</strong>
+ <p>
+ 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. 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. 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 client is what you need.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="wjaba">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Benefits</h1>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li>Can be deployed on most operating systems, as a VMware or other compatible Virtual Appliance or a Tomcat Java Web Application.</li>
+ <li>Comes complete with sources and binaries for all the bioinformatics programs that it runs.</li>
+ <li>Can operate as a stand alone server or one that submits jobs to a cluster <em>via</em> <a href="http://www.drmaa.org/">DRMAA</a>.</li>
+ <li>Easy to access from <a href="http://www.jalview.org">Jalview</a> using its graphical client, or using the JABAWS command line client.</li>
+ <li>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 <a href="http://www.compbio.dundee.ac.uk/">University of Dundee</a>.</li>
+ <li>Local or intranet installation eliminates any security concerns you might have about sending sensitive data over the internet.</li>
+ <li>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.</li>
+ </ul>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="alprog">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABA Web Services Programs</h1>
+ </div>
+ <div class="panel-body">
+ <p>JABAWS currently provides access to the following programs:</p>
+ <strong>Multiple Sequence Alignment</strong>
+ <ul>
+ <li><a href="http://www.clustal.org/omega">Clustal Omega </a> (version 1.0.2)</li>
+ <li><a href="http://www.clustal.org/clustal2">ClustalW</a> (version 2.52)</li>
+ <li><a href="http://align.bmr.kyushu-u.ac.jp/mafft/software/">Mafft</a> (version 6.857)</li>
+ <li><a href="http://www.drive5.com/muscle">Muscle</a> (version 3.8.31) </li>
+ <li><a href="http://www.tcoffee.org/Projects_home_page/t_coffee_home_page.html">Tcoffee</a> (version 8.99) </li>
+ <li><a href="http://probcons.stanford.edu/">Probcons</a> (version 1.12)</li>
+ <li><a href="http://msaprobs.sourceforge.net/">MSAProbs</a> (version 0.9.7)</li>
+ <li><a href="http://sourceforge.net/projects/glprobs/">GLProbs</a> (version 0.9.7)</li>
+ </ul>
+
+ <strong>Protein disorder prediction</strong>
+ <ul>
+ <li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://dis.embl.de/">DisEMBL</a></span> (version 1.5) </li>
+ <li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://iupred.enzim.hu">IUPred</a></span> (version 1.0) </li>
+ <li><span style="color:black; font-weight:normal; text-align:left;">Jronn - Java implementation of <a href="http://www.strubi.ox.ac.uk/RONN">Ronn</a></span> (version 3.1) </li>
+ <li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://globplot.embl.de/">GlobPlot</a></span> (version 2.3) </li>
+ </ul>
+ <strong>Amino Acid conservation</strong>
+ <ul>
+ <li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://www.compbio.dundee.ac.uk/aacon">AACon</a></span> (version 1.0) </li>
+ </ul>
+ <strong>Secondary structure for an RNA aligment</strong>
+ <ul>
+ <li><span style="color:black; font-weight:normal; text-align:left;">RNAalifold from <a href="http://www.tbi.univie.ac.at/RNA">ViennaRNA</a></span> (version 2.0) </li>
+ </ul>
+
+ <!--<p>Protein Secondary structure prediction</p>-->
+ <!--<ul>-->
+ <!--<li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://www.compbio.dundee.ac.uk/jpred/">Jpred</a></span> (version 4.0) is now provided by-->
+ <!--the <a href="http://www.compbio.dundee.ac.uk/jpred/api.shtml">Jpred REST API</a>.</li>-->
+ <!--</ul>-->
+
+ <!--<p class="justify">-->
+ <!--All these codes including Jronn and AAcon are available at the <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">Download</a>-->
+ <!--section (registration is required).-->
+ <!--</p>-->
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="jaba2.2">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">What is new in JABAWS 2.2?</h1>
+ </div>
+ <div class="panel-body">
+
+ <strong>JABAWS Version 2.2 (Released XX Feb 2017)</strong>
+ <p >The website was improved and several service programs were update:</p>
+ <ul>
+ <li>The versions of several application programs provided by JABAWS were bumped to the latest available.
+ Updated programs include: <mark> X, Y, Z</mark></li>
+ <li>
+ Protein secondary structure prediction with <a href="http://www.compbio.dundee.ac.uk/jpred/">Jpred</a> (version 3.0.3)
+ was dropped from the list of provided services, as the use of the dedicated
+ <a href="http://www.compbio.dundee.ac.uk/jpred/api.shtml">Jpred REST API</a> (Jpred 4) is encouraged and recommended.
+ This is the version that is currently provided within <a href="http://www.jalview.org/">Jalview</a> 2.9 or later.
+ </li>
+ <li>
+ The pre-configured JABAWS Amazon Machine Image (AMI),
+ which allowed for JABAWS to be run
+ in the <a href="http://aws.amazon.com/what-is-aws">Amazon EC2 cloud</a>, is no longer provided
+ due to very limited use by the scientific community.
+ </li>
+ </ul>
+
+ <strong>JABAWS Version 2.1 (Released 1st Oct 2013)</strong>
+ <p>Several new web services are available in this version of JABAWS:</p>
+ <ul>
+ <li>Two multiple sequence aligners (MSAprobs and GLprobs), both services return the standard Alignment object</li>
+ <li>RNAalifoldWS returns RNAStructScoreManager, which is the standard ScoreManager objects with several additional methods</li>
+ <li>
+ 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
+ </li>
+ </ul>
+
+ <p>Some bugs have been fixed and several improvements have been done:</p>
+ <ul>
+ <li>WS status servlet returns version and some additional information on each web service</li>
+ <li>a bug with path to help in the client</li>
+ <li>Fix two bug with the Google Analytics library: no-stop due to running thread</li>
+ <li>GoogleAnalytics gets proper JABAWS version</li>
+ </ul>
+
+
+ <strong>JABAWS Version 2.0.1 (Released 2nd Jul 2013)</strong><p>JABAWS 2.0.1 includes several bug fixes and minor updates for <a href="#jaba2">JABAWS Version 2.0</a>. These are listed below:</p>
+ <ul>
+ <li>Disembl returned swapped strings for HOTLOOPS and REM465</li>
+ <li>Jronn failed to process jobs with more than 3 sequences</li>
+ <li>JABAWS could not deal with FASTA records with '>' symbols in the record identificator</li>
+ <li>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</li>
+ <li>JABAWS never cleaned up job directories. Now JABAWS deletes the job directory if it exist longer than a period defined in Engine.properties</li>
+ <li>Default web security has been incompatible with Tomcat 7.0.31 and newer</li>
+ <li>Documentation has been updated</li>
+ </ul>
+
+ <div id="jaba2"></div><strong>JABAWS Version 2 (Released 16th Dec 2011)</strong><p>Compared to JABAWS 1, JABAWS 2 offers a greater number and diversity of web services, Amazon EC2 integration and improved ease of use.</p><p>It contains:</p>
+ <ul><li>updates for all multiple sequence alignment services</li>
+ <li>four new protein disorder prediction services</li>
+ <li>Clustal Omega multiple sequence alignment web service</li>
+ <li>amino acid conservation service</li>
+ <li>web services execution statistics visualization </li>
+ <li>web services status check from a web page</li>
+ <li>VirtualBox support was dropped in favour of VMware</li>
+ <li>new WAR package for Mac users</li>
+ <li>Amazon Machine Image (AMI) distributive to enable users to use JABAWS on the EC2 cloud</li>
+ <li>Improved web services client API</li>
+ <li>Simplified WAR package installation</li>
+ </ul>
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="jabaclient">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">What is the JABAWS Client?</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">A JABAWS client is a Java application that lets you run the programs for which a JABAWS server provides web
+ services. The most basic JABAWS client is a 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 theJABAWS 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.
+ <a href="http://www.jalview.org/">Jalview</a>, a multiple sequence alignment and analysis application, is a good
+ example of a graphical JABAWS client. This client uses the same functionality as the command line client, but
+ instead allows JABAWS services to be accessed in a more user-friendly manner, through a graphical user interface.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="jalviewsup">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS versions compatibility and Jalview support</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ 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. To access the analysis web services introduced in
+ JABAWS 2.0, however, clients that were designed for JABAWS v1.0 must be updated.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="cmdclient">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Programmatic access to JABAWS</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS web services are WS-I basic profile compliant, which means they can be accessed
+ using any programming language
+ or system that can utilize standard SOAP web services. The WSDL for each service is
+ published on the JABAWS home
+ page, and you can use this to automatically generate service bindings for your program.
+ If you use Java
+ you may wish to use our
+ <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev">client package</a> to access JABAWS.
+ This package is based on the autogenerated source code produced by
+ <em2>wsimport</em2>, which
+ is the Java tool for creating web service bindings. In addition, this offers some
+ additional methods that simplify
+ working with JABAWS. For more information please refer to the
+ <a href="dm_javadoc/index.html">data model javadoc</a>.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+ <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+ <li><a href="man_docs.jsp">Documentation</a></li>
+ <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row" id="usingcclient">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Command Line Client Usage</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ The command line client comes as a part of
+ <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download"> client package</a>
+ 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
+ <a href="dm_javadoc/index.html">JABAWS API</a>. 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.
+ </p>
+ <pre><strong>Usage:</strong>
+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]
+<br/>
+<strong>ACTIONS:</strong>
+-i=<inputFile> - full path to fasta formatted sequence file, from which to align sequences
+-parameters - lists parameters supported by web service
+-presets - lists presets supported by web service
+-limits - lists web services limits
+Please note that if input file is specified other actions are ignored
+<br/>
+<strong> OPTIONS:</strong> (only for use with -i action):
+-r=<presetName> - name of the preset to use
+-o=<outputFile> - full path to the file where to write an alignment
+-f=<parameterInputFile> - the name of the file with the list of parameters to use.<br />
+Please note that -r and -f options cannot be used together. Alignment is done with either preset or aparameters from the file, but not both!</pre>
+
+ <p class="justify">
+ Align sequences from input.fasta file using Mafft web
+ service with default settings, print alignment in Clustal format to console.
+ </p>
+ <pre><code class="bash">java -jar jabaws-min-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -i=d:\input.fasta</code></pre>
+ <p class="justify">
+ Content of input.fasta file is show below (please note sequences has been
+ trimmed for clarity)
+ </p>
+ <pre>>Foobar
+MTADGPRELLQLRAAVRHRPQDFVAWL
+>Bar
+MGDTTAGEMAVQRGLALHQ
+>Foofriend
+MTADGPRELLQLRAAV</pre>
+ <p class="justify">
+ Align as in above example, but write output alignment in a
+ file out.clustal, using parameters defined in prm.in file
+ </p>
+ <pre><code class="bash">java -jar jabaws-min-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -i=d:\input.fasta -o=d:\out.clustal -f=prm.in</code></pre>
+ <p class="justify">
+ The content of the prm.in file is shown below
+ <pre><code class="bash">--nofft
+--noscore
+--fastaparttree
+--retree=10
+--op=2.2</code></pre>
+ <p class="justify">
+ 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 <em2>prm.in</em2> 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.
+ </p>
+ <pre><code class="bash">java -jar jabaws-min-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -parameters</code></pre>
+
+ <p class="justify">
+ 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.
+ </p>
+ <p class="justify">
+ For example you used
+ <em2>-h=http://myhost.compbio.ac.uk:8080/jabaws</em2> server,
+ now you want to use another server to
+ <em2>-h=http://mylabserver.myuni.edu.</em2> This comes handy if
+ your favorite server is off and you need to do the job yesterday.
+ </p>
+
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+ <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+ <li><a href="man_docs.jsp">Documentation</a></li>
+ <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Server Configuration</h1>
+ </div>
+ <div class="panel-body">
+ <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+ <ul>
+ <li><a href="#defjabaconf">JABAWS Configuration </a></li>
+ <li><a href="#locEngConf">Local Engine Configuration</a></li>
+ <li><a href="#clustEngConf">Cluster Engine Configuration</a></li>
+ <li><a href="#exec">Executable Configuration</a></li>
+ <li><a href="#setexecenv">Defining Environment Variables for Executables</a></li>
+ <li><a href="#mafftconf">Configure JABAWS to Work with Mafft</a></li>
+ <li><a href="#settinglimit">Limiting the size of the job accepted by JABAWS Server </a></li>
+ <li><a href="#diffbin">Using a different version of the alignment program with JABAWS</a></li>
+ <li><a href="#mixuse">Load balancing </a></li>
+ <li><a href="#testingJaba">Testing JABA Web Services</a></li>
+ <li><a href="#logs">JABAWS requests logging </a></li>
+ <li><a href="#logfiles">JABAWS internal logging </a></li>
+ <li><a href="#warfile">JABAWS War File Content</a></li>
+ <li><a href="#ga">JABAWS and Google Analytics</a></li>
+ </ul>
+ <!--<p class="justify">-->
+ <!--</p>-->
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="defjabaconf">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Configuration</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ There are three parts of the system you can configure. The local
+ and the cluster engines, and the paths to the individual executables for
+ each engine. These settings are stored in configuration files
+ within the web application directory (for an overview, then take a
+ look at the <a href="#warfile">war file content table</a>).
+ </p>
+ <p class="justify">
+ Initially, JABAWS is configured with only the local engine
+ enabled, with job output written to directory called "jobsout"
+ within the web application itself. This means that JABAWS will work
+ out of the box, but may not be suitable for serving a whole lab or
+ a university.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="locEngConf">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Local Engine Configuration</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ The Local execution engine configuration is defined in the
+ properties file <em2>conf/Engine.local.properties.</em2> The supported
+ configuration settings are:</p>
+ <p>
+ <em2>engine.local.enable=true</em2> - #
+ enable or disable local engine, valid values true | false</p>
+ <p>
+ <em2>local.tmp.directory=D:\\clusterengine\\testoutput</em2>
+ - a directory to use for temporary files storage, optional,
+ defaults to java temporary directory</p>
+ <p>
+ <em2>engine.local.thread.number=4</em2> -
+ Number of threads for tasks execution (valid values between 1 and
+ 2x cpu. Where x is a number of cores available in the system).
+ Optional defaults to the number of cores for core number <=4 and
+ number of cores-1 for greater core numbers.
+ </p>
+
+ <p class="justify">
+ If the local engine going to be heavily loaded (which is often the case if
+ you do not have a cluster) it is a good idea to increase
+ the amount of memory available for the web application server. If
+ you are using Apache-Tomcat, then you can define its memory
+ settings in the JAVA_OPTS environment variable. To specify which
+ JVM to use for Apache-Tomcat, put the full path to the JRE
+ installation in the JAVA_HOME environment variable. (We would
+ recommend using Sun Java Virtual Machine (JVM) in preference to
+ Open JDK). Below is an example of code which can be added to
+ <em2><tomcat_dir>/bin/setenv.sh</em2> script
+ to define which JVM to use and a memory settings for Tomcat server.
+ Tomcat server startup script (<em2>catalina.sh</em2>)
+ will execute <em2>setenv.sh</em2> on each server start automatically.
+ </p>
+ <pre><code class="bash">export JAVA_HOME=/homes/ws-dev2/jdk1.6.0_17/
+export JAVA_OPTS="-server -Xincgc -Xms512m -Xmx1024m"</code></pre>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="clustEngConf">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Cluster Engine Configuration</h1>
+ </div>
+ <div class="panel-body">
+ <p>Supported configuration settings:
+ <em2>engine.cluster.enable=true</em2> - #
+ enable or disable local engine true | false, defaults to
+ false</p>
+ <p><em2>cluster.tmp.directory=/homes/clustengine/testoutput-</em2>
+ a directory to use for temporary files storage. The value must be
+ an absolute path to the temporary directory. This is required. The value
+ must be different from what is defined for local engine. This
+ directory must be accessible from all cluster nodes.</p>
+ <p>
+ For the cluster engine to work, the SGE_ROOT and LD_LIBRARY_PATH
+ environment variables have to be defined. They tell the cluster
+ engine where to find DRMAA libraries. These variables
+ should be defined when the web application server starts up, e.g.
+ </p>
+
+ <pre><code class="bash">SGE_ROOT=/gridware/sge
+LD_LIBRARY_PATH=/gridware/sge/lib/lx24-amd64</code></pre>
+
+ <p class="justify">
+ Finally, do not forget to configure executables for the cluster
+ execution, they may be the same as for the local execution but may
+ be different. Please refer to the executable configuration section
+ for further details.
+ </p>
+
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="exec">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Executable Configuration</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ All the executable programs
+ are configured in <em2>conf/Executable.properties</em2> file. Each executable
+ is configured with a number of options. They are:
+ </p>
+ <pre><code class="bash">local.X.bin.windows=<path to executable under windows system, optional>
+local.X.bin=<path to the executable under non-windows system, optional>
+cluster.X.bin=<path to the executable on the cluster, all cluster nodes must see it, optional><
+X.bin.env=<semicolon separated list of environment variables for executable, use hash symbol as name value separator, optional>
+X.--aamatrix.path=<path to the directory containing substitution matrices, optional>
+X.presets.file=<path to the preset configuration file, optional>
+X.parameters.file=<path to the parameters configuration file, optional>
+X.limits.file=<path to the limits configuration file, optional>
+X.cluster.settings=<list of the cluster specific options, optional></code></pre>
+
+ <p>Where X is either clustal, muscle, mafft, probcons or tcoffee.</p>
+
+ <p class="justify">
+ Default JABAWS configuration includes path to local executables
+ to be run by the local engine only, all cluster related settings
+ are commented out, but they are there for you as examples. Cluster
+ engine is disabled by default. To configure executable for cluster
+ execution uncomment the X.cluster settings and change them
+ appropriately.
+ </p>
+ <p class="justify">
+ By default limits are set well in excess of what you may want to offer to the users outside your lab,
+ to make sure that the tasks are never rejected. The default limit is 100000 sequences of 100000
+ letters on average for all of the JABA web services. You can adjust the limits according to your
+ needs by editing <em2>conf/settings/<X>Limit.xml</em2> files.<br />
+ After you have completed the editing your configuration may look like
+ this:
+ </p>
+ <pre><code class="bash">local.mafft.bin=binaries/mafft
+cluster.mafft.bin=/homes/cengine/mafft
+mafft.bin.env=MAFFT_BINARIES#/homes/cengine/mafft;FASTA_4_MAFFT#/bin/fasta34;
+mafft.--aamatrix.path=binaries/matrices
+mafft.presets.file=conf/settings/MafftPresets.xml
+mafft.parameters.file=conf/settings/MafftParameters.xml
+mafft.limits.file=conf/settings/MafftLimits.xml
+mafft.cluster.settings=-q bigmem.q -l h_cpu=24:00:00 -l h_vmem=6000M -l ram=6000M</code></pre>
+
+ <p class="justify">
+ Please not that relative paths must only be specified for the
+ files that reside inside web application directory, all other paths
+ must be supplied as absolute!</p>
+
+ <p class="justify">
+ Furthermore, you should avoid using environment variables within the paths or options - since
+ these will not be evaluated correctly. Instead, please explicitly specify the absolute path
+ to anything normally evaluated from an environment variable at execution time.
+ </p>
+
+ <p class="justify">
+ If you are using JABAWS to submit jobs to the cluster (with
+ cluster engine enabled), executables must be available from all
+ cluster nodes the task can be sent to, also paths to the
+ executables on the cluster e.g. <em2>cluster.<exec_name>.bin</em2> must be
+ absolute.
+ </p>
+
+ <p class="justify">Executables can be located anywhere in your system, they do not
+ have to reside on the server as long as the web application server
+ can access and execute them.
+ </p>
+
+ <p class="justify">
+ Cluster settings are treated as a black box, the system will
+ just pass whatever is specified in this line directly to the
+ cluster submission library. This is how DRMAA itself treats this
+ settings. More exactly DRMAA <em2>JobTemplate.setNativeSpecification()</em2>
+ function will be called.
+ </p>
+ <p class="justify">
+ For further details and examples of configuration please refer to the
+ <em2>Executable.properties</em2> file supplied with JABAWS.
+ </p>
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="setexecenv">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Defining Environment Variables for
+ Executables</h1>
+ </div>
+ <div class="panel-body">
+ <p>Environment variables can be defined in property</p>
+ <pre><code class="bash">x.bin.env</code></pre>
+ <p>
+ Where <em2>x</em2> is one of five executables supported by JABAWS. Several environment
+ variables can be specified in the same line. For example.
+ </p>
+ <pre><code class="bash">mafft.bin.env=MAFFT_BINARIES#/homes/cengine/mafft;FASTA_4_MAFFT#/bin/fasta34;</code></pre>
+
+ <p class="justify">
+ The example above defines two environment variables with names
+ MAFFT-BINARIES and FASTA_4_MAFFT and values /homes/cengine/mafft
+ and /bin/fasta34 respectively. Semicolon is used as a separator
+ between different environment variables whereas hash is used as a
+ separator for name and value of the variable.
+ </p>
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="mafftconf">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Configure JABAWS to Work
+ with Mafft</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ If you use default configuration you do not need to read any
+ further. The default configuration will work for you without any
+ changes, however, if you want to install Mafft yourself then there
+ is a couple of more steps to do.
+ </p>
+
+ <p class="justify">
+ Mafft executable needs to know the location of other files
+ supplied with Mafft. In addition some Mafft functions depends on
+ the fasta executable, which is not supplied with Mafft, but is a
+ separate package. Mafft needs to know the location of fasta34
+ executable.
+ </p>
+
+ <p class="justify">
+ To let Mafft know where the other files from its package are,
+ change the value of MAFFT-BINARIES environment variables. To let
+ Mafft know where is the fasta34 executable set the value of
+ FASTA_4_MAFFT environment variable to point to a location of
+ fasta34 program. The latter can be added to the PATH variable
+ instead. If you are using executables supplied with JABAWS, the
+ path to Mafft binaries would be like
+ <em2><relative path to web application directory>/binaries/src/mafft/binaries</em2>
+ and the path to fasta34 binary would be
+ <em2><relative path to web application directory>/binaries/src/fasta34/fasta34</em2>.
+ You can specify the location of Mafft binaries as well as fasta34 program elsewhere
+ by providing an absolute path to them. All these settings are
+ defined in <em2>conf/Executable.properties</em2> file.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="settinglimit">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Limiting the size of the job accepted by JABAWS</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS can be configured to reject excessively large tasks. This is useful if you operate JABAWS service
+ for many users. By defining a maximum allowed task size you can provide an even service for all users and
+ prevents waste of resources on the tasks too large to complete successfully. You can define the maximum
+ number of sequences and the maximum average sequence length that JABAWS accepts for each JABA Web Service
+ independently. Furthermore, you can define different limits for different presets of the same web service.
+ </p>
+ <p class="justify">
+ By default limits are disabled. You can enable them by editing
+ <em2>conf/Executable.properties</em2>
+ file. You can adjust the limits according to your needs by editing
+ <em2>conf/settings/<X>Limit.xml</em2>
+ files.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="diffbin">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Using a different version of the alignment program with JABAWS</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS is supplied with binaries and source code of the executables related to the version it supports. So normally you
+ would not need to install your own executables. However, if you have a different version of an executable
+ (e.g. an alignment program) which you prefer, you could use it as long as it supports all the functions
+ JABAWS executable require. This could be the case with more recent executable. If the options supported
+ by your chosen executable is different from the standard JABAWS executable, then you need to edit
+ <em2>ExecutableName</em2>Paramaters.xml configuration file.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="mixuse">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Load balancing</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ If your cluster is busy and has significant waiting times, you can achieve a faster response by allowing
+ the server machine to calculate small tasks and then reserve the cluster for bigger jobs. This works
+ especially well if your server is a powerful machine with many CPUs. To do this you need to enable and
+ configure both the cluster and the local engines. Once this is done decide on the maximum size of a task
+ to be run on the server locally. Then, edit
+ <em2>"# LocalEngineExecutionLimit #" </em2>preset
+ in <em2> <ServiceName>Limits.xml</em2> file accordingly. JABAWS server then
+ will balance the load according to the following rule: If the task size is smaller than the maximum task
+ size for local engine, and the local engine has idle threads, then it calculates task locally otherwise it submit
+ the task to the cluster.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="testingJaba">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Testing JABA Web Services</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Access <em2><your_JABAWS_server_URL>/ServiceStatus</em2> to test all web services.
+ Each time you access this URL, all services are tested.
+ For production configuration we recommend prohibiting requests to this URL for non
+ authenticated users to prevent excessive load on the server.
+ </p>
+ <p class="justify">
+ Alternatively, you can use a command line client (part of the client only
+ package) to test your JABAWS installation as described <a href="man_client.jsp">here</a>.
+ If you downloaded a JABAWS server package, you can use
+ <em2><your_jaba_context_name>/WEB-INF/lib/jaba-client.jar</em2> to test JABAWS installation as
+ described <a href="man_serverwar.jsp#usingWsTester">here</a>. If you downloaded the source
+ code, then you could run a number of test suites defined in the
+ build.xml Apache Ant file.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="logs">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS requests logging</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Enable Tomcat log valve. To do this uncomment the following section of
+ <em2><tomcat_root>/conf/server.xml</em2> configuration file.
+ </p>
+ <pre><code class="bash"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+ prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/></code></pre>
+
+ <p> The following information will be logged:</p>
+ <table class="table">
+ <tr>
+ <th>Remote IP</th>
+ <th>Date</th>
+ <th>Method server_URL protocol </th>
+ <th>HTTP status </th>
+ <th>Response size in bytes </th>
+ </tr>
+ <tr>
+ <td>10.31.11.159</td>
+ <td>[10/Feb/2010:16:51:32 +0000]</td>
+ <td>"POST /jws2/MafftWS HTTP/1.1"</td>
+ <td>200</td>
+ <td>2067</td>
+ </tr>
+ </table>
+ <p>Which can be processed in various programs for log analysis,
+ such as <a href="http://www.webalizer.org/">WebAlizer</a>,
+ <a href="http://www.analog.cx/">Analog</a>,
+ <a href="http://awstats.sourceforge.net/">AWStats</a>.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="logfiles">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS internal logging</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+
+ JABAWS can be configured to log what it is doing. This comes in
+ handy if you would like to see who is using your web services or
+ need to chase some problems. JABAWS uses
+ <a href="http://logging.apache.org/log4j/1.2/">log4j</a> to do the logging,
+ the example of log4j configuration is bundled with JABAWS war file.
+ You will find it in the <em2>/WEB-INF/classes/log4j.properties</em2> file. All the
+ lines in this file are commented out. The reason why the logging is
+ disabled by default it simple, log4j has to know the exact
+ location of where the log files are stored. This is not known up
+ until the deployment time. To enable the logging you need to
+ define<em2> logDir</em2> property in the <em2>log4j.properties</em2> and uncomment section of
+ the file which corresponds to your need. More information is given
+ in the <em2>log4j.properties</em2> file
+ itself. Restart the Tomcat or the JABAWS web application to apply
+ the settings.
+ </p>
+ <p>
+ After you have done this, assuming that you did not change the
+ log4j.properties file yourself, you should see the application log
+ file called <em2>activity.log</em2>. The
+ file called <em2>activity.log</em2>. The
+ amount of information logged can be adjusted using different
+ logging levels, it is reduced in the following order of log levels
+ TRACE, DEBUG, INFO, WARN, ERROR, FATAL.
+ </p>
+ <p>
+ If you would like to know who is using your services, you might
+ want to <a href="#logs">enable Tomcat request
+ logging</a>.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="warfile">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS War File Content</h1>
+ </div>
+ <div class="panel-body">
+ <table class="table">
+ <tr>
+ <th style="width:19%">Directory</th>
+ <th style="width:81%">Content description</th>
+ </tr>
+ <tr>
+ <td>conf/</td>
+ <td>contains configuration files such as Executable.properties,
+ Engine.local.properties, Engine.cluster.properties</td>
+ </tr>
+ <tr>
+ <td>conf/settings</td>
+ <td>Contains individual executable description files. In particular
+ XXXParameters.xml, XXXPresets.xml, XXXLimits.xml where XXX is the
+ name of the executable</td>
+ </tr>
+ <tr>
+ <td>ExecutionStatistics</td>
+ <td>The database for storing the execution statistics </td>
+ </tr>
+ <tr>
+ <td>statpages</td>
+ <td>Web pages for usage statistics visialization and webservices status queries </td>
+ </tr>
+ <tr>
+ <td>jobsout/</td>
+ <td>Contains directories generated when running an individual executable. E.g. input and output files and some other task
+ related data (optional)</td>
+ </tr>
+ <tr>
+ <td>binaries/</td>
+ <td>Directory contains native executables - programs,
+ windows binaries (optional)</td>
+ </tr>
+ <tr>
+ <td>binaries/src</td>
+ <td>Contains source of native executables and Linux i386
+ binaries</td>
+ </tr>
+ <tr>
+ <td>binaries/windows</td>
+ <td>Contains binaries for MS Windows operating system </td>
+ </tr>
+ <tr>
+ <td>binaries/matrices</td>
+ <td>Substitution matrices
+ <!-- what format ? --></td>
+ </tr>
+ <tr>
+ <td>WEB-INF</td>
+ <td>Web application descriptor</td>
+ </tr>
+ <tr>
+ <td>WEB-INF/lib</td>
+ <td>Web application libraries</td>
+ </tr>
+ <tr>
+ <td>WEB-INF/classes</td>
+ <td>log4j.properties - log configuration file (optional)</td>
+ </tr>
+ <tr>
+ <td colspan="2"><strong>Help Pages</strong> </td>
+ </tr>
+ <tr>
+ <td>/</td>
+ <td>help pages, index.html is the starting page</td>
+ </tr>
+ <tr>
+ <td>dm_javadoc</td>
+ <td>javadoc for JABAWS client (the link is available from How To
+ pages)</td>
+ </tr>
+ <tr>
+ <td>prog_docs</td>
+ <td>documentation for programs that JABAWS uses</td>
+ </tr>
+ <tr>
+ <td>images</td>
+ <td>images referenced by html pages</td>
+ </tr>
+ </table>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="ga">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS and Google Analytics</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS reports web services usage to our group Google Analytics (GA) account.
+ JABAWS usage statistics are collected for funding and reporting purposes, and
+ no private information is collected. The data sent by JABAWS is as follows:
+ </p>
+ <ol>
+ <li>The IP address of the JABAWS server machine (the server IP can anonymized see
+ <em2>conf/GA.properties</em2> config file)</li>
+ <li>The name of the web service that was called. </li>
+ <li>A few details of the system such as JABAWS version, java version, user language,
+ color depth, screen
+ resolution and character encoding.</li>
+ </ol>
+ <p> Google Analytics can be disabled or adjusted by removing/editing
+ <em2>conf/GA.properties</em2> Google Analytics (GA) settings file. We would
+ appreciate it greatly if you could leave it on!</p>
+ <p>All calls to GA are very lightweight, completed asynchronously, create very
+ little overhead and do not influence the server response time or performance.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+ <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+ <li><a href="man_docs.jsp">Documentation</a></li>
+ <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Using JABAWS From Your Program</h1>
+ </div>
+ <div class="panel-body">
+ <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+ <ul>
+ <li><a href="#wsfunctions">Web services functions overview </a></li>
+ <li><a href="#templatestr">The template client structure</a></li>
+ <li><a href="#connectto">Connecting to JABAWS</a></li>
+ <li><a href="#validnames">Valid JABAWS service names and WSDL files</a></li>
+ <li><a href="#defalign">Aligning sequences</a></li>
+ <li><a href="#checkresults">Checking the status of the calculation </a></li>
+ <li><a href="#presetalign">Aligning with presets</a></li>
+ <li><a href="#customalign">Aligning with custom parameters</a></li>
+ <li><a href="#writingaltofile">Writing alignments to a file</a></li>
+ <li><a href="#compex">A complete client example </a></li>
+ <li><a href="#buildart">Building web services artifacts</a></li>
+ </ul>
+ <!--<p class="justify">-->
+ <!--</p>-->
+ </div>
+ </div>
+ </div>
+</div>
+
+<div class="row" id="wsfunctions">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Web services functions overview</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ All JABA multiple sequence alignment web services comply to the same
+ interface, thus the function described below are available from all the services.
+ </p>
+ <strong>Functions for initiating the alignment </strong>
+ <pre><code class="java">String id = align(List<FastaSequence> list)
+String id = customAlign(List<FastaSequence> sequenceList, List<Option> optionList)
+String id = presetAlign(List<FastaSequence> sequenceList, Preset preset)</code></pre>
+
+ <strong>Functions pertaining to job monitoring and control</strong><br />
+ <pre><code class="java">JobStatus status = getJobStatus(String id)
+Alignment al = getResult(String id)
+boolean cancelled = cancelJob(String id)
+ChunkHolder chunk = pullExecStatistics(String id, long marker)</code></pre>
+ <strong>Functions relating to service features discovery</strong><br />
+ <pre><code class="java">RunnerConfig rc = getRunnerOptions()
+Limit limit = getLimit(String name)
+LimitsManager lm = getLimits()
+PresetManager pm = getPresets()</code></pre>
+ <p class="justify">
+ Please refer to a <a href="dm_javadoc/compbio/data/msa/MsaWS.html">data model
+ javadoc</a> for a detailed description of each methods.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="templatestr">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Structure of the template command line client</h1>
+ </div>
+ <div class="panel-body">
+ <table class="table">
+ <tr>
+ <td style="width:19%"><strong>Packages</strong></td>
+ <td style="width:81%"><strong>Classes and Interfaces </strong></td>
+ </tr>
+ <tr>
+ <td>compbio.data.msa </td>
+ <td>MsaWS the interface for all multiple sequence alignment web services </td>
+ </tr>
+ <tr>
+ <td>compbio.data.sequence</td>
+ <td>JABAWS data types </td>
+ </tr>
+ <tr>
+ <td>compbio.metadata</td>
+ <td>JABAWS meta data types </td>
+ </tr>
+ <tr>
+ <td>compbio.ws.client</td>
+ <td>JABAWS command line client </td>
+ </tr>
+ </table>
+ <p class="justify">
+ Additional utility libraries that this client depend upon is the
+ compbio-util-1.3.jar and compbio-annotation-1.0.jar.
+ </p>
+ <p class="justify">
+ Please refer to a <a href="dm_javadoc/index.html">data model javadoc</a>
+ for a detailed description of each class and its methods.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="connectto">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Connecting to JABAWS</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ 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
+ <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev">download page</a>.
+ Please note that for now all
+ the examples are in Java, other languages will follow if there is sufficient demand.
+ </p>
+ <p class="justify">
+ 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.
+ </p>
+ <pre><code class="java">import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+// (...)
+String qualifiedName = "http://msa.data.compbio/01/01/2010/";
+URL url = new URL("http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl");
+QName qname = new QName(, "ClustalWS");
+Service serv = Service.create(url, qname);
+MsaWS msaws = serv.getPort(new QName(qualifiedName, "ClustalWSPort"),
+MsaWS.class);</code></pre>
+ <p>Line 1 makes a qualified name for JABA web services.</p>
+ <p>Line 2 constructs the URL to the web services WSDL.</p>
+ <p>Line 3 makes a qualified name instance for Clustal JABA web service.</p>
+ <p>Line 4 creates a service instance.</p>
+ <p>Line 5 makes a connection to the server.</p>
+ <p>A more generic connection method would look like this</p>
+
+ <pre><code class="java">import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import compbio.ws.client.Services
+// (...)
+String qualifiedServiceName = "http://msa.data.compbio/01/01/2010/";
+String host = "http://www.compbio.dundee.ac.uk/jabaws";
+// In real life the service name can come from args
+Services clustal = Services.ClustalWS;
+URL url = new URL(host + "/" + clustal.toString() + "?wsdl");
+QName qname = new QName(qualifiedServiceName, clustal.toString());
+Service serv = Service.create(url, qname);
+MsaWS msaws = serv.getPort(new QName(qualifiedServiceName, clustal + "Port"), MsaWS.class);</code></pre>
+
+ <p class="justify">
+ 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 <a href="dm_javadoc/compbio/data/msa/MsaWS.html">javadoc</a>.
+ </p>
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="validnames">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Valid JABAWS service names and WSDL files</h1>
+ </div>
+ <div class="panel-body">
+ <p>Multiple sequence alignment services</p>
+ <ul><li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/ClustalOWS?wsdl">ClustalOWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/ClustalOWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/ClustalWS?wsdl">ClustalWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/ClustalWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/MuscleWS?wsdl">MuscleWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/MuscleWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/MafftWS?wsdl">MafftWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/MafftWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/TcoffeeWS?wsdl">TcoffeeWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/TcoffeeWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/ProbconsWS?wsdl">ProbconsWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/ProbconsWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/MSAprobsWS?wsdl">MSAprobsWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/MSAprobsWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/GLprobsWS?wsdl">GLprobsWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/GLprobsWS?wsdl) </li>
+ </ul>
+ <p>Protein disorder prediction services</p>
+ <ul>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/IUPredWS?wsdl">IUPredWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/IUPredWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/GlobPlotWS?wsdl">GlobPlotWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/GlobPlotWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/DisemblWS?wsdl">DisemblWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/DisemblWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/JronnWS?wsdl">JronnWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/JronnWS?wsdl) </li>
+ </ul>
+ <p>Amino acid conservation service</p>
+ <ul>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/AAConWS?wsdl">AAConWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/AAConWS?wsdl) </li>
+ </ul>
+ <p>Protein and RNA Secondary Structure Prediction</p>
+ <ul>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/JpredWS?wsdl">JpredWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/JpredWS?wsdl) </li>
+ <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/RNAalifoldWS?wsdl">RNAalifoldWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/RNAalifoldWS?wsdl) </li>
+ </ul>
+ <p class="justify">
+ Please replace <em2>http://www.compbio.dundee.ac.uk/</em2> with your JABAWS instance host name, and
+ <em2>jabaws</em2> with your JABAWS context name to access your local version of JABAWS web services.
+ For example <em2>http://localhost:8080/jabaws</em2> would be a valid URL for the default Apache-Tomcat
+ installation and jabaws.war file deployment.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="defalign">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Aligning sequences</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Given that <em2>msaws</em2> is web service proxy, created as described in "Connecting to JABAWS"
+ section, the actual alignment can be obtained as follows:
+ </p>
+ <pre><code class="java">List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
+String jobId = msaws.align(fastalist);
+Alignment alignment = msaws.getResult(jobId);</code></pre>
+
+ <p>Line one loads FASTA sequence from the file.</p>
+ <p>Line two submits them to web service represented by msaws proxy.</p>
+ <p class="justify">
+ 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
+ (<a href="http://www.compbio.dundee.ac.uk/jabaws">www.compbio.dundee.ac.uk/jabaws</a>) 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.<br />
+ Methods and classes mentioned in the excerpt are available from the JABAWS client library.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="checkresults">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Checking the status of the calculation</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ You may have noticed that there was no pause between submitting the job and retrieving of the results. This is
+ because <em2>getResult(jobId)</em2> method block the processing until the calculation is completed.
+ However, taking into account that the connection holds server resources, our public server
+ (<a href="http://www.compbio.dundee.ac.uk/jabaws">www.compbio.dundee.ac.uk/jabaws</a>) 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:
+ </p>
+ <pre><code class="java">while (msaws.getJobStatus(jobId) != JobStatus.FINISHED) {
+ Thread.sleep(2000); // wait two seconds, then recheck the status
+}</code></pre>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="presetalign">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Aligning with presets</h1>
+ </div>
+ <div class="panel-body">
+ <pre><code class="java">PresetManager presetman = msaws.getPresets();
+Preset preset = presetman.getPresetByName(presetName);
+List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
+String jobId = msaws.presetAlign(fastalist, preset);
+Alignment alignment = msaws.getResult(jobId);</code></pre>
+ <p>Line one obtains the lists of presets supported by a web service.</p>
+ <p>Line two return a particular Preset by its name.</p>
+ <p>
+ Lines three to five are doing the same job as in the first <a href="#defalign">
+ aligning sequences example</a>.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="customalign">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Aligning with custom parameters</h1>
+ </div>
+ <div class="panel-body">
+ <pre><code class="java">RunnerConfig options = msaws.getRunnerOptions();
+Argument matrix = options.getArgument("MATRIX");
+matrix.setValue("PAM300");
+Argument gapopenpenalty = options.getArgument("GAPOPEN");
+gapopenpenalty.setValue("20");
+List<Argument> arguments = new ArrayList<Argument>();
+arguments.add(matrix); arguments.add(gapopenpenalty);
+List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
+String jobId = msaws.customAlign(fastalist, arguments);
+Alignment alignment = msaws.getResult(jobId);</code></pre>
+
+ <p>Line one obtains the <em2>RunnerConfig</em2> object that holds information on
+ supported parameters and their values</p>
+ <p>Line two retrieve a particular parameter from the holder by its name.</p>
+ <p>Lines three sets a value to this parameter which will be used in the calculation. </p>
+ <p>Line four and five do the same but for another parameter.</p>
+ <p>Line six makes a List to hold the parameters.</p>
+ <p>Line seven puts the parameters into that list.</p>
+ <p>Line eight and ten is the same as in previous examples.</p>
+ <p>Line nine submit an alignment request with the sequences and the parameters.</p>
+ <p class="justify">The names of all the parameters supported by a web service e.g. "PAM300" can be obtained
+ using <em2>options.getArguments()</em2>method. Further details on the methods
+ available from <em2>RunnerConfig</em2> object are available from the
+ <a href="dm_javadoc/index.html">javadoc</a>.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="writingaltofile">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Writing alignments to a file</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ There is a utility method in the client library that does exactly that.
+ </p>
+ <pre><code class="java">Alignment alignment = align(...)
+FileOutputStream outStream = new FileOutputStream(file);
+ClustalAlignmentUtil.writeClustalAlignment(outStream, align);</code></pre>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="compex">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">A complete client example</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Finally, a complete example of the program that connects to JABAWS Clustal
+ service and aligns sequences using
+ one of the Clustal web service presets. There is also a
+ <a href="2.1/Example_template.pdf">PDF version</a> of
+ this example with syntax highlighted. The text comments are commented by block
+ style comments e.g. /* comment */,
+ the alternatives given in the code are line commented // comment. You may want
+ to remove line style comments to
+ test alternatives of the functions. All you need for this to work is a
+ <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=min-jaba-client-2.0.jar">JABAWS binary client</a>.
+ Please make sure that the client is in the Java class path before running this example.
+ </p>
+ <pre><code class="java">
+import java.io.ByteArrayInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+
+import compbio.data.msa.MsaWS;
+import compbio.data.sequence.Alignment;
+import compbio.data.sequence.FastaSequence;
+import compbio.data.sequence.SequenceUtil;
+import compbio.metadata.JobSubmissionException;
+import compbio.metadata.LimitExceededException;
+import compbio.metadata.Preset;
+import compbio.metadata.PresetManager;
+import compbio.metadata.ResultNotAvailableException;
+import compbio.metadata.UnsupportedRuntimeException;
+import compbio.metadata.WrongParameterException;
+
+public class Example {
+
+/*
+ * Input sequences for alignment
+ */
+static final String input = ">Foo\r\n"
+ + "MTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAVARLGR"
+ + "VRWTQQRHAEAAVLLQQASDAAPEHPGIALWLGHALEDAGQAEAAAAAYTRAHQLLPEEPYITAQ"
+ + "LLNWRRRLCDWRALDVLSAQVRAAVAQGVGAVEPFAFLSEDASAAEQLACARTRAQAIAASVRPL"
+ + "APTRVRSKGPLRVGFVSNGFGAHPTGLLTVALFEALQRRQPDLQMHLFATSGDDGSTLRTRLAQA"
+ + "STLHDVTALGHLATAKHIRHHGIDLLFDLRGWGGGGRPEVFALRPAPVQVNWLAYPGTSGAPWMD"
+ + "YVLGDAFALPPALEPFYSEHVLRLQGAFQPSDTSRVVAEPPSRTQCGLPEQGVVLCCFNNSYKLN"
+ + "PQSMARMLAVLREVPDSVLWLLSGPGEADARLRAFAHAQGVDAQRLVFMPKLPHPQYLARYRHAD"
+ + "LFLDTHPYNAHTTASDALWTGCPVLTTPGETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALAS"
+ + "DPAALTALHARVDVLRRESGVFEMDGFADDFGALLQALARRHGWLGI\r\n"
+ + "\r\n"
+ + ">Bar\r\n"
+ + "MGDTTAGEMAVQRGLALHQQRHAEAAVLLQQASDAAPEHPGIALWLHALEDAGQAEAAAAYTRAH"
+ + "QLLPEEPYITAQLLNAVAQGVGAVEPFAFLSEDASAAESVRPLAPTRVRSKGPLRVGFVSNGFGA"
+ + "HPTGLLTVALFEALQRRQPDLQMHLFATSGDDGSTLRTRLAQASTLHDVTALGHLATAKHIRHHG"
+ + "IDLLFDLRGWGGGGRPEVFALRPAPVQVNWLAYPGTSGAPWMDYVLGDAFALPPALEPFYSEHVL"
+ + "RLQGAFQPSDTSRVVAEPPSRTQCGLPEQGVVLCCFNNSYKLNPQSMARMLAVLREVPDSVLWLL"
+ + "SGPGEADARLRAFAHAQGVDAQRLVFMPKLPHPQYLARYRHADLFLDTHPYNAHTTASDALWTGC"
+ + "PVLTTPGETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALASDPAALTALHARVDVLRRESGV"
+ + "FEMDGFADDFGALLQALARRHGWLGI\r\n"
+ + "\r\n"
+ + ">Friends\r\n"
+ + "MTADGPRELLQLRAAVRHRPQDVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAVARLGRV"
+ + "RWTQQRHAEAAVLLQQASDAAPEHPGIALWLGHALEDHQLLPEEPYITAQLDVLSAQVRAAVAQG"
+ + "VGAVEPFAFLSEDASAAEQLACARTRAQAIAASVRPLAPTRVRSKGPLRVGFVSNGFGAHPTGLL"
+ + "TVALFEALQRRQPDLQMHLFATSGDDGSTLRTRLAQASTLHDVTALGHLATAKHIRHHGIDLLFD"
+ + "LRGWGGGGRPEVFALRPAPVQVNWLAYPGTSGAPWMDYVLGDAFALPPALEPFYSEHVLRLQGAF"
+ + "QPSDTSRVVAEPPSRTQCGLPEQGVVLCCFNNSYKLNPQSMARMLAVLREVPDSVLWLLSGPGEA"
+ + "DARLRAFAHAQGVDAQRLVFMPKLPHPQYLARYRHADLFLDTHPYNAHTTASDALWTGCPVLTTP"
+ + "GETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALASDPAALTALHARVDVLRRESI";
+
+public static void main(String[] args) throws UnsupportedRuntimeException,
+ LimitExceededException, JobSubmissionException,
+ WrongParameterException, FileNotFoundException, IOException,
+ ResultNotAvailableException, InterruptedException {
+
+ String qualifiedServiceName = "http://msa.data.compbio/01/01/2010/";
+
+ /* Make a URL pointing to web service WSDL */
+ URL url = new URL("http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl");
+
+ /*
+ * If you are making a client that connects to different web services
+ * you can use something like this:
+ */
+ // URL url = new URL(host + "/" + Services.ClustalWS.toString() +
+ // "?wsdl");
+
+ QName qname = new QName(qualifiedServiceName, "ClustalWS");
+ Service serv = Service.create(url, qname);
+ /*
+ * Multiple sequence alignment interface for Clustal web service
+ * instance
+ */
+ MsaWS msaws = serv.getPort(new QName(qualifiedServiceName, "ClustalWS"
+ + "Port"), MsaWS.class);
+
+ /* Get the list of available presets */
+ PresetManager presetman = msaws.getPresets();
+
+ /* Get the Preset object by preset name */
+ Preset preset = presetman
+ .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(new ByteArrayInputStream(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.
+ */
+ String jobId = msaws.presetAlign(fastalist, preset);
+
+ /* This method will block for the duration of the calculation */
+ Alignment alignment = msaws.getResult(jobId);
+
+ /*
+ * This is a better way of obtaining results, it does not involve
+ * holding the connection open for the duration of the calculation,
+ * Besides, as the University of Dundee public server will reset the
+ * connection after 10 minutes of idling, this is the only way to obtain
+ * the results of long running task from our public server.
+ */
+ // while (msaws.getJobStatus(jobId) != JobStatus.FINISHED) {
+ // Thread.sleep(1000); // wait a second, then recheck the status
+ // }
+
+ /* Output the alignment to standard out */
+ System.out.println(alignment);
+
+ // Alternatively, you can record retrieved alignment into the file in
+ // ClustalW format
+
+ // ClustalAlignmentUtil.writeClustalAlignment(new FileOutputStream(
+ // "output.al"), alignment);
+
+}
+}
+</code></pre>
+ <p>For a more detailed description of all available types and their functions please
+ refer to the <a href="dm_javadoc/index.html">data model javadoc</a>.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="buildart">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Building web services artifacts</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS are the standard <a href="http://jax-ws.java.net/">JAX-WS</a> SOAP web
+ services, which are <a href="http://www.ws-i.org/">WS-I</a>
+ 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.
+ </p>
+ <pre><code class="bash">wsimport -keep http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl</code></pre>
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+ <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+ <li><a href="man_docs.jsp">Documentation</a></li>
+ <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">For JABAWS Developers</h1>
+ </div>
+ <div class="panel-body">
+ <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+ <ul>
+ <li><a href="#api">The API</a></li>
+ <li><a href="#thesrc">The source code</a></li>
+ <li><a href="#projstruct">Structure of the project</a></li>
+ <li><a href="#thecode">The code structure</a></li>
+ <li><a href="#runtests">Running tests</a></li>
+ <li><a href="#prepexec">Preparing distributive's</a></li>
+ <li><a href="#buildstubs">Building web services artifacts</a></li>
+ <li><a href="#addnewws">Adding a new web service (rough guide)</a></li>
+ </ul>
+ <!--<p class="justify">-->
+ <!--</p>-->
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="api">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">The API</h1>
+ </div>
+ <div class="panel-body">
+ <p>This page is for anyone who wants to add a new webservice into the JABAWS framework.</p>
+ <p><a href="dm_javadoc/index.html">Data model</a> javadoc- read this if your are coding
+ against JABA Web Services
+ </p>
+ <p><a href="full_javadoc/index.html">Complete</a> javadoc - for developers who want to
+ use JABAWS framework and use Engines and Executables directly
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="thesrc">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">The source code</h1>
+ </div>
+ <div class="panel-body">
+ <p><a name="svn">Publicly available Git repository:</a>
+ <a href="http://source.jalview.org/gitweb/?p=jabaws.git;a=summary">
+ http://source.jalview.org/gitweb/?p=jabaws.git;a=summary</a></p>
+ <p>Another publicly available JABAWS repository, containing the code for each
+ JABAWS public release, is located at
+ <a href="https://jabaws.googlecode.com">jabaws.googlecode.com</a></p>
+ <p>The repositories contain a complete JABAWS
+ <a href="http://www.eclipse.org">Eclipse</a> project. </p>
+ <p>Of course if you want to make a modification to the source code you would need to
+ generate distributives yourself. To do that, first generate JAX-WS artifacts using
+ <em2>build-server</em2> task from <em2>wsbuild.xml</em2>
+ ant script, then you could use build.xml tasks to generate any of the distributives you need.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="projstruct">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Structure of the project</h1>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li><i class="fa fa-folder-o" aria-hidden="true"></i> <span class="directory">binaries</span> contains native executables e.g. clustalw</li>
+ <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> <span class="directory">src</span> contains sources of native executables</li>
+ <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> <span class="directory">windows</span> contains pre-compiled Windows binaries</li>
+ <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> compilebin.sh - the script to complile binaries</li>
+ <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> setexecflag.sh - the script to set executable flag for the binaries</li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> conf</span> contains JABAWS configuration files </li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> ExecutionStatistics</span> the database for storing collected execution statistics </li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> jobsout</span> a default folder for temporary job directories </li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> statpages</span> the web pages for execution statistics display</li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> WEB-INF</span> default </li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> website</span> contains the JABAWS web pages </li>
+ <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> <span class="directory">archive</span> contains JABAWS packages, the WAR and JAR files</li>
+ </ul>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="thecode">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">The code structure</h1>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> datamodel</span> contains the JABAWS datamodel </li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> engine</span> contains the JABAWS engine - the code that abstract the execution environment and executes native binaries</li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> runner</span> contains the JABAWS runners - thin wrappers for native binaries </li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> webservices</span> contains the JABAWS SOAP web services </li>
+ <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> testsrc</span> contains the JABAWS unit tests</li>
+ </ul>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="justify">
+ So the JABAWS project is split into 4 layers. From bottom-up the first layer
+ consists from the value classes used by all other layers of the hierarchy, in
+ particular web services. So, to be able to use JABAWS one needs to have these
+ classes. At the same time classes on this layer does not have any dependencies
+ on the layers above.
+ </p>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="justify">
+ Finally, the upper layer contains the web services, that depend on all the layers below.
+ </p>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="runtests">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Running tests</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS uses TestNG framework for testing. The test results for the JABAWS
+ package offered for download can be found at:
+ <a href="http://www.compbio.dundee.ac.uk/user/www-jws2/tests/index.html">
+ Test Results</a><br/>
+ JABAWS uses <a href="http://testng.org/doc/index.html">TestNG</a>
+ 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.
+ </p>
+ <p class="justify">
+ The best way to ensure that JABAWS framework is completely functional on your
+ system is to run all test cases.
+ Test cases tests all aspects of JABAWS functionality. Consequently, one need
+ to have non windows operation system and support
+ of the cluster to be able to run all tests. If your system does not support
+ cluster, then you could run all test excluding those that depends on the cluster.
+ </p>
+
+ <p>Several testing groups are supported:</p>
+ <ul>
+ <li>All tests (Test)</li>
+ <li>Cluster tests (Run_cluster_dependent_test)</li>
+ <li>Cluster independent tests () </li>
+ <li>Windows only tests (All_cluster_independent_windows_only_tests) </li>
+ <li>Performance and stability tests (Long_tests) </li>
+ <li>Re-run failed tests (Rerun_failed_tests) </li>
+ <li>Run custom test (CustomTest) </li>
+ </ul>
+
+ <p class="justify">
+ To run the tests you need to download all sources from <a href="#svn">repository</a>.
+ Once you have done that, enter into the command line mode, change directory to the
+ project directory and type:
+ </p>
+ <pre><code class="bash">ant -f build.xml <test group name></code></pre>
+ <p class="justify">
+ Make sure you have <a href="http://ant.apache.org/">Apache Ant</a>
+ 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:</p>
+ <pre><code class="bash">ant -f build.xml Run_cluster_dependent_test</code></pre>
+ <p class="justify">
+ If you work under Linux you could use a simple script from the root folder of repository called <em2>runtests.sh</em2>
+ 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.
+ </p>
+ <p class="justify">
+ A handy feature of TestNG is its ability to re-run failed tests. Failed test
+ ant file is stored in
+ <em2>test-output/testng-failed.xml</em2>. and is used in the ant task called
+ <em2>Rerun_failed_tests</em2>. So re-running failed tests requires no more
+ work than running any other test group and could be accomplished with the command:
+ </p>
+ <pre><code class="bash">ant -f build.xml Rerun_failed_tests</code></pre>
+ <p class="justify">
+ CustomTest runs the test defined in the project root directory file called
+ <em2>temp-testng-customsuite.xml</em2>. 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.
+ </p>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="prepexec">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Preparing distributive's</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ There are a number of ant tasks aimed for preparing distributives for download.
+ Currently a few types of JABAWS packages are offered:
+ </p>
+ <ol>
+ <li>Client only (contains classes required to access JABA Web Services)</li>
+ <li>Platform specific JABAWS (windows and other)</li>
+ <li>JABAWS without binaries</li>
+ <li>JABAWS framework </li>
+ </ol>
+ <p>Corresponding build task names are:</p>
+ <ol>
+ <li>min-jaba-client</li>
+ <li>jaba-windows, jaba-complete</li>
+ <li>jaba-no-binaries</li>
+ <li>full-jaba-client</li>
+ </ol>
+ <p class="justify">
+ The easiest way to build all distributives is to call
+ <em2>build-all</em2> ant task.
+ There are more tasks defined in build.xml than described here.
+ They are mostly self explanatory.
+ </p>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="buildstubs">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Building web services artifacts</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ 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
+ <em2>webservices/compbio/ws/server/resource</em2> 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.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="addnewws">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Adding a new web service (rough guide)</h1>
+ </div>
+ <div class="panel-body">
+ <ol>
+ <li>
+ <p>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
+ <em2>binaries/src</em2>. Edit <em2>setexecutableflag.sh</em2>
+ and <em2>compilebin.sh</em2> scripts in <em2>binaries/src</em2>
+ accordingly.</p>
+ </li><li>
+ <p>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
+ <em2>compilebin.sh</em2> and <em2>setexecflag.sh</em2> scripts accordingly.</p>
+ </li><li>
+ <p>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.</p>
+ </li><li>
+ <p>Describe executable in <em2>conf/Exectuable.properties</em2> 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.
+ </p>
+ </li><li>
+ <p>Describe the executable supported parameters in the
+ <em2><ExecutableName>Parameters.xml</em2>, presets in the
+ <em2><ExecutableName>Presets.xml</em2> and the execution limits in the
+ <em2><ExecutableName>Limit.xml</em2>. By convention these files are stored
+ in <em2>conf/settings</em2>. All of these are optional. If the executable
+ does not support parameters you do not have to mention the <em2>XXXParameter.xml</em2> file
+ in the <em2>Executable.properties</em2> file at all. The same is true for
+ Presets and Limits.</p>
+ </li><li>
+ <p>Create a Java wrapper class for your executable. Create it within <em2>runner</em2> source directory.
+ Examples of other wrappers can be found in <em2>compbio.runner.msa</em2> or
+ in other <em2>compbio.runner.*</em2> packages. Wrapper should extend
+ <em2>SkeletalExecutable<T></em2> and implement
+ <em2>PipedExecutable<T></em2>
+ 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 <em2>SkeletalExecutable<T></em2>
+ if input/output can be set as a parameter for an executable. Please see the ClustalW code as example.</p>
+ </li><li>
+ <p>Create a testcase suit for your wrapper in <em2>testsrc</em2> and run the test cases.</p>
+ </li><li>
+ <p>Create parser for the output files of your executable. Suggested location
+ compbio.data.sequence.SequenceUtil . </p>
+ </li><li>
+ <p>Test the parser.</p>
+ </li><li>
+ <p>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.</p>
+ </li><li>
+ <p>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. </p>
+ </li><li>
+ <p>Register web service in <em2>WEB-INF/web.xml</em2>
+ and <em2>WEB-INF/sun-jaxws.xml</em2>.</p>
+ </li><li>
+ <p>Add generated wsdl to wsbuild.xml ant script to generate the stubs.</p>
+ </li><li>
+ <p>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: </p>
+ <ul>
+ <li>you do not have interfaces to serialize, since JAXB cannot serialize them</li>
+ <li>you have a default no args constructor (can be private if you do not need it)</li>
+ <li>JAXB cannot serialize Java Map class, use a custom data structure instead</li>
+ <li>Enum cannot be serialized as its abstract class (do not confuse with enum which is fine)</li>
+ <li> Fields serialization leaves a little more space for manoeuvre.
+ If you do this then you may accept<br/> and return interfaces, e.g. List, Map; abstract classes etc, from your methods
+ </li>
+ </ul>
+ <p>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!</p>
+ </li><li>
+ <p>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.</p>
+ </li><li>
+ <p>Test the web service with the client.</p>
+ </li><li>
+ <p>Test on the cluster.</p>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+ <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+ <li><a href="man_docs.jsp">Documentation</a></li>
+ <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Virtual Appliance</h1>
+ </div>
+ <div class="panel-body">
+ <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+ <ul>
+ <li><a href="#whatisvm">What is JABAWS Virtual Appliance?</a></li>
+ <li><a href="#whenvm">When to use the Virtual Appliance</a> </li>
+ <li><a href="#howtoinstallvm">How to install VMware Player </a></li>
+ <li><a href="#vmplayer">VMware Player Appliance configuration </a></li>
+ <li><a href="#jabawsAppliance">JABAWS Appliance details </a></li>
+ <li><a href="#jalviewWithJaba">Configuring Jalview to work with your JABAWS VM</a></li>
+ <li><a href="#vmiaccess">VM Network Settings </a></li>
+ </ul>
+ <!--<p class="justify">-->
+ <!--</p>-->
+ </div>
+ </div>
+ </div>
+</div>
+
+<div class="row" id="whatisvm">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">What is JABAWS Virtual Appliance?</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">The JABAWS <a href="http://en.wikipedia.org/wiki/Virtual_appliance">Virtual Appliance</a> is a
+ way to run 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
+ <a href="http://www.turnkeylinux.org">TurnKey Linux 12.1 (Tomcat edition)</a>. 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.<br/>
+ You can run the appliance with freely available program such as
+ <a href="http://www.vmware.com/products/player">VMware Player</a>, 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
+ <a href="http://communities.vmware.com/community/vmtn/server/vsphere/automationtools/ovf">VMware
+ OVF tool</a> to prepare JABAWS image for a different virtualization platform e.g.
+ <a href="http://www.virtualbox.org/">VirtualBox</a>.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="whenvm">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">When to use the Virtual Appliance</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">The appliance best suits users who would like to use the JABA 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.
+ </p>
+
+ <p class="justify">
+ For servers that will be used heavily, we recommend that a <a href="man_serverwar.jsp#instwar">JABAWS Server WAR distribution</a> 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.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="howtoinstallvm">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">How to install VMware Player</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Please see the <a href="http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0">VMware Player</a>
+ web sites for up to date instructions and downloads.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="vmplayer">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">VMware Player Appliance configuration</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">The free <a href="http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0">VMware Player</a>
+ can be used to run the JABAWS services from the Windows and Linux host operating systems.
+ <a href="https://www.vmware.com/vmwarestore/buyfusion.html">VMware Fusion</a>, a commercial
+ VMware product, offers virtual machine support for Mac.
+ </p>
+ <p class="justify">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.
+ </p>
+ <p class="justify">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.
+ </p>
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="jabawsAppliance">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Appliance details</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">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.
+ </p>
+ <p class="justify">
+ The VMware Player screen shot below displays JABAWS VM CPU settings.
+ </p>
+ <p>
+ <img src="static/img/VMware_cpu.png" alt="vmware cpu settings" width="708"
+ height="267" style="border: solid black 1px" />
+ </p>
+
+ <p><strong>JABAWS Virtual Appliance Configuration: </strong></p>
+ <p><strong>VMware info</strong></p>
+ <ul>
+ <li>CPUs : 1</li>
+ <li>RAM : 512 MB</li>
+ <li>Networking : Host only (the VM has no access to the outside network, nothing from the
+ outside network can access the VM)</li>
+ <li>Hard disk : 20 GB (expanding)</li>
+ <li>VMware tools : Installed</li>
+ </ul>
+ <p><strong>OS information</strong></p>
+ <ul>
+ <li>OS : TurnKey Linux (v. 12.1, <a href="http://www.turnkeylinux.org/tomcat">Standalone
+ Tomcat</a>) based on Debian 6.0.7 (Squeeze)</li>
+ <li>Installation : Oracle Java 6, Tomcat 7, JABAWS v. 2.1 </li>
+ <li>IPv4 address : dhcp</li>
+ <li>IPv6 address : auto</li>
+ <li>DNS name : none</li>
+ <li>Name server : dhcp</li>
+ <li>Route : dhcp</li>
+ <li>Keyboard : US_intl</li>
+ </ul>
+ <p><strong>Login credentials</strong><br />
+ <ul>
+ <li>Root password: jabaws</li>
+ <li>Tomcat admin password: adminjabaws</li>
+ </ul>
+ <p> <strong>Services available at the virtial machine IP (e.g. VM_IP = 172.16.232.149)</strong></p>
+ <ul>
+ <li>Tomcat Web Server: http://VM_IP (e.g. http://172.16.232.149)</li>
+ <li>Jabaws URL: http://VM_IP/jabaws (e.g. http://172.16.232.149/jabaws)</li>
+ <li>Web Shell: https://VM_IP:12320/ (e.g. https://172.16.232.149:12320)</li>
+ <li>Webmean: https://VM_IP:12321/ (e.g. https://172.16.232.149:12321)</li>
+ <li>SSH/SFTP: root@VM_IP (e.g. ssh root@172.16.232.149)</li>
+ </ul>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="jalviewWithJaba">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Configuring Jalview to work with your JABAWS VM</h1>
+ </div>
+ <div class="panel-body">
+
+ <p class="justify">
+ 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
+ <a href="http://www.jalview.org/help/html/webServices/JABAWS.html">help pages</a>.
+ </p>
+ <p><img src="static/img/vm_welcome_screen.png" alt="JABAWS welcome screen" width="734"
+ height="461" /></p>
+ <p class="justify">If you click on Advanced Menu, you will see the configuration console,
+ similar to the one below.
+ </p>
+ <p><img src="static/img/VMware_booted.png" alt="JABAWS welcome screen" width="735"
+ height="461" /></p>
+ <p class="justify">
+ If you need to configure a static IP address the configuration console will
+ help you with this. Shutting down the VM is best from the configuration console as well.
+ </p>
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="vmiaccess">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">VM Network Settings</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ 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).
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+ <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+ <li><a href="man_docs.jsp">Documentation</a></li>
+ <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Web Application Archive</h1>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li><a href="#sysreq">System Requirements</a></li>
+ <li><a href="#instwar">Installing the JABAWS WAR file</a></li>
+ <li><a href="#prepexec">Preparing executables for use with JABAWS</a></li>
+ <li><a href="#useprebin">Using the pre-compiled i386 binaries on Linux</a></li>
+ <li><a href="#recompbinaries">Recompiling the bundled programs for your system</a></li>
+ <li><a href="#haveexec">Reuse the binaries that are already in your system</a></li>
+ <li><a href="#obtainexec">Obtaining command line binaries </a><a href="#obtainexec">for your operating system</a></li>
+ <li><a href="#usingWsTester">Testing JABAWS Server</a></li>
+ <li><a href="#diffcontexts">Running many JABAWS instances on the same server</a> </li>
+ <li><a href="#nocluster">JABAWS on a single server</a></li>
+ <li><a href="#clustsubsys">JABAWS supported cluster batch management systems </a></li>
+ <li><a href="#tomstopundeploy">Manually deploying JABAWS application on Apache-Tomcat </a></li>
+ <li><a href="#tomdeploy">Apache-Tomcat fails to deploy the jabaws.war file</a></li>
+ </ul>
+ <!--<p class="justify">-->
+ <!--</p>-->
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="sysreq">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">System Requirements</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">JABAWS requires a Java web application server compliant with
+ version 2.4 of the Java Servlet specification, and a Java 6 runtime
+ environment. We recommend using an official Oracle Java 6 runtime
+ environment, and <a
+ href="http://tomcat.apache.org/download-70.cgi">Apache-Tomcat</a>
+ web application server version 7, but older Tomcat versions above 5.5 will
+ work too.<br/>
+ <span class="attention">Please Note:</span>
+ The JABAWS WAR is not generally compatible with older Mac systems based
+ on the PowerPC architecture, since Java 1.6 is not available to run JABAWS.
+ </p>
+ <p class="justify">
+ JABAWS Web Application aRchive can run on any host operating system that supports
+ Java 1.6. 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. To install Tomcat follow the
+ intructions provided in the following
+ <a href="http://tomcat.apache.org/tomcat-7.0-doc/">documentation</a>.
+ </p>
+ <p class="justify">
+ JABAWS comes with pre-compiled MS Windows and Linux x86 binaries, as well as the
+ source code and build scripts necessary to recompile them.
+ </p>
+ <p class="justify">
+ To run JABAWS on the cluster you must have shared disk space accessible from
+ all cluster nodes.
+ </p>
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="instwar">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Installing the JABAWS WAR file</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS is distributed as a web application archive (WAR). To
+ deploy JABAWS in Apache-Tomcat - simply drop the war file into the
+ <em2>webapps</em2> directory of a running
+ Tomcat, and it will do the rest. If you used this deployment procedure,
+ <span class="attention">do not remove</span> 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 <em2>localhost:8080</em2> and
+ <strong>jaba.war</strong> file is put into the
+ <em2><tomcat server root>/webapps</em2> directory,
+ the deployed application from the jaba.war file then can be accessed by this
+ URL http://localhost:8080/<strong>jaba</strong>.
+ </p>
+ <p class="justify">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
+ <a href="#usingWsTester">as described here</a>. If you
+ install JABAWS on Linux you will need to set an executable
+ flag for binaries. This is described <a href="#useprebin">here</a>.
+ If your host operating system is different from Windows or Linux
+ then read on.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="prepexec">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Preparing executables for use with JABAWS</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS's web services use command line programs to do
+ the actual analysis, so it must have access to programs
+ which can be executed on your platform. The native executables
+ bundled with JABAWS for Windows (32-bit) and Linux (i386, 32-bit) should be
+ OK for those systems. The source code for these
+ programs is also provided so you can <a href="#recompbinaries">recompile for
+ your own architecture</a> and exploit any optimizations that your system can
+ provide. Alternately, if you have already got binaries on your
+ system, then you can simply <a href="#haveexec">change the paths in JABAWS's
+ configuration files</a> so these are used instead.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="useprebin">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Using the pre-compiled i386 binaries on Linux</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS comes with pre-compiled x86 Linux binaries, thus on such systems
+ JABAWS should work straight out of the box. If you are in any doubts or
+ experience problems you may want to make sure that the binaries supplied
+ work under your OS. To do this just execute each binary, without any
+ command line options or
+ input files. If you see an error message complaining about missing
+ libraries or other problems, then you probably need to
+ <a href="#recompbinaries">recompile the binaries</a>.
+ </p>
+ <p class="justify">
+ You can try the JABAWS functionality with the JABAWS<a
+ href="#usingWsTester"> test client</a> or have a look at <a href="http://tomcat.apache.org/tomcat-6.0-doc/deployer-howto.html">deploying on Tomcat</a> tips if you experience any problems.<br />
+ <em2>Note: You may want to enable logging,
+ <a href="man_configuration.jsp#logfiles"> as described here</a></em2>.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="recompbinaries">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Recompiling the bundled
+ programs for your system</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ If you have a fully equipped build environment on your
+ (POSIX-like) system, then you should be able to recompile the
+ programs from the source distributions which are included
+ in the JABAWS war file. A script called 'compilebin.sh' is provided
+ to automate this task.
+ </p>
+
+ <ol>
+ <li>In a terminal window, change the working directory to <em2>binaries/src</em2>
+ </li>
+
+ <li>execute the <em2>compilebin.sh</em2> script,<br />
+ either use:
+ <pre><code class="bash">chmod +x compilebin.sh; compilebin.sh > compilebin.out;</code></pre>
+ or:
+ <pre><code class="bash">sh compilebin.sh > compilebin.out</code></pre>
+ </li>
+
+ <li>Now run <pre><code class="bash">sh setexecflag.sh</code></pre>
+ If any of the binaries was not recompiled, then a 'file not found'
+ error will be raised.
+ </li>
+
+ <li>Finally, restart your Tomcat server (or JABAWS application only), and
+ <a href="#usingWsTester">test JABAWS</a> to
+ check that it can use the new binaries.
+ </li>
+ </ol>
+
+ <p class="justify">
+ If you couldn't compile everything, then it may be that your system does
+ not have all the tools required for compiling the programs. At the very
+ least check that you have gcc, g++ and make installed in your
+ system. If not install these packages and repeat the compilation
+ steps again. You should also review the compilebin.sh output -
+ which was redirected to compilebin.out, and any errors output to
+ the terminal. Finally, try obtaining the <a href="#obtainexec">pre
+ compiled binaries</a> for your OS.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="haveexec">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Reuse the binaries that are
+ already in your system</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ If you would like to use the binaries you already have, then you
+ just need to let JABAWS know where they are. To do this, edit:
+ <em2>conf/Executable.properties</em2>
+ </p>
+ <p class="justify">
+ When specifying paths to executables that already exist on your system,
+ make sure you provide an absolute path, or one relative to the JABAWS
+ directory inside <em2>webapps</em2>. For example,
+ the default path for clustalw is defined
+ as <em2>local.clustalw.bin=binaries/src/clustalw/src/clustalw2</em2>
+ Alternatively, instead of changing
+ <em2>Executable.properties</em2>
+ you could also replace
+ the executables bundled with JABAWS with the ones that you have, or make
+ symbolic links to them.
+ Then the default configuration will work for you. More information
+ about the <em2>Executable.properties</em2> file is given in the
+ <a href="man_configuration.jsp#exec">JABAWS Configuration chapter.</a>
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="obtainexec">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Obtaining command line binaries for
+ your operating system</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ You could search for pre-packaged compiled executable in your
+ system package repository or alternately, download pre-compiled
+ binaries from each alignment program's home page. Then, either
+ replace the executables supplied with the downloaded ones, or
+ modify the paths in <em2>executable.properties</em2>
+ as described above. Below are some suggestions on where you may be able to
+ get the binaries for your system.
+ </p>
+ <ul>
+ <li><a href="http://www.clustal.org/omega/#Download">Clustal Omega </a></li>
+ <li><a href="http://www.clustal.org/clustal2/#Download">ClustalW </a></li>
+ <li><a href="http://mafft.cbrc.jp/alignment/software/">Mafft</a></li>
+ <li><a href="http://www.drive5.com/muscle/downloads.htm">Muscle</a></li>
+ <li><a href="http://www.tcoffee.org/Projects/tcoffee/#DOWNLOAD">Tcoffee</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="usingWsTester">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Testing JABAWS Server</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ First of all make sure that Tomcat server is started successfully. If this was the case,
+ then you should see JABAWS home page when you navigate to your Tomcat JABAWS context
+ path e.g. <pre>http://myhost.compbio.ac.uk:8080/jabaws</pre>
+ <p>
+ <strong>Using JABAWS service status checker</strong>
+ </p>
+ <p class="justify">If you see it, then it is time to make sure that web services are
+ working too. The easiest way to do this is to access Services Status page available
+ from the main JABAWS web page menu.
+ </p>
+ <p class="justify">
+ If you need to monitor web service health automatically when the
+ best option is to use service checker that responds with the standard HTTP status
+ code. To access this checker use the following
+ URL: <pre><code class="bash"><jabaws_server>/HttpCodeResponseServiceStatus</code></pre>
+ This page returns code 200, and no page context if all services are operational, 503
+ if one of the services have problems. You can also check each web service individually
+ by providing the name of the web service to check at the end of the service checker URL
+ like this: <pre><code class="bash"><jabaws_server>/HttpCodeResponseServiceStatus/ClustalWS</code></pre>
+ </pre>
+ <p class="justify">
+ Upon request, the service status checker will examine the health of the ClustalWS web
+ service only. If the service name is not valid, then the service checker will return code 400.
+ </p>
+ <p class="justify">
+ <strong>Using command line client</strong>
+ </p>
+ <p class="justify">
+ Alternatively, you should be able to use the test program which can be found in <webapplicationpath>/WEB-INF/lib/jabaws-client.jar file. To run the tests type:<span class="code"> java -jar jabaws-client.jar -h=<Your web application server host name, port and JABAWS context path></span></p>
+ <p class="justify">
+ For example to test all JABAWS web services on host myhost.compbio.ac.uk type:
+ </p>
+ <pre><code class="bash">java -jar jabaws-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws</code></pre>
+ <p class="justify">
+ You can choose a particular web server using -s option like
+ this <span class="code">java -jar jabaws-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=ClustalWS </span>
+ This command line assumes that java executable is in your path and jabaws-client.jar is
+ located in the current directory.
+ </p>
+ <p class="justify">
+ An example of the report testing tool produces for operating web service looks like this:
+ </p>
+ <p class="justify">
+ <pre><code class="bash">Connecting to service MuscleWS on http://myhost.compbio.ac.uk:8080/jabaws ... OK
+Testing alignment with default parameters:
+Queering job status...OK
+Retrieving results...OK
+Testing alignment with presets:
+Aligning with preset 'Protein alignment(Fastest speed)'... OK
+Aligning with preset 'Nucleotide alignment(Fastest speed)'... OK
+Aligning with preset 'Huge alignments (speed-oriented)'... OK
+Queering presets...OK
+Queering Parameters...OK
+Queering Limits...OK
+Queering Local Engine Limits...OK
+Check is completed service MuscleWS IS WORKING</code></pre>
+ <p>
+ An example of the response of a web service which is deployed but is not operating is below:
+ </p>
+ <p class="justify">
+ <pre><code class="bash">Connecting to service ProbconsWS on http://localhost:8080/ws ... OK
+Testing alignment with default parameters:FAILED
+Service ProbconsWS IS NOT FUNCTIONAL</code></pre>
+ </p>
+ <p>If the web server did not respond the message looks like following:
+ <pre>Connecting to service TcoffeeWS on http://localhost:8080/ws ... FAILED</pre>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="diffcontexts">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Running many JABAWS instances on the same server</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ 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.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="nocluster">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS on a single server</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ You can run JABAWS on a single server. Obviously the capacity will be
+ limited, but it may be sufficient for a small lab. Installed on a single
+ server, JABAWS executes tasks in parallel, so the more cores the server has
+ the more requests it will be able to handle.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="clustsubsys">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS supported cluster batch management systems</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ JABAWS uses <a href="http://drmaa.org/">DRMAA</a> v. 1.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.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="tomstopundeploy">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Manually deploying JABAWS application on Apache-Tomcat</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ To stop Tomcat from automatically undeploying your application if the war file is
+ removed use an explicit application descriptor. It could come in different flavors,
+ the one I prefer is to drop a context descriptor file into
+ <em2><tomcatRoot>conf/Catalina/localhost</em2> directory.
+ Name your context file the same as your application folder e.g. if your
+ JABAWS resides in webappl/jabaws folder, then call the context file jabaws.xml.
+ Below is an example of content this file might have.
+ </p>
+ <pre><code class="xml"><?xml version="1.0" encoding="UTF-8"?>
+<Context antiResourceLocking="false" privileged="true" /></code></pre>
+ <p class="justify">
+ This should be sufficient to prevent Tomcat from removing your JABAWS from WEBAPPS.
+ For more information about the Tomcat deployer
+ <a href="http://tomcat.apache.org/tomcat-6.0-doc/deployer-howto.html">read
+ this documentation on the Apache-Tomcat web site</a>.
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="tomdeploy">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Apache-Tomcat fails to deploy jabaws.war file</h1>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li>Make sure Tomcat has sufficient access rights to read your war file. </li>
+ <li>Restart the Tomcat, sometimes it will not restart after the new war file
+ is added without restart</li>
+ <li>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.</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
--- /dev/null
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+ <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+ <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+ <li><a href="man_docs.jsp">Documentation</a></li>
+ <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">JABAWS Usage Statistics</h1>
+ </div>
+ <div class="panel-body">
+ <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+ <ul>
+ <li><a href="#usage_sum">Summary of Usage</a></li>
+ <li><a href="#helpUsageStats">Authentication</a></li>
+ <li><a href="#detailed_usage">Detailed Usage Statistic </a></li>
+ <li><a href="#job_list">Job List</a></li>
+ <li><a href="#job_dir">Single Job Directory Content </a></li>
+ <li><a href="#conf_tomcat_user">Configuring a privileged access for Tomcat web application server</a></li>
+ <li><a href="#exec_stat_conf">Configuring JABAWS execution statistics</a></li>
+ </ul>
+ <!--<p class="justify">-->
+ <!--</p>-->
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="usage_sum">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Summary of Usage</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ 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
+ <em2>admin</em2>. There is a link at the bottom of the
+ page that lets you login, if you have not done so.
+ </p>
+ <p class="justify">
+ If you are using JABAWS VA (Virtual Appliance) then the username is
+ <em2>jabaws</em2> and password is not defined,
+ i.e. empty.
+ </p>
+ <p class="justify">
+ If you have deployed a JABAWS WAR file, then please see the
+ <a href="#conf_tomcat_user">configuring privileged access for Tomcat web
+ application server</a> section for further details.
+ </p>
+
+ <p><img src="static/img/usage_statistics_main.gif" alt="JABAWS usage statistics"
+ width="608" height="318" />
+ </p>
+ <p class="justify">
+ The table contains the number of jobs processed by JABAWS per month, for
+ the whole period when the statistics was collected.
+ </p>
+ <p>For each month the table contains the following information.</p>
+ <ul>
+ <li>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</li>
+ <li>Total - the total number of jobs accepted by JABAWS</li>
+ <li>Incomplete - the number of jobs for which the result file was not
+ found or was empty excluding cancelled</li>
+ <li>Cancelled - the number of jobs cancelled by the user</li>
+ <li>Abandoned - the number of jobs which result(s) were not collected</li>
+ </ul>
+ <p>The summary for each column is displayed in the last row of the table.</p>
+
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="helpUsageStats">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Authentication</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Authentication lets you see the detailed usage statistics.
+ If you are using JABAWS VA (Virtual Appliance) then the
+ username is <em2>jabaws</em2> and
+ password is not defined, i.e. empty. In other cases you need
+ to ask your system administrator for it.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="detailed_usage">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Detailed Usage Statistic</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Detailed execution statistics for each month is available for
+ authenticated users only.
+ </p>
+ <p><img src="static/img/usage_statistics_month.gif" alt="JABAWS one month usage statistics"
+ width="670" height="902" />
+ </p>
+ <p>Each table contains the number of jobs processed by JABAWS during the period of
+ time specified in the title:</p>
+ <ul>
+ <li>The "All Jobs" table contains the summary of all jobs</li>
+ <li>"Local Jobs" table - contains the summary of the jobs calculated by the local engine</li>
+ <li>"Cluster Jobs" table - contains the summary of the jobs calculated by the cluster</li>
+ </ul>
+ Each table contains the following information for each web service:
+ <ul>
+ <li>Total - the total number of jobs accepted by a particular JABA service</li>
+ <li>Incomplete - the number of jobs for which the result file was not found or was empty excluding cancelled</li>
+ <li>Cancelled - the number of jobs cancelled by the user</li>
+ <li>Abandoned - the number of jobs which result(s) were not collected</li>
+ </ul>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="job_list">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Job List</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ 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
+ <a href="#exec_stat_conf">Configuring JABAWS execution statistics</a> section
+ for further details.
+ </p>
+ <p><img src="static/img/usage_statistics_details.gif" alt="JABAWS - job list" width="917" height="198" /> </p>
+ <p>Columns: </p>
+ <ul>
+ <li>JobID - the JABAWS job id, unique for every job</li>
+ <li>Cluster JobID - cluster job id</li>
+ <li>InputSize - input size in bytes</li>
+ <li>ResultSize - result size in bytes</li>
+ <li>Runtime (s) - job's runtime in seconds</li>
+ <li>Start time (s)- job's start time and date</li>
+ <li>Finish time (s)- job's finish time and date</li>
+ <li>isCancelled - whether the job was cancelled</li>
+ <li>isCollected - whether the job was collected. False for the jobs
+ that has been initiated but which results has never been retrieved</li>
+ <li>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</li>
+ </ul>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="job_dir">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Single Job Directory Content</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ <img src="static/img/usage_statistics_job_details.gif" alt="JABAWS- job details"
+ width="716" height="420" /></p>
+ <p>
+ 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.
+ </p>
+ <p class="justify">
+ COLLECTED file is empty and indicates that the job results were collected by the
+ user. Due to asynchronous nature of the job it is possible that the job
+ was started and finished, but the results has never been requested.
+ </p>
+ <p class="justify">
+ RunnerConfig.xml file contains a complete description of the job and JABAWS
+ can restart the job based on this description.
+ </p>
+ <p class="justify">
+ procError.txt and procOutput.txt files contains the content of the standard
+ out and standard error streams of the process.
+ </p>
+ <p>result.txt file contains the results. </p>
+ <p>input.txt file contains input into the process. </p>
+ <p>
+ 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.
+ </p>
+ <p class="justify">
+ 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
+ <a href="#exec_stat_conf">Configuring JABAWS execution statistics</a>
+ section for further details.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="exec_stat_conf">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Configuring JABAWS execution statistics</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ 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.
+ </p>
+ <p class="justify">
+ 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.
+ </p>
+ <pre><code class="bash"># 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</code></pre>
+ <pre><code class="bash"># 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</code></pre>
+ <p class="justify">
+ 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.
+ </p>
+ <p class="justify">
+ 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 "<em2>jabaws.xml</em2>" for
+ jabaws. Where the TOMCAT_ROOT is the location of the Tomcat web application
+ server. Here is an example of such a file:
+ </p>
+ <pre><code class="xml"><?xml version="1.0" encoding="UTF-8"?>
+<Context antiResourceLocking="false" privileged="true" allowLinking="true"/></code></pre>
+ <p>
+ The key option here is this:
+ <em2>allowLinking="true"</em2>.
+ Please also make sure that you have defined the user in role
+ "<em2>admin</em2>" as described
+ <a href="#conf_tomcat_user">below</a>.
+ </p>
+ <p class="text-right">
+ <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+ </p>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" id="conf_tomcat_user">
+ <div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel panel-heading">
+ <h1 class="panel-title">Configuring a privileged
+ access for Tomcat web application server</h1>
+ </div>
+ <div class="panel-body">
+ <p class="justify">
+ Access to configuration files, detailed job execution statistics and job
+ directories are allowed only for authenticated users in role
+ "<em2>admin</em2>".
+ </p>
+ <p>If you use Tomcat, then the simplest way to set up privileged
+ access is to use a plain text configuration file
+ <em2>conf/tomcat-user.xml</em2>. Here is an example
+ of such configuration file defining user
+ "<em2>peter</em2>" in role
+ "<em2>admin</em2>".
+ <pre><code class="xml"><tomcat-users>
+<role rolename="admin"/>
+<user username="peter" password="your password here " roles="admin"/>
+</tomcat-users></code></pre>
+ <p>For more information on users and roles please consult Apache-Tomcat help pages.</p>
+ </div>
+ </div>
+ </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file