RENDRE VOS APPLICATIONS JAVA PLUS - EFFICACES - Ce qu'il faut savoir JAVA APPLICATION MANAGEMENT ET APPLICATION J2EE.

La page est créée Ludovic Richard
 
CONTINUER À LIRE
W H I T E PA P E R

RENDRE VOS APPLICATIONS JAVA PLUS
EFFICACES – Ce qu'il faut savoir
JAVA APPLICATION MANAGEMENT ET APPLICATION J2EE.
Table des matières

INTRODUCTION.......................................................................................................................................................................................................2

NAVIGATEURS ..........................................................................................................................................................................................................2

SERVEURS WEB ........................................................................................................................................................................................................3

JVM ...........................................................................................................................................................................................................................3

SERVLETS..................................................................................................................................................................................................................4

ENTERPRISE JAVA BEANS .......................................................................................................................................................................................4

JAVA MESSAGE SERVICE.........................................................................................................................................................................................5

J2EE MANAGEMENT INTERFACE ...........................................................................................................................................................................5

RESUME ET CONCLUSIONS ...................................................................................................................................................................................6

POUR VOUS AIDER A GARDER L'AVANTAGE ........................................................................................................................................................6
Introduction

INTRODUCTION                                                                  délicatement élaborés et intégrés, qui fonctionnent ensemble pour
                                                                              faire tourner les roues. Le développement réussi des applications
Pour les entreprises confrontées au défi consistant à intégrer les
                                                                              J2EE est assez similaire. Extérieurement, Java facilite l'intégration et
applications provenant d'entreprises acquises, la mise en interface
                                                                              permet de fournir rapidement le service demandé. Alors que le J2EE
des applications sur le Web ou l'accès à une base de données
                                                                              donne l'impression que la tâche est plus facile, sous son capot se
héritée, l’application J2EE constitue une solution puissante utilisant
                                                                              cache une multitude de pièces mobiles qui requièrent une
une approche fondée sur la programmation standard des
                                                                              coordination et des performances optimales. En étant attentifs au
applications. Mais comment faire le tri parmi toutes les normes pour
                                                                              fonctionnement parfait de ces pièces, les administrateurs et les
trouver les éléments pertinents ? Il est facile de conceptualiser
                                                                              opérateurs sont à même de proposer un environnement de
l’application J2EE si vous la considérez comme un programme Java à
                                                                              production plus prévisible et plus fiable.
l'échelle d'une grande entreprise, cette dernière constituant une
plate-forme variée qui sert les processus métier de l'entreprise. Java
                                                                              N A V I G AT E U R S
peut être le dénominateur commun de l'environnement. Il s'agit du
langage que vous pouvez utiliser pour construire des éléments                 Aujourd'hui, la plupart des utilisateurs accèdent à Internet via un
individuels qui pourront être reliés pour former une application. La          navigateur sur un réseau. Le problème tient au fait que la plupart des
supposition fondamentale de Java tient au fait que si toutes les              programmateurs Java supposent que les pages de navigateur
plates-formes parlent le même langage, les entreprises pourront               générées par leurs programmes disposeront d'une bande passante
réduire les coûts liés aux connexions câblées via des moyens                  illimitée sur le réseau. Malheureusement, ce n'est pas le cas de tous
propriétaires entre différentes applications installées sur des plates-       les réseaux (posez simplement la question au propriétaire d'un
formes différentes.                                                           assistant numérique personnel qui tente de se connecter à Internet
                                                                              depuis un aéroport). Résultat : le navigateur dispose d'un "temps de
