Concept: Configurations de déploiement J2EE
Ces instructions décrivent le pour et le contre des différentes configurations de déploiement pour la plateforme J2EE.
Relations
Description principale

Introduction

La plateforme J2EE prend en charge le développement et le déploiement d'une variété de configurations de déploiement standard. Grâce à de telles configurations de déploiement standard, de nombreuses questions concernant le développement d'application sont désormais résolues. Dans les sections suivantes, vous trouverez une description des configurations de déploiement les plus courantes ainsi que les avantages et les inconvénients de chacune d'entre elles.

Si vous ne connaissez pas encore les concepts J2EE, reportez-vous aux concepts décrits dans Généralités sur Java 2 Platform Enterprise Edition (J2EE) avant d'aller plus loin.

Configuration de déploiement autonome

La figure 1 montre la première configuration de déploiement. Dans cette configuration, il n'y a ni conteneur Web ni conteneur d'EJB - un client accède aux ressources du système EIS directement, et est responsable de la gestion de la logique de présentation, de la logique métier ainsi que de la logique d'intégration elle-même.

Diagramme décrit dans le texte d'accompagnement.

Figure 1 : Configuration de déploiement autonome

A première vue, cette configuration semble être une suggestion intéressante pour les applications dont la manipulation des données contenues dans les ressources EIS est simple. Cependant, cette configuration peut présenter quelques inconvénients.

Les changements apportés aux ressources EIS peuvent avoir un fort impact sur l'implémentation de l'application. Cet impact dépend souvent et directement de la structure interne de chaque ressource EIS, telle que la structure des tables de base de données. Tout changement apporté à l'application elle-même nécessite un déploiement complet à chaque utilisateur - il n'existe pas de serveur central où l'application est déployée afin que les clients puissent avoir un accès immédiat aux dernières mises à jour.

Par conséquent, cette configuration de déploiement n'encourage pas une division de responsabilité. Par exemple, il arrive souvent que la logique de présentation et la logique métier soient étroitement couplées ; la prise en charge de l'évolution et de la maintenance de l'application en est d'autant plus difficile.

Les problèmes réels liés à cette configuration de déploiement apparaissent cependant lorque vous décidez de dimensionner votre application. Les postes de travail client possèdent des caractéristiques de performances limitées ; l'idéal serait que vous répartissiez le traitement sur un certain nombre de machines. Mais la configuration autonome n'est pas conçue pour prendre en charge un traitement réparti. Par conséquent, lorsque vous tentez de prendre en charge davantage de clients ayant accès aux ressources du système EIS simultanément, il est possible que vous pensiez que vos applications sont contraintes par la ressource du système EIS elle-même, comme le nombre de connexions simultanées à une base de données.

Configuration de déploiement centrée sur EJB

La figure 2 montre la configuration de déploiement centrée sur EJB. Dans cette configuration, un conteneur d'EJB se trouve entre le conteneur client et les ressources du système EIS - il n'y a pas de conteneur Web. La logique de présentation est dans le client ; la logique métier réside dans les EJB. Plutôt que d'avoir accès directement aux ressources du système EIS, toutes les requêtes des clients sont gérées par les EGB adéquates. Les clients sont, en conséquence, protégés contre les changements apportés aux ressources EIS.

Diagramme décrit dans le texte d'accompagnement.

Figure 2 : Configuration de déploiement centrée sur EJB

La configuration de déploiement centrée sur EJB est conçue pour traiter un grand nombre des problèmes présents dans la configuration de déploiement autonome. Sur le plan de l'évolutivité, l'implémentation de la plateforme J2EE peut répartir le traitement sur un certain nombre de machines. De même, un conteneur d'EJB a la responsabilité de garantir une utilisation efficace de ressources limitées, telles que des connexions à une base de données. Sur le plan de l'évolution et de la maintenance de l'application, cette configuration encourage également une séparation entre la logique de présentation et la logique métier.

