Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Tomcat - The Definitive Guide (seconda edizione)
Recensito da Ivan Venuti il 19-06-2008 ore 12:15
Copertina ISBN: 0596101066
Autori: Jason Brittain, Ian F. Darwin
Editore: O'Reilly
Lingua: Inglese
Anno: 2007
Pagine: 494
Allegati: Nessuno
Seminario Intel
Una qualsiasi applicazione web scritta in Java necessita di un servlet container per essere eseguita e Tomcat è quello di riferimento; questo strumento ha raggiunto una stabilità e una facilità di configurazione, che sembrerebbero non giustificare un libro di quasi 500 pagine sull'argomento. Di fatto, l'80% del contenuto del libro può non essere conosciuto da chi programma JSP/servlet nella fase di sviluppo "classica"; ciò non significa che si tratti di problematiche inesistenti, ma che questi problemi difficilmente si presenteranno a chi, pur sviluppando applicazioni web Java (in gergo chiamate webapp), non si occupa della configurazione dell'ambiente su un sistema in produzione.

Questo è un ottimo libro su moltissimi dettagli spesso "nascosti" di Tomcat, utili sia a ottimizzarne il funzionamento, sia a predisporre un ambiente adatto ad usi massivi e con politiche di deploy semplici da aggiornare e da riconfigurare (necessità quasi mai sentite dai programmatori, ma molto più da sistemisti). In questi casi la lettura del libro è un must, in quanto descrive sia le problematiche che le soluzioni difficilmente recuperabili dalla documentazione in linea o da altre risorse in Rete. Il taglio dato ai singoli capitoli aiuta chiunque abbia una conoscenza minima di un sistema operativo a utilizzare le nozioni esposte; vengono evidenziati tutti i passi necessari e i comandi da eseguire per raggiungere gli obiettivi indicati; si nota comunque una predilezione del sistema operativo Linux e, in seconda battuta, di Windows. Questo permette, a chi non è un sistemista, né ha delle conoscenze sistemistiche molto profonde, di seguire agevolmente tutti i capitoli e tutte le problematiche illustrate. In sostanza il libro è adatto ad un qualsiasi programmatore Java, che voglia configurare in maniera ottimizzata Tomcat.

Nel capitolo 1, Getting Started with Tomcat, il testo spiega l'installazione del software su sistemi Linux, Solaris, Windows, Mac OS X e FreeBSD. Qui, giustamente, trova spazio anche la descrizione dei prerequisiti (versione di Java installata, per esempio). Peccato che ci si riferisca alla sola versione 6 (l'ultima) di Tomcat. Una semplice tabellina con i requisiti anche per le versioni precedenti (almeno per la 4, la 5 e la 5.5) avrebbe sicuramente aiutato il lettore a capire quali di questi sono soddisfatti dal proprio ambiente di sviluppo.

Il capitolo si conclude con i dettagli per le operazioni di start, stop e restart di Tomcat stesso per i diversi sistemi operativi, con utili informazioni aggiuntive per la soluzione dei problemi più comuni e il test dell'installazione. Il capitolo 2, Configuring Tomcat, è utile quando, accanto all'installazione di base di Tomcat, c'è la necessità della sua personalizzazione, configurando il software in maniera adatta alle proprie esigenze. Questo capitolo analizza le principali possibilità di configurazione fornendo utilissime informazioni su alcune scelte per minimizzare i problemi e per rispondere adeguatamente ad alcune esigenze in ambienti di produzione: facile installazione di nuove versioni, uso della porta 80, standard http, configurazione ottimale della JVM, uso di compilatori alternativi per le JSP, impostazione delle basilari politiche di sicurezza, controllo delle sessioni applicative, uso di risorse esterne via JNDI e JDBC) e, per finire, alcune indicazioni sull'uso di CGI direttamente sotto Tomcat e la webapp predefinita per l'amministrazione di Tomcat.

Il capitolo 3, Deploying Servlet and JSP Web Applications in Tomcat analizza com'è fatta una webapp Java e come eseguirne il deploy; mostra come configurare il file server.xml per personalizzare il contesto, l'uso dei file WAR e l'uso della webapp Manager per la gestione delle principali operazioni sui WAR. Infine mostra l'uso di Ant per l'automazione delle più usuali (e ripetitive) operazioni, dal packaging dei diversi file, fino al deploy su Tomcat.

