Formations OMCAT. J2EE Open Source BY-NC-SA



Documents pareils
Groupe Eyrolles, 2003 ISBN : X

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

A. Architecture du serveur Tomcat 6

Application Web et J2EE

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

JOnAS Day 5.1. Outils de développements

Load Balancing avec Apache 2 14/07/10

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

Java pour le Web. Cours Java - F. Michel

Installation. Conception, mise en œuvre, hébergement, exploitation et

Utilisation de Jakarta Tomcat

Environnements de Développement

contact@nqicorp.com - Web :

Formation en Logiciels Libres. Fiche d inscription

BOUCHARD Nicolas. GENTILE Pierre

JOnAS 5. Serveur d application d

Introduction à la plateforme J2EE

contact@nqicorp.com - Web :

Mise en œuvre des serveurs d application

2.1 Liferay en un clin d'oeil Forces, faiblesses, opportunités et menaces Résumé de notre évaluation... 5

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

IBM WebSphere Application Server 5.0 : Administration avancée

1. Installation d'un serveur d'application JBoss:

Compte Rendu d intégration d application

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Hébergement de sites Web

MANUEL D INSTALLATION D UN PROXY

WebSSO, synchronisation et contrôle des accès via LDAP

ACCORD-CADRE DE TECHNIQUES DE L'INFORMATION ET DE LA COMMUNICATION. PROCEDURE ADAPTEE En application des articles 28 et 76 du Code des Marchés Publics

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Quick Start Installation de MDweb version 2.3

L3 informatique TP n o 2 : Les applications réseau

Application web de gestion de comptes en banques

PROCEDURE D'INSTALLATION OPENREPORTS

FileMaker Server 14. Guide de démarrage

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Guide de déploiement d'applications FormPublisher

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Manuel d'installation de GESLAB Client Lourd

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

La haute disponibilité de la CHAINE DE

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Armelin ASIMANE. Services RDS. de Windows Server 2012 R2. Remote Desktop Services : Installation et administration

Application de lecture de carte SESAM-Vitale Jeebop

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Documentation de la plate forme JOnAS

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Auto-évaluation Aperçu de l architecture Java EE

Titre: Version: Dernière modification: Auteur: Statut: Licence:

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

I. Instalation de l environnement JDK et JRE : II. Configuration outil Reporting : Pentaho... 4

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

SAUVEGARDE COBIAN. LE B.A. BA De La sauvegarde Avec «CobianBackup» ou comment faire des sauvegardes automatiques

Version Wraptor Laboratories. SpamWars Serveur Proxy-SMTP

STATISTICA Version 12 : Instructions d'installation

arcopole Studio Version 3.3

Module d anonymisation

Services RDS de Windows Server 2012 R2 Remote Desktop Services : Installation et administration

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Documentation de la plate forme JOnAS. Frederic Maistre

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Serveurs de noms Protocoles HTTP et FTP

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

IBM DB2 Alphablox. d administration GC

Dix bonnes raisons de choisir ExpressCluster en environnement virtualisé

JOnAS Day 5.1. Clustering

Catalogue Formations Jalios

StreamServe Persuasion SP4

Réf. : S2I-CIELL2-PI-1.0. Version : 1.0. Auteurs : S2I-TOULON

Tests de montée en charge & Haute disponibilité

et Groupe Eyrolles, 2006, ISBN :

Eléments d architecture technique Jalios JCMS 8.0

SAP BUSINESSOBJECTS BUSINESS INTELLIGENCE SUITE 4.x VERSION Bien démarrer avec la CCM

Offre LinShare. Présentation. Février Partage de fichiers sécurisé. LinShare 1.5

FileMaker Server 14. Aide FileMaker Server

Open Source Job Scheduler. Installation(s)

Messagerie asynchrone et Services Web

Hyper-V Virtualisation de serveurs avec Windows Server 2008 R2 - Préparation à l'examen MCTS

Sun Java System Access Manager Notes de version pour Microsoft Windows

Installation du Hub. Installation du Hub. 1. Description de l installation. by LegalBox. 2 types de serveur sont à installer :

S28 - La mise en œuvre de SSO (Single Sign On) avec EIM (Enterprise Identity Mapping)

Joomla! Création et administration d'un site web - Version numérique

Titre: Version: Dernière modification: Auteur: Statut: Licence:

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Système Principal (hôte) 2008 Enterprise x64

AssetCenter Web 4.3 Installation et utilisation

Notre Catalogue des Formations IT / 2015

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Etude de l ENT de l Université de Paris 5. Recommandations des experts suite à la journée du 29 octobre 2009

Symantec Backup Exec Remote Media Agent for Linux Servers

Transcription:

Formations T OMCAT J2EE Open Source

Licence Paternité - Pas d'utilisation Commerciale - Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : de reproduire, distribuer et communiquer cette création au public, de modifier cette création. Selon les conditions suivantes : Paternité. Vous devez citer le nom de l'auteur original. Pas d'utilisation Commerciale. Vous n'avez pas le droit d'utiliser cette création à des fins commerciales. Partage des Conditions Initiales à l'identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci. À chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les conditions contractuelles de mise à disposition de cette création. Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits. Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...) 2