Cette norme permet la création d'unités logicielles, ou objets,               réponse" médiocre sur son navigateur.
indépendants, fonctionnels et réutilisables sur des plates-formes
disparates au sein de l'entreprise. Concrètement, cela signifie qu'une        La question est alors de savoir qui définit le temps de réponse
entreprise peut développer plus rapidement des applications                   "médiocre". La définition de médiocre est-elle celle de l'utilisateur
comprenant des pages Web présentées à l'utilisateur dans un                   du navigateur ou celle du programmateur Java ? Les équipes
navigateur et une couche d'application, ou principale, plus élaborée.         chargées de résoudre les problèmes d'application et de
La couche d'application J2EE peut aisément accéder aux données                fonctionnement se trouvent dans l'obligation de quantifier la qualité
qui résident sur n'importe quelle base de données et interagir avec           médiocre ou "satisfaisante" du temps de réponse du navigateur. Une
de nombreux types de services de messagerie intermédiaires. Les               fois quantifié, comment collecter le temps de réponse des
plates-formes matérielles des serveurs spécifiques utilisés pour se           navigateurs ?
faire sont la plupart du temps sans conséquence pour l'application.
Résultat : l’application J2EE constitue la solution idéale pour relever
le défi de la connexion et de l'intégration d'applications disparates.

Pour réussir avec l’application J2EE, il est important de comprendre
les différentes étapes et composants d'une application Web typique.
Certains analystes de l'industrie ont comparé l'évolution des
applications informatiques à celle de l'automobile. Les automobiles
actuelles constituent un assemblage complexe de composants

                                                                          2
SERVEURS WEB

SERVEURS WEB                                                                 Le langage Java se distingue également des autres langages de
                                                                             programmation par le fait que la spécification J2EE permet à un
Une fois le temps de réponse du navigateur quantifié, collecté et
                                                                             programmateur Java d'oublier la gestion de la mémoire. Dans les
mesuré, vous devez examiner vos serveurs HTTP (souvent appelés
                                                                             langages de programmation traditionnels, la gestion de la mémoire
serveurs Web). Ces serveurs décident de la procédure à suivre pour
                                                                             (allocation et « désallocation » appropriées de la mémoire) incombe
effectuer votre transaction. Si votre transaction est une simple
                                                                             au programmateur d'applications. Dans le cas du langage Java, cette
requête de fichier plat (par exemple, une page HTML statique), le
                                                                             tâche revient à la machine JVM. Celle-ci démarre avec une quantité
serveur Web lui-même récupère généralement la page et la retourne
                                                                             initiale de mémoire allouée par le système d'exploitation hôte. On
au navigateur. En revanche, si votre transaction comprend un
                                                                             appelle parfois cette quantité de mémoire la taille du « tas ». Cette
contenu dynamique (par exemple, le solde actuel de votre compte
                                                                             taille initiale du tas ne correspond pas à la quantité de mémoire
en banque), le serveur peut transmettre votre requête au serveur
                                                                             maximale disponible pour la machine Java, mais seulement à la
d'applications Web. C'est là que résident les composants J2EE,
                                                                             quantité de mémoire dont cette machine dispose au démarrage. Au
notamment les « servlets », les « Java server pages » (JSP) et les «
                                                                             fil du temps, à mesure que les applications Java et que la machine
enterprise Java beans » (EJB). Toutefois, avant que la transaction ne
                                                                             Java elle-même ont besoin de davantage de mémoire (plus que la
soit transmise au monde J2EE, voyons ce que doit encore faire le
                                                                             taille initiale du tas), la machine JVM intervient. Les servlets allouent
serveur Web. Les pages de serveur Web communiquées à un
                                                                             davantage de mémoire (selon des quantités prédéfinies) à partir du
navigateur se composent de nombreux éléments différents : pages
                                                                             système d'exploitation hôte. Il est important de contrôler le rythme
de texte, images et applications client (telles que les applets Java).
                                                                             auquel la machine Java alloue davantage de mémoire à partir du
En supposant que le temps de réponse à l'utilisateur final se
                                                                             système d'exploitation hôte. Si cette allocation de mémoire n'est pas
prolonge, comment savoir quelles parties des pages provoquent ce
                                                                             correctement gérée, le système d'exploitation hôte finira par
retard global au niveau de la réponse ? Le fait de savoir quelle
                                                                             manquer de mémoire.
partie des pages du navigateur rencontre un problème pourrait vous
aider à accélérer sa résolution. En supposant que tout se passe bien
                                                                             Un autre aspect important de la gestion du tas de mémoire concerne
au niveau du serveur Web, votre transaction J2EE est transmise à un
                                                                             la quantité de mémoire libre disponible pour la machine Java. Il