Cependant, un des inconvénients de la configuration de déploiement centrée sur le EJB réside dans le fait que même les changements de moindre importance apportés à l'interface utilisateur nécessitent un transfert complet de l'application à chaque utilisateur. Bien que la logique métier encapsulée dans les EJB peut être redéployée sur le serveur (permettant ainsi aux utilisateurs l'accès immédiat à tous les changements), ce n'est pas le cas pour la logique de présentation. Cela est regrettable étant donné que la présentation d'une application peut subir des changements fréquents.

Configuration de déploiement centrée sur le Web

La figure 3 montre la configuration de déploiement centrée sur le Web. Dans cette configuration, un conteneur Web se trouve entre le conteneur client et les ressources du système EIS - il n'y a pas de conteneur d'EJB. La logique de présentation et la logique métier sont traitées par des éléments dans le conteneur Web (JSP et servlets). Dans cette configuration, un simple langage de balisage est utilisé dans le client, tel que le langage HTML, bien que cela peut valoir également pour le langage XML ou WML.

Diagramme décrit dans le texte d'accompagnement.

Figure 3 : Configuration de déploiement centrée sur le Web

Une configuration de déploiement centrée sur le Web conduit habituellement à mettre davantage l'accent sur la prise en charge de la conception de l'application résultante, que sur la prise en charge de la logique métier. Une telle configuration prend en charge les changements fréquents apportés à la présentation d'une application et est beaucoup utilisée aujourd'hui.

Une configuration de déploiement centrée sur le Web apporte un certain nombre d'avantages. Premièrement, les clients ne sont pas touchés par les changements apportés aux ressources du système EIS, puisqu'ils n'ont pas accès à ces ressources directement. Deuxièmement, il est possible de redéployer la totalité de l'application sans nécessiter aucun transfert aux utilisateurs, puisque l'application réside entièrement sur un serveur.

Cependant, alors que l'utilisation des EJB est parfois considérée comme étant plus professionelle qu'amateur, l'omission des EJB engendre certain des problèmes soulevés pour la configuration de déploiement autonome. En particulier, cette configuration n'encourage pas une division nette de la responsabilité entre la logique de présentation et la logique métier, ce qui aboutit souvent à des éléments couplés qui entravent l'évolution et la maintenance de l'application. De même, tous les problèmes d'évolutivité présents dans la configuration de déploiement autonome s'appliquent à une architecture centrée sur le Web.

Configuration de déploiement multiniveau

La figure 4 montre la configuration de déploiement multiniveau. Cette configuration comprend à la fois un conteneur Web et un conteneur d'EJB et elle présente tous les avantages décrits pour les autres configurations de déploiement, sans aucun des inconvénients. La logique de présentation est traitée par les éléments du conteneur Web ; la logique métier est traitée par des EJB dans le conteneur d'EJB.

Diagramme décrit dans le texte d'accompagnement.

Figure 4 : Configuration de déploiement multiniveau

Les clients ne sont pas touchés par les changements apportés aux ressources du système EIS car ces ressources ne sont pas accessibles directement. De même, il est possible de redéployer la totalité de l'application sans nécessiter aucun transfert aux utilisateurs, puisque l'application réside entièrement sur le serveur.

Sur le plan de l'évolutivité, le traitement peut être réparti pour prendre en charge le traitement simultané. De même, sur le plan de l'évolutivité, le conteneur d'EJB a la responsabilité de garantir une utilisation efficace de ressources limitées, telles que des connexions à une base de données.

Sur le plan de l'évolution et de la maintenance d'application, cette configuration encourage également une nette séparation des responsabilités. La logique de présentation et les ressources du système EIS sont découplées, il en va de même pour la logique métier et la conception. Cette nette séparation peut faciliter l'attribution du travail aux différents développeurs qualifiés et la logique de présentation et la logique métier peuvent être développées simultanément.

La configuration de déploiement multiniveau peut également faciliter la migration d'un périphérique client(tel qu'un navigateur Web) à un autre (tel qu'un assistant numérique personnel). Une réécriture complète de l'application n'est pas nécessaire car la logique métier encapsulée dans les EJB reste inchangée et peut être utilisée en l'état.

Pour résumer, il existe un certain nombre de configurations de déploiement, chacune possédant ses propres avantages et inconvénients. L'un des objectifs de la plateforme J2EE est d'être suffisamment souple pour prendre en charge tout type de configuration de déploiement considéré comme adéquate pour une organisation, tout en traitant des intérêts de l'entreprise.