WebSphere Application Server Déploiement et Administration M.HSSAINI ABDELILAH 20/12/2014 1 Avant de démarrer… Pré-requis ◦ Programmation objet avec Java ◦ Développement Web/Client lourd avec Java ◦ Connaissance des fondements du WEB (HTML, Servlet, JSP, JavaBeans, XML, WAR...) ; ◦ Connaissance de base sur les EJB ◦ Connaissance de Base des Web Services(SOAP,WSDL,UDDI) ◦ Notion de FrameWork 20/12/2014 2 Objectifs de la formation ◦ Rappeler le standard Java EE ; ◦ Présenter la gamme de produit Websphere ainsi les différentes versions de WAS ◦ Présenter l’architecture technique et applicative de WAS ; ◦ Installer IBM WebSphere Application Server ; ◦ Connaitre les fonctionnalités de base du menu de la console d’administration de WAS Fédérer un nœud à une cellule ◦ Installation de HTTP server; ◦ Déployer une application Web dans WAS ; ◦ Utiliser les bibliothèques partagées ; ◦ Configurer et paramétrer le pool de connexion ; ◦ Lire et diagnostiquer les fichiers de log au niveau de WAS; 20/12/2014 3 Plan ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Le standard Java EE Produits de la famille Websphere L’architecture applicative et technique de WAS Concepts WAS; TP1 : Installation de WAS TP2 : Fédération d'une cellule TP3 : Installation de HTTP Server et le Plugin TP4 : Déploiement d’une application WAR, Bibliothèques partagé & Pool de connexion 20/12/2014 4 Le standard Java EE Java EE (Java Enterprise Edition) est une norme proposée par la société Sun, portée par un consortium de sociétés internationales, visant à définir un standard de développement d'applications d'entreprises multi-niveaux et multi couches, basées sur des composants. On parle généralement de «plate-forme J2EE» pour désigner l'ensemble constitué des services (API) offerts et de l'infrastructure d'exécution. J2EE comprend notamment : Les spécifications du serveur d'application ; Des services, au travers d'API, c'est-à-dire des extensions Java indépendantes permettant d'offrir en standard un certain nombre de fonctionnalités. ; Oracle fournit une implémentation minimale de ces APIs appelée J2EE SDK (J2EE Software Development Kit). 20/12/2014 5 Le standard Java EE Les API de Java EE peuvent se répartir en deux grandes catégories : Les composants : Les composants web ; Servlets, JSP ; Les composants métier ; EJB ; Les services : Les services d'infrastructures ; JDBC, JNDI, JTA/JTS, JCA,JMX. Les services de communication ; JAAS, Java Mail, JMS, RMI-IIOP 20/12/2014 6 Les APIS J2EE 1/2 20/12/2014 7 Les APIS J2EE 2/2 20/12/2014 8 Le standard Java EE • J2EE permet une grande flexibilité dans le choix de l'architecture de l'application en combinant les différents composants. • Ce choix dépend des besoins auxquels doit répondre l'application mais aussi des compétences dans les différentes API de J2EE. • L'architecture d'une application se découpe idéalement en au moins trois tiers : – Couche présentation (PL): c'est la partie qui permet le dialogue avec l'utilisateur. Elle peut être composée d'une application standalone, d'une application web ou d'applets. – Couche métier (BLL): c'est la partie qui encapsule les traitements – Couche accès aux données (DAL): qui s’occupe de la persistance de données. • Pourquoi le choix de séparation des couches : DIVISER POUR REGNER? CHOIX ORGANISATIONNEL ? … 20/12/2014 9 Le standard Java EE 20/12/2014 10 Le standard Java EE : Déclinaison MVC-2 et 3Tiers MVC : Modèle d'architecture qui cherche à séparer nettement les couches de présentation, métier et d'accès aux données : • Modèle – Encapsule le cœur fonctionnel de l'application, le domaine logique • Vue – les données sont envoyées, par le modèle, à la vue qui les présente à l’utilisateur. • Contrôleur – reçoit les données et les transmets au modèle ou à la vue. 20/12/2014 11 Le standard Java EE L’environnement d’exécution des applications J2EE • J2EE propose des spécifications pour une infrastructure dans laquelle s'exécutent les composants. – Ces spécifications décrivent les rôles de chaque élément et précisent un ensemble d'interfaces pour permettre à chacun de ces éléments de communiquer. • Ceci permet de séparer les applications de l'environnement dans lequel il s'exécute. – Les spécifications précisent à l'aide des API un certain nombre de fonctionnalités que doivent implémenter l'environnement d'exécution. – Ces fonctionnalités sont de bas niveau ce qui permet aux développeurs de se concentrer sur la logique métier. • Pour exécuter ces composants, de natures différentes, J2EE défini des conteneurs pour chacun de ces composants. – Les conteneurs permettent aux applications d'accéder aux ressources et aux services en utilisant les API. • Les clients n'accèdent pas directement aux composants mais sollicite le conteneur pour les utiliser. (Révolution d’architecture) 20/12/2014 12 Le standard Java EE Les applications déployées avec JEE – adhèrent aux standards Java EE – suivent les spécifications Java EE – sont écrites en Java (~pas toujours vrai JNI) – sont déplorables sur tous les serveurs implémentant JEE • Niveau technologie Java EE: Java EE 7 et JDK 8. 20/12/2014 13 Historique de J2EE/Java EE 20/12/2014 14 Java EE 7 les spécifications de Java EE 7 sont définies dans la JSR 342. Java EE 7 a plusieurs objectifs : ◦ poursuivre l'amélioration de la productivité et la simplification de l'utilisation de la plate-forme ◦ le support de HTML 5 (WebSocket, Json, HTML5 forms, ...) ◦ l'ajout de nouvelles fonctionnalités : Batch API (modèle de programmation pour les applications batch) et Concurrency Utilities API (exécution de traitements asynchrones sans avoir à utiliser JMS) Les spécifications de Java EE 7 sont officiellement diffusées en juin 2013. Java EE 7 s'appuie sur Java SE 7. Cette spécification contient 14 nouvelles JSR et 9 versions de maintenance (Maintenance Release) de JSR. 20/12/2014 15 Java EE 7 Java EE 7 inclut plusieurs nouvelles API : Java API for JSON Processing 1.0 (JSR 353) Java API for WebSocket 1.0 (JSR 356) Batch Applications for the Java Platform 1.0 (JSR 352) Concurrency utilities for Java EE 1.0 (JSR 236) 20/12/2014 17 Quelques Spécification s Java EE 6 20/12/2014 18 Certifié Java EE 7 20/12/2014 19 Certifié Java EE 6 Oracle GlassFish Enterprise Server v3, basé sur le serveur open-source GlassFish Oracle WebLogic Server 12c de Oracle Corporation JBoss AS 7.x (profil web uniquement pour la version 7.0.x), JBoss AS 6 (profil web uniquement) Apache Geronimo 3.0 IBM WebSphere Application Server 8.0 IBM WebSphere Application Server Community Edition 3.0, basé sur Apache Geronimo Fujitsu Interstage Application Server Caucho Resin 4.0.17 (profil web uniquement) SAP NetWeaver Application Server ; 20/12/2014 20 Composition d’une Application J2EE : 20/12/2014 21 Architecture Java EE # .Net 20/12/2014 22 Architecture Java EE# .Net Deux architectures concurrentes : J2EE et .NET Deux types de serveur d´applications: Norme J2EE (Sun) : un langage (Java) pour une multitude d’offres ; L´architecture .NET de (Microsoft) : une multitude de langages pour une seule offre. 20/12/2014 23 Ce qu’il faut retenir Norme J2EE : Ensemble de Technologies JAVA (~15) qui évoluent. Développement d’applications J2EE distribuées : ◦ 4 containers : Applet, client lourd, Web; EJB. ◦ Composition d’une Application d’entreprise (EAR) 20/12/2014 24 C’est quoi un serveur d’application Un serveur d’application est un environnement informatique qui offre l’infrastructure applicative et technique pour exécuter des applications métiers, il permet notamment : ◦ Séparer les applications du : matériel, réseau, système d’exploitation… ◦ Offrir un environnement communs d’exécution des applications. ◦ Offrir des services (ou des APIs) communs. ◦ Offre un environnement sécurisé et fiable, évolutif. ◦ Plateforme pour le déploiement des services web 20/12/2014 25 Exemple : Architecture Web 20/12/2014 26 20/12/2014 27 Mise au point Ce qu’il faut retenir : ◦ Normes Java EE : de nombreuses technologies (API) java qui évoluent. ◦ Serveur d’application Java EE : un conteneur web, un conteneur EJB et une collection de services mis à disposition des applications 20/12/2014 28 Plan ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Le standard Java EE Produits de la famille Websphere L’architecture applicative et technique de WAS Concepts WAS; TP1 : Installation de WAS TP2 : Fédération d'une cellule TP3 : Installation de HTTP Server et le Plugin TP4 : Déploiement d’une application WAR, Bibliothèques partagé & Pool de connexion 20/12/2014 29 Produit de la famille WebSphere WebSphere est une plate-forme applicative générique couvrant un ensemble de solutions développées par IBM qui permettent de développer, de déployer et d'utiliser des applications d'entreprise, même dans des cas complexes faisant appel à des applications et des matériels hétérogènes. 20/12/2014 30 Produit de la famille WebSphere Cette plate-forme applicative couvre les éléments suivants : Une gamme de serveurs d'application basés sur J2EE et EJB. ◦ Le principal élément de cette gamme est WAS : WebSphere Application Server. Une gamme d'outils de développement basés principalement sur le socle de développement Eclipse et le langage java. ◦ Le principal élément de cette gamme est WSAD : WebSphere Studio Application Developer, remplacé depuis 2005 par RAD (Rational Application Developer). WebSphere Portal : une gamme d'outils permettant de développer et de maintenir un portail d'entreprise Une gamme d'outils plus spécifiques permettant de faciliter le déploiement, notamment dans le cas de plates-formes très complexes, ainsi que d'assurer le suivi et le contrôle des performances (WebSphere Studio Application Monitor), de la sécurité, etc. On retrouve également parmi ceux-ci des serveurs d'intégration, des connecteurs applicatifs et autres outils middleware selon les cas de figure, et le degré d'hétérogénéité des plates-formes logicielles et matérielles à intégrer 20/12/2014 31 Produit de la famille WebSphere WebSphere Application V6.1 • • • C’est un serveur d’application de la famille des produits WebSphere, commercialisé par l’éditeur IBM. WAS utilise des standards ouverts tels que Java EE, XML, et les Web Services ; Il fonctionne avec de nombreux serveurs Web (notion de plug-ins) : – – – – Apache HTTP Server ; Netscape Enterprise Server ; Microsoft Internet Information Services (IIS) ; IBM HTTP Server pour AIX/Linux/Microsoft Windows/Solaris. 20/12/2014 34 WebSphere Application Server version 6 Constitue la fondation des produits de la famille WebSphere Fournit des options de configuration et de déploiement flexibles pour couvrir les besoins des environnements autonomes, distribués et hautement dynamiques Disponible dans plusieurs éditions ◦ WebSphere Application Server v6 – Express ◦ WebSphere Application Server v6 (Base) ◦ WebSphere Application Server v6 Network Deployment Toutes les éditions proposent le même noyau de fonctionnalités 20/12/2014 35 WebSphere v6 - éditions 20/12/2014 36 WebSphere Application Server – Express/Base Un seul serveur ◦ sans répartition de charge, ni administration multi-serveurs J2EE 1.4 ◦ Services Web ◦ Programming Model Extensions (PME) ◦ Facilité d'emploi Déployer rapidement Installation rapide les nouvelles applications ◦ Un seul CD par plate-forme ◦ Intégration avec les outils IBM Rational Deux types de prix/licences ◦ Par CPU ◦ Par utilisateurs 20/12/2014 37 WebSphere Application Server – Network Deployment Pour les environnements multi serveurs, multiple nœuds ◦ Scalabilité, disponibilité et performance ◦ Clusters et reprise sur incident ◦ Plug-in du serveur Web propose gestion de charge pondérée Administration distribuée ◦ Référentiel de configuration XML ◦ Console d'administration Web Edge Components ◦ Répartiteur de charge (Load balancer) Proxy cache ◦ Reverse proxy, content-based routing ◦ Cache de contenu dynamique: Fonctions de Services Web ◦ Annuaire UDDI - à usage privé ◦ Passerelle services Web 20/12/2014 38 Différences – Editions Express ,Base et ND 20/12/2014 40 Points importants Toutes les distributions v6 ont le même noyau de fonctionnalités "WebSphere Application Server - Express v6" peut migrer vers un noeud "WebSphere Application Server v6 » ◦ Possible sans installation supplémentaire ◦ Seule une mise à jour de la licence est nécessaire Des noeuds "WebSphere Application ServerExpress v6" et "WebSphere Application Server v6" peuvent être fédérés dans une cellule "WebSphere Application Server Network Deployment v6" ◦ Possible sans installation supplémentaire ◦ Seule une mise à jour de la licence est nécessaire 20/12/2014 41 Evolution du WebSphere Application Server V4.0.X (2001) ◦ Supporte J2EE 1.2 ◦ JDK 1.2 V5.0 (2003) ◦ Supporte J2EE 1.2 et 1.3 ◦ JDK 1.3 V5.1 (2004) ◦ Supporte J2EE 1.2 et 1.3 ◦ JDK 1.4 ◦ Supporte JSF V6.0.X (2004) ◦ Supporte J2EE 1.2, 1.3, 1.4 ◦ JDK 1.4 V6.1 (2006) ◦ Supporte J2EE 1.2, 1.3, 1.4 ◦ JDK 5.0 V7.0 (2008) ◦ Supporte Java EE 5 ◦ JDK 6.0 V8.0 (2010) en Béta ◦ Supporte Java EE 6 ◦ JDK 6.0 20/12/2014 42 Packaging WebSphere v6 20/12/2014 43 IBM HTTP Server Basé sur Apache 2.0.47 Ajouts d'IBM ◦ Le support de SSL permet des sessions sécurisées ◦ Un cache avancé accélère le service d’éléments statiques ◦ Le support LDAP permet l'utilisation d'un annuaire commun ◦ pour l'authentification des utilisateurs et les autorisations ◦ Le support SNMP permet de surveiller le serveur HTTP depuis une console de gestion sur le réseau 20/12/2014 44 Fonctionnalités des serveurs WEB : 20/12/2014 45 Architecture RunTime de WebSphere 20/12/2014 46 Architecture d’administration de WebSphere 20/12/2014 47 Packaging de la Version 6 WAS ND 20/12/2014 48 Architecture Network Deployment 20/12/2014 49 WAS : les concepts • • • • • • • • • • Profile Instance du serveur Nœud Cellule Network Deployment Manager Agent de Nœud Flux d’administration Network Deployment Synchronisation des fichiers Cluster WebSphere : Haute disponibilité • Service de réplication de données • Service de nommage • • Conteneur Web Conteneur EJB 20/12/2014 50 Profile Les Environnements d'exécution sont construits en créant des profils. Chaque profil contient des fichiers spécifiques à cet Environnement exécution comme les journaux et les fichiers de configuration… Chaque profil est stocké dans un chemin de répertoire unique choisi au moment de la création du profil. Tous les profils partage les binaires du produit. 20/12/2014 51 Aperçu des profils WebSphere Les profils sont un ensemble de fichiers qui représentent une configuration de WebSphere Application Server Les fichiers de WebSphere Application Server sont divisés en 2 catégories: ◦ Les fichiers du produit : Un ensemble de fichiers statiques en lecture seule ou binaires partagés par toutes les instances de WebSphere Application Server ◦ Les fichiers de configuration (profils) Un ensemble de fichiers de données paramétrables par les utilisateurs Cet ensemble comporte: la configuration de WebSphere , les applications installées, les adaptateurs de ressources, les fichiers de propriétés, les fichiers de log… 20/12/2014 52 Avantages des profils WebSphere 20/12/2014 53 Administration des profils Les profils doivent être administrés par l’un des outils fournis L’assistant de création de profils Fournit une interface graphique pour administrer les profils Le script wasprofile ◦ Fournit une interface commande en ligne pour administrer les profils 20/12/2014 54 Instance du serveur Instance de serveur : ont pour rôle d'exécuter les applications déployées par l'entreprise. Chaque serveur WebSphere se compose de un ou plusieurs instance de serveur (processus). Dans la version express et base, chaque instance du serveur est indépendante. 20/12/2014 55 Les nœuds (Nodes) Un nœud est un groupe logique d’instance de serveurs qui partagent une configuration commune. Dans la majorité des cas, un nœud est associé avec une installation physique du serveur d'application WebSphere. Dans les versions Base et Express, il ne peut y avoir qu'un seul nœud. Pour les autres versions, l'intérêt du nœud est de permettre une administration centralisée, ainsi qu'une répartition de charge entre les nœuds. Cette configuration est obtenue grâce au Node Agent qui réalise la communication entre les instances des serveurs à l'intérieur d'un nœud. 20/12/2014 56 Les cellules (Cells) Une cellule est un groupe de nœuds qui permet d'obtenir un domaine d'administration. Dans les versions base et express, une cellule ne peut contenir qu'un seul nœud (une seule installation de WebSphere) Avec les versions Network et Entreprise, une cellule peut comporter plusieurs nœuds avec une administration centralisée. Pour permettre cette centralisation de l'administration, la configuration est stockée dans un repository. Ce repository est géré par le processus Deployement Manager intégré dans chaque serveur d'application WebSphere qui réalisent une copie du repository en locale. 20/12/2014 57 Installation(1) WAS Instance Serveur1 Nœud1 Instance Serveur2 Cellule Installation(2) WAS Instance Serveur3 Nœud2 Instance Serveur4 20/12/2014 58 Network Deployment Manager Processus d'administration permettant de centraliser la vue de gestion et le contrôle de tous les éléments d'une cellule répartie, y compris la gestion des clusters. Network Deployment Manager est responsable du contenu des référentiels de chacun des nœuds. ◦ Il gère cela en communiquant avec les processus d'agent de chaque nœud de la 20/12/2014 59 cellule Agent de Nœud Un agent de nœud gère tous les processus d'un serveur WAS sur un nœud en communiquant avec Network Deployment Manager pour assurer la coordination et la synchronisation de la configuration ; Un agent de nœud exécute des opérations de gestion pour le compte de Network Deployment Manager ; Il représente le nœud dans la cellule de gestion ; Les agents de nœud sont installés avec WAS Base ; cependant, ils ne sont requis que lorsque le nœud est ajouté dans une cellule d'un environnement de déploiement de réseau. 20/12/2014 60 Concepts Network Deployment 20/12/2014 61 Flux d’administration Network Deployment 20/12/2014 62 Synchronisation des fichiers 20/12/2014 63 Cluster Regroupement logique d'un ou plusieurs instance de serveur fonctionnellement identiques. Un cluster facilite le déploiement, la configuration, l'équilibrage de charge et la redondance en cas de problèmes. Un cluster est un ensemble de serveurs fonctionnant conjointement sous la forme d'un système unique pour garantir la disponibilité permanente des applications et ressources vitales pour les clients. Les clusters assurent l’évolutivité des systèmes. Membre de cluster : Instance de WAS dans un cluster. 20/12/2014 64 WebSphere : Haute disponibilité Un gestionnaire de haute disponibilité (HA) est utilisé pour éliminer les points de défaillance uniques du système (SPOF). Peut tirer avantage des technologies de tolérance aux pannes au niveau système de stockage comme le Network Attached Storage (NAS) Reprise à chaud pour des services uniques et critiques − Routage WLM , messagerie JMS, moniteur transactionnel… − Un service en panne redémarre sur une autre JVM déjà démarrée − Latence due à la bascule < 1 seconde 20/12/2014 65 Service de réplication de données Le Data Replication Service (DRS) est responsable de la réplication des données mémoire au sein de différents processus WebSphere. − Aide à la haute disponibilité et à la reprise sur incident − Augmente les performances et la « scalabilité » Qui utilise ce service ? − La persistance et la reprise sur les EJB session stateful − La persistance et la reprise sur les sessions HTTP − La réplication du cache dynamique Utilise des techniques de réplication point-à-point ou client serveur selon les cas 20/12/2014 66 Service de nommage Fournit un espace de nommage JNDI Enregistre tous les EJB et les ressources J2EE (exemple: Fournisseurs JDBC, JMS, J2C, URL et JavaMail) qui sont hébergés par le serveur d’applications Il y a un service de nommage par serveur d’applications On peut configurer des liaisons de nom vers des ressources distantes 20/12/2014 67 Conteneur Web Le conteneur Web est la partie du serveur d'application dans laquel les composants d'application Web s'exécutent. Les applications Web sont composées d'une ou plusieurs servlets connexes, les pages JSP(JavaServer Pages) et les pages HTML. Le conteneur Web traite principalement les servlets, les pages JSP. 20/12/2014 68 Conteneur Web (suite) Chaque conteneur Web offre les fonctionnalités suivantes : ◦ Transport de requêtes ◦ Exécution des servlets ◦ Exécution des pages HTML et autres pages statiques ◦ Gestion des sessions ◦ Traitements des Portlets 20/12/2014 69 Conteneur EJB Les EJB s'exécutent dans un environnement particulier au niveau du serveur d’application qui s’appelle : conteneur EJB Le conteneur d'EJB propose un certain nombre de services qui assurent la gestion : ◦ ◦ ◦ ◦ du cycle de vie de l’EJB de l'accès à l’EJB de la sécurité d'accès des accès concurrents 20/12/2014 70 Conteneur Web Browser client HTTP(S) HTTP(S) Serveur HTTP Serveur HTTP Intégré Servlet JSP DB Application Cliente Java RMI/IIOP Conteneur EJB EJB WAS 6.1 (JVM) Java Admin Console RMI/IIOP Admin Server (JVM) 20/12/2014 Repository (Annuaire) 71 20/12/2014 72 WAS Community Edition WAS CE (WebSphere Application Server Community Edition) est la version libre offerte par IBM ; WAS CE 2.0 est certifié Java EE 5.0 ; WAS CE est basé sur Apache Geromino ; WAS CE est téléchargeable via le site d(IBM suivant : ◦ http://www.ibm.com/developerworks/down loads/ws/wasce/ 20/12/2014 73 Tableau Comparatif 20/12/2014 74 Plan ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Le standard Java EE Produits de la famille Websphere L’architecture applicative et technique de WAS 6.1 Concepts WAS; TP1 : Installation de WAS TP2 : Fédération d'une cellule TP3 : Installation de HTTP Server et le Plugin TP4 : Déploiement d’une application WAR, Bibliothèques partagé & Pool de connexion 20/12/2014 75