Pourquoi Linagora met ce support sous licence Creative Commons Volonté de contribuer activement à l'essor du logiciel libre Promouvoir l'échange et favoriser l' émulation communautaire Assurer la pérennité de l'industrie logiciel libre et ne comptabiliser que la Valeur Ajoutée (le formateur) Partager le savoir et la connaissance à une vaste échelle Linagora croit au Libre! 3

Présentation du formateur Parcours du formateur 4

LINAGORA, premier EOS Créateur des concepts SS2L (Société de Services en Logiciels Libres) et TM2L (Tierce Maintenance Logiciel Libre), LINAGORA se définit désormais comme un Éditeur Orienté Service (EOS). LINAGORA propose une Open Source Software Assurance (OSSA) sur 150 logiciels libres : Prêts à l'industrialisation, sur une plate-forme unique : le 08000LINUX.com. Avec garantie de service contractuelle : en cas de bug, LINAGORA s engage au résultat sur des délais de résolution. Gestion de la feuille de route du logiciel pour le compte du client et s engage au reversement des développements. LINAGORA apporte également son expertise sur toute une gamme de services professionnels et de formations au travers de LINAGORA Formations à Paris et à Lyon. 5

LINAGORA Formations 7 années d'expérience, au service des technologies libres et Open Source 40 modules de formation répartis au travers de 7 filières Un cadre agréable, au coeur de Paris Deux salles de formation climatisées pouvant accueillir jusqu'à 10 stagiaires. 2006 : Plus de 150 stages effectués 2006 : Plus de 900 stagiaires Une satisfaction moyenne client de 18/20 Une note moyenne formateur de 16,27/20 6

Filières de formations Développement Web L inux embarqué Administration et sécurité J2EE OpenSource Bases de données Les basiques Bureautique OpenOffice.org 7

Organisation générale et planning 09h30 : début des cours 10h30 : pause du matin 10h45 : reprise des cours 12h00 : pause déjeuner Jour 1 : Architecture J2EE Applications à TOMCAT Installation / Configuration / Test de TOMCAT Jour 2 : 13h00 : reprise des cours 15h00 : pause de l'après-midi 15h15 : reprise des cours 17h30 : fin de journée Administration & Déploiement d'applications Pool de Connexion DB Analyse Logs Jour 3 : Sécurité, Supervision Développement sous TOMCAT 17h30 : libre discussion avec le formateur 8

Jour 1 : Matin Architecture J2EE rôle de Tomcat Serveur d'applications J2EE Modules J2EE (web,client,ejb,connecteurs) Http, sessions, web.xml Après-midi TPs : Installation / Configuration / Test de Tomcat Intégration Apache / Tomcat 9

Jour 2 : Matin Stratégies d'administration (server.xml, console web) Optimisations paramétrage Après-midi TPs : Pool de connexion / DataSource Déploiement et gestion des applications 10

Jour 3 : Matin Sécurité, Supervision Développement d'applications Après-midi TPs : Développement d'applications avec Tomcat Clustering 11

Vue d'ensemble Plateforme J2EE 1/2 12

Vue d'ensemble Plateforme J2EE 2/2 13

Modules J2EE Application d'entreprise J2EE (fichier.ear) application.xml Module web (.war) Module client (.jar) application-client.xml web.xml Ressources web Servlets, JSP, HTML,img... Interface graphique et intég. avec Serveur Module EJB (.jar) Module connecteur (.rar) ejb-jar.xml ra.xml Classes java d'ejb Classes java d'intégration 14

Vue d'ensemble Plateforme J2EE Spécifications J2EE (Sun Microsystem) Environnement d'exécution coté serveur avec nombreux services Persistence, Sécurité, Transaction, Messages... Stratégie de développement d'applications Roles Développeurs, Intégrateur, Déployeur, Administrateur Livrables WAR (Web ARchive), EAR (Enterprise Archive) JAR (Java Archive), Rar 15

Exemple : architecture Jonas 16

Jonas : les concurents JBOSS (JBOSS group --> Red Hat) Geronimo (fondation Apache) WebSphere (IBM) Weblogic (BEA) Oracle AS etc... 17

Java 1995 : Java 2 (J2SE) Applications graphique, Client/Serveurs, Applets Byte code, JVM, bibliothèques, jdk, jre 2005 : Java 5 Amélioration, facilité création composants EJB J2EE = extension de J2SE pour Entreprise J2ME = extension de J2SE pour Mobilité 18

Java et Tomcat Tomcat développé en java Robustesse, performance, Sécurité Evolution de Tomcat en fonction de Java Tomcat 3.x : compatibilité java < java2 Tomcat 5.5 : exploite fonctionalités java5 19

Tomcat & Fondation Apache Fondation Apache http://www.apache.org Solutions Open source Projet Jakarta : Open Source J2EE Serveur d'application,outils, frameworks, API... Jmeter, Log4j, JetSpeed, Struts, Ant, Axis... Jakarta Tomcat --> Apache Tomcat 20