servlet qui s'exécute sur la machine JVM.
                                                                             s'agit de la quantité de mémoire (généralement exprimée en Mo) du
                                                                             tas actuellement alloué que la machine Java peut encore utiliser.
JVM
                                                                             Cette mesure est importante car une fois que la machine Java
Les servlets coordonnent la logique globale du programme à                   manque de mémoire, elle risque de s'arrêter. Si cette valeur est de
l'intérieur d'une « Java Virtual Machine » J2EE. Avant d'examiner plus       zéro, vous avez peut-être un problème avec la collecte des
en détails les servlets, attardons-nous sur la machine JVM elle-même.        informations parasites (voir la rubrique consacrée à ce sujet ci-après)
Si la machine JVM fonctionne mal ou n'est pas correctement                   ou avec une application Java qui ne libère pas la mémoire/les objets
paramétrée, il est évident que les servlets qui s'exécutent sur cette        (ce que l'on appelle souvent une fuite de mémoire).
machine ne seront pas performants. La programmation Java est
différente de bien d'autres langages de programmation. Dans les              Comment déterminer le pourcentage actuel de mémoire utilisé dans
autres langages, votre code est compilé dans le langage de la                la machine Java en fonction de la taille maximale "possible" du tas ?
machine, alors que dans le cas de Java, votre code est également             Les machines JVM allouent de la mémoire constamment, mais
compilé, mais pas dans le langage de la machine. Le code Java est            seulement jusqu'à la taille maximale du tas. Cette dernière est
compilé dans un langage que la machine JVM exécutera. Le code                spécifiée au démarrage de la machine Java et ne peut être modifiée
Java compilé ne s'exécute pas en natif sur le système d'exploitation,        pendant le fonctionnement de la machine. Il est donc important de
mais sur la machine JVM. Cette dernière doit pour cela allouer de la         connaître le pourcentage de mémoire utilisé en fonction de la taille
mémoire (appelée "tas" ou "heap" en anglais) à partir du système             maximale "possible" du tas.
d'exploitation, et ce pour deux raisons :
                                                                             Il arrive que la taille du tas de la machine virtuelle Java augmente en
> pour exécuter la machine JVM elle-même ;                                   raison d'une collecte insuffisante des informations parasites. La
> pour exécuter les programmes Java résidant sur la machine JVM.             collecte des informations parasites est le processus de la machine

                                                                         3
SERVLETS

Java qui libère des portions de mémoire inutilisées et les réalloue au         normalement les requêtes de manière continue (un servlet de
tas disponible. La machine virtuelle Java est chargée de collecter et          connexion, par exemple) et que le nombre de requêtes passe à zéro,
de réutiliser la mémoire libre car la spécification J2EE libère le             cela peut indiquer la présence d'un problème extérieur à la machine
programmateur Java de cette tâche. La collecte des informations                JVM (indiquant par exemple que le serveur HTTP manque
parasites est à la fois positive et négative. Elle est positive car elle       d'écouteurs ou qu'une défaillance s'est produite au niveau du
octroie à la machine virtuelle Java davantage de mémoire pour le tas           réseau). Cela peut aussi indiquer qu'un servlet est en attente à la
JVM. Elle est négative car la machine virtuelle Java a tendance à              suite d'une requête à une base de données principale. En supposant
ralentir les transactions J2EE pendant la collecte des informations            que tout se passe bien au niveau des servlets, examinons les EJB.
parasites. Dans ces conditions, la collecte des informations parasites
devient un véritable "numéro d'équilibriste" ; si cette collecte n'est
pas effectuée, la machine virtuelle Java risque de manquer de
mémoire. En revanche, si la collecte des informations parasites                E N T E R P R I S E J AVA B E A N S
intervient trop souvent ou demande trop de temps, vos applications
                                                                               Vous pouvez créer une application Web robuste sans EJB en utilisant
Java sont ralenties. La durée de la collecte des informations parasites
                                                                               votre serveur Web, des servlets et des JSP. Toutefois, si votre
