updates to jaba2 from jaba release branch
[jabaws.git] / website / manual.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml">\r
4 <head>\r
5 <meta name="generator" content="HTML Tidy, see www.w3.org" />\r
6 <meta http-equiv="Content-Type" content=\r
7 "text/html; charset=iso-8859-1" />\r
8 <title>Java Bioinformatics Analyses Web Services (JABAWS)\r
9 manual</title>\r
10 <link href="ws.css" rel="stylesheet" type="text/css" media=\r
11 "screen, projection, handheld, tv" />\r
12 <link rel="stylesheet" type="text/css" media="print" href=\r
13 "print.css" />\r
14 <script type="text/javascript" src="prototype-1.6.0.3.js">\r
15         \r
16 </script>\r
17 </head>\r
18 <body>\r
19 <div id="page">\r
20 <div id="banner">\r
21 <table> \r
22 <tr><td style="width:130px;"><a href="http://www.dundee.ac.uk"><img class="logo" src="images/uod_lt.gif"  alt="University of Dundee"  title="University of Dundee" longdesc="http://www.dundee.ac.uk"/></a></td>\r
23 <td class="bg"><h2><span class="headeru">JA</span>va <span class=\r
24 "headeru">B</span>ioinformatics <span class="headeru">A</span>nalysis <span class="headeru">W</span>eb <span\r
25 class="headeru">S</span>ervices</h2></td>\r
26 </tr>\r
27 </table></div><!-- banner end-->\r
28 \r
29 <div id="wrapper">\r
30 <div id="panel"><a href="index.html">Home</a> <a class="selected"\r
31 href="manual.html">Manual</a> <a href="howto.html">How To</a> <a\r
32 href="download.html">Download</a> <a href=\r
33 "http://www.jalview.org">Jalview</a>\r
34 <a href="http://www.compbio.dundee.ac.uk">Barton Group</a> \r
35 </div>\r
36 \r
37 <!-- panel end-->\r
38 <div id="content">\r
39 <h2>JABAWS Manual</h2>\r
40 \r
41 <h4>JABAWS Installation</h4>\r
42 \r
43 <h5>System Requirements</h5>\r
44 \r
45 <p>JABAWS requires a java web application server compliant with\r
46 version 2.4 of the java servlet specification, and a java 6 runtime\r
47 environment. We recommend using an official Sun Java 6 runtime\r
48 environment, but others may work. We have tested JABAWS with <a\r
49 href="http://tomcat.apache.org/download-60.cgi">Apache-Tomcat\r
50 version 6</a>, however we expect it will also be compatible with <a\r
51 href="http://tomcat.apache.org/download-55.cgi">version\r
52 5.5</a>.</p>\r
53 \r
54 <!-- todo: link to help about obtaining and installing tomcat -->\r
55 <h5>Installing the JABAWS WAR file</h5>\r
56 \r
57 <p>JABAWS is distributed as a web application archive (WAR). To\r
58 deploy JABAWS in Apache-Tomcat - simply drop the war file into the\r
59 <span class="highlight">webapps</span> directory of a running\r
60 Tomcat, and it will do the rest. For any other web application\r
61 server, please follow your server's specific deployment procedure\r
62 for 'WAR' files. If you are installing on a windows machine, then\r
63 at this point your JABAWS installation will already be up and\r
64 running, and you can try its services out using the <a href=\r
65 "howto.html#usingWsTester">JABAWS test client</a>, but\r
66 installations on other operating systems will require a final step\r
67 to ensure JABAWS can locate and execute the binary programs it\r
68 needs.</p>\r
69 \r
70 <h4>Preparing executables for use with JABAWS</h4>\r
71 \r
72 <p>JABAWS's web services use command line programs to do\r
73 the actual analysis, so it must have access to programs\r
74 which can be executed on your platform. The native executables\r
75 bundled with JABAWS for Windows (32-bit) and Linux (i386) should be\r
76 OK for those systems. However, the source code for these \r
77 programs is also provided so you can recompile for your own\r
78 architecture and exploit any optimisations that your system can\r
79 provide. Alternately, if you have already got binaries on your\r
80 system, then you can simply change the paths in JABAWS's\r
81 configuration files so these are used instead.</p>\r
82 \r
83 <h5>Using the pre-compiled i386 binaries on Linux</h5>\r
84 \r
85 <p>Before the binaries that are bundled with JABAWS can be used,\r
86 they must first be made executable using the provided <a name=\r
87 "setexecflag" id="setexecflag">'setexecflag.sh'</a> script:</p>\r
88 \r
89 <ol>\r
90 <li>cd to <span class=\r
91 "hightlight">&lt;webapplicationpath&gt;/binaries/src</span></li>\r
92 \r
93 <li>run <span class="hightlight">sh setexecflag.sh</span></li>\r
94 \r
95 <li>Make sure binaries supplied work under your OS.<br />\r
96  For this run each binary, without any command line options or\r
97 input files. If you see an error message complaining about missing\r
98 libraries or other problems, then you probably need to <a href=\r
99 "#recompbinaries">recompile the binaries</a>. with</li>\r
100 \r
101 <li>Restart the Tomcat.</li>\r
102 </ol>\r
103 \r
104 That's it! JABAWS should work at this point. Try it out using the<a\r
105 href="howto.html#usingWsTester">JABAWS test client</a>. If not,\r
106 read on... or have a look at <a href=\r
107 "howto.html#usingtomcat">deploying on Tomcat</a> tips.<br />\r
108  <em>Note: You may want to enable logging, <a href="#logfiles">see\r
109 below for instructions on how to do that</a>.</em><br />\r
110  \r
111 \r
112 <h5><a name="recompbinaries">Recompiling the bundled\r
113 programs for your system</a></h5>\r
114 \r
115 <p>If you have a fully equipped build environment on your\r
116 (POSIX-like) system, then you should be able to recompile the\r
117 programs from the source distributions which are included\r
118 in the JABAWS war file. A script called 'compilebin.sh' is provided\r
119 to automate this task.</p>\r
120 \r
121 <ol>\r
122 <li>In a terminal window, change the working directory to <span\r
123 class="hightlight">binaries/src</span></li>\r
124 \r
125 <li>execute the <span class="highlight">compilebin.sh</span>\r
126 script,<br />\r
127  either use: <span class="hightlight">chmod +x compilebin.sh;\r
128 compilebin.sh &gt; compilebin.out;</span><br />\r
129  or: <span class="hightlight">sh compilebin.sh &gt;\r
130 compilebin.out</span></li>\r
131 \r
132 <li>Now run <span class="hightlight">sh setexecflag.sh</span><br />\r
133  If any of the binaries was not recompiled, then a 'file not found'\r
134 error will be raised.</li>\r
135 \r
136 <li>Finally, restart your tomcat (or servlet container), and use\r
137 the <a href="howto.html#usingWsTester">JABAWS test client</a> to\r
138 check that JABAWS can use the new binaries.</li>\r
139 </ol>\r
140 \r
141 <p>If you couldn't compile everthing, then it may be that your system does\r
142 not have all the tools required for compiling the programs. At the very\r
143 least check that you have gcc, g++ and make installed in your\r
144 system. If not install these packages and repeat the compilation\r
145 steps again. You should also review the compilebin.sh output -\r
146 which was redirected to compilebin.out, and any errors output to\r
147 the terminal. Finally, try obtaining the <a href="#obtainexec">pre\r
148 compiled binaries</a> for your OS.</p>\r
149 \r
150 <h5><a name="haveexec" id="haveexec">Reuse the binaries that are\r
151 already in your system</a></h5>\r
152 \r
153 <p>If you would like to use the binaries you already have then you\r
154 just need to let JABAWS know there they are. To do this, edit:\r
155 <span class="code">conf/Executable.properties</span>\r
156 <p>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 <span class="highlight">webapps</span>. For example, the default path for clustalw is defined\r
157 as<span class=\r
158 "code">local.clustalw.bin=binaries/src/clustalw/src/clustalw2</span>\r
159 Alternatively, instead of changing <span class=\r
160 "hightlight">Executable.properties</span> you could also replace\r
161 the executables bundled with JABAWS with the ones that you have, or make symlinks to them.\r
162 Then the default configuration will work for you. More information\r
163 about <a href="#exec"><span class="hightlight">the\r
164 Executable.properties</span> file is given below</a>.</p>\r
165 \r
166 <h5><a name="obtainexec" id="obtainexec">Obtaining alignment\r
167 programs for your operation system from elsewhere</a></h5>\r
168 \r
169 <p>You could search for pre-packaged compiled executable in your\r
170 system package repository or alternately, download pre-compiled\r
171 binaries from each alignment program's home page. Then, either\r
172 replace the executables supplied with the downloaded ones, or\r
173 modify the paths in <span class=\r
174 "hightlight">executable.properties</span> as described above.</p>\r
175 \r
176 <h4>Configuring JABAWS</h4>\r
177 \r
178 <p>There are three parts of the system you can configure. The local\r
179 and cluster engines, and the paths to individual executables for\r
180 each engine. These settings are stored in configuration files\r
181 within the web application directory (for an overview, then take a\r
182 look at the <a href="#warfile">war file content table</a>).</p>\r
183 \r
184 <h5>Default JABA Web Services Configuration</h5>\r
185 \r
186 <p>Initially, JABAWS is configured with only the local engine\r
187 enabled, with job output written to directory called "jobsout"\r
188 within the web application itself. This means that JABAWS will work\r
189 out of the box, but may not be suitable for serving a whole lab or\r
190 instute.</p>\r
191 \r
192 <h4>Local Engine Configuration</h4>\r
193 \r
194 <p>The Local execution engine configuration is defined in the\r
195 properties file conf/Engine.local.properties. The supported\r
196 configuration settings are:<br />\r
197  <span class="hightlight">engine.local.enable=true</span> - #\r
198 enable or disable local engine, valid values true | false<br />\r
199  <span class=\r
200 "hightlight">local.tmp.directory=D:\\clusterengine\\testoutput</span>\r
201 - a directory to use for temporary files storage, optional,\r
202 defaults to java temporary directory<br />\r
203  <span class="hightlight">engine.local.thread.number=4</span> -\r
204 Number of threads for tasks execution (valid values between 1 and\r
205 2x cpu. Where x is a number of cores available in the system).\r
206 Optional defaults to the number of cores for core number &lt;=4 and\r
207 number of cores-1 for greater core numbers.</p>\r
208 \r
209 <p>If you are planning to heavily use the local engine (which you\r
210 have to if you do not have a cluster) it is a good idea to increase\r
211 the amount of memory available for the web application server. If\r
212 you are using Apache-Tomcat, then you can define its memory\r
213 settings in the JAVA_OPTS environment variable. To specify which\r
214 JVM to use for Apache-Tomcat, put the full path to the JRE\r
215 installation in the JAVA_HOME environment variable (We would\r
216 recommend using Sun Java Virtual Machine (JVM) in preference to\r
217 Open JDK). Below is an example of code which can be added to <span\r
218 class="hightlight">&lt;tomcat_dir&gt;/bin/setenv.sh</span> script\r
219 to define which JVM to use and a memory settings for Tomcat server.\r
220 Tomcat server startup script (<span class=\r
221 "hightlight">catalina.sh</span>) will execute <span class=\r
222 "hightlight">setenv.sh</span> on each server start\r
223 automatically.<br />\r
224  <span class="code">export\r
225 JAVA_HOME=/homes/ws-dev2/jdk1.6.0_17/<br />\r
226  export JAVA_OPTS="-server -Xincgc -Xms512m -Xmx1024m"</span></p>\r
227 \r
228 <h4>Cluster Engine Configuration</h4>\r
229 \r
230 <p>Supported configuration settings:<br />\r
231  <span class="hightlight">engine.cluster.enable=true</span> - #\r
232 enable or disable local engine true | false, defaults to\r
233 false<br />\r
234  <span class=\r
235 "hightlight">cluster.tmp.directory=/homes/clustengine/testoutput-</span>\r
236 a directory to use for temporary files storage. The value must be\r
237 an absolute path to the temporary directory. Required. The value\r
238 must be different from what is defined for local engine. This\r
239 directory must be accessible from all cluster nodes.<br />\r
240  For the cluster engine to work, the SGE_ROOT and LD_LIBRARY_PATH\r
241 environment variables have to be defined. They tell the cluster\r
242 engine where to find DRMAA libraries. These variables\r
243 should be defined when the web application server starts up, e.g.</p>\r
244 \r
245 <p><span class="code">SGE_ROOT=/gridware/sge<br />\r
246  LD_LIBRARY_PATH=/gridware/sge/lib/lx24-amd64</span></p>\r
247 \r
248 <p>Finally, do not forget to configure executables for the cluster\r
249 execution, they may be the same as for the local execution but may\r
250 be different. Please refer to the executable configuration section\r
251 for further details.</p>\r
252 \r
253 <h4><a name="exec" id="exec"></a>Executable Configuration</h4>\r
254 \r
255 <p>All the executable programs\r
256 are configured in conf/Executable.properties file. Each executable\r
257 is configured with a number of options. They are: <span class=\r
258 "code">local.X.bin.windows=&lt;path to executable under windows\r
259 system, optional&gt;<br />\r
260  local.X.bin=&lt;path to the executable under non-windows system,\r
261 optional&gt;<br />\r
262  cluster.X.bin=&lt;path to the executable on the cluster, all\r
263 cluster nodes must see it, optional&gt;<br />\r
264  X.bin.env=&lt;semicolon separated list of environment variables\r
265 for executable, use hash symbol as name value separator,\r
266 optional&gt;<br />\r
267  X.--aamatrix.path=&lt;path to the directory containing\r
268 substitution matrices, optional&gt;<br />\r
269  X.presets.file=&lt;path to the preset configuration file, optional\r
270 &gt;<br />\r
271  X.parameters.file=&lt;path to the parameters configuration file,\r
272 optional&gt;<br />\r
273  X.limits.file=&lt;path to the limits configuration file,\r
274 optional&gt;<br />\r
275  X.cluster.settings=&lt;list of the cluster specific options,\r
276 optional&gt;</span></p>\r
277 \r
278 <p>Where X is a short executable wrapper class name.</p>\r
279 \r
280 <p>Default JABAWS configuration includes path to local executables\r
281 to be run by the local engine only, all cluster related settings\r
282 are commened out, but they are there for you as example. Cluster\r
283 engine is disabled by default. To configure executable for cluster\r
284 execution uncomment the X.cluster settings and change them\r
285 appropriately.<br />\r
286  For example a complete Mafft configuration may look like\r
287 this:<span class="code">local.mafft.bin.windows=<br />\r
288  local.mafft.bin=binaries/mafft<br />\r
289  cluster.mafft.bin=/homes/cengine/mafft<br />\r
290  mafft.bin.env=MAFFT_BINARIES#/homes/cengine/mafft;FASTA_4_MAFFT#/bin/fasta34;<br />\r
291  mafft.--aamatrix.path=binaries/matrices<br />\r
292  mafft.presets.file=conf/settings/MafftPresets.xml<br />\r
293  mafft.parameters.file=conf/settings/MafftParameters.xml<br />\r
294  mafft.limits.file=conf/settings/MafftLimits.xml<br />\r
295  mafft.cluster.settings=-q bigmem.q -l h_cpu=24:00:00 -l\r
296 h_vmem=6000M -l ram=6000M</span></p>\r
297 \r
298 <p>Please not that relative paths must only be specified for the\r
299 files that reside inside web application directory, all other paths\r
300 must be supplied as absolute!</p>\r
301 \r
302 <p>Furthermore, you should avoid using environment variables within the paths or options - since these will not be evaluated correctly.  Instead, please explicitly\r
303 specify the absolute path to anything\r
304 normally evaluated from an environment variable at execution time.</p>\r
305 \r
306 <p>If you are using JABAWS to submit jobs to the cluster (with\r
307 cluster engine enabled), executables must be available from all\r
308 cluster nodes the task can be sent to, also paths to the\r
309 executables on the cluster e.g. <span class=\r
310 "hightlight">cluster.&lt;exec_name&gt;.bin</span> must be\r
311 absolute.</p>\r
312 \r
313 <p>Executables can be located anywhere in your system, they do not\r
314 have to reside on the server as long as the web application server\r
315 can access and execute them.</p>\r
316 \r
317 <p>Cluster settings are treated as a black box, the system will\r
318 just pass whatever is specified in this line directly to the\r
319 cluster submission library. This is how DRMAA itself treats this\r
320 settings. More exactly DRMAA JobTemplate.setNativeSpecification()\r
321 function will be called.</p>\r
322 \r
323 <h5><a name="setexecenv" />Defining Environment Variables for\r
324 Executables</h5>\r
325 \r
326 <p>Environment variables can be defined in property <span class=\r
327 "code">x.bin.env</span> Where <span class="hightlight">x</span> is\r
328 one of five executables supported by JABAWS. Several environment\r
329 variables can be specified in the same line. For example.<br />\r
330  <span class=\r
331 "code">mafft.bin.env=MAFFT_BINARIES#/homes/cengine/mafft;FASTA_4_MAFFT#/bin/fasta34;</span></p>\r
332 \r
333 <p>The example above defines two environment variables with names\r
334 MAFFT-BINARIES and FASTA_4_MAFFT and values /homes/cengine/mafft\r
335 and /bin/fasta34 respectively. Semicolon is used as a separator\r
336 between different environment variables whereas hash is used as a\r
337 separator for name and value of the variable.</p>\r
338 \r
339 <h4><a name="mafftconf" id="mafftconf"></a>Configure JABAWS to Work\r
340 with Mafft</h4>\r
341 \r
342 <p>If you use default configuration you do not need to read any\r
343 further. The default configuration will work for you without any\r
344 changes, however, if you want to install Mafft yourself then there\r
345 is a couple of more steps to do.</p>\r
346 \r
347 <p>Mafft executable needs to know the location of other files\r
348 supplied with Mafft. In addition some Mafft functions depends on\r
349 the fasta executable, which is not supplied with Mafft, but is a\r
350 separate package. Mafft needs to know the location of fasta34\r
351 executable.</p>\r
352 \r
353 <p>To let Mafft know where the other files from its package are\r
354 change the value of MAFFT-BINARIES environment variables. To let\r
355 Mafft know where is the fasta34 executable set the value of\r
356 FASTA_4_MAFFT environment variable to point to a location of\r
357 fasta34 program. The latter can be added to the PATH variable\r
358 instead. If you are using executables supplied with JABAWS, the\r
359 path to Mafft binaries would be like <span class=\r
360 "hightlight">&lt;relative path to web application\r
361 directory&gt;/binaries/src/mafft/binaries</span> and the path to\r
362 fasta34 binary would be <span class="hightlight">&lt;relative path\r
363 to web application\r
364 directory&gt;/binaries/src/fasta34/fasta34</span>. You can specify\r
365 the location of Mafft binaries as well as fasta34 program elsewhere\r
366 by providing an absolute path to them. All these settings are\r
367 defined in <span class=\r
368 "hightlight">conf/Executable.properties</span> file.</p>\r
369 \r
370 <h4>Testing JABA Web Services</h4>\r
371 \r
372 <p>You can use a command line client (part of the client only\r
373 package) to test you JABAWS installation as described <a href=\r
374 "howto.html#usingcclient">here</a>. If you downloaded a JABAWS\r
375 server package, you can use <span class=\r
376 "hightlight">&lt;your_jaba_context_name&gt;/WEB-INF/lib/jaba-client.jar</span>\r
377 to test JABAWS installation as described in <a href=\r
378 "howto.html#usingWsTester">how-to</a>. If you downloaded the source\r
379 code, then you could run a number of test suits defined in the\r
380 build.xml ant build file.</p>\r
381 \r
382 <h4><a name="logfiles" id="logfiles"></a>JABAWS Log Files</h4>\r
383 \r
384 <p>JABAWS can be configured to log what it is doing. This comes\r
385 handy if you would like to see who is using your web services or\r
386 need to chase some problems. JABAWS uses <a href=\r
387 "http://logging.apache.org/log4j/1.2/">log4j</a> to do the logging,\r
388 the example of log4j configuration is bundled with JABAWS war file.\r
389 You will find it in the <span class=\r
390 "hightlight">/WEB-INF/classes/log4j.properties</span> file. All the\r
391 lines in this file are commented out. The reason why the logging is\r
392 disabled by default it simple, log4j have to know the exact\r
393 location where the log files should be stored. This is not known up\r
394 until the deployment time. To enable the logging you need to\r
395 define<span class="hightlight">logDir</span> property in the <span\r
396 class="hightlight">log4j.properties</span> and uncomment section of\r
397 the file which corresponds to your need. More information is given\r
398 in the <span class="hightlight">log4j.properties</span> file\r
399 itself. Restart the tomcat or the JABAWS web application to apply\r
400 the settings.</p>\r
401 \r
402 <p>After you have done this, assuming that you did not change the\r
403 log4j.properties file yourself, you should see the application log\r
404 file called <span class="hightlight">activity.log</span>. The\r
405 amount of information logged can be adjusted using different\r
406 logging levels, it is reduced in the following order of log levels\r
407 TRACE, DEBUG, INFO, WARN, ERROR, FATAL.</p>\r
408 \r
409 <p>If you would like to know who is using your services, you might\r
410 want to <a href="howto.html#logs">enable tomcat access\r
411 logging</a>.</p>\r
412 \r
413 <h4><a name="warfile" id="warfile"></a>JABAWS War File Content</h4>\r
414 \r
415 <table width="100%">\r
416 <tr>\r
417 <th width="19%">Directory</th>\r
418 <th width="81%">Content description</th>\r
419 </tr>\r
420 \r
421 <tr>\r
422 <td>conf/</td>\r
423 <td>contains configuration files such as Executable.properties,\r
424 Engine.local.properties, Engine.cluster.properties</td>\r
425 </tr>\r
426 \r
427 <tr>\r
428 <td>conf/settings</td>\r
429 <td>Contains individual executable description files. In particular\r
430 XXXParameters.xml, XXXPresets.xml, XXXLimits.xml where XXX is the\r
431 name of the executable</td>\r
432 </tr>\r
433 \r
434 <tr>\r
435 <td>jobsout/</td>\r
436 <td>Contains directories generated when running an individual executable. E.g. input and output files and some other task\r
437 related data. (optional)</td>\r
438 </tr>\r
439 \r
440 <tr>\r
441 <td>binaries/</td>\r
442 <td>Directory contains native executables - programs,\r
443 windows binaries (optional)</td>\r
444 </tr>\r
445 \r
446 <tr>\r
447 <td>binaries/src</td>\r
448 <td>Contains source of native executables and Linux i386\r
449 binaries.</td>\r
450 </tr>\r
451 \r
452 <tr>\r
453 <td>binaries/matrices</td>\r
454 <td>Substitution matrices <!-- what format ? --></td>\r
455 </tr>\r
456 \r
457 <tr>\r
458 <td>WEB-INF</td>\r
459 <td>Web application descriptor</td>\r
460 </tr>\r
461 \r
462 <tr>\r
463 <td>WEB-INF/lib</td>\r
464 <td>Web application libraries</td>\r
465 </tr>\r
466 \r
467 <tr>\r
468 <td>WEB-INF/classes</td>\r
469 <td>log4j.properties - log configuration file (optional)</td>\r
470 </tr>\r
471 \r
472 <tr>\r
473 <td colspan="2"><strong>Help Pages</strong> </td>\r
474 </tr>\r
475 \r
476 <tr>\r
477 <td>/</td>\r
478 <td>help pages, index.html is the starting page</td>\r
479 </tr>\r
480 \r
481 <tr>\r
482 <td>dm_javadoc</td>\r
483 <td>javadoc for JABAWS client (the link is available from How To\r
484 pages)</td>\r
485 </tr>\r
486 \r
487 <tr>\r
488 <td>prog_docs</td>\r
489 <td>documentation for programmes that JABAWS uses</td>\r
490 </tr>\r
491 \r
492 <tr>\r
493 <td>images</td>\r
494 <td>images referenced by html pages</td>\r
495 </tr>\r
496 </table>\r
497 \r
498 <p>&nbsp;</p>\r
499 </div>\r
500 \r
501 <!-- content end-->\r
502 <div id="copyright">Last update: 19 August 2010<br />\r
503  Peter Troshin, Jim Procter and Geoff Barton, The Barton Group, University of\r
504 Dundee, UK</div>\r
505 </div>\r
506 \r
507 <!-- wrapper end-->\r
508 </div>\r
509 <!-- page end-->\r
510 \r
511 <!-- Google analitics -->\r
512 <script type="text/javascript">\r
513 var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");\r
514 document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));\r
515 </script>\r
516 <script type="text/javascript">\r
517 try{\r
518 var pageTracker = _gat._getTracker("UA-5356328-1");\r
519 pageTracker._trackPageview();\r
520 } catch(err) {}\r
521 </script>\r
522 </body>\r
523 </html>\r
524 \r