Tomcat Historique 1999 : Fusion de 2 conteneurs Servlets/JSP Java Web Server (Sun) Apache Jserv (Fondation Apache) Implémentation de référence des spécifications de Sun : Servlets & JSP Versions : 3.x, 4.x, 5.x 21

Tomcat versions Tomcat 3.x (1999) Tomcat 4.x (2001) Fusion JWS/Apache Jserv. Servlet 3.1 /JSP 1.1 Nouveau moteur CATALINA. Servlet 3.2 /JSP 1.2 Tomcat 5.x (2005) Monitoring JMX/Clustering. Servlet 3.4 /JSP 2.0 22

Tomcat distributions Archive ZIP Facilement décompréssée sur majorité OS Format le + intéressant pour bcp d'admin Tomcat Config système non modifiée Désinstallation rapide. Archive TAR.GZ sous UNIX/Linux Installeur Windows 23

Pourquoi choisir Tomcat? Documentation importante Communauté large Cycle de développement permet des bug fixes très rapides. exp : problème dans le build-file de Tomcat 5 24

Pourquoi choisir Tomcat? Colle aux spécifications Sun Sortie rapide de versions majeures suivant les dernières versions des spécifications. Simple et efficace. Console d administration JMX très complète. Coût (nul). 25

Fonctionalités majeures Tomcat 4.1 / 5.0 Réplication HTTP (cluster) Load balancing via AJP Support de la servlet API 2.3 En fait fonctionnalités de la version 5.0 backportées en 4.1 Console JMX Gestion souple des logs 26

Fonctionalités majeures Tomcat 5.5 Amélioration sur : la performances, la stabilité et la facilité d'administration Support du Java 5 Inclusion d'un compilateur (Jasper) Amélioration du support JMX 27

La concurrence Jrun (Allaire) Orion Server (partie Servlet/JSP) Produits commerciaux Jetty (Open Source) 28

Quelle JVM choisir? Tomcat 5.0 JVM 1.4 et supérieure Tomcat 5.5 Adaptation de Tomcat 5.0 pour Java 1.5 Nécessite JVM 1.5 pour fonctionner correctement Archive de compatibilité pour faire fonctionner avec JVM 1.4 : télécharger apache-tomcat-x.y.z-compat.zip (x.y.z = num version Tomcat 5) 29

Tomcat en Production : Bonnes Pratiques Bien Choisir : Environnements Version Architecture Administration 30

Bonne Pratique : environnements Votre configuration doit correspondre au minimum exigé par les spécifications applicatives: Ôter les connecteurs inutiles Paramétrage clé issu d une phase de tests intensifs opérés sur la machine de pré-production. 31

Bonne Pratique : Version Version 5.5 en 'production ready' depuis la sortie de la 5.5.16 Choix réduit : Tomcat 5.0.28 Tomcat 5.5.17 Choix qui bien sûr doit s appuyer sur une campagne de tests réalisé sur une machine de préproduction (clône de la machine de production). 32

Bonne Pratique : Architecture Recommandation : utiliser serveur web frontal SECURITE : architecture entreprise (DMZ) PERFORMANCES : serveur web Tomcat + lent Frontal web : gestion HTML, images... Tomcat : gestion pages JSP/Servlets CONFIGURABILITE Frontal web : + de paramètres que Tomcat 33

Bonne Pratique : choix connecteur 4 typres de connecteurs Jserv Webapp Jk ( le + préconisé) Jk2 34

