Mercurial > hg > digilib-old
comparison webapp/doc/website/tips.html @ 922:8251cc7888fb
slightly updated website.
removed links to berlios wiki, made tips page instead.
still quite ugly...
| author | robcast |
|---|---|
| date | Fri, 09 Dec 2011 20:33:24 +0100 |
| parents | |
| children | 45effb9c9bed |
comparison
equal
deleted
inserted
replaced
| 921:a00114a0c957 | 922:8251cc7888fb |
|---|---|
| 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| 3 <html xmlns="http://www.w3.org/1999/xhtml"> | |
| 4 <head> | |
| 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
| 6 <title>digilib -- Digital Image Library</title> | |
| 7 </head> | |
| 8 <body> | |
| 9 <table border="0" cellspacing="0" cellpadding="10"> | |
| 10 <tr> | |
| 11 <td bgcolor="#a0a0a0"> </td> | |
| 12 <td> | |
| 13 <img src="images/digilib-logo-big.png" align="left" /> | |
| 14 <h1> | |
| 15 <tt>digilib</tt> | |
| 16 -- a versatile image viewing environment for the internet | |
| 17 </h1> | |
| 18 </td> | |
| 19 </tr> | |
| 20 <tr> | |
| 21 <td bgcolor="#a0a0a0" valign="top" align="right"> | |
| 22 <p> | |
| 23 <b><a href="index.html">Info</a> | |
| 24 </b> | |
| 25 </p> | |
| 26 <p> | |
| 27 <b><a href="http://developer.berlios.de/projects/digilib/">Project</a> | |
| 28 </b> | |
| 29 </p> | |
| 30 <p> | |
| 31 <b><a href="http://developer.berlios.de/project/showfiles.php?group_id=251">Download</a> | |
| 32 </b> | |
| 33 </p> | |
| 34 <p> | |
| 35 <b><a href="http://developer.berlios.de/docman/?group_id=251">Docs</a> | |
| 36 </b> | |
| 37 </p> | |
| 38 <p> | |
| 39 <b><a href="tips.html">Tips</a> | |
| 40 </b> | |
| 41 </p> | |
| 42 <p> | |
| 43 <b><a href="http://hg.berlios.de/repos/digilib">Source</a> | |
| 44 </b> | |
| 45 </p> | |
| 46 </td> | |
| 47 <td> | |
| 48 | |
| 49 | |
| 50 <p>Some tips for running digilib</p> | |
| 51 <ul> | |
| 52 <li> | |
| 53 <a href="#vm_settings">Java VM settings for digilib</a> | |
| 54 </li> | |
| 55 <li> | |
| 56 <a href="#prescaled_images">Prescaled images</a> | |
| 57 </li> | |
| 58 <li> | |
| 59 <a href="installing_jai">Installing JAI</a> | |
| 60 </li> | |
| 61 </ul> | |
| 62 | |
| 63 <h1 id="vm_settings">Java VM settings for digilib</h1> | |
| 64 | |
| 65 <p>The Java virtual machine (Java-VM) only uses a fixed amount of memory for | |
| 66 its operations. When an operation needs more memory than available it aborts | |
| 67 with an error ("out of memory error").</p> | |
| 68 <p>digilib can need a lot of memory depending on the size and type of images. | |
| 69 Since digilib runs as a servlet under Tomcat its in the same VM as the Tomcat | |
| 70 server.</p> | |
| 71 <p>The amount of memory Tomcat (version 5.0) uses is configured by creating a | |
| 72 "setenv.sh" script with a line</p> | |
| 73 <pre> CATALINA_OPTS="-Xmx512m" | |
| 74 </pre> | |
| 75 <p>in Tomcat's "bin" directory (giving 512MB in this case).</p> | |
| 76 <p> | |
| 77 You can check the amount of memory your digilib instance has available on the | |
| 78 bottom of the web page /server/dlConfig.jsp in your digilib instance (e.g. <a | |
| 79 href="http://digilib.mpiwg-berlin.mpg.de/digitallibrary/server/dlConfig.jsp" | |
| 80 class="external free" rel="nofollow">http://digilib.mpiwg-berlin.mpg.de/digitallibrary/server/dlConfig.jsp</a>). | |
| 81 </p> | |
| 82 | |
| 83 <h1 id="prescaled_images">Prescaled images</h1> | |
| 84 | |
| 85 <p>You can provide any number of scaled-down versions of your images that | |
| 86 digilib uses when a smaller version of an image is requested. Since less data | |
| 87 has to be read and processed this can speed up digilib's performance quite a | |
| 88 lot.</p> | |
| 89 <p>The actual process is that the client requests a certain target size, | |
| 90 digilib scans all available scaled-down versions of the same image, selects the | |
| 91 smallest image that is larger than the requested size and scales it down to the | |
| 92 requested size.</p> | |
| 93 <p>The scaled-down versions of the image have to have the same file name as | |
| 94 the original hi-res file. They can have a different type and extension (e.g. | |
| 95 img002.jpg for img002.TIFF)</p> | |
| 96 <p>The scaled down images have to be in the same subdirectory (the part that | |
| 97 shows up in digilib's "fn" parameter) as the hi-res file. The first part of each | |
| 98 directory tree is configured by the basedir-list parameter in | |
| 99 digilib-config.xml.</p> | |
| 100 <p>The sequence of directories in basedir-list is from hi-res to lo-res. | |
| 101 Images must be present in the hires directory but they need not be present in | |
| 102 all lower-res directories.</p> | |
| 103 <p>e.g. if digilib-config.xml contains</p> | |
| 104 <pre> <parameter name="basedir-list" value="/images:/scaled:/thumb" /> | |
| 105 </pre> | |
| 106 <p>and a user requests the image "books/book1/page0002" digilib looks for</p> | |
| 107 <pre> /thumb/books/book1/page0002.* | |
| 108 /scaled/books/book1/page002.* | |
| 109 /images/books/book1/page002.* | |
| 110 </pre> | |
| 111 <p>and uses the first image that is bigger than or equal to the requested | |
| 112 size.</p> | |
| 113 <p> | |
| 114 For batch-prescaling our images we use a script called "scale-o-mat" that uses a | |
| 115 lot of freely available imaging libraries (ImageMagick, libtiff, netpbm) and is | |
| 116 available in our public CVS <a | |
| 117 href="http://itgroup.mpiwg-berlin.mpg.de/cgi-bin/cvsweb.cgi/scaleomat/" | |
| 118 class="external autonumber" rel="nofollow">[1]</a>. The script is given a | |
| 119 hi-res base directory, a destination base directory, a destination size and a | |
| 120 starting directory. It then processes all files in the starting directory and | |
| 121 all its subdirectories and creates scaled images in corresponding directories | |
| 122 under the destination base directory. | |
| 123 </p> | |
| 124 <p>We currently use prescaled thumbnails of 100 pixels and images for browser | |
| 125 display of 1500 pixels. Remember that the prescaled image has to be larger (or | |
| 126 the same size) than the requested image size!</p> | |
| 127 <p>There is another optimization in digilib: if the requested image is exactly | |
| 128 the same size and type as the prescaled image then the prescaled image is sent | |
| 129 unmodified to the client which is a lot faster. So it makes sense to produce | |
| 130 thumbnails of exactly 90 pixels width when they are used in an HTML page where | |
| 131 all images are 90 pixels wide.</p> | |
| 132 | |
| 133 | |
| 134 <h1 id="installing_jai">Installing JAI</h1> | |
| 135 | |
| 136 <p> | |
| 137 In principle you can install the <a | |
| 138 href="http://java.sun.com/javase/technologies/desktop/media/jai/" | |
| 139 class="external text" rel="nofollow">Java Advanced Imaging</a> JAR files (and | |
| 140 native library files if available) in the /WEB-INF/lib/ directory of the digilib | |
| 141 web application. | |
| 142 | |
| 143 </p> | |
| 144 <p>I found that in some cases digilib stopped reading TIFF files after a | |
| 145 period of running. In these cases it helped to install the JAI files directly in | |
| 146 the local Java installation (i.e. in the Java's /jre/lib/ext/ directory on | |
| 147 linux).</p> | |
| 148 | |
| 149 | |
| 150 <h1 id="mpiwg_setup">Sample setup</h1> | |
| 151 | |
| 152 <p>The current digilib setup at the MPIWG (as of November 2005):</p> | |
| 153 <ul> | |
| 154 <li> | |
| 155 One frontend server running the lightweight web-multiplexer <a | |
| 156 href="http://www.apsis.ch/pound/" class="external text" rel="nofollow">pound</a> | |
| 157 on port 80 that distributes requests to two servers runnning digilib | |
| 158 </li> | |
| 159 <li> | |
| 160 the two servers run digilib under <a | |
| 161 href="http://tomcat.apache.org/index.html" class="external text" | |
| 162 rel="nofollow">Tomcat</a> on port 8080 without Apache | |
| 163 <ul> | |
| 164 <li>one server is the same machine as the frontend server (Linux, Dual | |
| 165 2.4GHz Xeon, 2GB RAM)</li> | |
| 166 <li>the other server is a separate, newer machine (Linux, Dual 1.8GHz | |
| 167 Opteron, 2GB RAM)</li> | |
| 168 </ul> | |
| 169 </li> | |
| 170 <li> | |
| 171 the digilib instances (digilib 1.5.9c as of 22.11.2005) run on Tomcat on Java | |
| 172 1.5.0_05 (or 1.4.2_06) with 1GB of <a href="#vm_settings">Java VM memory | |
| 173 for digilib</a> (-Xmx1024m) with JAI (1.1.2_01) and JAI-ImageIO (1.0_01) <a | |
| 174 href="#installing_jai">installed in the JRE</a>(!) | |
| 175 </li> | |
| 176 <li>both digilib servers access all image files over NFS (over GBit | |
| 177 Ethernet) from a central file server (Solaris 8, Sun Fire 480, multiple RAIDs | |
| 178 on Fibrechannel)</li> | |
| 179 </ul> | |
| 180 | |
| 181 </td> | |
| 182 </tr> | |
| 183 <tr> | |
| 184 <td style="padding: 0px" align="left"> | |
| 185 <a href="http://developer.berlios.de"> <img | |
| 186 src="http://developer.berlios.de/bslogo.php?group_id=0&type=1" width="124" | |
| 187 height="32" border="0" alt="BerliOS Logo" /> </a> | |
| 188 </td> | |
| 189 <td></td> | |
| 190 </tr> | |
| 191 </table> | |
| 192 | |
| 193 </body> | |
| 194 </html> |