doit être courte au début et augmenter au fil du temps (cela est dû
                                                                               application requiert un accès à un corps central de logique métier
au fait que dans un premier temps, la machine virtuelle Java ne
                                                                               et/ou un accès à de nombreuses bases de données principales, les
dispose pas de beaucoup de mémoire à libérer). En supposant que
                                                                               EJB sont recommandés. Les EJB fournissent une couche
tout se passe bien dans la machine virtuelle Java, examinons
                                                                               d'abstraction entre vos applications Java et vos bases de données
les servlets.
                                                                               principales. Cette couche d'abstraction permet également la
                                                                               coordination de la logique métier pour vos applications Java. Cette
                                                                               couche est différente d'un servlet, dans la mesure où le servlet
                                                                               fournit uniquement la coordination pour la logique de programme
SERVLETS
                                                                               d'une application Java. Les EJB doivent être aussi performants que
Les servlets contrôlent la transaction J2EE dans la machine virtuelle          les servlets en raison de leur rôle important dans la couche
Java. Il est essentiel que leurs performances soient optimales pour la         d'application J2EE.
plupart (voire la totalité) des transactions dynamiques J2EE. Par
exemple, de nombreux sites Web orientent toutes les transactions               L'une des meilleures méthodes pour déterminer la santé globale des
initiales vers un servlet de connexion. Si ce servlet a un problème au         EJB consiste à surveiller le temps de réponse de chaque méthode
niveau du temps de réponse, chaque utilisateur qui se connecte au              (fonction) à l'intérieur de l'EJB. Ce temps est important car il indique
site Web rencontrera un temps de réponse lent. (N'oubliez pas que si           le temps de réponse de tous les EJB (à l'exclusion du temps
le temps de réponse Web de votre site est lent, celui des sites Web            consacré à la création et à la suppression de beans). Un temps de
concurrents est accessible d'un simple clic). De toute évidence, il est        réponse prolongé pourrait indiquer que le codage d'un servlet est
important de contrôler le temps de réponse de votre servlet, car un            défaillant. Ce servlet mal rédigé peut tenter d'accéder à un EJB (via
servlet donné pourrait attendre indéfiniment une ressource principale          ce que l'on appelle un bean d'entité), multipliant les appels pour
(de type base de données). Certains programmateurs Java peuvent                satisfaire une seule requête à la base de données. Ces types de
ne pas concevoir de servlets dotés d'un temps d'attente limité avant           connexions de bean d'entité coûtent très cher en termes de
expiration de la requête du servlet adressée à une base de données.            performances. Un servlet mieux rédigé pourrait utiliser moins
En outre, si d'autres servlets accèdent à la même base de données              d'appels à l'EJB (via un bean de session) pour obtenir les mêmes
qui ne répond pas, la machine JVM allouera une thread à chacun de              informations de la base de données.
ces servlets muets. En conséquence, la machine JVM pourrait
commencer à manquer de thread. Cela aboutirait à une paralysie                 Les EJB sont alloués à partir d'un pool au sein de la machine JVM.
complète du site Web. En contrôlant le temps de réponse du servlet,            Chaque fois qu'un programme Java a besoin d'un EJB pour un objet,
vous pouvez prévenir un problème potentiel de ressources de fils               il accède au pool de beans. Vous devriez contrôler le nombre moyen
dans la machine JVM..Enterprise Java Beans 6. Outre le contrôle du             d'objets présents dans le pool. Ce nombre est important car la taille
temps de réponse des servlets, vous devriez tenir compte du nombre             du pool d'EJB dépend de deux variables : le nombre de beans et
de sessions Internet/requêtes traitées par chaque servlet. Ce nombre           leur taille. Si votre pool de beans devient trop volumineux, vous
est important car si vous savez qu'un servlet donné transmet

                                                                           4
J AVA M E S S A G E S E R V I C E

devriez réduire la taille du tas. Vous pouvez envisager d'imposer une       J 2 E E M A N A G E M E N T I N T E R FA C E
limite à la taille de votre pool EJB.
                                                                            Toute interface de gestion ou technique d'administration implique un
                                                                            certain niveau d'intrusion dans le système. Ce niveau d'intrusion