Connecteur Jserv Jserv mod_jserv (extension d'apache) / Tomcat 3 protocole AJP (Apache Jserv Protocol) Versions 1.1 (texte) et 1.2 (binaire) Inconvénients : dispo uniquement sous unix Incapable de différencier HTTP et HTTPS 35

Connecteur webapp webapp mod_webapp (extension Apache) / Tomcat 4.0 librairie : l'apr (Apache Portable Runtime) PB : ne fonctionne pas avec Tomcat 5 Supprimé du code Tomcat 5 36

Connecteur JK JK ( le + préconisé) mod_jk Adaptation Jserv / AJP 1.3 Multiples Systèmes d'exploitation Multiples frontaux web Apache, IIS (isapi_redirect), Lotus Domino HTTPS 37

Connecteur JK2 JK2 Evolution de JK pour autres protocole qu'ajp N'est plus maintenu depuis nov 2004 Peu d'interêt de la communauté 38

Intégration Apache / Tomcat : worker Notion de travailleur (worker) 1 worker = 1 instance de Tomcat 1 worker = 1 association Nom d'hôte ou adresse IP Numéro de port 39

Intégration Apache / Tomcat 2 types de fonctionnement Plug-in pour Apache (2 processus différents) Dans le processus de serveur web 4 types de travailleurs ajp13, Ib, status, jni 40

Intégration Apache / Tomcat ajp13 : Tomcat en plug-in lb : Répartition de charge entre serveur web et serveurs Tomcat. Gère mécanisme répartition status : Permet d'obtenir statistiques sur répartition de charge entre plusieurs serveurs (Ex: req/serveur) jni : Tomcat démarré dans processus serveur web 41

Intégration Apache / Tomcat Comment choisir le connecteur? Nombre de machines? Contraintes dûes à une mise en cluster? Load balancing et fail over? ==> Une et une seule solution adaptée à votre contexte. 42

Intégration Apache / Tomcat 43

Installation Tomcat : problèmes fréquents OutOfMemoryError: Solution: attribuer plus de mémoire à la machine virtuelle Java via modification du script de lancement de Tomcat (options -Xms et -Xmx du binaire Java de Sun) PB avec JSP mais les servlets fonctionnent? Solution: vérifier la présence de tools.jar permettant la compilation dynamique dans votre CLASSPATH. 44

Administration TOMCAT Architecture Tomcat 5 Composants et Arborescence Fichier server.xml Eléments de configuration Autres fichiers de configuration Configuration de resources Outil d'administration 45

Composants de Tomcat Server Service Engine Host port 8080 connector (HTTP) Context Servlets Servlet port 8443 connector (HTTPS) Context Servlet port 8009 JSP JSP Context Servlet JSP Context Servlet JSP connector (AJP) 46

Arborescence 1/4 47

Arborescence 2/4 bin : scripts et fichiers indispensables au démarrage et arrêt. Versions.sh et.bat common (classes ou librairies): accessible à TOMCAT + applications déployées y mettre pilotes accès DB par applis Tomcat 5 conf : fichiers de conf server, tomcat-users,web, catalina.policy catalina/localhost : conteneur Host de server.xml 48

Arborescence 3/4 logs : fichiers journaux server : éviter d'y toucher! lib : classes java du serveur Tomcat webapps : 2 applis de gestion shared (classes ou librairies) : manager + console d'administration web accessibles aux applications déployées temp : rép temporaire pour les applications 49

Arborescence 4/4 webapp : par défaut, répertoire d'install applications (Ex : tmcatdocs) work : utilisé par tomcat pour traitement des pages JSP et leur transformation en classes Java Chaque application possède son ss répertoire Arborescence : work/<engine>/<host>/<context> 50

Fichier central : server.xml CATALINA_HOME/conf Rq : pas de déclaration XML, ni DTD, ni Schéma Au démarrage, Tomcat vérifie syntaxe respecter syntaxe + majuscules/minuscules Si erreur syntaxe : Tomcat ne démarre pas (pb élément/attribut) Tomcat démare mais config non appliquée 51

Fichier central : server.xml Déf. connecteurs, valves, ports,politique gestion traces` Rq : bien documenté Récurrent : attributs classname et debug classname : classe implémentant fonctionnalité debug : niveaux 0 (par défaut) à 4 (nombreux msg) Rq : Exemples de config en commentaire Décommenter pour activer ex de config 52

Etude éléments de config : server.xml <Server> Eléments <Service>, <Connector>, <Engine>, <Host>, <Context> <Logger> <Realm> <Loader>, <Manager> <Store> <Valve> <Listener> 53

server.xml : élément <Server> Elément racine Représente instance Tomcat dans sa globalité 2 attributs : port (8005) et shutdown (SHUTDOWN) Lors du lancement de la commande d'arrêt de tomcat, la chaîne de caractère spécifiée par shutdown est envoyée sur le port spécifié par port CONSEIL Sécurité : modifier valeurs par défaut 54

server.xml : élément <Service> Regroupe éléments <connector> et <engine> 1 à N <service> dans un <server> Attribut obligatoire name (Nom du service) Utile pour fichiers journaux par défaut : Catalina CONSEIL : renommer le service en TOMCAT (laisser nom Catalina pour moteur <Engine>) Si plusieurs services, donner à chacun un nom différent 55

server.xml : élément <Connector> Transport des requêtes clients vers <Engine> 2 types : HTTP (port 8080) et AJP (port 8009) Choix protocol par attribut protocol Rq : même classe d'implémentation (classname. Non spécfifié) Attributs importants port : port d'écoute adress : IP serveur (pratique si plusieurs cartes réseaux ) secure : permet de définir HTTPS (par défaut : false) 56

server.xml : élément <Connector> Exemples attributs redirectport : spécifie port de redirection HTTPS sur connecteur HTTP, spécifie que requêtes disableuploadtimeout : appliquer un temps max pour l'envoi des fichiers (si true) ou non. Par défaut false. enablelookups : Demande au serveur Tomcat 5 de remplacer IP client par nom machine. Par défaut true. Rq : Très couteux PERF CONSEIL : en production, mettre false 57

server.xml : élément <Connector> Exemples attributs proxyname, proxyport : Lorsque Tomcat derriere Proxy maxthread (par défaut 200) : nb de thread max à créer acceptcount (par défaut 10) : requêtes en file d'attente connectiontimeout (par défaut 60000 ms) : temps d'attente max en file d'attente minsparethreads (par défaut 4) et maxsparethreads (par défaut 50) : gestion Pool de threads 58

server.xml : élément <Engine> Moteur de servlet Catalina de Tomcat Ecrit pour version 4.x et remis au niveau specs J2EE / Tomcat 5 Rôle : répartir les requêtes entrantes via connecteur, vers applications concernées Attibuts obligatoires : name et defaulthost name : nom du moteu (par défaut Catalina) defaulthost : spécifie lequel des <Host> recevra des requêtes si non correspondance des noms d'hôte 59

server.xml : élément <Engine> Attribut jvmroute Utile lorsqu'il y a ferme de serveurs Tomcat Mécanisme 'Affinité de session' : si un client est associé à un serveur Tomcat, toutes ses requêtes suivantes seront dirigées vers le même serveur, et sa session sera donc unique 60

server.xml : élément <Host> Configuration d'un hôte unique dans un serveur Hôte virtuel (depuis HTTP 1.1) Plusieurs sites web avec une adresse IP Hôte réel asssocié à 1 IP publique 1 à N <Host> dans <Engine> si lancement de l'appli avec IP (au lieu de www.monentreprise.com),alors utilisation par Tomcat du defaulthost de <Engine> 61

server.xml : élément <Host> Attribut obligatoire : name Attribut obligatoire : appbase ex : name='www.monentreprise.com' spécifie répertoire racine des applications de l'hôte Autres Attributs : config Déploiement autodeploy, deployonstratup, unpackwars, deployxml, workdir 62

server.xml : élément <Host> autodeploy : déploiement automatique, sans redémarrage du Serveur des applis déposées ds appbase? Par défaut valeur = true, utile en phase de dev PB PERF : Couteux en ressources (scrutation) PB SECU. si une personne arrive à uploader un war, celui-ci automatiquement installé CONSEIL : en production, mettre false 63

server.xml : élément <Host> unpackwars (Par défaut=true): Dépaquetage WAR deployonstartup (Par défaut=true) : déploiement au démarrage de ttes les applications deployxml : déploiement des applications via fichiers de contexte XML 64

server.xml : élément <Context> 1 <Context> = 1 application web déployée ds Tomcat 2 types de Contextes : Créés (en mémoire) par Tomcat : pour les applis présentes ds répertoire de publication (webapps). Déclarés explicitement par <Context> soit dans server.xml, soit dans context.xml (recommandé) Attribut docbase (chemin répertoire ou WAR) 65

server.xml : élément <Context> path : chemin de contexte (Ex : /tomcat-docs) reloadable : active surveillance des répertoires WEBINF/lib et WEB-INF/classes Chaque modif apportée sera prise en compte Utile en Phase de dev mais pas en PROD Par défaut=false. Utiliser l'outil manager. usenaming : activer Nommage. Par défaut=true 66

server.xml : élément <Context> swallowoutput : rediriger les flux des objets System.out et System.err dans fichier journal. Par défaut=false crosscontext (Par Défaut=false): Permet l'obtention de référence interapplication Ds code : getservletcontext().getcontext( <cont> ); privileged : utilisation des servlets de Catalina? cookies (Défaut=true) : Gestion Sessions par cookies? 67

server.xml : élément <Context> workdir : spécifie répertoire de travail de ce contexte. Surcharge le workdir du Host Contexte par Défaut : Eléments par Défaut contextes créés par Tomcat Différente config Tomcat 5 et Tomcat 5.5 Tomcat 5 : Elément <DefaultContext> de <Host> Tomcat 5.5 : fichier conf/context.xml override : Surcharge élément contexte par défaut? 68

server.xml : élément <Logger> Configuration des Fichiers journaux Tomcat 4.x - 5.0 Obsolète à partir de Tomcat 5.0.30 N'existe plus à partir de Tomcat 5.5, qui utilise bibliothèque commons-logging du projet Jakarta 1 Logger par <Engine>, <Host>, <Context> Héritage et surcharge 1 attrubut obligatoire : classname 69

server.xml : élément <Logger> 3 classes d'implémentation possibles Fichier : org.apache.catalina.logger.filelogger Nom fichier : <prefix>aaaa-mm-jj<suffix> Sortie et Erreur standard org.apache.catalina.logger.systemoutlogger org.apache.catalina.logger.systemerrlogger vers /logs/catalina.out (UNIX) et console (Windows) 70

server.xml : élément <Logger> verbosity : 0 (fatal) à 4 (debug) timestamp (défaut=true): entrées journal commentées? AAAA-MM-JJ hh:mm:ss Format entrée journal [date] <élément>: <message> <élément> : classe d'implémentation de l'élément 71

server.xml : élément <Realm> Mécanisme Authentification J2EE : notion de Rôles Définir ressources protégées : un utilisateur sera, suivant son rôle, authorisé ou non à accéder à une ressource 1 <Realm> par <Engine>, <Host>, <Context> 72

server.xml : élément <Realm> attribut classname : 4 possibilités org.apache.catalina.realm.memoryrealm (par défaut) Chargement en mémoire de conf/tomcatusers.xml org.apache.catalina.realm.jdbcrealm (JDBC) org.apache.catalina.realm.datasourcerealm (Pool) org.apache.catalina.realm.jndirealm (LDAP) 73

server.xml : élément <Loader> Configuration du chargeur de classes Java (ClassLoader) Elément facultatif de <Context> Ordre de chargement Spécifié par servlet J2EE : 1) Classes dans WEB-INF/classes 2) Classes des jars, dans WEB-INF/lib 3) Classes rendues accessibles par moteur de servlet Attributs delegate (Chrgt inv), reloadable et CheckInterval 74

server.xml : élément <Manager> Gestionnaire de Session d'une application 1 <Manager> par <Context> 2 valeurs possibles pour classname : org.apache.catalina.session.standardmanager (défaut) Sessions uniquement en mémoire org.apache.catalina.session.persistentmanager Sessions en mémoire + support (fichier ou DB) 75

server.xml : élément <Manager> Attributs communs aux 2 classes maxactivesessions : nb max de sessions actives gérées. Par défaut=-1 (infinie) distribuable (par défaut=false) : attibuts session peuvent'ils être stockés physiquement? Les classes java représentant attribut de session doivent implémenter java.io.serializable 76

server.xml : élément <Manager> Attribut spécifique StandardManager : pathname chemin absolu ou relatif (au répertoire de travail du contexte courant) vers fichier sauvegarde sessions pendant redémarrage. Défaut=SESSIONS.ser Attribut spécifique PersistantManager : saveonrestart (défaut=true) Sessions sauvegardées ds l'entrepot persistant (fichier ou DB) lorsque Tomcat est arrété e redémarré. 77

server.xml : élément <Store> Configuration des Sessions persitantes Enfant de <Manager> si choix PersistantManager 1 attribut : classname org.apache.catalina.session.filestore entrepot persistant = fichier partagé entre les instances de Tomcat org.apache.catalina.session.jdbcstore : entrepot DB 78

server.xml : élément <Valve> 1<Valve> = 1 classe Java Tomcat inséré ds processus de traitement des requêtes par le conteneur Enfant de <Engine>, <Host> ou <Context> attribut classname spécifie le type de filtre : Plusieurs Filtres proposés par Tomcat Possibilité de créer son propre filtre 79

server.xml : élément <Valve> Valves livrées avec Tomcat : Génération fichier journal des accès serveur org.apache.catalina.valves.accesslogvalve org.apache.catalina.valves.jdbcaccesslogvalve Restriction d'accès en fonction adresse client org.apache.catalina.valves.remoteaddrvalve org.apache.catalina.valves.remotehostvalve 80

server.xml : élément <Valve> Single Sign On : org.apache.catalina.authenticator.singlesignon Rq : Tomcat 5.5 ajoute Nvlle valve log Acces serveur org.apache.catalina.valves.fastcommonaccesslogval e Remplace AccessLogValve Meilleures performances 81

server.xml : élément <Listener> Infos fonctiont interne Tomcat (Supervision) 1 écouteur = une classe Java (classname) Tomcat 5 : 2 écouteurs par défaut org.apache.catalina.mbeans.serverlyfecyclelistener Supervision globale du Serveur org.apache.catalina.mbeans.serverlyfecyclelistener Supervision ressources JNDI Serveur 82

Autres fichiers de configuration : web.xml CATALINA_HOME/conf/web.xml : Définit les paramètres de toutes les applications web installées dans Tomcat, sauf si ces applis fournissent une config différente dans leur fichier web.xml ATTENTION : impact sur ttes les applis. Déclaration de 3 servlets Spécifiques DefaultServlet, InvokeServlet, JspServlet 83

Autres fichiers de configuration : web.xml DefaultServlet : servir ressources statiques (HTML, imgs...) param listing : autorisation affichage contenu d'un répertoire si aucune page par défaut configurée InvokerServlet : lancement éxécution d'une servlet via URL http://<serveur>/<application>/servlet/<nom de classe de servlet> Désactivé par Défaut (pb SECU) Utile pour tests ou développemeny 84

Autres fichiers de configuration : web.xml JspServlet : transformation page Jsp en servlet + éxécution Bcp de paramètre de config Associations Servlets / motifs (ex :.jsp,.jspx...) Valeur par défaut pour expiration Session HTTP : 30 Types de fichiers (audio, zip...) page d'accueil par défaut par ordre (html, htm, jsp...) Si pas trouvé, voir param listings puis contenu ou erreur 85

Autres fichiers config : tomcat-users.xml Authentification par défaut de Tomcat : MemoryRealm Rq : l'application manager de Tomcat n'est accessible que par utilisateur avec rôle manager Actions après installation Tomcat : Ajouter rôle manager Ajouter user=admin, pwd=secret, roles=manager,admin En prod : remplacer par Authentification LDAP 86

Autres fichiers config : catalina.policy rôle JVM : assurer sécuriter applications + OS Gestionnaire de Sécurité (SecurityManager) Par défaut, pas de gestionnaire de Sécurité dans Tomcat 5 Les applis peuvent faire ce qu'elles veulent : lire et écrire des fichiers, lancer programmes, ouvrir flux réseau, arrêter JVM (System.exit(0))!!!!!!! Démarrer en mode sécurisé : startup.sh + option security Tout ce qui n'est pas explicitement autorisé est interdit 87

Gestion des Ressources Tomcat fournit support complet de JNDI Enregistrement des ressources dans server.xml Interface de recherche de ces ressources pour applis Liaison JNDI réalisée par l'administrateur Eléments <Resource>,<ResourceParams>,<ResourceLink> Enfants de <GlobalNamingResources>, <Context> OU (suivant VISIBILITE) enfants contexte par Défaut 88

server.xml : élément <Logger> verbosity : 0 (fatal) à 4 (debug) timestamp (défaut=true): entrées journal commentées? AAAA-MM-JJ hh:mm:ss Format entrée journal [date] <élément>: <message> <élément> : classe d'implémentation de l'élément 89

Gestion des Ressources : Visibilité 3 niveaux de portée Une seule et unique applcation Alors Elements déclarés ds <Context> L'ensemble des applications Alors Eléments déclarés ds contexte par défaut Tout le serveur Tomcat Alors Eléments ds <GlobalNamingResources> Rq : Ajouter <ResourceLink> pour expliciter ds appli 90

Gestion des Ressources : Visibilité Ex : définition d'une ressource globale, et d'un lien pour une appli. L'appli utilisera le nom local --> maressourcelocale <Server...> <GlobalNamingResources> <!-- Déclararion d'une ressource globale --> <Resource name='maressource'> </GlobalNamingResources>../.. <Host> <Context...> <!-- Déclararion d'un lien sur la ressource globale --> <ResourceLink name='maressourcelocale' global='maressource'> </Context...> </Host> </Server> 91

Gestion des Ressources Méthode préconisée 1 élément centralise les ressources L'application n'impose pas un nom JNDI pour la ressource Attibuts obligatoires : name, type (Type Java de la ressource) Attribut facultatifs : auth (mode d'authentification) Si DB, fournir login/pwd auth=container, ou auth=application 92

Ressources : Syntaxe Tomcat 5 et 5.5 Tomcat 5 : utilisation des éléments <Resource> (avec attribut name) et <ResourceParams> (fabrique et chemin) Tomcat 5.5 : Utilisation de <Resource> factory et path en attribut 93

TP1 TOMCAT : Installation A partir de la distribution binaire Tomcat 5.5.20 Installez un Tomcat opérationnel en local. apache-tomcat-5.5.20.tar.tar Vérifier : l ouverture des ports + logs examples de Servlets/JSP Console JMX (apache-tomcat-5.5.20-admin.tar.tar) 94

Installation TOMCAT Récupération de l'archive apache-tomcat-5.5.20.tar.tar Décompression Installation Jdk/Jre 1.5 Positionnement Variables d'environnement JAVA_HOME,TOMCAT_HOME, PATH Lancement du script (/bin/startup.sh) 95

Test Installation TOMCAT Examen des ports : netstat -an grep 8080 Exemples livrés avec Tomcat http://localhost:8080/examples Examen des logs disponibles dans logs/catalina.out Lancement de la console JMX ( à installer!) http://localhost:8080/admin 96

TP2 TOMCAT: Apache/mod_jk Installer serveur web Apache 2.2.4 via les sources httpd-2.2.4.tar.gz Installer connecteur Jk à partir des sources tomcat-connectors-1.2.20-src.tar.gz Configurer Tomcat avec connecteur Jk pour que Serveur web Apache gère pages statiques Tomcat gère pages dynamique Testez : http://localhost/tomcat-docs 97

Installation Apache 2.2 tar zxvf httpd-2.2.4.tar.gz./configure --prefix=/usr/local/apache2 --enable-mods-shared=all make make install httpd.conf : 'ServerName www.monserveur.com'./apachectl start + http://localhost 98

Installation mod_jk./configure --with-apxs=/usr/local/apache2/bin/apxs make + make install Création de modules/mod_jk.so httpd.conf : 'Lodmodule jk_module' JkWorkersFile, JkLogFile, JkLogLevel JkMount, JkUnMount, JkAutoAlias conf/workers.properties : worker1, type, list, port, host 99

ANNEXE Protocole HTTP Versions Méthodes En-tête Requêtes En-tête Réponses Sessions 100

Versions HTTP HTTP 0.9 : Transfert de données simple HTTP 1.0 : Transfert de données variées HTTP 1.1 : Nombreuses améliorations Connexion permanente Cryptage de connexions (SSL, TLS) Identification des utilisateurs sur un site Hébergement multiples sites sur une seule IP 101

Méthodes HTTP GET : Demande de ressource au serveur POST : envoi de données vers programme serveur HEAD : Demande ressource non renvoyée (vérif d'existence, test). PUT : Envoi de ressource gers serveur OPTIONS : Permet de connaître ttes les options de communication pour obtenir ressource particulière DELETE : suppression d'une ressource serveur 102

En-tête Requête HTTP Accept : Type de contenu accepté par le navigateur Ex : text/html Accept-Encoding, Accept-Language Content-Encoding, Content-Type, ContentLenght Cookie : Envoi de cookie vers serveur Referrer : URL lien à partir duquel requête effectuée User-Agent : infos client (version navigateur, 103

En-tête Réponse HTTP Content-Encoding, Content-Type, ContentLenght Date : Date de début envoi de données Expires : Date limite de validité des données Location : Redirection vers nouvelle URL Server : Caractéristiques du serveur Set-Cookie : Envoie cookie 104

Codes états HTTP 1xx : infos communiquées au client concernant état requête. Rarement utilisé 2xx : Requête reçue, comprise et acceptée 3xx : Ressource OK mais emplacement différent 4xx : Erreur de la part du client Ex : erreur 404 : ressource non existante 5xx : Erreur Serveur 105

TP 3 TOMCAT : Valves Mettez en oeuvre logs d'accès à Tomcat date, ip, protocole, état HTTP, requête fichier tomcat_access.yyyy_mm_dd.txt mettez en oeuvre filtre permettant d'enregistrer (en vue investigation/support) toutes les informations transmises par le client au serveur. Restreignez accès Tomcat à adresse IP et/ou hote Mettez en oeuvre le Single Sign On 106

TP 3 TOMCAT : Déploiement Créer l'archive hello.war via script ANT Déployer l'archive dans Tomcat ( cible 'deploy') Lancer l'application Observer logs, work remarques? Mettez en oeuvre logs d'acces 107

Clustering : stratégies Mélanger 2 types de répartitions Horizontale : plusieurs Tomcats sur 1 machine Avantage : isolation applis critiques Inconvénient : risque panne matérielle Verticale : plusrs Tomcats / plusrs machines Avantage : Tolérance de panne + perf Inconvénient : utilisation réseau. pb perf. 108

Clustering 109

Clustering : configuration Installer plusieurs instances de Tomcat sur 1 machine Contrainte 1 : Chaque instance possède ports TCP/IP distintcs (Sinon conflit) Contrainte 2 : 1 seule variable CATALINA_HOME Solution : CATALINA_BASE 110

Clustering : configuration Répertoires communs aux instances : bin, common, shared, server Répertoires spécifiques à chaque instance : conf, logs, work, temp Créer scripts démarrage et arret spécifiques Positionner CATALINA_BASE + startup/shutdown scripts dans CATALINA_HOME/bin 111

Clustering : Travailleur lb Ajouter travailleur lb (Load Balancer) apellé balancer Assure répartition de charge attribut : balanced_workers : liste des travailleurs participants à la répartition de charge ex : balanced_workers = tomcat1, tomcat2 Ne communique pas avec Tomcat directement 112

Clustering : Travailleur lb Config httpd.conf Rediriger requêtes vers le balancer : Config server.xml de chaque instance (ex : tomcat1) Affinité de session JkMount /tomcat-docs/* balancer <Engine...jvmroute= 'tomcat1'> sticky_session : désactiver Affinité sesion de lb 113

gestion sessions : 3 solutions Pour toutes solutions : rendre appli clusterisable web.xml : <ditribuable/> Solution 1 : Réplication mémoire à mémoire Détection des instances (multicast IP) Transfer de données aux instances Solution 2 : Sessions persistance sur fichier Solution 3 : Sessions persistantes en DB 114

Réplication sessions mémoire Nouveauté Tomcat 5 / Config commentée Elément <cluster> sous <Host> (server.xml ) Ttes les applis de Host auront sessions répliquée <cluster> : 4 éléments enfants <Membership>,<Receiver>,<Sender>,<Valve> <cluster> : Attributs classname, managerclassname, expiresessiononshutdown, usedirtyflag, printtoscreen 115

Réplication sessions mémoire Avantages Simplicité de mise en oeuvre Ne requiert pas d'outil supllémentaire Inconvénients communications réseaux lourdes si défaillance ttes instances, données perdues. Consommation mémoire (fct nb sessions) 116

Sessions persistantes Ecrire sessions ds fichier 1 fichier par session fichier partagé par ttes les instances du serveur <Manager> + <store> File Database SESSIONS.ser 117

Et si vous souhaitez continuer votre apprentissage... Détachez ce coupon et adressez-le au pôle Formations : z de e i c éfi Bén 100 ion uct chaine d é r de re pro n! vot atio sur form Yves MIEZAN EZO e-mail : formation@linagora.com Tél : 01 58 18 68 28 Fax : 01 58 18 68 29 Nom :... Prénom :... Société :... Mail :... Tél :... Stage :...Date :..........Réduction : - 100...Tarif final :... Tarif catalogue : Code Opération «LNGFetdevientfortenlibre» 118

Formations Merci de votre attention J2EE Open Source LINAGORA Formations formations@linagora.com