Nel capitolo 4, Tomcat Performance Tuning, si affronta in dettaglio il problema del performance tuning. Il libro evidenzia come per ogni ottimizzazione, prima di partire è indispensabile misurare le performance, per capire se gli interventi di ottimizzazione sono necessari e, successivamente, appropriati. Per le misure il libro introduce l'uso degli strumenti open source di Apache: ab, siege (a linea di comando) e il tool Jakarta JMeter (che ha anche un'interfaccia grafica). Infine il capitolo dettaglia i tuning possibili sia all'interno di Tomcat che al suo esterno (ottimizzando JVM, sistema operativo). Un capitolo di cui consiglio la lettura a tutti coloro che vogliono installare Tomcat in un ambiente di produzione.

Ottimo e dettagliato il capitolo 5, Integration with the Apache Web Server, in cui si descrive come mettere in comunicazione Tomcat con Apache Web Server. Il capitolo inizia analizzando i casi in cui tale integrazione è auspicabile e quando no, per poi dettagliare tutte le diverse modalità di integrazione e la loro corretta configurazione. Il capitolo 6, Tomcat Security è un capitolo che va in profondità sulla configurazione dello strumento e dell'ambiente circostante per massimizzare la sicurezza. Giustamente, l'autore mette in guardia dal fatto che nessuna politica di sicurezza può essere sufficiente se le applicazioni scritte per Tomcat espongono falle di sicurezza; per convincerci mostra le criticità più note e alcuni tra i vari possibili attacchi (XSS, HTML Injection, SQL injection e Command Injection). Questo è un capitolo da leggere anche se non si pensa di essere responsabili della configurazione di Tomcat, ma si vuole una panoramica su come scrivere applicazioni minimizzando i rischi di incorrere in attacchi via Web.

A differenza del capitolo 2, dove c'era una panoramica di alto livello "orientata al problema", nel capitolo 7, Configuration, si entra nel dettaglio di ogni singola opzione di configurazione. Un capitolo che, più che da leggere, è da usare come utile reference in caso di dubbi e problemi. Il capitolo 8, Debugging and Troubleshooting si potrebbe definire un "minicapitolo" (11 pagine in tutto) per orientarsi quando Tomcat non si comporta come dovrebbe (problemi sulle richieste HTTP e sul ciclo di vita dell'applicazione stessa). Altro minuto capitolo (6 pagine) è il nono, Building Tomcat from Source; in esso si dettaglia come eseguire il build di Tomcat partendo dai sorgenti. L'autore sconsiglia vivamente questa strada ma, in fondo, non si tratta altro che di lanciare dei task Ant. Vero è che ci sono molti punti su cui fare attenzione (usare un JDK 1.5 e non 1.6, Ant versione 1.6.0 e successiva, ma non 1.6.4, ecc.).

Un aspetto cruciale per creare un sistema performante e fault tolerant è quello di mettere in linea più macchine con una configurazione in cluster. Il capitolo 10, Tomcat Clustering, spiega i dettagli per farlo con Tomcat, evidenziando anche le problematiche che è possibile risolvere usando una configurazione "a contorno" ottimale. Infine, nel capitolo 11, Final Words, non potevano mancare i riferimenti alle risorse fondamentali per risolvere alcuni problemi (mailing list, canali IRC e siti). In realtà i riferimenti sono piuttosto scarni e si limitano alle risorse "ufficiali". In conclusione ogni capitolo presenta l'essenziale (e spesso molto di più) per le problematiche presentate; davvero un bel libro, che permette di padroneggiare sia le situazioni standard che le situazioni eccezionali.
proUn must per i sistemisti, che devono ottimizzare un ambiente di produzione con uno o più Tomcat. Ne consiglio la lettura consigliata anche a chi sistemista non è, ma, per forza di cose, oltre a sviluppare applicazioni web in Java deve prevedere l'installazione di Tomcat presso un client.
controNon ci sono molte critiche da fare al libro, che risulta avere un taglio adatto a chi padroneggia le applicazioni Java, ma non ha grosse competenze sistemistiche. Unico appunto è la mancanza di un capitolo specifico sull'uso della tecnologia JMX per la gestione del container. Tale tecnologia è appena accennata (a pag. 52) e le informazioni sono del tutto insufficienti e carenti. Visto che JMX è oramai lo standard per la gestione delle risorse in Java, sarebbe stato opportuno ben altro approfondimento e analisi.
Precedente: L'interfaccia audio con le API (3/5)
Successiva: Usare Java e JavaFX Script insieme (1/2)
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.232 secondi.