Un EJB peut aussi appeler ce que l'on appelle un bean orienté
                                                                            pourrait modifier considérablement les caractéristiques de
message. Il s'agit de beans utilisés pour communiquer de manière
                                                                            fonctionnement de tout composant J2EE – aboutissant à des
asynchrone avec d'autres ressources. D'une manière générale, ces
                                                                            mesures dépourvues de sens. Veuillez tenir compte de cet élément
beans appellent le service JMS (Java Message Service). Examinons
                                                                            lorsque vous considérez l'une des trois approches suivantes pour la
de plus près le service JMS.
                                                                            gestion J2EE :

J AVA M E S S A G E S E R V I C E
                                                                            > Java Management Extensions (JMX)
Le JMS permet à une application Java de communiquer de manière              > Byte-Code Instrumentation
asynchrone. Le JMS peut être utilisé avec les servlets comme avec           > Java Profiler Interface (JVMPI)
les EJB. Dans les deux cas, les applications Java peuvent accéder à
d'autres applications Java librement via la messagerie JMS. Le JMS          L’interface JMX est l'approche la plus courante sur le marché et celle
peut transporter des messages de deux manières différentes : la             qui connaît l'essor le plus spectaculaire en matière de gestion J2EE.
première consiste à utiliser l'API JMS générique fournie par le cadre       Elle facilite la gestion de toute application Java (à supposer que
J2EE. Cet accès générique s'effectue via les fonctions de messagerie        celle-ci soit compatible JMX). Cela signifie que l’interface JMX peut
natives du JMS. L'autre méthode utilise également l'API JMS ;               gérer vos applications Java personnalisées ainsi que toute
toutefois, les fonctions de messagerie sont remplies par un logiciel        application tierce. Bon nombre de JVM courantes disposent elles-
d'infrastructure tiers orienté messagerie tel que WebSphere MQ. Il          mêmes d'une interface JMX, ce qui permet à la machine Java elle-
existe un troisième moyen de transporter les messages J2EE, mais il         même d'être gérée via la JMX. Quels que soient les éléments gérés
ne fait pas partie du JMS. Cette méthode fait appel à une API tierce        par l’interface JMX, la gestion JMX est fournie via des «
pour accéder directement au transport de messagerie en                      Management Beans » (MBeans). Soyez attentif à l'avenir à
contournant le JMS.                                                         toute activité significative au niveau des interfaces JMX de la part
                                                                            des fournisseurs de machines Java et des ISV (fournisseurs de
Parmi les difficultés que pose le JMS (et bien d'autres services de         services Internet).
messagerie), on peut citer :
                                                                            L' « instrumentation byte-code » (Byte-Code Instrumentation) est une
> Mon message est-il arrivé à destination ?                                 méthode utilisée pour insérer de manière dynamique des appels
> Où est mon message ?                                                      dans vos programmes Java. Ces appels extraient de manière
> Quand mon message est-il arrivé à destination ?                           dynamique des informations des programmes Java. Les informations
                                                                            extraites peuvent comprendre des détails à propos des instructions
En supposant que vos messages arrivent à destination via le JMS,            SQL, par exemple la quantité d'utilisation d'UC par instruction SQL.
vous pourriez vous demander comment sont gérées toutes ces                  Comme l’interface PMI, l'instrumentation byte-code dispose d'une
ressources liées au J2EE. Examinons les interfaces de gestion               marge de dépassement significative.
J2EE disponibles.
                                                                            La dernière approche de la gestion est celle de l’interface JVMPI. Elle
                                                                            dispose de la marge de dépassement la plus importante de toutes
                                                                            les approches de gestion J2EE. Toutefois, l'interface contient des
                                                                            statistiques J2EE très granulaires telles que l'utilisation d'UC par la
                                                                            machine JVM et les statistiques relatives à la collecte des
                                                                            informations parasites. Compte tenu des dépassements extrêmes,
                                                                            cette approche de gestion ne devrait être utilisée que pour le
                                                                            développement et jamais dans la production.

                                                                        5
Résumé et Conclusions.

RÉSUMÉ ET CONCLUSIONS                                                        Java peut rendre vos applications modulaires et indifférentes aux
                                                                             plates-formes. Cela devrait maintenir les coûts de matériel et de
Surveillez votre serveur d'application Java pendant quelques
                                                                             développement dans des limites raisonnables et ramener les
semaines afin de déterminer les hauts et les bas "normaux" de
                                                                             applications à un état productif plus rapidement. Si elles sont
l'utilisation des ressources. Gardez un œil sur l'utilisation de la
                                                                             correctement gérées, ces applications peuvent aussi utiliser les
mémoire et vérifiez que la collecte des informations parasites est
                                                                             ressources de manière efficace et fiable. Toutefois, le défi le plus
effectuée, mais pas de manière excessive. Vérifiez que vos servlets
                                                                             important de la gestion de votre infrastructure J2EE consiste à
ne mettent pas trop longtemps à répondre aux requêtes en attente
                                                                             assurer les niveaux de performances prévus. BMC Software fournit
sur des fichiers. Les thread sont une ressource limitée ; assurez-vous
                                                                             des solutions de gestion des applications qui automatisent le
que vos programmateurs Java les libèrent dans les délais impartis.
                                                                             contrôle et l'optimisation de vos applications J2EE. Les solutions
                                                                             Java Application Management proposées par BMC Software vous
Les EJB sont de plus en plus largement acceptés et de nombreuses
                                                                             aident à définir, mesurer et optimiser la qualité des services requis
entreprises ne maîtrisent pas encore totalement leur utilisation.
                                                                             par vos applications Java et à gérer les éléments importants au
N'oubliez pas qu'un EJB peut atteindre l'expiration de son délai
                                                                             niveau des services métier.1
comme un servlet attendant sur une ressource principale. En
contrôlant les temps de réponse des EJB et des servlets, vous
pouvez anticiper (et peut-être prévenir) la paralysie du site Web.
Profitez d'une ou de plusieurs des approches de gestion Java
                                                                             P O U R V O U S A I D E R A G A R D E R L ' A V A N TA G E
évoquées dans cette présentation, par exemple les extensions de
gestion Java, pour obtenir des informations de gestion détaillées.           Les services professionnels de BMC Software aident votre entreprise
Bien qu'il existe plusieurs approches de ce type, celle qui convient à       à préserver ses atouts compétitifs grâce à une suite complète de
votre situation peut dépendre de différents facteurs tels que la             services comprenant la gestion des niveaux de services, l’installation,
conception des applications et la capacité du système.                       l’implémentation, la configuration et la personnalisation. Nos offres
                                                                             professionnelles de services et de formations sont conçues pour
                                                                             assurer la disponibilité permanente des applications stratégiques,
                                                                             optimiser le potentiel du produit, réduire les risques liés aux projets,
                                                                             apporter une valeur informatique à votre activité et améliorer vos
                                                                             opérations. Pour en savoir plus sur les services professionnels de
                                                                             BMC Software, consultez le site http://www.bmc.com/profserv.

                                                                         6
A PROPOS DE BMC SOFTWARE

BMC Software, Inc. [NYSE: BMC], est un fournisseur leader en solutions de gestion d’entreprise proposant une gestion de l’informatique du
point de vue de l’entreprise. Les solutions BSM de BMC Software couvrent aussi bien les systèmes et les applications que les bases de données
et la gestion des services. Fondée en 1980, BMC Software possède des bureaux dans le monde entier et a réalisé un chiffre d’affaires de plus
de 1,4 milliards de dollars en 2004. Pour plus d’informations sur BMC Software, visitez le site www.bmc.com.

Copyright 2004 BMC Software, Inc., en tant qu'œuvre non publiée. Tous droits réservés. BMC Software, les logos BMC Software et tous les autres noms de produits ou de services BMC Software sont des marques déposées de
BMC Software, Inc. IBM est une marque déposée de International Business Machines Corporation. DB2 est une marque déposée de International Business Machines Corporation. Oracle est une marque déposée, et les noms de
produit Oracle sont des marques déposées ou des marques commerciales de Oracle Corporation. Toutes les autres marques commerciales appartiennent à leurs détenteurs respectifs. 52869 02/05
Vous pouvez aussi lire