RENDRE VOS APPLICATIONS JAVA PLUS - EFFICACES - Ce qu'il faut savoir JAVA APPLICATION MANAGEMENT ET APPLICATION J2EE.
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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